امنیت همیشه یکی از بحثهای داغ فضای سایبری بوده و در طول زمان و با پیشرفت تکنولوژی، توجهات بیشتری را به خود جلب کرده است. به منظور پیادهسازی صحیح و اصولی امنیت در فضای سایبری، پیش از هر چیز باید مفهوم درست امنیت را درک کنیم و برای این کار اول باید با اصول اولیهٔ آن یعنی Privacy (حریم خصوصی)، Authentication (احراز هویت)، Integrity (صحت اطلاعات) و Nonrepudiation (انکارناپذیری هویت) بیشتری پیدا کنیم. همه میدانیم که حفظ امنیت کاری ضروری ولی بسیار دشوار است؛ امنیت بالا همیشه باعث میشود تا همه چیز آهستهتر، پیچیدهتر، دست و پاگیرتر، و گاهی اوقات گیجکننده به نظر برسد. به همین دلیل در زبان انگلیسی، اصطلاحاً می گویند که حفظ امنیت همراه با PAIN است که برگرفته از کلمات Privacy ،Authentication ،Integrity ،Nonrepudiation است.
حریم خصوصی (Privacy)
همهٔ ما مفهوم حریم خصوصی را درک میکنیم ولی حفاظت از اطلاعات شخصی تنها بخشی از تعریف آن در دنیای دیجیتال است. ناشناس باقی ماندن در دنیایی که همه در تلاش به منظور کنترل کارهایتان هستند نیز بخشی از تعریف این حریم است.
با اینکه هر برنامه و اپلیکیشنی دارای نیازهای متفاوتی از حریم خصوصی ما است، اما این در حالی است که رمزگذاری پایهٔ تمامی آنها مشترک میباشد. در واقع، انسانها چندین هزار سال است که از رمزگذاری استفاده میکنند؛ در جنگهای قرون اخیر هم از آن بهرههای زیادی برده شده است و از همین روی با اطمینان میتوان گفت که یکی از جنبههای مهم امنیت به حساب میآید. اما در یک مجموعهٔ رمزگذاری، باید به دنبال چه چیزهایی باشیم؟
- الگوریتمهای رمزنگاری
- نرمافزارهای اپنسورس
- پروتوکلهای استاندارد
الگوریتمهای رمزنگاری توسط تحلیلگران جهت یافتن نقاط ضعف مورد بررسی قرار گرفته تا احتمال هرگونه حملهای را به حداقل برسانند. در واقع، بررسی الگوریتمهای مرزنگاری یک باید است چرا که این احتمال وجود دارد در زمان طراحی الگوریتم، یک اصطلاحاً Back Door (یا راه نفوذ) توسط توسعهدهنده ایجاد شده که خود ایشان از آن بیخبر است! اپنسورس بودن نرمافزار هم اهمیت زیادی جهت بررسی و بهروزرسانی و از بین بردن باگها دارد و در نهایت هم نیاز به پروتوکلهای استاندارد یا اپنسورس هم به دلایل مشابه قابل درک است.
به طور کلی، یکی از نقاط منفی رمزگذاری این است که هرچه قویتر باشد، سرعت محاسبه و پردازش آن توسط سیستم کاهش مییابد؛ پس تأخیر قابلتوجهی در خواندن و فرستادن دادهها مشاهده میشود اما همین کُندی به نظر میرسد که قابلتوجیه باشد.
احراز هویت (Authentication)
همانطور که از نامش پیدا است، کار Authentication نشان دادن و ثابت کردن هویت واقعی شما است و همانطور که هر کالا یا چیزی باید گواهی یا سند رسمی هویتی داشته باشد، شما نیز برای تأمین امنیت خود، باید ثابت کنید همان کسی هستید که ادعا میکنید!
احراز هویت هم خالی از اشکال نیست، به ویژه زمانی که دو طرف در بیاعتمادی متقابل به سر میبرند. ما به طور معمول به وسیلهٔ یک رمزعبور در کنار نام کاربری خود -که معمولاً ایمیل است- هویت خود را تأیید میکنیم. در اصل، رمزعبور همان چیزی است که اصالت شما را ثابت میکند؛ اما مشکل اینجا است که پسوردها را میتوان حدس زده یا هک کرد و به همین دلیل هم هست که وبسایتهای مختلف تأکید زیادی روی داشتن کلمات عبور قوی یا تعیین هویت چندمرحلهای دارند (تعیین هویت چندمرحلهای، سادهتر از چیزی است که به نظر میرسد. با استفاده از این روش، به جای داشتن یک پسورد، از مراحل متعددی مانند ایمیل مخصوصاً برای ریست کردن پسورد- و ارسال کدهای عددی به موبایل استفاده میشود که در واقع با توجه به پروتکلهای آسیبپذیر SMS، آنقدرها هم امن نیست!)
صحت اطلاعات (Integrity)
بخش بزرگی از داشتن ارتباطات ایمن، اطلاع داشتن از این است که دادههای ارسالی شما پیش از رسیدن به مقصد، دستکاری نشده باشند؛ به عبارت دیگر، صحت اطلاعات شما باید حفظ شود. در فضای سایبری یک چیز را همواره میبایست به خاطر داشته باشیم و آن هم اینکه شما همیشه باید فرض این را داشته باشید که یک کانال ارتباطی تا زمانی که امنیت آن به شما ثابت نشده است، ناامن است چرا که تشخیص اینکه یک مهاجم چه مقدار دسترسی به یک کانال را به دست آورده، کاری بس دشوار است.
در حالی که ممکن است یک مهاجم قادر به دیدن تمام ارتباطات عبور داده شده از یک کانال نباشد، باز هم میتواند تغییراتی در دادهها -قبل از آنکه به دست شما برسند- اعمال کند. این نوع جرایم سایبری به عنوان اصطلاحاً Man in The Middle شناخته میشوند.
با اجرای روشی به منظور بررسی صحت دادهها، شما میتوانید از هرگونه اطلاعات تغییر یافته اطمینان حاصل کنید و روی آنها خیلی حساب باز نکنید. کنترل صحت دادهها معمولاً با استفاده از چیزی تحت عنوان Hash صورت میگیرد. به عنوان مثال، دادههای ارسال شده ابتدا هَش شده، سپس دادههای هَش شده با استفاده از یک کلید غیر قابل رؤیت توسط سایرین رمزگذاری میشوند. به این طریق، اگر یک مهاجم قصد مداخله در دادههای ارسالی ما را داشته باشد و حتی اگر کلید آن را در اختیار داشته باشد، بازهم نخواهد توانست از دادههای هَش شده سر در بیاورد. این یک راه بسیار مؤثر برای اطمینان حاصل کردن از صحت دادهها است، حتی زمانی که از الگوریتمهای ضعیفی مانند Sha1 استفاده شده باشد.
انکارناپذیری هویت (Nonrepudiation)
در یک محیط امن، هر کاربری که هویتاش احراز شده باشد قابلشناسایی است ولی باید توجه داشته باشیم که همیشه نمیتوانیم به اطرافیان خود اعتماد داشته باشیم. در نتیجه، احتمال وجود یک مهاجم حتی در محیطی با امنیت بالا دور از ذهن نیست!
برای جلوگیری از حملات افراد مخرب که از قبل هویت خود را ثابت کردهاند، میبایست از پروسهٔ Nonrepudiation یا انکارناپذیری هویت استفاده کنیم. پروسهٔ انکارناپذیری هویت، برخلاف احراز هویت بوده و در واقع توانایی تشخیص و شناسایی کارهای مخرب انجام شده توسط یک کاربر است، حتی اگر فرد مورد نظر چنین ادعایی را رد کند!
به طور کلی، بایستی توجه داشت که فضای سایبری روز به روز با زندگی تکتک آدمها بیشتر عجین میشود و این تعامل بیش از پیش ما با دنیای دیجیتال بدان معنا است که اطلاعات بیشتر و بیشتری از ما در فضای مجازی منتشر میشود و بالتبع نیاز داریم تا به نوعی از حضور ایمن خود در فضای مجازی اطمینال حاصل کنیم. این اطمینان حاصل کردن از یکسو میبایست توسط وبمسترها و دولوپرها تأمین شود و از سوی دیگر، با رعایت یکسری نکات ایمنی توسط کاربران ایجاد خواهد شد.