رمزگذاری لینوکس استفاده از فایل سیستم رمزگذاری شده مطابق با استانداردهای LUKS. رمزگذاری درایو لینوکس

دیسک (a la TrueCrypt). من می دانم که کارهایی برای افزودن پشتیبانی رمزگذاری به GRUB2 انجام شده است، اما هنوز آماده نیست. هیچ گزینه دیگری؟

(توجه داشته باشید که منظور من در اینجا رمزگذاری کامل دیسک، از جمله /boot است)

اکثر پاسخ‌ها تنظیماتی را توصیف می‌کنند که در آن /boot رمزگذاری نشده است، و برخی از آنها سعی می‌کنند توضیح دهند که چرا یک /boot بدون رمز باید خوب باشد.

بدون وارد شدن به بحث در مورد اینکه چرا واقعاً به /boot برای رمزگذاری نیاز دارم، در اینجا مقاله ای وجود دارد که دقیقاً آنچه را که نیاز دارم، بر اساس نسخه اصلاح شده GRUB2 توضیح می دهد:

  • http://xercestech.com/full-system-encryption-for-linux.geek

مشکل این است که به نظر نمی رسد این تغییرات در پایگاه کد GRUB2 فعلی پشتیبانی شود (یا شاید من چیزی را گم کرده ام).

8 راه حل برای جمع آوری وب فرم برای «بوت لودرهای لینوکس که از رمزگذاری کامل دیسک پشتیبانی می کنند؟»

من فکر می کنم که نسخه فعلی GRUB2 به تنهایی از بارگیری و رمزگشایی پارتیشن های LUKS پشتیبانی نمی کند (شامل تعدادی رمز است، اما فکر می کنم آنها فقط برای پشتیبانی از رمزهای عبور استفاده می شوند). من نمی توانم شاخه توسعه آزمایشی را بررسی کنم، اما نکاتی در صفحه GRUB وجود دارد که نشان می دهد برخی از کارهایی که می خواهید انجام دهید برای اجرا برنامه ریزی شده است.

به روز رسانی (2015): آخرین نسخه GRUB2 (2.00) از قبل حاوی کد دسترسی به پارتیشن های رمزگذاری شده LUKS و GELI است. (لینک xercestch.com که OP ارائه کرده است، اولین رفع این مشکل را ذکر می کند، اما اکنون در آخرین نسخه گنجانده شده است).

با این حال، اگر به دلایل امنیتی می‌خواهید کل درایو را رمزگذاری کنید، لطفاً توجه داشته باشید که یک بوت‌لودر رمزگذاری نشده (مانند TrueCrypt، BitLocker یا GRUB اصلاح‌شده) محافظت بیشتری نسبت به یک پارتیشن رمزگذاری نشده /boot ارائه نمی‌کند (همانطور که توسط SP در نظر در بالا). هر کسی که به رایانه دسترسی فیزیکی دارد می تواند به راحتی آن را با یک نسخه سفارشی جایگزین کند. حتی در مقاله xercestech.com که پیوند دادید به آن اشاره شده است:

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

لطفا توجه داشته باشید که همه محصولات نرم افزاریرمزگذاری کامل دیسک این ضعف را دارد، چه از بوت لودر رمزگذاری نشده استفاده کنند و چه از پارتیشن بوت/پیش بوت رمزگذاری نشده استفاده کنند. حتی محصولاتی که از تراشه های TPM (Trusted Platform Module) پشتیبانی می کنند، مانند BitLocker، می توانند بدون تغییر سخت افزار مستقر شوند.

بهترین رویکرد این خواهد بود:

  1. رمزگشایی در سطح BIOS (در مادربردیا آداپتور درایو یا سخت افزار خارجی [کارت هوشمند]، با یا بدون تراشه TPM)، یا
  2. کد مجوز PBA (مجوز پیش راه‌اندازی) (پارتیشن boot/در این مورد) را روی یک دستگاه قابل جابجایی (به عنوان مثال، یک کارت هوشمند یا درایو USB) حمل کنید.

برای انجام این کار به روش دوم، می‌توانید پروژه رمزگذاری کامل دیسک لینوکس (LFDE) را در آدرس زیر بررسی کنید: http://lfde.org/ که یک اسکریپت پس از نصب برای انتقال پارتیشن /boot به یک درایو USB خارجی با رمزگذاری ارائه می‌کند. کلید با GPG و ذخیره آن در USB نیز. به این ترتیب، بخش ضعیف مسیر بوت (پارتیشن /boot رمزگذاری نشده) همیشه با شماست (شما تنها کسی خواهید بود که به کد رمزگشایی و کلید دسترسی فیزیکی دارید). ( توجه داشته باشید: این سایت از بین رفته است و وبلاگ نویسنده نیز ناپدید شده است، با این حال می توانید فایل های قدیمی را در https://github.com/mv-code/lfde پیدا کنید، فقط توجه داشته باشید که آخرین توسعه 6 سال پیش انجام شده است. به عنوان یک جایگزین ساده تر، می توانید هنگام نصب سیستم عامل، یک پارتیشن بوت رمزگذاری نشده را روی یک درایو USB نصب کنید.

با احترام M.V.

اولین RAMdisk و پوشه /boot خود را رمزگذاری نشده بگذارید.

این یک هسته "حداقل" با درایورها و پشتیبانی را برای تغییر به یک سیستم فایل ریشه "واقعی" که رمزگذاری شده است فراخوانی می کند.

قبل از اینکه بگویید "این یک هک است"، به یاد داشته باشید - اکثر (اگر نه همه) توزیع های لینوکس امروز به طور پیش فرض بوت می شوند. این به صراحت به سیستم شما اجازه می دهد تا FS ریشه را با استفاده از ماژول هایی که باید از آنها بارگیری شوند، بارگیری و بارگذاری کند. سیستم فایل. (نوعی مشکل مرغ و تخم مرغ). به عنوان مثال، اگر سیستم فایل ریشه شما روی یک حجم RAID سخت افزاری بود و قبل از اینکه بتوانید FS root را نصب کنید، باید درایور آن را بارگیری کنید.

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

