وراکریپت

وراکریپت   یک ابزار رایگان و منبع باز برای رمزنگاری دیسک یا به اصطلاح رمزگذاری در حین پرواز (OTFE) است. این نرم‌افزار می‌تواند یک دیسک رمزگذاری شده مجازی ایجاد کند که درست مانند یک دیسک معمولی اما در یک فایل کار می‌کند. همچنین می‌تواند یک پارتیشن یا (در ویندوز) کل دستگاه ذخیره‌سازی را با احراز هویت پیش از راه‌اندازی رمزگذاری کند.

وراکریپت انشعابی از پروژه متوقف شده تروکریپت است. در ابتدا در ۲۲ ژوئن ۲۰۱۳ منتشر شد. بسیاری از پیشرفت‌های امنیتی پیاده‌سازی شده‌اند و نگرانی‌ها در ممیزی کد تروکریپت برطرف شده‌است. وراکریپت شامل بهینه‌سازی‌هایی برای توابع هش رمزنگاری و رمزنگاری‌های اصلی است که عملکرد را در CPUهای مدرن افزایش می‌دهد.

طرح رمزگذاری 
وراکریپت از AES، Serpent، توفیش، Camellia و Kuznyechik به عنوان رمز استفاده می‌کند. نسخه ۱٫۱۹ استفاده از رمز ماگما را در پاسخ به ممیزی امنیتی متوقف کرد. برای امنیت بیشتر، ده ترکیب مختلف از الگوریتم‌های آبشاری موجود است:
 AES–توفیش
 AES–توفیش–Serpent
 کاملیا-کوزنیچیک
 کاملیا-Serpent
 Kuznyechik–AES
 Kuznyechik–Serpent–Camellia
 Kuznyechik – توفیش
 Serpent – AES
 Serpent–توفیش–AES
 توفیش–Serpent

توابع هش رمزنگاری موجود برای استفاده در وراکریپت عبارتند از RIPEMD-160، SHA-256، SHA-512، Streebog و Whirlpool.

حالت عملیات رمز بلوکی وراکریپت XTS است. این کلید هدر و کلید هدر ثانویه (حالت XTS) را با استفاده از PBKDF2 با نمک ۵۱۲ بیتی تولید می‌کند. به‌طور پیش‌فرض، بسته به تابع هش اصلی مورد استفاده، بین ۲۰۰۰۰۰ تا ۶۵۵۳۳۱ تکرار انجام می‌شوند. کاربر می‌تواند آن را سفارشی کند تا از ۲۰۴۸ شروع شود.

