رمزگذاری کامل دیسک: قویترین راه مقابله با نظارت، حمله و سرقت دستگاههای شما
یکی از قویترین روشهای مقابله با نظارت، حمله و سرقت دستگاههایتان، این است که مطمئن شوید دادههای روی آنها امن هستند. در دنیای امروز، تنها راه واقعی برای رسیدن به این سطح از امنیت، رمزگذاری کامل دیسک (Full Disk Encryption) است.
رمزگذاری کامل دیسک به معنای رمزگذاری تمام اطلاعات موجود روی یک هارد درایو است، بهگونهای که همه فایلها به شکلی ناخوانا و رمزگذاریشده تبدیل میشوند و تنها با وارد کردن گذرواژه مخصوص، قابل دسترسی خواهند بود.
برخی دستگاهها مانند آیفون (iOS) این قابلیت را بهصورت پیشفرض فعال دارند. اما دستگاههایی مانند مکبوک یا رایانههای لینوکسی نیاز به فعالسازی و پیکربندی دستی این قابلیت دارند.
برای شروع، مستقیماً به سراغ FileVault2 میروم، که رمزگذاری کامل دیسک در سیستمعامل macOS است- و در حال حاضر روی دستگاه اصلی من فعال است.
مشاهده کنید: نرمافزارهای رمزگذاری فایل در رهنما
FileVault2
بهصورت بومی در تمام نسخههای سیستمعامل macOS از Lion به بعد وجود دارد و نسخهای پیشرفته از FileVault اولیه است که تنها پوشهی خانگی (Home Folder) را رمزگذاری میکرد. FileVault2 از رمزگذاری AES 128 بیتی در حالت XTS استفاده میکند تا کل دیسک را رمزگذاری کند، و هنگام راهاندازی یک رایانه جدید با نسخهی Yosemite یا بالاتر، بهشدت توصیه میشود.
اقدام هوشمندانهای از سوی اپل بود که بخشی اختصاصی برای فعالسازی این قابلیت در فرآیند راهاندازی اولیه سیستمعامل تعبیه کرده است.
زمانی که برای نخستین بار FileVault2 را فعال میکنید، لازم است که حساب کاربری مدیریتی دستگاه دارای گذرواژه باشد. سپس سیستم با استفاده از یک مولد اعداد تصادفی (که پس از اولین بوت حدود **۳۲۰ بیت تصادفی تولید میکند)، یک کلید بازیابی (Recovery Key) تولید میکند.
اگرچه اپل به شما این امکان را میدهد که این کلید را روی سرورهایش ذخیره کنید و برای بازیابی آن از سه سوال امنیتی استفاده میکند، اما پیشنهاد میکنم این کار را نکنید.
در عوض، این کلید را بهطور موقت روی یک برگه کاغذ یادداشت کرده و پس از آن، آن را بهشکل رمزگذاریشده (مثلاً داخل یک آرشیو رمزدار با 7-Zip) در فضایی امن مانند Tresorit Drive ذخیره کنید.
پس از اطمینان از ذخیرهسازی امن کلید، کاغذ یادداشتشده را بسوزانید یا خرد کنید.
بر اساس یافتههایی که در این مقاله آمده است:
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.cl.cam.ac.uk/~osc22/docs/cl_fv2_presentation_2012.pdf
FileVault2 از PBKDF2 همراه با SHA256 و ۴۱٬۰۰۰ تکرار برای رمز عبور استفاده میکند. این کار باعث میشود حملات جستوجوی فراگیر (bruteforce) برای یافتن رمز عبور بسیار دشوار و زمانبر شود، چرا که هر بار بررسی رمز عبور با نسخهی هششدهی ذخیرهشده در سیستم، با تأخیر انجام میگیرد.
به نظر نمیرسد که محدودیتی برای طول رمز عبور وجود داشته باشد، بنابراین از نظر تئوری میتوان رمزی تا ۱۰۰ کاراکتر یا بیشتر انتخاب کرد- تنها نکته این است که در هنگام رمزگشایی، ممکن است کمی تأخیر وجود داشته باشد.
در حال حاضر مشخص نیست (اما بسیار بعید است) که اپل در FileVault2 یک در پشتی (backdoor) قرار داده باشد.
اگر از رایانهی مک استفاده میکنید، بهشدت توصیه میکنم که رمزگذاری کامل دیسک را فعال کنید تا فایلهایتان در امان بمانند.
LUKS
LUKS که مخفف Linux Unified Key Setup است، راهکار رمزگذاری کامل دیسک در بسیاری از سیستمعاملهای مبتنی بر لینوکس/گنو به شمار میرود. بهطور پیشفرض، این سیستم از رمزگذاری AES با کلید ۲۵۶ بیتی در حالت CBC و هشینگ SHA256 استفاده میکند، اما در صورت نیاز، میتوان آن را به حالتهایی مانند XTS تغییر داد یا اندازه کلید AES را به ۱۲۸ بیت کاهش داد.
مانند FileVault2 در سیستمعامل macOS، در LUKS نیز هیچ محدودیتی برای طول رمز عبور یا عبارت عبور وجود ندارد. شخصاً این موضوع را با یک عبارت عبور ۲۱۲ کاراکتری شامل حروف، اعداد، فاصله و نمادها آزمایش کردهام.
تعداد تکرارها (iterations) در LUKS به قدرت پردازنده سیستم بستگی دارد. در رایانههای ضعیفتر، این مقدار ممکن است کمتر از حد مطلوب باشد، اما میتوان آن را با استفاده از دستور cryptsetup
مشخص کرد. برای مثال:
cryptsetup luksFormat -i 15000 <target device>
برای کاربران باتجربه توصیه میکنم این عدد را کمتر از ۲۰٬۰۰۰ قرار ندهند.
اما برای کاربران حرفهای که امنیت بالا برایشان اولویت دارد، بهتر است تعداد تکرارها را به بالای ۷۰٬۰۰۰ برسانند و از عبارت عبوری بیش از ۴۰ کاراکتر استفاده کنند.
LUKS بهصورت کاملاً متنباز عرضه شده و با توجه به استفاده گستردهاش در توزیعهای مختلف لینوکس، به عنوان یک انتخاب مطمئن و قابل اعتماد برای رمزگذاری کامل دیسک شناخته میشود.
VeraCrypt
وقتی TrueCrypt در سال ۲۰۱۴ ناگهان کنار گذاشته شد، شایعات زیادی درباره مشکلات امنیتی آن به راه افتاد. برخی گمان میکردند که توسعهدهندگان در وبسایت خود به وجود نقصهایی اشاره کردهاند. آیا واقعاً مشکلی وجود داشت؟ آیا با نامهی امنیت ملی (National Security Letter) مواجه شدند و مجبور به قراردادن یک در پشتی در نسخهی جدید شدند؟
هیچکس پاسخ قطعی نداشت و همهچیز در حد گمانهزنی باقی ماند—اما همین موضوع باعث شد بسیاری از کاربران احساس ناامنی کنند.
برای Mounir Idrassi، این ماجرا بهانهای شد تا تمام اشکالات امنیتی موجود در نسخهی 7.1a از TrueCrypt را اصلاح کرده و یک نسخهی منشعبشده (fork) با عنوان VeraCrypt منتشر کند.
این نرمافزار متنباز است و بسیاری آن را جانشین رسمی TrueCrypt میدانند. همچنین در اکتبر ۲۰۱۶ تحت یک ممیزی امنیتی کامل قرار گرفت (نتایج را در این لینک ببینید: veracrypt audit results).
من شخصاً به VeraCrypt ایمان دارم، چون علاوه بر رفع بسیاری از مشکلات امنیتی TrueCrypt، قابلیتهای امنیتی جدیدی نیز اضافه کرده که آن را به مراتب قابلاطمینانتر کردهاند.
بهعنوان مثال، الگوریتم RIPEMD-160 که تنها ۱۶۰ بیت بود حذف شده و جای خود را به SHA-512 داده - که نسخهی پیشرفتهتر SHA-256 است.
تعداد تکرارهای پیشفرض برای بررسی رمز عبور هم از ۱۰۰۰ (در TrueCrypt) به ۵۰۰٬۰۰۰ تکرار افزایش یافته، که جهشی بسیار بزرگ در امنیت محسوب میشود.
از ویژگیهای جدید میتوان به PIM (Personal Iterations Multiplier) اشاره کرد؛ یک گام سوم در فرآیند رمزگشایی که در کنار گذرواژه و فایل کلید عمل میکند. این ویژگی به شما اجازه میدهد تا تعداد تکرارهای رمزنگاری را بهصورت دستی و امن تنظیم کنید.
برای رمزگذاری سیستم، PIM در عدد ۲۰۴۸ ضرب میشود.
برای رمزگذاری ظرفها (Containers)، عدد ۱۵۰۰۰ به حاصلضرب PIM در ۱۰۰۰ افزوده میشود.
بهعنوان مثال، با PIM برابر ۹۹۹ میتوان به بیش از یک میلیون تکرار برای رمزگذاری دست یافت - امنیتی جدی برای محافظت از فایلهای شما.
VeraCrypt همچنین از نظر گرافیکی نسبت به TrueCrypt پیشرفت داشته، بهطور منظم بهروزرسانی میشود و بهبودهای کوچکی در تجربه کاربری داشته—مثلاً افزودن نوار نمایش تصادفی بودن حرکت موس هنگام تولید کلیدهای رمزنگاری.
همهی این موارد، همراه با ممیزی امنیتی، این نرمافزار را به یک انتخاب بسیار مطمئن در دنیای فناوری تبدیل کردهاند.
از اکتبر ۲۰۱۶، VeraCrypt الگوریتمهای رمزنگاری و هش جدیدی را نیز اضافه کرده است.
الگوریتمهای Camellia و Kuznyechik بهعنوان الگوریتمهای رمزگذاری، و Streebog بهعنوان الگوریتم هش افزوده شدهاند. البته این الگوریتمها برخلاف AES، فعلاً فقط بهصورت مستقل قابل استفاده هستند و نمیتوان آنها را بهصورت ترکیبی (cascade) مانند AES-Twofish-Serpent به کار برد.
امید میرود در آینده ترکیبهایی مانند Camellia + Serpent نیز اضافه شوند تا کاربران بتوانند از مزایای رمزگذاری زنجیرهای با دو الگوریتم بهرهمند شوند—بدون وابستگی به AES.
الگوریتمهای رمزگذاری VeraCrypt:
- Serpent
- AES
- TwoFish
- Camellia
- Kuznyechik
الگوریتمهای هش در VeraCrypt:
- SHA-256
- SHA-512
- Whirlpool
- RIPMD-160
- Streebog
دستگاههای iOS
تمام دستگاههای اپل که نسخهای بالاتر از iOS 8.0 را اجرا میکنند، بهطور پیشفرض با رمزگذاری کامل دستگاه (Full-Device Encryption) محافظت میشوند؛ این قابلیت در تنظیمات رمز عبور با عنوان Data Protection شناخته میشود.
با این حال، یک جهش بزرگ امنیتی از مدل iPhone 5C به iPhone 5S وجود دارد - از این نسخه به بعد، تمام دستگاههایی که دارای Touch ID هستند، از امنیت بسیار بالاتری برخوردارند.
برای شروع، بد نیست نگاهی به ماجرای اخیر میان اپل و FBI بیندازید (که در ادامه به منابع آن اشاره شده یا بهراحتی میتوان آنلاین جستوجو کرد). اگر دستگاه شما یکی از مدلهای بالاتر از iPhone 5S باشد (مثل iPhone 6، 6S، 7 و بالاتر)، شما از قویترین رمزگذاری ارائهشده توسط اپل بهرهمند هستید.
آیفون شما دارای یک تراشه سختافزاری به نام Secure Enclave است که وظیفهی مدیریت رمزگذاری و کنترل تأخیر بین تلاشهای وارد کردن رمز عبور را برعهده دارد.
تمام نسخههای iOS بالاتر از ۸ از رمزگذاری کامل دستگاه با الگوریتم AES 256 بیتی استفاده میکنند که بهشکلی منحصربهفرد اجرا میشود - یعنی تمام اطلاعاتی که در پشت قفل صفحهنمایش قرار دارند، محافظت میشوند.
اطلاعات دستگاههای ذکرشده با استفاده از یک کلید موقت (ephemeral key) که در هنگام بوت تولید میشود و با شناسهی منحصربهفرد دستگاه (UUID) ترکیب شده، رمزگذاری میشوند. گذرواژهی شما از این کلید محافظت میکند.
در زمان فعالسازی رمز عبور یا Touch ID، اپل بهطور پیشفرض یک کد عددی ۴ رقمی پیشنهاد میدهد، اما کاربران این امکان را دارند که رمزهای عبور طولانیتر و ترکیبی از حروف و اعداد را برای امنیت بیشتر انتخاب کنند - که اکیداً توصیه میشود.
از نظر فنی، دستگاه شما از الگوریتم PBKDF2 با تعداد تکرار بالا بهره میبرد، که باعث ایجاد تأخیری حدود ۸۰ میلیثانیه بین هر بار وارد کردن گذرواژه میشود. این روش موسوم به Key Stretching، همراه با چند ویژگی امنیتی دیگر، عملاً حملات brute force را در برابر رمزهایی با بیش از ۱۱ کاراکتر غیرممکن میکند.
دیگر ویژگیهای امنیتی شامل موارد زیر هستند:
- قفل شدن دستگاه پس از ۵ تلاش ناموفق برای ورود رمز عبور
- افزایش تأخیر بین هر تلاش ناموفق پس از آن
- قابلیت فعالسازی پاکسازی خودکار دستگاه پس از ۱۰ تلاش ناموفق
- الزام وارد کردن رمز عبور (به جای Touch ID) در صورت خاموش بودن دستگاه یا استفاده نکردن از آن به مدت بیش از ۴۸ ساعت
در کنار رمزگذاری سطح دستگاه که بسیار ایمن ارزیابی میشود (هرچند نه صددرصد)، اپل در نسخهی iOS 9.3 رمزگذاری صحیحی را برای پشتیبانگیریهای iCloud معرفی کرد—که اکنون با استفاده از رمز عبور دستگاه رمزگذاری میشوند.
پیش از این، اپل قادر بود نسخههای پشتیبان iCloud را در صورت ارائه حکم قضایی در اختیار مقامات قرار دهد، و در نتیجه کاربران برای حفظ کامل حریم خصوصی باید بهطور دستی پشتیبانگیری iCloud را غیرفعال میکردند. اما حالا تمام اطلاعات شما بهصورت ایمن در iCloud ذخیره میشود و همچنان امکان رمزگذاری پشتیبانها در رایانه نیز وجود دارد.
با این حال، توصیه میشود برنامههایی که اطلاعات بسیار حساس را ذخیره میکنند به iCloud پشتیبانگیری نشوند.
اگر در رایانهتان از رمزگذاری کامل دیسک استفاده میکنید، پشتیبانگیریها به iTunes با دو لایه رمزگذاری محافظت میشوند، اما در iCloud فقط یک خط دفاعی وجود دارد.