من معتقدم که بیشتر چیزی که نیاز دارید، دستورالعملی در مورد نحوه نصب یک سیستم عامل با HD رمزگذاری شده در وهله اول است.

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

نه، من اینطور فکر نمی کنم.

آیا واقعاً نیاز به رمزگذاری/آپلود دارید؟ من شک دارم که نه. بقیه سیستم فایل را می توان توسط نرم افزار لینوکس معمولی رمزگذاری کرد که در initramfs در /boot قرار دارد و مطابق آن از کاربر درخواست می کند.

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

نزدیک ترین راه حلی که می توانم به آن فکر کنم استفاده از آن است HDD، که امنیت رمز عبور و رمزگذاری را پیاده سازی می کند. برخی از لپ تاپ های Thinkpad از این راه حل های سخت افزاری استفاده می کنند.

پاسخ در مقاله است. "این اکنون با برنامه‌های افزودنی برای بوت‌لودر نسل بعدی GRUB2 امکان پذیر است که برای پشتیبانی بیشتر از فقط وصله شده است" و "ما می خواهیم بعداً یک تصویر جدید با luks grub2 نصب کنیم" و "اکنون منبع GRUB2 را با LUKS کامپایل می کنیم." حمایت کردن. به نظر می رسد یک اصلاح یا افزونه وجود دارد که باید آن را با GRUB2 یا منبع فورک شده GRUB2 دریافت و فعال کنید.