بهبودهای امنیتی 
 تیم توسعه وراکریپت فرمت ذخیره‌سازی تروکریپت را در برابر حمله آژانس امنیت ملی (NSA) بسیار آسیب‌پذیر می‌دانست، بنابراین فرمت جدیدی ایجاد کرد که با تروکریپت ناسازگار است. وراکریپت همچنان قادر به باز کردن و تبدیل حجم‌ها در قالب تروکریپت است.
 یک ممیزی امنیتی مستقل از تروکریپت که در ۲۹ سپتامبر ۲۰۱۵ منتشر شد، نشان داد تروکریپت شامل دو آسیب‌پذیری در درایور نصب ویندوز است که به مهاجم اجازه اجرای کد دلخواه و افزایش امتیاز از طریق ربودن DLL را می‌دهد. این مشکل در وراکریپت در ژانویه ۲۰۱۶ برطرف شد
 در حالی که تروکریپت از ۱۰۰۰ تکرار از الگوریتم PBKDF2 - RIPEMD 160 برای پارتیشن‌های سیستم استفاده می‌کند، وراکریپت به‌طور پیش‌فرض از ۲۰۰۰۰۰ یا ۳۲۷۶۶۱ تکرار استفاده می‌کند (که بسته به الگوریتم استفاده شده توسط کاربر قابل تنظیم است تا کمتر از ۲۰۴۸ باشد). برای کانتینرهای استاندارد و سایر پارتیشن‌ها، وراکریپت از ۶۵۵۳۳۱ تکرار RIPEMD160 و ۵۰۰۰۰۰ تکرار SHA-2 و Whirlpool به‌طور پیش‌فرض استفاده می‌کند (که توسط کاربر تا ۱۶۰۰۰ قابل تنظیم است). در حالی که این تنظیمات پیش‌فرض وراکریپت را در باز کردن پارتیشن‌های رمزگذاری شده کندتر می‌کند، حملات حدس زدن رمز عبور را نیز کندتر می‌کند.
 علاوه بر این، از نسخه ۱٫۱۲، ویژگی جدیدی به نام "Personal Iterations Multiplier" (PIM) پارامتری را ارائه می‌دهد که مقدار آن برای کنترل تعداد تکرارهای استفاده شده توسط تابع مشتق کلید هدر استفاده می‌شود، در نتیجه حملات brute-force را به‌طور بالقوه دشوارتر می‌کند. وراکریپت خارج از جعبه از یک مقدار PIM معقول برای بهبود امنیت استفاده می‌کند، اما کاربران می‌توانند مقدار بالاتری را برای افزایش امنیت ارائه دهند. نقطه ضعف اصلی این ویژگی این است که روند باز کردن بایگانی‌های رمزگذاری شده را حتی کندتر می‌کند.
 یک آسیب‌پذیری در بوت لودر در ویندوز برطرف شد و بهینه‌سازی‌های مختلفی نیز انجام شد. توسعه دهندگان پشتیبانی از SHA-256 را به گزینه رمزگذاری بوت سیستم اضافه کردند و همچنین یک مشکل امنیتی ShellExecute را برطرف کردند. کاربران لینوکس و macOS از پشتیبانی از دیسک‌های سخت با اندازه‌های بخش بزرگتر از ۵۱۲ بهره می‌برند. لینوکس همچنین از قالب بندی NTFS حجم‌ها پشتیبانی می‌کند.
 پسوردهای یونیکد از نسخه ۱٫۱۷ در همه سیستم عامل‌ها پشتیبانی می‌شوند (به جز رمزگذاری سیستم در ویندوز).
 وراکریپت قابلیت بوت کردن پارتیشن‌های سیستم را با استفاده از UEFI در نسخه 1.18a اضافه کرد.
 گزینه فعال/غیرفعال کردن پشتیبانی از فرمان TRIM برای درایوهای سیستمی و غیر سیستمی در نسخه ۱٫۲۲ اضافه شد.
 پاک کردن کلیدهای رمزگذاری سیستم از RAM در هنگام خاموش کردن / راه اندازی مجدد به کاهش برخی از حملات بوت سرد، اضافه شده در نسخه ۱٫۲۴ کمک می‌کند.
 رمزگذاری رم برای کلیدها و رمزهای عبور در سیستم‌های 64 بیتی در نسخه ۱٫۲۴ اضافه شد.

حسابرسی وراکریپت 
QuarksLab ممیزی نسخه ۱٫۱۸ را از طرف صندوق بهبود فناوری منبع باز (OSTIF) انجام داد که ۳۲ روز انسان طول کشید. حسابرس نتایج را در ۱۷ اکتبر ۲۰۱۶ منتشر کرد در همان روز، IDRIX نسخه ۱٫۱۹ را منتشر کرد که آسیب‌پذیری‌های اصلی شناسایی شده در ممیزی را برطرف کرد.

موسسه فراونهوفر برای فناوری اطلاعات امن (SIT) ممیزی دیگری را در سال ۲۰۲۰ به دنبال درخواست اداره فدرال امنیت اطلاعات آلمان (BSI) انجام داد و نتایج را در اکتبر ۲۰۲۰ منتشر کرد

اقدامات احتیاطی امنیتی 
انواع مختلفی از حملات وجود دارد که تمام رمزگذاری دیسک مبتنی بر نرم‌افزار در برابر آنها آسیب‌پذیر است. همانند تروکریپت، اسناد وراکریپت به کاربران دستور می‌دهد تا اقدامات احتیاطی امنیتی مختلفی را برای کاهش این حملات دنبال کنند، که چند مورد از آنها در زیر به تفصیل آمده‌است.

کلیدهای رمزگذاری ذخیره شده در حافظه 

