SYSTEMD-CRYPTSETUP(8) systemd-cryptsetup SYSTEMD-CRYPTSETUP(8)

systemd-cryptsetup@.service, systemd-cryptsetup - منطق راه‌اندازی و مدیریت دستگاه‌های رمزنگاری‌شده دیسک

systemd-cryptsetup [OPTIONS...] attach VOLUME SOURCE-DEVICE [KEY-FILE] [CRYPTTAB-OPTIONS]

systemd-cryptsetup [OPTIONS...] detach VOLUME

systemd-cryptsetup@.service

system-systemd\x2dcryptsetup.slice

systemd-cryptsetup برای راه‌اندازی (با attach) و قطع دسترسی (با detach) به یک دستگاه بلوکی رمزنگاری‌شده استفاده می‌شود. این ابزار عمدتاً از طریق systemd-cryptsetup@.service در مراحل اولیه بوت به کار می‌رود، اما می‌تواند به‌صورت دستی نیز فراخوانی شود. آرگومان‌های مکانی VOLUME، SOURCE-DEVICE، KEY-FILE و CRYPTTAB-OPTIONS همان مفهوم فیلدهای موجود در crypttab(5) را دارند.

سرویس systemd-cryptsetup@.service مسئول فراهم کردن دسترسی به دستگاه‌های بلوکی رمزنگاری‌شده است. این سرویس برای هر دستگاهی که نیاز به رمزگشایی دارد نمونه‌سازی می‌شود.

نمونه‌های systemd-cryptsetup@.service بخشی از برش (slice) system-systemd\x2dcryptsetup.slice هستند، که تنها در مراحل بسیار پایانی فرایند خاموش شدن سیستم تخریب می‌شود. این کار اجازه می‌دهد تا دستگاه‌های رمزنگاری‌شده تا زمان پیاده‌سازی (unmount) سیستم‌های فایل فعال باقی بمانند.

سرویس systemd-cryptsetup@.service گذرواژه‌های دیسک سخت را از طریق منطق عامل گذرواژه[1] درخواست خواهد کرد، تا با استفاده از سازوکار مناسب در زمان بوت و در حین اجرا، گذرواژه را از کاربر استعلام کند.

در مراحل اولیه بوت و هنگام بارگذاری مجدد پیکربندی مدیر سیستم، /etc/crypttab توسط systemd-cryptsetup-generator(8) به واحدهای systemd-cryptsetup@.service ترجمه می‌شود.

به‌منظور باز کردن قفل یک حجم، یک گذرواژه یا کلید دودویی مورد نیاز است. systemd-cryptsetup@.service تلاش می‌کند یک گذرواژه یا کلید دودویی مناسب را از طریق سازوکارهای زیر که به ترتیب امتحان می‌شوند، به دست آورد:

1.اگر یک فایل کلید به‌صراحت پیکربندی شده باشد (از طریق ستون سوم در /etc/crypttab)، کلید خوانده‌شده از آن استفاده می‌شود. اگر یک توکن PKCS#11، توکن FIDO2 یا دستگاه TPM2 پیکربندی شده باشد (با استفاده از گزینه‌های pkcs11-uri=، fido2-device=، tpm2-device=)، کلید پیش از استفاده رمزگشایی می‌شود.
2.اگر هیچ فایل کلیدی بدین‌صورت به‌صراحت پیکربندی نشده باشد، در صورت وجود، یک فایل کلید به‌طور خودکار از /etc/cryptsetup-keys.d/volume.key و /run/cryptsetup-keys.d/volume.key بارگذاری می‌شود. در اینجا نیز، اگر یک توکن/دستگاه PKCS#11/FIDO2/TPM2 پیکربندی شده باشد، هر کلیدی که از این طریق پیدا شود پیش از استفاده رمزگشایی خواهد شد.
3.اگر گزینه try-empty-password مشخص شده باشد، باز کردن قفل حجم با یک گذرواژه خالی آزمایش می‌شود.
4.اگر گزینه password-cache= روی "yes" یا "read-only" تنظیم شده باشد، جاکلیدی هسته (kernel keyring) برای یافتن یک گذرواژه کش‌شده مناسب از تلاش‌های پیشین بررسی می‌شود.
5.در نهایت، از کاربر برای گذرواژه (احتمالاً چندین بار) درخواست می‌شود، مگر اینکه گزینه headless تنظیم شده باشد.

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

systemd-cryptsetup از منطق اعتبارنامه‌های سرویس همان‌طور که توسط ImportCredential=/LoadCredential=/SetCredential= پیاده‌سازی شده پشتیبانی می‌کند (برای جزئیات به systemd.exec(5) مراجعه کنید). اعتبارنامه‌های زیر در صورت ارسال، توسط "systemd-cryptsetup@root.service" (تولیدشده توسط systemd-gpt-auto-generator) استفاده می‌شوند:

cryptsetup.passphrase

این اعتبارنامه عبارت عبور حجم LUKS را مشخص می‌کند.

افزوده‌شده در نسخه 256.

cryptsetup.tpm2-pin

این اعتبارنامه پین TPM را مشخص می‌کند.

افزوده‌شده در نسخه 256.

cryptsetup.fido2-pin

این اعتبارنامه پین توکن FIDO2 را مشخص می‌کند.

افزوده‌شده در نسخه 256.

cryptsetup.pkcs11-pin

این اعتبارنامه پین توکن PKCS11 را مشخص می‌کند.

افزوده‌شده در نسخه 256.

cryptsetup.luks2-pin

این اعتبارنامه پین درخواست‌شده توسط ماژول‌های عمومی توکن LUKS2 را مشخص می‌کند.

افزوده‌شده در نسخه 256.

systemd(1), systemd-cryptsetup-generator(8), crypttab(5), systemd-cryptenroll(1), cryptsetup(8), اندازه‌گیری‌های TPM2 PCR انجام‌شده توسط systemd[2]

1.
منطق عامل گذرواژه
2.
اندازه‌گیری‌های TPM2 PCR انجام‌شده توسط systemd
systemd 261.2