Grub2 نسخه 2.02~beta3 می تواند کارهای زیادی انجام دهد که Grub2 نسخه 2.02~beta2 نمی تواند انجام دهد، تأیید شده توسط من:

  1. بوت شدن با استفاده از دیسک Super Grub 2
  2. برای رفتن به خط فرمان "c" را تایپ کنید
  3. دستورات را وارد کنید تا پارتیشن رمزگذاری شده مورد نظر من را سوار کنید
    • insmod lux
    • cryptomount (hd0، #) // که در آن # نشان دهنده پارتیشن رمزگذاری شده است
  4. یک کلمه عبور وارد کنید و چند دستور را وارد کنید
    • multiboot (crypto0) /grub/i386-pc/core.img
    • کفش

با این کار Grub2 دیگری که داخل پارتیشن رمزگذاری شده است بوت می شود، حمله دیوانه شیطانی اینجا جایی ندارد... من از یک سی دی (فقط خواندنی) بوت می کنم و سپس پارتیشن رمزگذاری شده را سوار می کنم (نه عبارت عبور، هر چیزی!)، سپس از داخل پارتیشن رمزگذاری شده بوت می شود و Grub2 را با منوی خودش بوت می کند و غیره.

اخطار: Grub2 نسخه 2.02~beta2 نمی تواند همین کار را انجام دهد زیرا دارای برخی اشکالات (که به نظر می رسد در Grub2 نسخه 2.02~beta3 برطرف شده است) مربوط به دستور cryptomount...

اشکالات بتا2 که من در مورد آنها صحبت می کنم عبارتند از:

  1. در واقع پارتیشن رمزگذاری شده را نصب نمی کند، بنابراین به شما اجازه دسترسی به (crypto0)/* را نمی دهد
  2. اگر بیش از یک پارتیشن رمزگذاری شده وجود داشته باشد، استفاده از cryptomount -a تنها به یک عبارت عبور نیاز دارد.
  3. پس از یک بار راه اندازی cryptomount، دوباره راه اندازی می شود، هیچ کاری انجام نمی دهد

در بتا 3:

  1. در واقع پارتیشن رمزگذاری شده را مانت می کند و به شما امکان می دهد در صورت نصب همزمان بیش از یک فایل از طریق (crypto0)/* یا (crypto1)/* و غیره به فایل ها دسترسی داشته باشید.
  2. هر عبارت عبور را می خواهد (یک عبارت رمزگذاری شده در هر بخش)
  3. این به شما امکان می دهد هر چند بار که دوست دارید آن را اجرا کنید، می توانید یکی، سپس دیگری و غیره را نصب کنید.

نکته جانبی: من متوجه نشده ام که چگونه آنها را جدا کنم به جز راه اندازی مجدد یا بارگیری یکی دیگر یا یکی دیگر بوت لودر grub2/دیگر و غیره

امیدوارم این به روشن شدن همه چیز کمک کند، و امیدوارم نسخه 2.02~beta3 Grub2 در LiveCD ادغام شود تا بتوانیم بدون نیاز به کامپایل آن را خودمان نصب کنیم.

PD: با درایو Super Grub 2، راهی برای نصب Grub2 نسخه 2.02~beta3 روی پارتیشن MBR/boot و غیره نمی بینم.


نویسنده: نیتیش تیواری
تاریخ انتشار: 14 بهمن 1393
ترجمه: N. Romodanov
تاریخ انتقال: مارس 2015

TrueCrypt دیگر پشتیبانی نمی شود، اما dm-crypt و LUKS یک گزینه منبع باز عالی برای رمزگذاری و استفاده از داده های رمزگذاری شده هستند.

امنیت داده ها به یکی از بزرگترین نگرانی های کاربران اینترنت تبدیل شده است. اخبار سرقت اطلاعات از وب سایت ها بسیار رایج شده است، اما محافظت از داده های شما تنها مسئولیت وب سایت ها نیست، ما به عنوان کاربران نهایی می توانیم برای امنیت خود انجام دهیم. به عنوان مثال، فقط چند مثال - از رمزهای عبور قوی استفاده کنید، رمزگذاری کنید دیسک های سختدر رایانه های ما قرار دارد و استفاده می کنیم اتصالات امن. به ویژه، رمزگذاری هارد دیسکاست به نحوی خوبامنیت - نه تنها شما را در برابر هر گونه تروجانی که سعی در سرقت داده های شما از طریق شبکه دارند، بلکه از حملات فیزیکی نیز محافظت می کند.

در ماه مه سال جاری، توسعه برنامه TrueCrypt، یک ابزار منبع باز شناخته شده برای رمزگذاری دیسک متوقف شد. همانطور که بسیاری از شما می دانید، این یکی از ابزارهای بسیار قابل اعتماد برای رمزگذاری درایوها بود. ناپدید شدن ابزاری با این کالیبر ناراحت کننده است، اما عظمت دنیای متن باز به اندازه ای است که چندین ابزار منبع باز دیگر وجود دارد که می تواند به شما در دستیابی به امنیت با رمزگذاری دیسک کمک کند، که تنظیمات پیکربندی زیادی نیز دارند. ما به دو مورد از آنها - dm-crypt و LUKS - به عنوان جایگزینی برای TrueCrypt نگاه خواهیم کرد. پلتفرم های لینوکس. بیایید با نگاهی گذرا به dm-crypt و سپس LUKS شروع کنیم.

این اطلاعات پایه ای در مورد دستگاهی است که از LUKS استفاده می کند، که نشان می دهد از چه رمزگذاری استفاده می شود، حالت رمزگذاری، الگوریتم هش و سایر داده های رمزنگاری.

منابع

مرحله 01:با در نظر گرفتن Dm-crypt

نام برنامه dm-crypt مخفف دستگاه mapper-crypt (رمزگذاری هنگام نقشه برداری یک دستگاه) است. همانطور که از نام آن پیداست، مبتنی بر نقشه برداری دستگاه است، یک چارچوب هسته لینوکس که برای نگاشت دستگاه های بلوک به دستگاه های بلوک مجازی سطح بالاتر طراحی شده است. هنگام نقشه برداری از دستگاه ها، می توانید از چندین ویژگی هسته استفاده کنید، مانند dm-cache (ایجاد حجم های ترکیبی)، dm-verity (طراحی شده برای بررسی یکپارچگی بلوک ها، بخشی از سیستم عامل کروم است) و همچنین Docker بسیار محبوب. برای اهداف رمزنگاری، dm-crypt از چارچوب Linux Kernel Crypto API استفاده می کند.

بنابراین، به طور خلاصه، برنامه dm-crypt یک زیر سیستم رمزگذاری در سطح هسته است که رمزگذاری دیسک شفاف را ارائه می دهد: این بدان معنی است که فایل ها بلافاصله پس از نصب دیسک در دسترس هستند - هیچ تاخیر قابل مشاهده ای برای کاربر نهایی وجود ندارد. برای رمزگذاری با استفاده از dm-crypt می‌توانید به سادگی یکی از رمزهای متقارن، حالت رمز، کلید (هر اندازه مجاز)، حالت نسل چهارم را مشخص کنید و سپس یک دستگاه بلوک جدید در /dev ایجاد کنید. اکنون هنگام نوشتن در این دستگاه، رمزگذاری رخ می دهد و در هنگام خواندن، رمزگشایی می شود. می‌توانید طبق معمول یک فایل سیستم را روی این دستگاه نصب کنید، یا می‌توانید از دستگاه dm-crypt برای ایجاد ساختارهای دیگری مانند حجم RAID یا LVM استفاده کنید. جدول نگاشت dm-crypt به صورت زیر تنظیم شده است:

در اینجا، مقدار start-sector معمولاً 0 است، مقدار اندازه، اندازه دستگاه در بخش‌ها است، و نام هدف، نامی است که می‌خواهید به دستگاه رمزگذاری شده بدهید. جدول نقشه برداری هدف شامل بخش های زیر است:

[<#opt_params> ]

مرحله 02:با در نظر گرفتن LUKS

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

به همین دلایل است که متدولوژی LUKS (Linux Unified Key Setup) متولد شد. LUKS استاندارد رمزگذاری لینوکس است. دیسکهای سختو استانداردسازی امکان همکاری بین توزیع های مختلف را فراهم می کند. چندین کلید و عبارت عبور نیز پشتیبانی می شوند. به عنوان بخشی از این استانداردسازی، یک هدر LUKS به داده های رمزگذاری شده اضافه می شود و این هدر حاوی تمام اطلاعات لازم برای پیکربندی است. هنگامی که چنین هدر با داده وجود دارد، کاربران به راحتی می توانند به هر توزیع دیگری سوئیچ کنند. پروژه dm-crypt در حال حاضر استفاده از LUKS را به عنوان روش ترجیحی برای راه اندازی رمزگذاری دیسک توصیه می کند. بیایید نحوه نصب ابزار cryptsetup و نحوه استفاده از آن برای ایجاد حجم های مبتنی بر LUKS را بررسی کنیم.

مرحله 03:نصب و راه اندازی

عملکرد سطح هسته که در dm-crypt استفاده می شود در حال حاضر در همه وجود دارد توزیع های لینوکس; ما فقط به یک رابط برای آنها نیاز داریم. ما از ابزار cryptsetup استفاده خواهیم کرد، که به شما امکان می دهد با استفاده از dm-crypt، استاندارد LUKS و برنامه خوب قدیمی TrueCrypt حجم ایجاد کنید. برای نصب cryptsetup روی توزیع‌های Debian/Ubuntu، می‌توانید از دستورات زیر استفاده کنید:

$ sudo apt-get update $ sudo apt-get install cryptsetup

دستور اول فایل های فهرست موشک را با محتویات مخازن آنها همگام می کند: اطلاعاتی در مورد آخرین نسخه های تمام بسته های موجود دریافت می کند. دستور دوم بسته cryptsetup را دانلود و بر روی رایانه شما نصب می کند. اگر از توزیع RHEL/Fedora/CentOS استفاده می کنید، می توانید از دستور yum برای نصب ابزار cryptsetup استفاده کنید.

$ yum نصب cryptsetup-luks

مرحله 04:ایجاد یک فایل هدف

اکنون که ابزار cryptsetup با موفقیت نصب شده است، باید یک فایل هدف ایجاد کنیم که ظرف LUKS را در خود جای دهد. اگرچه راه های زیادی برای ایجاد چنین فایلی وجود دارد، اما در هنگام ایجاد آن باید تعدادی از شرایط رعایت شود:

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

در ایجاد فایلی که شرایط فوق را برآورده کند، دستور dd می تواند به ما کمک کند، اگرچه نسبتا کند عمل می کند. فقط آن را با فایل دستگاه ویژه /dev/random که به عنوان ورودی مشخص شده و فایل مورد نظر به عنوان خروجی مشخص شده است، استفاده کنید. یک دستور نمونه به این صورت است:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128

با این کار یک فایل 128 مگابایتی به نام basefile در پوشه /home/nitish ایجاد می شود. با این حال، لطفاً توجه داشته باشید که تکمیل این دستور ممکن است زمان زیادی طول بکشد. در سیستمی که کارشناس ما استفاده کرد یک ساعت طول کشید.

مرحله 05:ایجاد dm-crypt LUKS

پس از ایجاد فایل هدف، باید یک بخش LUKS در این فایل ایجاد کنید. این بخش به عنوان لایه پایه ای عمل می کند که تمام رمزگذاری داده ها بر روی آن ساخته شده است. ضمناً سربرگ این قسمت (سربرگ LUKS) شامل تمامی اطلاعات مورد نیاز برای سازگاری با دستگاه های دیگر می باشد. برای ایجاد یک پارتیشن LUKS، از دستور cryptsetup استفاده کنید:

$ cryptsetup -y luksFormat /home/nitish/basefile

پس از اینکه موافقت کردید که داده های داخل فایل پایه برای همیشه حذف شوند، عبارت عبور را وارد کرده و سپس آن را تایید کنید، پارتیشن LUKS ایجاد می شود. با دستور فایل زیر می توانید این را بررسی کنید:

$filebasefile

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

مرحله 06:یک سیستم فایل ایجاد و نصب کنید

ظرف LUKS که در مرحله قبل ایجاد کردیم اکنون به صورت فایل در دسترس است. در مثال ما، این /home/nitish/basefile است. ابزار cryptsetup به شما امکان می دهد یک ظرف LUKS را به عنوان یک دستگاه مستقل باز کنید. برای این کار ابتدا فایل کانتینر را به نام دستگاه نگاشت و سپس دستگاه را سوار کنید. دستور نمایش به شکل زیر است:

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

مرحله 07:سیستم فایل - ادامه دارد

فایل کانتینر LUKS اکنون به عنوان یک دستگاه معمولی در سیستم موجود است. قبل از اینکه بتوانیم از آن برای عملیات عادی استفاده کنیم، باید آن را فرمت کرده و یک سیستم فایل روی آن ایجاد کنیم. شما می توانید از هر فایل سیستمی که در سیستم شما پشتیبانی می شود استفاده کنید. در مثال من، ما از ext4 استفاده کردیم زیرا جدیدترین سیستم فایل برای سیستم های لینوکس است.

$ mkfs.ext4 -j /dev/mapper/volume1

هنگامی که دستگاه با موفقیت فرمت شد، مرحله بعدی نصب آن است. ابتدا باید یک Mount Point، ترجیحاً به صورت /mnt (عقل مشترک) ایجاد کنید.

$ mkdir /mnt/files

اکنون سوار می شویم:

برای بررسی متقاطع، از دستور df –h استفاده کنید - دستگاه "/dev/mapper/volume1" را در انتهای لیست دستگاه های نصب شده مشاهده خواهید کرد. مشاهده می شود که هدر LUKS از قبل فضایی را در دستگاه اشغال کرده است.

به لطف این مرحله، اکنون می توانید از یک دستگاه LUKS با سیستم فایل ext4 استفاده کنید. فقط از این دستگاه ذخیره فایل استفاده کنید - هر چیزی که در این دستگاه می نویسید رمزگذاری می شود و هر چیزی که از آن می خوانید رمزگشایی شده و به شما نشان داده می شود.

مرحله 08:استفاده از دیسک رمزگذاری شده

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

برای دسترسی به فایل LUKS، هر بار که رایانه خود را روشن می‌کنید، این مراحل را دنبال کنید و سپس قبل از خاموش کردن رایانه، فایل را با خیال راحت ببندید:

فایل LUKS (به عنوان مثال /home/nitish/basefile) را باز کنید و رمز عبور را وارد کنید. دستور به شکل زیر است:

$ cryptsetup luksOpen /home/nitish/basefile volume1

پس از باز شدن فایل، آن را مونت کنید (اگر به طور خودکار نصب نشد):

$ mount /dev/mapper/volume1 /mnt/files

اکنون می توانید از دستگاه نصب شده به عنوان یک دیسک معمولی استفاده کنید و داده ها را از روی آن بخوانید یا بنویسید.

پس از اتمام، دستگاه را به صورت زیر جدا کنید:

$ umount /mnt/files

پس از حذف موفقیت آمیز، فایل LUKS را ببندید:

$ cryptsetup luks بستن volume1

مرحله 09:پشتیبان گیری

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

خلق كردن پشتیبان گیریفایل هدر LUKS، پارامتر luksHeaderBackup را در دستور مشخص کنید:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

یا اگر می خواهید فایلی را از پشتیبان بازیابی کنید، پارامتر luksHeaderRestore را در دستور مشخص کنید:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

می توانید از پارامتر isLuks برای بررسی فایل هدر LUKS و بررسی اینکه فایلی که با آن سر و کار دارید با دستگاه LUKS واقعی مطابقت دارد استفاده کنید.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

قبلاً نحوه پشتیبان‌گیری از فایل‌های هدر LUKS را دیده‌ایم، اما پشتیبان‌گیری از هدر LUKS واقعاً در برابر خرابی کامل دیسک محافظت نمی‌کند، بنابراین باید از کل پارتیشن با دستور cat زیر نسخه پشتیبان تهیه کنید:

$ cat /home/nitish/basefile > basefile.img

مرحله 10:تنظیمات مختلف

چند تنظیمات دیگر وجود دارد که می تواند هنگام استفاده از رمزگذاری dm-crypt LUKS مفید باشد. بیایید نگاهی به آنها بیندازیم.

برای حذف هدر LUKS، دستور cryptsetup دارای گزینه luksDump است. به شما این امکان را می دهد که از فایل هدر LUKS دستگاهی که استفاده می کنید عکس فوری بگیرید. یک دستور نمونه به این صورت است:

$ cryptsetup luksDump /home/nitish/basefile

در ابتدای این مقاله اشاره کردیم که LUKS از چندین کلید پشتیبانی می کند. بیایید با افزودن یک شکاف کلید جدید، این را در عمل ببینیم ( توجه داشته باشید برای.: شکاف کلید - محل کلید در دست):

$ cryptsetup luksAddKey --Key-slot 1 /home/nitish/basefile

این دستور کلیدی را به شکاف کلید شماره 1 اضافه می کند، اما تنها پس از وارد کردن رمز عبور فعلی (کلید موجود در شکاف کلید 0). در مجموع هشت اسلات کلید وجود دارد و شما می توانید داده ها را با استفاده از هر کلیدی رمزگشایی کنید. اگر بعد از اضافه کردن کلید دوم هدر را خالی کنید، می بینید که شکاف کلید دوم اشغال شده است.

شما می توانید اسلات های کلید را مانند این حذف کنید:

$ cryptsetup luksRemoveKey /home/nitish/basefile

با این کار، شیار کلید با بیشترین تعداد شیار حذف می شود. مراقب باشید همه اسلات ها را حذف نکنید وگرنه اطلاعات شما برای همیشه از بین می رود.

معرفی

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

در دسامبر 2005، موسسه Ponemon نظرسنجی را در میان متخصصان مختلف امنیت اطلاعات در مورد رمزگذاری و حفاظت از داده ها انجام داد. در میان 6298 پاسخ دهنده، تنها 4 درصد از پاسخ دهندگان از رمزگذاری در سطح شرکت استفاده کردند. همین نظرسنجی سه دلیل اصلی را برای مخالفت سرسختانه با قوانین رمزگذاری رسمی نشان داد:

  • 69% از افراد مورد بررسی به مسائل مربوط به عملکرد اشاره کردند.
  • 44 درصد از پاسخ دهندگان به مشکلات اجرایی اشاره کردند.
  • 25 درصد از پاسخ دهندگان در مورد هزینه بالای پیاده سازی الگوریتم های رمزنگاری صحبت کردند.

سازمان ها در بسیاری از کشورها تحت فشارهای زیادی برای افزایش «شفافیت» کار خود قرار دارند. اما، از سوی دیگر، آنها مسئولیت قانونی برای عدم اطمینان از ایمنی را بر عهده دارند اطلاعات محرمانه. این مورد، به ویژه، در مورد فروشگاه های کفش DSW در ایالات متحده بود).

کمیسیون تجارت فدرال ایالات متحده شکایتی را علیه DSW تنظیم کرد که اظهار داشت که سطح مناسبی از حفاظت از اطلاعات را ارائه نمی دهد و اقدامات مناسبی برای ایجاد سیستم های کافی برای محدود کردن دسترسی به این داده ها و همچنین حفاظت نامناسب انجام نمی دهد. اتصالات شبکهبین کامپیوترهای فروشگاهی و اداری در مورد DSW، تقریباً 1.4 میلیون کارت اعتباری و تقریباً 96000 حساب جاری به طور بالقوه در دسترس مجرمان بود. و قبل از اینکه توافقات بین شرکت و FTC حاصل شود، این حساب ها قبلاً به طور غیرقانونی استفاده شده بودند.

امروزه نرم افزارها و راه حل های مهندسی برای رمزگذاری داده ها بیش از هر زمان دیگری در دسترس هستند. کلید USB که روز به روز ارزان تر می شود به جای کارت های هوشمند بیشتر مورد استفاده قرار می گیرد. دومی به نوبه خود نیز اغلب یافت می شود، زیرا اکثر لپ تاپ ها دارای کارت خوان هوشمند هستند.

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

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

سوالات فنیرمزگذاری

ویژگی های رمزگذاری برای همه بازی های چند نفره مدرن ضروری است سیستم های کامپیوتریجایی که داده ها، فرآیندها و اطلاعات کاربر به طور منطقی از هم جدا می شوند. برای احراز هویت یک کاربر در سیستم مشابه، لاگین‌ها و رمزهای عبور هش می‌شوند و با هش‌های موجود در سیستم مقایسه می‌شوند (یا هش برای رمزگشایی کلید جلسه استفاده می‌شود، که سپس اعتبار آن بررسی می‌شود). به منظور جلوگیری از مشاهده غیرمجاز اطلاعات شخصی، ممکن است فایل های فردی یا کل بخش ها در داخل ظروف رمزگذاری شده ذخیره شوند. و پروتکل های شبکه، مانند SSL \ TLS و IPSec، در صورت لزوم امکان تقویت حفاظت رمزنگاری را فراهم می کنند. دستگاه های مختلف(/dev/random، /dev/urandom و غیره) با استفاده از الگوریتم های مدولار که با هسته سیستم عامل کار می کنند.

هدف هر فناوری رمزگذاری دیسک محافظت در برابر دسترسی ناخواسته به اطلاعات شخصی و کاهش از دست دادن مالکیت معنوی ناشی از دسترسی غیرقانونی یا سرقت یک دستگاه فیزیکی است. اتاق عمل سیستم لینوکسبا هسته نسخه 2.6.4 یک زیرساخت رمزنگاری پیشرفته را معرفی کرد که به سادگی و ایمن از داده های شخصی در سطوح مختلف محافظت می کند. نرم افزار. استانداردهای کاملی برای ذخیره سازی داده های رمزگذاری شده در سطح پایین وجود دارد، مانند Linux Unified Key Setup (LUKS) و پیاده سازی در سطح کاربر، مانند سیستم های فایل EncFS و CryptoFS، که به نوبه خود بر اساس سیستم فایل فضای کاربر سریع (FUSE) هستند. ) تحت لینوکس. البته، هر سیستم رمزنگاری تنها به اندازه رمز عبور و کلیدهای دسترسی آن در برابر هک مقاوم است. در مجموع، سه سطح اصلی وجود دارد که در آن فناوری‌های رمزگذاری اعمال می‌شوند:

  • سطح فایل ها و سیستم فایل (رمزگذاری فایل به فایل، ظرف با فایل ها)؛
  • سطح بلوک پایین (کانتینر با سیستم فایل)؛
  • سطح سخت افزار (دستگاه های رمزنگاری تخصصی).

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

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

برخی از فناوری‌های رمزنگاری رایگان هستند و در بسیاری از توزیع‌ها گنجانده شده‌اند. راستی، آخرین نسخه هاویندوز مجهز به یک سیستم فایل ویژه است که از رمزگذاری سیستم فایل رمزگذاری شده (EFS) پشتیبانی می کند. فدورا از تعدادی گزینه رمزگذاری پشتیبانی می کند، از جمله LUKS (در صورت استفاده از فایل، می توانید پشتیبانی LUKS را در ویندوز فعال کنید. سیستم های چربییا FAT32 و برنامه FreeOTFE). و FUSE و EncFS در بسته های Extras موجود هستند. با دانلود از CryptoFS نیز می توان نصب کرد سایت رسمی .

زیرساخت FUSE شامل یک ماژول هسته قابل بارگیری و یک کتابخانه فضای کاربر است که به عنوان پایه ای برای سیستم فایل CryptoFS و سیستم فایل رمزگذاری شده (EncFS) عمل می کند. با طراحی خود، FUSE بر کد منبع هسته تأثیر نمی گذارد و در عین حال انعطاف پذیری بالایی را برای پیاده سازی بسیاری از اضافات جالب فراهم می کند، به عنوان مثال، سیستم فایل Secure Shell (SSHFS) که از راه دور نصب شده است.

CryptoFS داده های رمزگذاری شده را در یک ساختار دایرکتوری آشنا ذخیره می کند که به دو بخش اصلی تقسیم می شود: اطلاعات متنی(فهرست فایل ها، پوشه ها، آرشیوها) و داده های رمزگذاری شده واقعی. فقط می‌توانید یک فهرست رمزگذاری شده را با استفاده از کلید دوباره نصب کنید. هنگام استفاده از CryptoFS، به امتیازات خاصی نیاز ندارید و تنظیم آن نیز آسان است.

سیستم فایل EncFS همچنین یک پیاده سازی فضای کاربر بر اساس کتابخانه FUSE است که محافظت در برابر سرقت اطلاعات را فراهم می کند و بر اساس اصل رمزگذاری فایل به فایل کار می کند. او ساختار خود را از آن به ارث برده است نسخه های اولیه، اما با پیشرفت هایی در شکل و عملکرد. فایل سیستم EncFS را می توان به صورت پویا گسترش داد تا نیازهای رو به رشد کاربر را برآورده کند. فایل ها را می توان با توجه به پارامترهای مختلف رمزگذاری کرد (به عنوان مثال، هنگام تغییر محتوا، ویژگی ها و غیره). اساساً، ذخیره سازی اساسی برای EncFS می تواند هر چیزی باشد، از یک تصویر ISO گرفته تا یک پارتیشن شبکه یا حتی یک سیستم فایل توزیع شده.

هر دو فایل سیستم از انتها به انتها هستند و می توانند در بالای سیستم های فایل دیگر و انتزاعات منطقی استفاده شوند، مانند یک مجله یا سیستم فایل توسعه یافته که می تواند در چندین رسانه فیزیکی با استفاده از یک مدیر پارتیشن منطقی (LVM) توزیع شود. تصویر زیر به طور شماتیک نحوه عملکرد این فایل سیستم را نشان می دهد: در این نمودار، دایرکتوری قابل مشاهده mount / است (لایه داده رمزگذاری نشده EncFS).

پوشش فضای کاربری که تعامل بین FUSE و EncFS را نشان می دهد.

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


LUKS بدون اطلاع دقیق از فرمت سیستم فایل کار می کند.

LUKS مطابق با تنظیم کلید مطمئن شماره 1 (TKS1) طراحی شده است و هنگام استفاده از برخی از فرمت های رایج سیستم فایل (FAT/FAT32) با ویندوز سازگار است. این سیستم برای کاربران تلفن همراه مناسب است، از صدور و لغو کلیدهای Gnu Privacy Guard (GPG) پشتیبانی می کند و کاملا رایگان است. LUKS قادر است بسیار بیشتر از هر پیاده سازی دیگری که در این مقاله توضیح داده شده است. علاوه بر این، LUKS از تعداد زیادی راه حل برای ایجاد و مدیریت دستگاه های رمزگذاری شده LUKS پشتیبانی می کند.

سیستم فایل CryptoFS فقط رمز عبور را می پذیرد، در حالی که رسانه های رمزگذاری شده با LUKS با هر کلید PGP (Pretty Good Privacy) با هر تعداد رمز عبور کار می کنند. EncFS همچنین از یک رمز عبور برای محافظت از فایل ها استفاده می کند، اما یک کلید ذخیره شده در پوشه اصلی مربوطه را باز می کند.

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

پیکربندی تست

پلت فرم تست ما یک لپ تاپ بود Dell Latitude C610، کمی قدیمی، اما هنوز کاملاً چابک نماینده فناوری مدل 2002 است. با شارژ باتری، C610 ساعت پردازنده را به 733 مگاهرتز کاهش می دهد. بنابراین در حین تست، لپ تاپ را از پریز جدا نکردیم. جدول زیر تنظیمات لپ تاپ را نشان می دهد

نتایج آزمایش با استفاده از سیستم فایل EXT3 تحت لینوکس به دست آمد. شاید EXT3 در مقایسه با سایر فایل سیستم های ژورنالینگ کارآمدترین نباشد. اما آزمایش با تنظیم دقیقفرمت سیستم، اندازه بلوک، پارامترهای درایو و غیره تحت آزمایش ما نیستند، زیرا معیارهای تنظیم و پیکربندی ساده را ندارند. به یاد بیاورید که هدف مقاله نشان دادن این بود که چگونه راه حل های رمزنگاری لینوکس ایجاد فروشگاه های داده ایمن را آسان، کارآمد و ارزان می کند.

نصب و راه اندازی

LUKS، FUSE و EncFS در توزیع فدورا در دسترس هستند، بنابراین نیازی به تلاش اضافی نیست. اما CryptoFS باید جداگانه دانلود شود.

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


فرآیند نصب برای CryptoFS ساده است.

این پیکربندی شامل تعیین مسیرهای دایرکتوری های شروع و پایان (برای داده های رمزگذاری شده و رمزگذاری نشده) است. سپس می توانید دستور cryptofs را مطابق شکل زیر اجرا کنید.


راه اندازی CryptoFS.

سپس می توانید دستور mount را اجرا کنید و پس از آن می توانید پارتیشن نصب شده را مشاهده کنید.

ابتدا، مطمئن شوید که ماژول هسته FUSE (فیوز modprobe) را بارگذاری کنید. همانطور که در تصویر زیر مشاهده می شود، EncFS فرآیند ایجاد یک ظرف رمزگذاری شده را ساده می کند.


با حذف فرآیند نصب کلید (که مخصوص هر موقعیتی است)، LUKS را می توان به راحتی مطابق شکل زیر پیکربندی کرد.


معیارها و تجزیه و تحلیل عملکرد

تفاوت عملکرد بین نصب بومی و نصب رمزگذاری شده با LUKS نسبتاً جزئی است. به خصوص با توجه به تفاوت قابل توجه در راه حل های فضای کاربران. برای ارزیابی عملکرد سیستم های فایل رمزگذاری شده یک به یک، از Iozone استفاده کردیم. از رکوردهای 4 کیلوبایت تا 16 مگابایت برای تست استفاده می شود، حجم فایل از 64 کیلوبایت تا 512 مگابایت متغیر است و نتیجه بر حسب کیلوبایت بر ثانیه مشخص می شود.

نتیجه

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

کاربران شرکتی مطمئناً باید با محدودیت های مربوط به خط مشی شرکت دست و پنجه نرم کنند. اغلب آنها راه حل های منبع باز را ممنوع می کنند یا برخی از پیاده سازی ها را ممنوع می کنند. علاوه بر این، گاهی اوقات مجبور می شوید محدودیت هایی را برای واردات / صادرات فناوری های رمزگذاری با توجه به قدرت کد در نظر بگیرید، یا بخش فناوری اطلاعات به پشتیبانی تلفنی از ارائه دهنده راه حل نیاز دارد، که به شما امکان می دهد LUKS، EncFS و CryptoFS را فراموش کنید. در هر صورت، LUKS یک راه حل عالی است اگر چنین مشکلاتی ندارید. گزینه خوبی برای مشاغل کوچک یا کاربران خانگی است.

اما به خاطر داشته باشید که رمزگذاری داده ها یک دارو نیست. از آنجایی که رمزگذاری شفاف است، هر تروجانی که از طرف کاربر اجرا می شود می تواند به داده های رمزگذاری شده دسترسی داشته باشد.

نظر سردبیر

CryptoFS و EncFS پیاده سازی فضای کاربر هستند. همانطور که قبلا توضیح دادیم، آنها در طراحی و پیاده سازی ساده هستند، اما به قیمت عملکرد و ویژگی ها هستند. این امر به ویژه در مقایسه با LUKS مشهود است. نه تنها به طور قابل توجهی سریعتر است، بلکه از یک یا چند کلید PGP نیز پشتیبانی می کند و می تواند در کل پارتیشن استفاده شود.

کانتینرهای فضای کاربری در درجه اول برای کاربرانی که می خواهند از اطلاعات شخصی در یک محیط چند کاربره محافظت کنند مهم هستند. و چه کسی باید از داده های خود محافظت کند تا حتی یک مدیر نتواند به منابع سخت افزاری یا نرم افزاری دسترسی پیدا کند. علاوه بر عملکرد و مزایای پشتیبانی بین پلتفرمی، LUKS به خوبی با سیستم‌های مدیریت کلید GNOME و PGP ادغام می‌شود. و سهولت استفاده روزمره از پارتیشن های رمزگذاری شده LUKS به سادگی قابل توجه است. به هر حال، EncFS از ماژول تأیید اعتبار Pluggable (PAM) تحت لینوکس در محیط های مناسب پشتیبانی می کند.

بر کسی پوشیده نیست که امروزه رمزگذاری داده ها شاید تنها راه نجات آنها باشد. امروز می آموزیم که چگونه با استفاده از استاندارد luks (Linux Unified Key Setup) یک پارتیشن رمزگذاری شده در لینوکس ایجاد کنیم. به عنوان مثال، من از سیستم عامل لینوکس CentOS اسکرین شات می دهم.

بنابراین، ابتدا قسمتی را که رمزگذاری می کنیم آماده می کنیم. در داخل آن ماشین مجازیمن ایجاد کردم دیسک جدید، آن را به رابط SATA متصل کرد، دستگاه /dev/sdb در سیستم ظاهر شد

بیایید یک پارتیشن اصلی روی آن ایجاد کنیم:

# fdisk /dev/sdb

1 پارتیشن (sdb1) ایجاد کرد و تمام فضای خالی را به آن داد.

عالی است، حالا بیایید پارتیشن /dev/sdb1 را با استفاده از ابزارهای رمز عبور رمزگذاری فرمت کنیم. از ما خواسته می شود که یک رمز عبور وارد کنیم. دوبار تکرار کنیم تا اشتباه نکنیم.

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1

الگوریتم پیش فرض AES 256bit است. در صورت لزوم، می توانید با تعیین طول کلید سوئیچ -c-algorithm -s الگوریتم دیگری را انتخاب کنید.

# cryptsetup -c aes -s 1024 --verbose --verify-passphrase luksFormat /dev/sdb1

سپس کانتینر رمزنگاری به نام safe را فعال می کنیم:

# cryptsetup luks /dev/sdb1 safe را باز کنید


در نتیجه، یک دستگاه بلوک جدید در فهرست /dev/mapper/ با نام safe ایجاد می‌شود.

ایجاد یک فایل سیستم:

# mkfs.ext3 /dev/mapper/safe


اگر بخواهیم هر بار که سیستم شروع به کار می کند پارتیشن ما فعال شود (البته با درخواست کلمه عبور) چه باید کرد؟

بیایید فایل /etc/crypttab که شبیه به /etc/fstab است را ویرایش کنیم

# vim /etc/crypttab

بیایید یک خط در آنجا اضافه کنیم:

امن /dev/sdb1 هیچکدام

و موارد زیر در فایل /etc/fstab:

/dev/mapper/safe /safe ext3 پیش‌فرض 0 0 است

بله، وضعیت. ما یک بخش رمزگذاری شده ایجاد کرده ایم. ما کلید را می دانیم. آیا می توان بخش را نه تنها با کلید خود، بلکه به روش دیگری نیز در دسترس قرار داد؟ یعنی می‌خواهیم به «واسیا» دسترسی بدهیم تا بتواند با ما کار کند. به آسانی.

بیایید یک کلید دیگر به کانتینر رمزنگاری اضافه کنیم.

در مجموع می توانید تا 8 کلید ایجاد کنید که هر کدام در اسلات مخصوص به خود قرار می گیرند.


می توانید اسلات های اشغال شده را مانند این نشان دهید:

# cryptsetup luksDump /dev/sdb1


همانطور که می بینید، شیارهای 0 و 1 اشغال شده اند. همچنین می توان از فایل های کلیدی به جای رمز عبور استفاده کرد.

شما می توانید وضعیت یک cryptocontainer را به این صورت نشان دهید:

# وضعیت cryptsetup امن است

مثال عملی

هدف: محافظت دستگاه USBاز چشمان کنجکاو

بیایید درایو فلش را به سیستم خود وصل کنیم:


درایو فلش به عنوان یک دستگاه sdc تعریف شد. این بدان معنی است که دستگاه /dev/sdc ظاهر شده است. اگر پارتیشن های چربی یا ntfs روی درایو فلش وجود داشت، بهتر است اطلاعات را در جایی رها کنید، زیرا پس از رمزگذاری دستگاه همه چیز از بین می رود.

بنابراین، ما می توانیم درایو فلش را با استفاده از fdisk پارتیشن بندی کنیم، می توانیم آن را همانطور که هست رها کنیم.

# cryptsetup luksFormat /dev/sdc

یک کلمه عبور وارد کنید.


اکنون بیایید دستگاه رمزگذاری شده خود را وصل کنیم تا آن را در سیستم فایل جدید علامت گذاری کنیم:

# cryptsetup luks /dev/sdc flash را باز کنید

اکنون از ما یک کلمه عبور خواسته می شود که پس از وارد کردن آن یک دستگاه جدید /dev/mapper/ در سیستم ظاهر می شود.<имя>، در مورد ما فلش.

بیایید یک سیستم فایل در این دستگاه ایجاد کنیم:

# mkfs.ext3 /dev/mapper/flash

آماده. خوب، زمان ایجاد کلیدهایی است که برای دسترسی به دستگاه استفاده می شود. چندین کلید را می توان آماده کرد (در مجموع تا 8 اسلات، اگرچه شکاف 0 قبلاً توسط یک عبارت عبور اشغال شده است، اما می توان آن را حذف کرد).

# dd if=/dev/urandom of=~/keyfile.key bs=1 count=256

بنابراین، ما یک فایل 256 بایتی ایجاد خواهیم کرد که مسدود شده است اعداد تصادفی. شما می توانید آن را به این صورت بررسی کنید:

# xxd ~/keyfile.key


واقعا کاملا تصادفی اکنون باقی مانده است که این کلید را به درایو فلش خود اضافه کنیم.

فعلاً کانتینر رمزنگاری را غیرفعال کنیم.

# cryptsetup luksClose flash

اضافه کردن کلید:

# cryptsetup luksAddKey /dev/sdc ~/keyfile.key


از ما خواسته می شود که یک عبارت عبور وارد کنیم تا مطمئن شویم به این صندوق دسترسی داریم.

# cryptsetup luksDump /dev/sdc

عالی! حالا بیایید کلید را در مکانی امن ذخیره کنیم.برای دسترسی به ظرف به آن نیاز داریم.

مثال 1

کاربر "A" می خواهد با دانستن عبارت عبور، یک فایل را در درایو فلش آپلود کند:


ما آن را با یک رمز عبور با ایجاد یک دستگاه mydisk باز کردیم، سپس mydisk را در فهرست اصلی نصب کردیم. ایجاد شده فایل متنی hello.txt با محتوا. کانتینر غیرفعال شده است.

مثال 2


با فایل کلید باز شد، یک دستگاه فلشکا ایجاد کرد. ما آن را در فهرست اصلی کاربر سرگی نصب کردیم، فایل را بخوانید - همه چیز خوب است!