وراکریپت کلیدهای خود را در RAM ذخیره می‌کند. در برخی از رایانه‌های شخصی، DRAM محتویات خود را برای چند ثانیه پس از قطع برق (یا اگر دما کاهش یابد، مدت بیشتری حفظ می‌کند). حتی اگر مقداری تخریب در محتویات حافظه وجود داشته باشد، الگوریتم‌های مختلف ممکن است بتوانند کلیدها را بازیابی کنند. این روش که به عنوان حمله راه‌اندازی سرد شناخته می‌شود (که به ویژه برای رایانه نوت بوکی که در حالت روشن، معلق یا قفل صفحه به دست می‌آید اعمال می‌شود)، با موفقیت برای حمله به یک سیستم فایل محافظت شده توسط نسخه‌های تروکریپت نسخه 4.3a و 5.0a در سال 2008. با نسخه ۱٫۲۴، وراکریپت گزینه رمزگذاری کلیدهای RAM و رمزهای عبور در نسخه‌های x64 ویندوز، با سربار CPU کمتر از ۱۰٪ و گزینه پاک کردن تمام کلیدهای رمزگذاری از حافظه زمانی که دستگاه جدیدی متصل است، اضافه کرد.

سخت‌افزار دستکاری شده 

اسناد وراکریپت بیان می‌کند که وراکریپت نمی‌تواند داده‌ها را روی رایانه ایمن کند، اگر مهاجم به‌طور فیزیکی به آن دسترسی داشته باشد و وراکریپت مجدداً توسط کاربر در رایانه در معرض خطر استفاده می‌شود. این روی مورد معمول رایانه دزدیده، گم شده یا مصادره شده تأثیری ندارد. مهاجمی که به کامپیوتر دسترسی فیزیکی دارد، می‌تواند، برای مثال، یک کیلاگر سخت‌افزار یا نرم‌افزار، یک دستگاه گذرگاه مستر که حافظه را ضبط می‌کند، نصب کند یا هر سخت‌افزار یا نرم‌افزار مخرب دیگری را نصب کند، که به مهاجم اجازه می‌دهد تا داده‌های رمزگذاری نشده (از جمله کلیدهای رمزگذاری و رمزهای عبور) را ضبط کند) یا برای رمزگشایی داده‌های رمزگذاری شده با استفاده از رمزهای عبور ضبط شده یا کلیدهای رمزگذاری؛ بنابراین امنیت فیزیکی مقدمه اساسی یک سیستم امن است.

برخی از انواع بدافزارها برای ثبت ضربه‌های کلید طراحی شده‌اند، از جمله رمزهای عبور تایپ‌شده، که ممکن است سپس از طریق اینترنت برای مهاجم ارسال شوند یا در یک درایو محلی رمزگذاری‌نشده ذخیره شوند که مهاجم ممکن است بعداً، زمانی که دسترسی فیزیکی به آن پیدا کرد، بتواند آن را بخواند. کامپیوتر رایانه.

ماژول پلتفرم مورد اعتماد 
وراکریپت از ماژول پلتفرم قابل اعتماد (TPM) استفاده نمی‌کند. سؤالات متداول وراکریپت نظر منفی توسعه دهندگان اصلی تروکریپت را کلمه به کلمه تکرار می‌کند. توسعه دهندگان تروکریپت بر این عقیده بودند که هدف انحصاری TPM «محافظت در برابر حملاتی است که مهاجم را ملزم به داشتن امتیازات سرپرست یا دسترسی فیزیکی به رایانه می‌کند». مهاجمی که دسترسی فیزیکی یا مدیریتی به رایانه دارد، می‌تواند TPM را دور بزند، به عنوان مثال، با نصب یک Logger ضربه‌ای کلید سخت‌افزاری، با تنظیم مجدد TPM، یا با گرفتن محتویات حافظه و بازیابی کلیدهای صادرشده توسط TPM. متن محکوم کننده تا آنجا پیش می‌رود که ادعا می‌کند TPM کاملاً اضافی است.

درست است که پس از دستیابی به دسترسی فیزیکی نامحدود یا امتیازات اداری، دور زدن سایر اقدامات امنیتی موجود فقط مسئله زمان است. با این حال، متوقف کردن یک مهاجم با داشتن امتیازات اداری هرگز یکی از اهداف TPM نبوده‌است. برای جزئیات (به  مراجعه کنید. با این حال، TPM ممکن است میزان موفقیت حمله راه‌اندازی سرد را که در بالا توضیح داده شد کاهش دهد. TPM همچنین به عنوان مستعد حملات SPI شناخته شده‌است.

انکار قابل قبول 
مانند پیشگامش تروکریپت، وراکریپت از انکار قابل قبول حمایت می‌کند. زیرا اجازه می‌دهد یک «مجموعه پنهان» در یک حجم دیگر ایجاد شود. نسخه‌های ویندوز وراکریپت می‌توانند یک سیستم عامل رمزگذاری شده پنهان که ممکن است وجود آن انکار شود ایجاد و اجرا کنند. اسناد وراکریپت راه‌هایی را که ویژگی‌های انکار حجم پنهان ممکن است به خطر افتاده باشد (به عنوان مثال، توسط نرم‌افزار شخص ثالث که ممکن است اطلاعات را از طریق فایل‌های موقت یا از طریق ریز عکس‌ها به خطر بیندازد) و راه‌های احتمالی برای جلوگیری از این موارد را فهرست می‌کند.

کارایی 
وراکریپت از موازی سازی پشتیبانی می‌کند رمزگذاری برای سیستم‌های چند هسته ای در مایکروسافت ویندوز، عملیات خواندن و نوشتن خط لوله (شکلی از پردازش ناهمزمان) برای کاهش عملکرد رمزگذاری و رمزگشایی. در پردازنده‌هایی که از مجموعه دستورالعمل‌های AES-NI پشتیبانی می‌کنند، وراکریپت از AES با شتاب سخت‌افزاری برای بهبود عملکرد بیشتر پشتیبانی می‌کند. در CPUهای ۶۴ بیتی وراکریپت از پیاده‌سازی اسمبلی بهینه Twofish, Serpent و Camellia استفاده می‌کند.

مدل مجوز و منبع 
وراکریپت از پروژه تروکریپت که از آن زمان متوقف شده بود در سال ۲۰۱۳ جدا شد. و در ابتدا حاوی کدهای تروکریپت بود که تحت مجوز تروکریپت ۳٫۰ منتشر شد. در سال‌های پس از آن، تعداد بیشتری از کدهای وراکریپت تحت مجوز آپاچی ۲٫۰ بازنویسی و منتشر شده‌اند.

مجوز تروکریپت به‌طور کلی به عنوان منبع در دسترس در نظر گرفته می‌شود اما رایگان و منبع باز نیست، همچنین مجوز آپاچی به‌طور جهانی رایگان و منبع باز در نظر گرفته می‌شود و مجوز مختلط وراکریپت به‌طور گسترده اما به‌طور کلی به عنوان منبع باز و رایگان در نظر گرفته نمی‌شود.

در ۲۸ مه ۲۰۱۴ تروکریپت تحت شرایط غیرعادی رها شد، و هیچ راهی برای تماس با توسعه دهندگان سابق وجود ندارد.

وراکریپت به عنوان رایگان و منبع باز در نظر گرفته می‌شود توسط:
 دنیای کامپیوتر
 Techspot
 صندوق بهبود فناوری منبع باز داک‌داک‌گو
 سورس‌فورج
 صندوق فناوری باز
 Fosshub
 opensource.com
 فسمینت

وراکریپت در نظر گرفته می‌شود که رایگان و منبع باز نیست توسط:
 دبیان
 برخی از اعضای پیشگامان متن‌باز از جمله مدیر، نسبت به نسخه قدیمی مجوز تروکریپت ابراز نگرانی کردند، اما خود OSI تصمیمی در مورد تروکریپت یا وراکریپت منتشر نکرده‌است.
 بنیاد نرم‌افزار آزاد مجوز تروکریپت را غیر رایگان تعیین کرده‌است. FSF تصمیمی در مورد مجوز وراکریپت منتشر نکرده‌است.

بیشتر این موارد به این دلیل است که وراکریپت و تروکریپت مجوزهای پشتیبانی یا تأیید شده ندارند. به عنوان مثال، FSF تمام مجوزهایی را که تحت سری مجوزهای گنو نیستند و با مجوز گنو تداخل دارند، غیر رایگان می‌داند. دبیان تمام نرم‌افزارهایی را که دستورالعمل‌های DFSG خود را رعایت نمی‌کنند در نظر می‌گیرد.

جستارهای وابسته 
 نرم‌افزار رمزگذاری دیسک
 مقایسه نرم‌افزارهای رمزگذاری دیسک

منابع

پیوند به بیرون 

 
 VeraCrypt 1.18 Security Assessment

رمزنگاری دیسک
نرم‌افزار آزاد و متن‌باز
نرم‌افزارهای ۲۰۱۴ (میلادی)
نرم‌افزارهای امنیتی لینوکس
نرم‌افزارهای چندسکویی
نرم‌افزارهای رمزنگاری
نرم‌افزارهایی که از wxWidgets استفاده می‌کنند