'\" t .TH "CRYPTTAB" "5" "" "systemd 261.2" "crypttab" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" crypttab \- جدول پیکربندی دستگاه‌های رمزنگاری‌شده بلاک .SH "خلاصه دستور (SYNOPSIS)" .PP /etc/crypttab .SH "توضیحات (DESCRIPTION)" .PP پرونده /etc/crypttab دستگاه‌های بلاک رمزنگاری‌شده‌ای را توصیف می‌کند که در طول بوت سیستم راه‌اندازی می‌شوند\&. .PP خطوط خالی و خطوطی که با نویسه "#" شروع می‌شوند نادیده گرفته می‌شوند\&. هر یک از خطوط باقی‌مانده یک دستگاه بلاک رمزنگاری‌شده را توصیف می‌کند\&. فیلدها با فاصله خالی (whitespace) از یکدیگر جدا می‌شوند\&. .PP هر خط به شکل زیر است: .sp .if n \{\ .RS 4 .\} .nf \fIvolume\-name\fR \fIencrypted\-device\fR \fIkey\-file\fR \fIoptions\fR .fi .if n \{\ .RE .\} .sp دو فیلد اول اجباری و دو فیلد باقی‌مانده اختیاری هستند\&. .PP راه‌اندازی دستگاه‌های بلاک رمزنگاری‌شده با استفاده از این فایل، از چهار حالت رمزنگاری پشتیبانی می‌کند: LUKS، TrueCrypt، BitLocker و plain\&. برای اطلاعات بیشتر در مورد هر حالت، \fBcryptsetup\fR(8) را ببینید\&. هنگامی که هیچ حالتی در فیلد گزینه‌ها مشخص نشده باشد و دستگاه بلاک حاوی یک امضای LUKS باشد، به عنوان یک دستگاه LUKS باز می‌شود؛ در غیر این صورت، فرض می‌شود که در قالب خام dm\-crypt (حالت plain) است\&. .PP چهار فیلد /etc/crypttab به شرح زیر تعریف می‌شوند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} فیلد اول شامل نام حجم حاصل با داده‌های رمزگشایی‌شده است؛ دستگاه بلاک آن در مسیر /dev/mapper/ راه‌اندازی می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} فیلد دوم شامل مسیری به دستگاه بلاک یا فایل زیرین است، یا مشخصه‌ای از یک دستگاه بلاک از طریق "UUID=" به همراه UUID مربوطه است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} فیلد سوم یک مسیر مطلق به فایلی حاوی کلید رمزنگاری را مشخص می‌کند\&. به صورت اختیاری، مسیر می‌تواند با ":" و یک مشخصه دستگاه به سبک /etc/fstab دنبال شود (مثلاً شروع‌شده با "LABEL=" یا موارد مشابه)؛ که در این صورت مسیر نسبت به ریشه سیستم‌فایل دستگاه مشخص‌شده در نظر گرفته می‌شود\&. اگر این فیلد وجود نداشته باشد یا برابر با "none" یا "\-" باشد، یک فایل کلید هم‌نام با حجم مورد نظر برای بازگشایی (یعنی ستون اول خط)، با پسوند \&.key به صورت خودکار از دایرکتوری‌های /etc/cryptsetup\-keys\&.d/ و /run/cryptsetup\-keys\&.d/ (در صورت وجود) بارگذاری می‌شود\&. در غیر این صورت، گذرواژه باید در طول بوت سیستم به صورت دستی وارد شود\&. برای رمزنگاری swap، می‌توان از /dev/urandom به عنوان فایل کلید استفاده کرد که منجر به یک کلید تصادفی می‌شود\&. .sp اگر مسیر فایل کلید مشخص‌شده به یک سوکت استریم \fBAF_UNIX\fR در سیستم‌فایل اشاره کند، کلید با اتصال به سوکت و خواندن آن از اتصال دریافت می‌شود\&. این امکان پیاده‌سازی سرویسی را فراهم می‌کند که اطلاعات کلید را به صورت پویا و در لحظه‌ای که مورد نیاز است ارائه دهد\&. برای جزئیات به بخش زیر مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} فیلد چهارم، در صورت وجود، فهرستی از گزینه‌ها است که با کاما از هم جدا شده‌اند\&. گزینه‌های پشتیبانی‌شده در زیر فهرست شده‌اند\&. .RE .SH "دریافت کلید (KEY ACQUISITION)" .PP شش سازوکار مختلف برای دریافت کلید رمزگشایی یا عبارت عبور بازگشایی حجم رمزنگاری‌شده پشتیبانی می‌شود\&. به طور مشخص: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} به‌عنوان برجسته‌ترین روش، ممکن است در حین فعال‌سازی حجم (یعنی معمولاً در زمان بوت)، از کاربر به صورت تعاملی درخواست شود تا عبارت عبور لازم را تایپ کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} کلید (رمزنگاری‌نشده) ممکن است از یک فایل روی دیسک، احتمالاً روی رسانه‌های جداشدنی خوانده شود\&. فیلد سوم هر خط مکان آن را مشخص می‌کند؛ برای جزئیات به بالا مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} کلید (رمزنگاری‌نشده) ممکن است از طریق مشخص کردن یک سوکت سیستم‌فایل \fBAF_UNIX\fR به جای فایل کلید در فیلد سوم، از یک سرویس دیگر درخواست شود\&. برای جزئیات به بالا و پایین مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} کلید ممکن است از طریق یک توکن امنیتی سخت‌افزاری یا کارت هوشمند سازگار با PKCS#11 دریافت شود\&. در این حالت، یک کلید ذخیره‌شده که در فرآیند بازگشایی استفاده می‌شود روی دیسک/رسانه جداشدنی ذخیره شده، از طریق \fBAF_UNIX\fR دریافت شده، یا در هدر متادیتای توکن JSON مربوط به LUKS2 ذخیره می‌شود\&. برای RSA، کلید ذخیره‌شده یک کلید رمزنگاری‌شده حجم است\&. کلید حجم رمزنگاری‌شده سپس توسط توکن PKCS#11 با کلید خصوصی RSA ذخیره‌شده روی آن رمزگشایی می‌شود و برای بازگشایی حجم رمزنگاری‌شده مورد استفاده قرار می‌گیرد\&. برای رمزنگاری منحنی بیضوی (EC)، کلید ذخیره‌شده همان کلید عمومی تولیدشده در فرآیند ثبت‌نام است\&. سپس از این کلید عمومی برای اشتقاق یک رمز مشترک با یک کلید خصوصی ذخیره‌شده در توکن PKCS#11 استفاده می‌شود\&. رمز مشترک اشتقاق‌یافته سپس برای بازگشایی حجم به کار می‌رود\&. برای استفاده از این سازوکار از گزینه \fBpkcs11\-uri=\fR که در زیر توصیف شده است استفاده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} به طور مشابه، کلید ممکن است از طریق یک توکن امنیتی سخت‌افزاری سازگار با FIDO2 (که باید افزونه "hmac\-secret" را پیاده‌سازی کرده باشد) دریافت شود\&. در این حالت، کلیدی که به صورت تصادفی در حین ثبت‌نام تولید شده است، روی دیسک/رسانه جداشدنی ذخیره شده، از طریق \fBAF_UNIX\fR دریافت شده، یا در هدر متادیتای توکن JSON مربوط به LUKS2 ذخیره می‌شود\&. کلید تصادفی از طریق یک تابع درهم‌سازی کلیددار (HMAC) روی توکن FIDO2، با استفاده از یک کلید مخفی ذخیره‌شده روی توکن که هرگز از آن خارج نمی‌شود، هش می‌شود\&. مقدار هش حاصل سپس به عنوان کلید برای بازگشایی حجم رمزنگاری‌شده استفاده می‌شود\&. برای استفاده از این سازوکار از گزینه \fBfido2\-device=\fR که در زیر توصیف شده است استفاده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} به طور مشابه، کلید ممکن است از طریق یک تراشه امنیتی TPM2 دریافت شود\&. در این حالت، یک کلید که (در طول ثبت‌نام) به صورت تصادفی تولید شده است \(em رمزنگاری‌شده توسط یک کلید نامتقارن مشتق‌شده از کلید سید (seed) تراشه TPM2 \(em روی دیسک/رسانه جداشدنی ذخیره شده، از طریق \fBAF_UNIX\fR دریافت شده، یا در هدر متادیتای توکن JSON مربوط به LUKS2 ذخیره می‌شود\&. برای استفاده از این سازوکار از گزینه \fBtpm2\-device=\fR که در زیر توصیف شده است استفاده کنید\&. .RE .PP برای پنج سازوکار اخیر، منبع داده‌های کلیدی مورد استفاده برای بازگشایی حجم عمدتاً در فیلد سوم هر خط از /etc/crypttab پیکربندی می‌شود، اما همچنین می‌تواند در /etc/cryptsetup\-keys\&.d/ و /run/cryptsetup\-keys\&.d/ (به بالا مراجعه کنید) یا در هدر توکن JSON مربوط به LUKS2 (در مورد سه سازوکار آخر) پیکربندی شود\&. از ابزار \fBsystemd-cryptenroll\fR(1) برای ثبت دستگاه‌های PKCS#11، FIDO2 و TPM2 در حجم‌های LUKS2 استفاده کنید\&. .SH "گزینه‌های پشتیبانی‌شده (SUPPORTED OPTIONS)" .PP گزینه‌های زیر را می‌توان در فیلد چهارم هر خط استفاده کرد: .PP \fBcipher=\fR .RS 4 الگوریتم رمزنگاری مورد استفاده را مشخص می‌کند\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. استفاده از یک الگوریتم رمزنگاری با مقادیر بردار اولیه (IV) غیرقابل پیش‌بینی، مانند "aes\-cbc\-essiv:sha256" توصیه می‌شود\&. کاماهای تعبیه‌شده در مشخصه الگوریتم باید با قرار دادن یک بک‌اسلش در پیش از آن‌ها اسکیپ شوند؛ مثال زیر را ببینید\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBdiscard\fR .RS 4 اجازه می‌دهد درخواست‌های discard (دور انداختن بلاک‌های آزاد) از طریق دستگاه بلاک رمزنگاری‌شده عبور داده شوند\&. این کار کارایی را روی حافظه‌های SSD بهبود می‌بخشد، اما پیامدهای امنیتی دارد\&. .sp اضافه‌شده در نسخه 207\&. .RE .PP \fBhash=\fR .RS 4 تابع درهم‌سازی مورد استفاده برای هش کردن گذرواژه را مشخص می‌کند\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBheader=\fR .RS 4 از یک دستگاه یا فایل متادیتای جداگانه (جداشده) که هدر حاوی کلید(های) اصلی در آن ذخیره شده است استفاده می‌کند\&. این گزینه فقط برای دستگاه‌های LUKS و TrueCrypt/VeraCrypt کاربرد دارد\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. .sp به صورت اختیاری، مسیر ممکن است با ":" و یک مشخصه دستگاه به سبک /etc/fstab دنبال شود (مثلاً شروع‌شده با "UUID=" یا موارد مشابه)؛ که در این صورت، مسیر نسبت به ریشه سیستم‌فایل دستگاه در نظر گرفته می‌شود\&. دستگاه فقط برای مدت‌زمان فعال‌سازی دستگاه LUKS به طور خودکار سوار (mount) می‌شود\&. .sp اضافه‌شده در نسخه 219\&. .RE .PP \fBkeyfile\-offset=\fR .RS 4 تعداد بایت‌هایی که باید در ابتدای فایل کلید نادیده گرفته شوند را مشخص می‌کند\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. .sp اضافه‌شده در نسخه 187\&. .RE .PP \fBkeyfile\-size=\fR .RS 4 حداکثر تعداد بایت‌هایی را که باید از فایل کلید خوانده شود مشخص می‌کند\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. این گزینه در حالت رمزنگاری plain نادیده گرفته می‌شود، جایی که اندازه فایل کلید با اندازه کلید تعیین می‌شود\&. همچنین هنگامی که فایل کلید به عنوان فایل سالت (salt) برای یک توکن FIDO2 استفاده می‌شود نادیده گرفته می‌شود، زیرا اندازه سالت در آن حالت توسط مشخصات FIDO2 دقیقاً ۳۲ بایت تعریف شده است\&. .sp اضافه‌شده در نسخه 188\&. .RE .PP \fBkeyfile\-erase\fR .RS 4 در صورت فعال بودن، فایل کلید مشخص‌شده پس از فعال‌سازی حجم یا در صورت ناموفق بودن فعال‌سازی پاک می‌شود\&. این گزینه به‌ویژه زمانی مفید است که فایل کلید فقط به صورت گذرا قبل از فعال‌سازی دریافت می‌شود (مثلاً از طریق فایلی در /run/ که توسط سرویسی در حال اجرا قبل از فعال‌سازی ایجاد شده است)، و باید پس از استفاده حذف شود\&. به طور پیش‌فرض غیرفعال است\&. .sp توجه داشته باشید که این گزینه فقط برای یک فایل کلید که صراحتاً در فیلد سوم پیکربندی شده است اعمال می‌شود، و هیچ تأثیری بر فایل‌های کلیدی که به طور خودکار در /etc/cryptsetup\-keys\&.d/ و /run/cryptsetup\-keys\&.d/ کشف می‌شوند ندارد\&. موارد اخیر به عنوان منابع مشترک در نظر گرفته می‌شوند که متعلق به یک حجم منفرد نیستند و بنابراین هرگز پاک نمی‌شوند\&. برای پاک کردن یک فایل کلید کشف‌شده به صورت خودکار، مسیر آن را صراحتاً در فیلد سوم پیکربندی کنید\&. .sp اضافه‌شده در نسخه 246\&. .RE .PP \fBkey\-slot=\fR .RS 4 اسلات کلید را برای مقایسه عبارت عبور یا کلید در برابر آن مشخص می‌کند\&. اگر اسلات کلید با عبارت عبور یا کلید داده‌شده مطابقت نداشته باشد، اما اسلات دیگری مطابقت داشته باشد، با این وجود راه‌اندازی دستگاه ناموفق خواهد بود\&. این گزینه مستلزم \fBluks\fR است\&. برای مقادیر ممکن، \fBcryptsetup\fR(8) را ببینید\&. پیش‌فرض این است که همه اسلات‌های کلید به ترتیب متوالی امتحان شوند\&. .sp اضافه‌شده در نسخه 209\&. .RE .PP \fBkeyfile\-timeout=\fR .RS 4 مدت‌زمان انتظار (مهلت زمانی) را برای دستگاهی که فایل کلید روی آن قرار دارد یا دستگاهی که به عنوان فایل کلید استفاده می‌شود مشخص می‌کند، و در صورتی که قابل دسترسی نباشد به درخواست گذرواژه بازمی‌گردد\&. برای فایل‌های کلید روی دستگاه‌های خارجی، \fBsystemd-cryptsetup-generator\fR(8) را ببینید\&. .sp اضافه‌شده در نسخه 243\&. .RE .PP \fBlink\-volume\-key=\fR .RS 4 دسته‌کلید کرنل (keyring) و توضیحات کلید (نگاه کنید به \fBkeyrings\fR(7)) را مشخص می‌کند که کلید حجم LUKS2 در حین فعال‌سازی دستگاه به آن پیوند می‌یابد\&. توضیحات دسته‌کلید کرنل و توضیحات کلید باید با "::" از هم جدا شوند\&. .sp بخش دسته‌کلید کرنل می‌تواند یک رشته توضیحات یا یک دسته‌کلید کرنل از پیش تعریف‌شده باشد که با "@" پیشوند شده است (مثلاً برای استفاده مستقیم از دسته‌کلید نشست "@s" یا دسته‌کلید کاربر "@u")\&. متن پیشوند نوع در توضیحات دسته‌کلید کرنل الزامی نیست\&. دسته‌کلید کرنل مشخص‌شده باید از قبل در زمان فعال‌سازی دستگاه وجود داشته باشد\&. .sp بخش کلید یک رشته توضیحات است که به صورت اختیاری با یک "%key_type:" پیشوند شده است\&. اگر هیچ نوعی مشخص نشود، کلید با نوع "user" به صورت پیش‌فرض پیوند داده می‌شود\&. برای اطلاعات بیشتر درباره توضیحات کلید (بخش شناساگرهای کلید \- KEY IDENTIFIERS) به \fBkeyctl\fR(1) مراجعه کنید\&. .sp توجه داشته باشید که کلید حجم پیوندیافته هنگام جدا شدن دستگاه به طور خودکار پاکسازی نمی‌شود\&. .sp اضافه‌شده در نسخه 256\&. .RE .PP \fBluks\fR .RS 4 حالت LUKS را تحمیل می‌کند\&. هنگامی که از این حالت استفاده می‌شود، گزینه‌های زیر نادیده گرفته می‌شوند زیرا توسط هدر LUKS روی دستگاه ارائه می‌شوند: \fBcipher=\fR, \fBhash=\fR, \fBsize=\fR\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBbitlk\fR .RS 4 درایو BitLocker را رمزگشایی می‌کند\&. پارامترهای رمزنگاری توسط cryptsetup از هدر BitLocker استنباط می‌شوند\&. .sp اضافه‌شده در نسخه 246\&. .RE .PP \fB_netdev\fR .RS 4 این دستگاه cryptsetup را به عنوان نیازمند به شبکه علامت‌گذاری می‌کند\&. این دستگاه پس از در دسترس قرار گرفتن شبکه راه‌اندازی می‌شود، مشابه با واحدهای \fBsystemd.mount\fR(5) که با \fB_netdev\fR علامت‌گذاری شده‌اند\&. واحد سرویس برای راه‌اندازی این دستگاه، به جای قرارگیری بین cryptsetup\-pre\&.target و cryptsetup\&.target, بین remote\-fs\-pre\&.target و remote\-cryptsetup\&.target مرتب خواهد شد\&. .sp نکته: اگر این دستگاه برای یک نقطه اتصال (mount point) که در \fBfstab\fR(5) مشخص شده استفاده می‌شود، گزینه \fB_netdev\fR باید برای آن نقطه اتصال نیز استفاده شود\&. در غیر این صورت، ممکن است یک حلقه وابستگی ایجاد شود که در آن نقطه اتصال توسط local\-fs\&.target فراخوانی می‌شود، در حالی که سرویس پیکربندی شبکه معمولاً تنها \fIپس از\fR سوار شدن سیستم‌فایل محلی راه‌اندازی می‌شود\&. .sp اضافه‌شده در نسخه 235\&. .RE .PP \fBnoauto\fR .RS 4 این دستگاه به cryptsetup\&.target اضافه نخواهد شد\&. این بدان معناست که در هنگام بوت به طور خودکار بازگشایی نمی‌شود، مگر اینکه چیز دیگری آن را فراخوانی کند\&. به‌ویژه، اگر دستگاه برای یک نقطه اتصال استفاده شود، در طول بوت به طور خودکار بازگشایی خواهد شد، مگر اینکه خود نقطه اتصال نیز با \fBnoauto\fR غیرفعال شده باشد\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBnofail\fR .RS 4 این دستگاه یک وابستگی سخت (ضروری) برای cryptsetup\&.target نخواهد بود\&. همچنان فراخوانی و راه‌اندازی خواهد شد، اما سیستم منتظر ظاهر شدن و بازگشایی دستگاه نخواهد ماند و در صورت ناموفق بودن این فرآیند، بوت شکست نخواهد خورد\&. توجه داشته باشید که سایر واحدهایی که به دستگاه بازگشایی‌شده وابسته هستند ممکن است همچنان با شکست مواجه شوند\&. به‌ویژه، اگر دستگاه برای یک نقطه اتصال استفاده شود، خود نقطه اتصال نیز باید گزینه \fBnofail\fR را داشته باشد، در غیر این صورت اگر دستگاه با موفقیت بازگشایی نشود، بوت با شکست مواجه خواهد شد\&. اگر یک فایل کلید و/یا یک \fBheader\fR مشخص شده باشد، وابستگی‌ها به دایرکتوری‌های مربوطه آن‌ها نیز غیرکشنده (غیرحیاتی) خواهد بود، به طوری که پیاده کردن (unmount) دایرکتوری‌های مذکور باعث غیرفعال شدن واحد cryptset تولیدشده نخواهد شد\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBoffset=\fR .RS 4 آفست شروع در دستگاه پس‌زمینه (backend)، بر حسب سکتورهای ۵۱۲ بایتی\&. این گزینه فقط برای دستگاه‌های plain کاربرد دارد\&. .sp اضافه‌شده در نسخه 220\&. .RE .PP \fBplain\fR .RS 4 حالت رمزنگاری plain را تحمیل می‌کند\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBread\-only\fR, \fBreadonly\fR .RS 4 دستگاه بلاک رمزنگاری‌شده را در حالت فقط‌خواندنی راه‌اندازی می‌کند\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBsame\-cpu\-crypt\fR .RS 4 عملیات رمزنگاری را با استفاده از همان پردازنده‌ای (CPU) انجام می‌دهد که عملیات ورودی/خروجی (IO) روی آن ثبت شده است\&. پیش‌فرض استفاده از یک صف کاری غیروابسته (unbound) است تا بار کاری رمزنگاری به طور خودکار بین پردازنده‌های موجود متعادل شود\&. .sp این به هسته لینوکس نسخه 4\&.0 یا جدیدتر نیاز دارد\&. .sp اضافه‌شده در نسخه 242\&. .RE .PP \fBsubmit\-from\-crypt\-cpus\fR .RS 4 برون‌سپاری نوشتن به یک رشته (thread) جداگانه پس از رمزنگاری را غیرفعال می‌کند\&. در برخی شرایط برون‌سپاری درخواست‌های نوشتن از رشته‌های رمزنگاری به یک رشته اختصاصی، کارایی را به میزان قابل‌توجهی کاهش می‌دهد\&. پیش‌فرض برون‌سپاری درخواست‌های نوشتن به یک رشته اختصاصی است، زیرا ارسال درخواست‌های نوشتن با استفاده از یک زمینه یکسان به نفع زمان‌بند CFQ است\&. .sp این به هسته لینوکس نسخه 4\&.0 یا جدیدتر نیاز دارد\&. .sp اضافه‌شده در نسخه 242\&. .RE .PP \fBno\-read\-workqueue\fR .RS 4 صف کاری داخلی dm\-crypt را دور می‌زند و درخواست‌های خواندن را به صورت همگام پردازش می‌کند\&. پیش‌فرض این است که این درخواست‌ها در صف قرار گیرند و به صورت ناهمگام پردازش شوند\&. .sp این به هسته لینوکس نسخه 5\&.9 یا جدیدتر نیاز دارد\&. .sp اضافه‌شده در نسخه 248\&. .RE .PP \fBno\-write\-workqueue\fR .RS 4 صف کاری داخلی dm\-crypt را دور می‌زند و درخواست‌های نوشتن را به صورت همگام پردازش می‌کند\&. پیش‌فرض این است که این درخواست‌ها در صف قرار گیرند و به صورت ناهمگام پردازش شوند\&. .sp این به هسته لینوکس نسخه 5\&.9 یا جدیدتر نیاز دارد\&. .sp اضافه‌شده در نسخه 248\&. .RE .PP \fBskip=\fR .RS 4 تعداد سکتورهای ۵۱۲ بایتی از داده‌های رمزنگاری‌شده که باید در ابتدا نادیده گرفته شوند را مشخص می‌کند\&. این گزینه با گزینه \fBoffset=\fR از نظر شماره‌های سکتور مورد استفاده در محاسبه بردار اولیه (IV) متفاوت است\&. استفاده از \fBoffset=\fR محاسبه IV را به همان میزان منفی جابجا می‌کند\&. بنابراین، اگر \fBoffset=\fR\fB\fIn\fR\fR داده شود، سکتور \fIn\fR برای محاسبه IV شماره سکتور 0 را دریافت خواهد کرد\&. استفاده از \fBskip=\fR باعث می‌شود سکتور \fIn\fR نیز اولین سکتور دستگاه نگاشت‌شده باشد، اما شماره آن برای تولید IV همان \fIn\fR خواهد بود\&. .sp این گزینه فقط برای دستگاه‌های plain کاربرد دارد\&. .sp اضافه‌شده در نسخه 220\&. .RE .PP \fBsize=\fR .RS 4 اندازه کلید را بر حسب بیت مشخص می‌کند\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. .sp اضافه‌شده در نسخه 186\&. .RE .PP \fBsector\-size=\fR .RS 4 اندازه سکتور را بر حسب بایت مشخص می‌کند\&. برای مقادیر ممکن و مقدار پیش‌فرض این گزینه، \fBcryptsetup\fR(8) را ببینید\&. .sp اضافه‌شده در نسخه 240\&. .RE .PP \fBswap\fR .RS 4 دستگاه بلاک رمزنگاری‌شده به عنوان یک دستگاه سواپ (swap) استفاده خواهد شد، و پس از راه‌اندازی دستگاه بلاک رمزنگاری‌شده، با استفاده از \fBmkswap\fR(8) به طور مناسب قالب‌بندی می‌شود\&. این گزینه مستلزم \fBplain\fR است\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br استفاده از گزینه \fBswap\fR محتویات پارتیشن نام‌برده‌شده را در طول هر بوت از بین خواهد برد، بنابراین اطمینان حاصل کنید که دستگاه بلاک زیرین به درستی مشخص شده است\&. .sp .5v .RE اضافه‌شده در نسخه 186\&. .RE .PP \fBtcrypt\fR .RS 4 از حالت رمزنگاری TrueCrypt استفاده می‌کند\&. هنگامی که از این حالت استفاده می‌شود، گزینه‌های زیر نادیده گرفته می‌شوند زیرا توسط هدر TrueCrypt روی دستگاه ارائه می‌شوند یا کاربردی ندارند: \fBcipher=\fR, \fBhash=\fR, \fBkeyfile\-offset=\fR, \fBkeyfile\-size=\fR, \fBsize=\fR\&. .sp هنگامی که از این حالت استفاده می‌شود، عبارت عبور از فایل کلید ارائه‌شده در فیلد سوم خوانده می‌شود\&. فقط خط اول این فایل، بدون در نظر گرفتن نویسه خط جدید، خوانده می‌شود\&. .sp توجه داشته باشید که قالب TrueCrypt هم از عبارت عبور و هم از فایل‌های کلید برای اشتقاق یک گذرواژه برای حجم استفاده می‌کند\&. بنابراین، عبارت عبور و تمام فایل‌های کلید باید ارائه شوند\&. برای ارائه مسیر مطلق به تمام فایل‌های کلید از \fBtcrypt\-keyfile=\fR استفاده کنید\&. هنگام استفاده از یک عبارت عبور خالی در ترکیب با یک یا چند فایل کلید، از "/dev/null" به عنوان فایل گذرواژه در فیلد سوم استفاده کنید\&. .sp اضافه‌شده در نسخه 206\&. .RE .PP \fBtcrypt\-hidden\fR .RS 4 از حجم مخفی TrueCrypt استفاده می‌کند\&. این گزینه مستلزم \fBtcrypt\fR است\&. .sp این گزینه حجم مخفی را که درون حجم ارائه‌شده در فیلد دوم قرار دارد نگاشت می‌کند\&. لطفاً توجه داشته باشید که اگر به جای آن حجم بیرونی سوار شود، هیچ محافظتی برای حجم مخفی وجود ندارد\&. برای اطلاعات بیشتر در مورد این محدودیت، \fBcryptsetup\fR(8) را ببینید\&. .sp اضافه‌شده در نسخه 206\&. .RE .PP \fBtcrypt\-keyfile=\fR .RS 4 مسیر مطلق به یک فایل کلید را برای استفاده در یک حجم TrueCrypt مشخص می‌کند\&. این گزینه مستلزم \fBtcrypt\fR است و می‌توان بیش از یک بار برای ارائه چندین فایل کلید از آن استفاده کرد\&. .sp برای آگاهی از رفتار عبارت عبور و فایل‌های کلید هنگام استفاده از حالت رمزنگاری TrueCrypt، مدخل مربوط به \fBtcrypt\fR را ببینید\&. .sp اضافه‌شده در نسخه 206\&. .RE .PP \fBtcrypt\-system\fR .RS 4 از TrueCrypt در حالت رمزنگاری سیستمی استفاده می‌کند\&. این گزینه مستلزم \fBtcrypt\fR است\&. .sp اضافه‌شده در نسخه 206\&. .RE .PP \fBtcrypt\-veracrypt\fR .RS 4 وجود یک حجم VeraCrypt را بررسی می‌کند\&. نرم‌افزار VeraCrypt یک انشعاب (fork) از TrueCrypt است که تا حد زیادی با آن سازگار است، اما از الگوریتم‌های اشتقاق کلید متفاوت و قوی‌تری استفاده می‌کند که بدون این فلگ قابل تشخیص نیستند\&. فعال کردن این گزینه ممکن است بازگشایی را به میزان قابل‌توجهی کند کند، زیرا اشتقاق کلید در VeraCrypt بسیار بیشتر از TrueCrypt زمان می‌برد\&. این گزینه مستلزم \fBtcrypt\fR است\&. .sp اضافه‌شده در نسخه 232\&. .RE .PP \fBveracrypt\-pim=\fR .RS 4 یک مقدار سفارشی برای Personal Iteration Multiplier (PIM) مشخص می‌کند که می‌تواند در محدوده 0\&.\&.2147468 برای حجم‌های استاندارد veracrypt و 0\&.\&.65535 برای حجم‌های سیستمی veracrypt باشد\&. مقدار 0 به معنای پیش‌فرض VeraCrypt خواهد بود\&. این گزینه تنها زمانی مؤثر است که \fBtcrypt\-veracrypt\fR تنظیم شده باشد\&. .sp توجه داشته باشید که VeraCrypt بسته به قدرت گذرواژه و الگوریتم درهم‌سازی (هش) استفاده‌شده برای اشتقاق کلید، حداقل مقدار مجاز PIM را اعمال می‌کند، با این حال \fBveracrypt\-pim=\fR در برابر این محدوده‌ها بررسی نمی‌شود\&. برای اطلاعات بیشتر به مستندات \m[blue]\fBVeracrypt Personal Iterations Multiplier\fR\m[]\&\s-2\u[1]\d\s+2 مراجعه کنید\&. .sp افزوده‌شده در نسخه 254\&. .RE .PP \fBtimeout=\fR .RS 4 مدت زمان مهلت (timeout) را برای درخواست گذرواژه مشخص می‌کند\&. اگر واحدی مشخص نشود، ثانیه در نظر گرفته می‌شود\&. واحدهای پشتیبانی‌شده عبارتند از s, ms, us, min, h, d\&. مقدار مهلت 0 به طور نامحدود منتظر می‌ماند (که پیش‌فرض است)\&. .sp افزوده‌شده در نسخه 186\&. .RE .PP \fBtmp=\fR .RS 4 دستگاه بلوکی رمزگذاری‌شده برای استفاده به عنوان /tmp/ آماده‌سازی خواهد شد؛ و با استفاده از \fBmkfs\fR(8) فرمت می‌شود\&. یک نوع سیستم فایل را به عنوان آرگومان می‌گیرد، مانند "ext4", "xfs" یا "btrfs"\&. اگر آرگومانی مشخص نشود، مقدار پیش‌فرض "ext4" است\&. این گزینه مستلزم \fBplain\fR می‌باشد\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br استفاده از گزینه \fBtmp\fR محتویات پارتیشن نام‌برده را در هر بار بوت نابود خواهد کرد، بنابراین اطمینان حاصل کنید که دستگاه بلوکی زیرین به درستی مشخص شده است\&. .sp .5v .RE افزوده‌شده در نسخه 186\&. .RE .PP \fBtries=\fR .RS 4 حداکثر تعداد دفعاتی که از کاربر برای گذرواژه درخواست می‌شود را مشخص می‌کند\&. مقدار پیش‌فرض 3 است\&. اگر روی 0 تنظیم شود، از کاربر به طور نامحدود برای گذرواژه درخواست می‌شود\&. .sp افزوده‌شده در نسخه 186\&. .RE .PP \fBheadless=\fR .RS 4 یک آرگومان بولی می‌پذیرد که مقدار پیش‌فرض آن false است\&. اگر true باشد، هرگز به صورت تعاملی برای گذرواژه/PIN سؤالی پرسیده نمی‌شود\&. برای سیستم‌های بدون نمایشگر (headless) مفید است\&. .sp افزوده‌شده در نسخه 249\&. .RE .PP \fBverify\fR .RS 4 اگر گذرواژه رمزگذاری از کنسول خوانده شود، برای جلوگیری از خطاهای تایپی باید دو بار وارد شود\&. .sp افزوده‌شده در نسخه 186\&. .RE .PP \fBpassword\-echo=yes|no|masked\fR .RS 4 کنترل می‌کند که آیا گذرواژه‌ها یا PINهای توکن امنیتی که از کنسول خوانده می‌شوند نمایش داده شوند (echo شوند) یا خیر\&. یک مقدار بولی یا رشته ویژه "masked" را می‌گیرد\&. مقدار پیش‌فرض \fBpassword\-echo=masked\fR است\&. .sp اگر فعال باشد، نویسه‌های تایپ‌شده دقیقاً همان‌طور که هستند نمایش داده می‌شوند\&. اگر غیرفعال باشد، نویسه‌های تایپ‌شده به هیچ شکلی نمایش داده نمی‌شوند و کاربر هیچ بازخوردی در ورودی خود دریافت نمی‌کند\&. اگر روی "masked" تنظیم شود، به ازای هر نویسه تایپ‌شده یک ستاره ("*") نمایش داده می‌شود\&. صرف‌نظر از این‌که کدام حالت انتخاب شده باشد، اگر کاربر در هر زمان کلید تب ("↹") را بزند، یا قبل از وارد کردن هر داده دیگری کلید backspace ("⌫") را بفشارد، نمایش بازخورد (echo) خاموش می‌شود\&. .sp افزوده‌شده در نسخه 249\&. .RE .PP \fBpassword\-cache=yes|no|read\-only\fR .RS 4 کنترل می‌کند که آیا از حافظه نهان (کَش) برای گذرواژه‌ها یا PINهای توکن امنیتی استفاده شود یا خیر\&. یک مقدار بولی یا رشته ویژه "read\-only" را می‌گیرد\&. مقدار پیش‌فرض "yes" است\&. .sp اگر روی "read\-only" تنظیم شود، جاکلیدی (keyring) هسته قبل از درخواست تعاملی برای یافتن یک گذرواژه/PIN بررسی می‌شود\&. اگر روی "yes" تنظیم شود، علاوه بر بررسی جاکلیدی، هر گذرواژه/PIN که به صورت تعاملی وارد شده است در جاکلیدی با مهلت زمانی 2\&.5 دقیقه قبل از پاکسازی ذخیره می‌شود\&. .sp توجه داشته باشید که این گزینه برای توکن‌های امنیتی PKCS#11 مجاز نیست\&. دلیل آن این است که توکن‌های امنیتی PKCS#11 معمولاً طوری پیکربندی می‌شوند که پس از چندین بار وارد کردن PIN نامعتبر قفل شوند، بنابراین استفاده از حافظه نهان ممکن است ناخواسته توکن را قفل کند\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fBpkcs11\-uri=\fR .RS 4 یا مقدار ویژه "auto" یا یک \m[blue]\fBRFC7512 PKCS#11 URI\fR\m[]\&\s-2\u[2]\d\s+2 را می‌پذیرد که به یک کلید خصوصی اشاره دارد که برای رمزگشایی کلید رمزگذاری‌شده مشخص‌شده در ستون سوم خط استفاده می‌شود\&. این برای بازگشایی قفل حجم‌های رمزگذاری‌شده از طریق توکن‌های امنیتی یا کارت‌های هوشمند سازگار با PKCS#11 مفید است\&. برای نمونه‌ای از نحوه راه‌اندازی این سازوکار برای بازگشایی قفل یک حجم LUKS2 با یک توکن امنیتی YubiKey به بخش زیر مراجعه کنید\&. .sp اگر به صورت "auto" مشخص شود، حجم باید از نوع LUKS2 باشد و متادیتای توکن امنیتی PKCS#11 را در بخش توکن JSON مربوط به LUKS2 خود داشته باشد\&. در این حالت، شناسه URI و کلید رمزگذاری‌شده به طور خودکار از هدر توکن JSON مربوط به LUKS2 خوانده می‌شوند\&. از \fBsystemd-cryptenroll\fR(1) به عنوان ابزاری ساده برای ثبت توکن‌های امنیتی یا کارت‌های هوشمند PKCS#11 به روشی سازگار با "auto" استفاده کنید\&. در این حالت، ستون سوم خط باید خالی بماند (یعنی به صورت "\-" مشخص شود)\&. .sp شناسه URI مشخص‌شده می‌تواند مستقیماً به یک کلید خصوصی ذخیره‌شده روی یک توکن یا متناوباً فقط به یک اسلات یا توکن اشاره کند، که در این صورت جستجویی برای یافتن یک کلید خصوصی مناسب انجام خواهد شد\&. در این حالت، اگر چندین شیء مناسب یافت شود، توکن رد می‌شود\&. فایل کلید پیکربندی‌شده در ستون سوم خط به همان صورتی که هست (یعنی در فرمت باینری، پردازش‌نشده) استفاده می‌شود\&. کلید رمزگشایی‌شده حاصل (برای RSA) یا راز مشترک مشتق‌شده (برای ECC) قبل از اینکه برای بازگشایی قفل حجم LUKS استفاده شود، کدگذاری Base64 می‌شود\&. .sp از \fBsystemd\-cryptenroll \-\-pkcs11\-token\-uri=list\fR برای فهرست کردن تمام توکن‌های امنیتی PKCS#11 مناسب که در حال حاضر متصل هستند، همراه با شناسه‌های URI آن‌ها استفاده کنید\&. .sp توجه داشته باشید که بسیاری از توکن‌های امنیتی جدیدتر که ممکن است به عنوان توکن امنیتی PKCS#11 استفاده شوند، معمولاً استاندارد جدیدتر و ساده‌تر FIDO2 را نیز پیاده‌سازی می‌کنند\&. استفاده از \fBfido2\-device=\fR (توضیح داده شده در زیر) را برای ثبت آن از طریق FIDO2 در نظر بگیرید\&. توجه داشته باشید که یک توکن امنیتی ثبت‌شده از طریق PKCS#11 نمی‌تواند برای بازگشایی قفل حجم از طریق FIDO2 استفاده شود، مگر اینکه از طریق FIDO2 نیز ثبت شده باشد، و برعکس\&. .sp افزوده‌شده در نسخه 245\&. .RE .PP \fBfido2\-device=\fR .RS 4 یا مقدار ویژه "auto" یا مسیر یک گره دستگاهی "hidraw" (مانند /dev/hidraw1) را می‌پذیرد که به یک توکن امنیتی FIDO2 اشاره دارد که افزونه "hmac\-secret" را پیاده‌سازی می‌کند (اکثر توکن‌های امنیتی سخت‌افزاری فعلی آن را دارند)\&. برای نمونه‌ای از نحوه راه‌اندازی این سازوکار برای بازگشایی قفل یک حجم رمزگذاری‌شده با یک توکن امنیتی FIDO2 به بخش زیر مراجعه کنید\&. .sp اگر به صورت "auto" مشخص شود، دستگاه توکن FIDO2 هنگام اتصال به طور خودکار کشف می‌شود\&. .sp بازگشایی قفل حجم با FIDO2 برای عملکرد خود نیاز دارد که یک هش شناسه کلاینت (CID) از طریق \fBfido2\-cid=\fR (زیر را ببینید) پیکربندی شود و کلیدی به قابلیت HMAC توکن امنیتی ارسال شود (پیکربندی‌شده در ستون سوم خط)\&. اگر پیکربندی نشود و حجم از نوع LUKS2 باشد، در عوض CID و کلید از متادیتای توکن JSON مربوط به LUKS2 خوانده می‌شوند\&. از \fBsystemd-cryptenroll\fR(1) به عنوان ابزاری ساده برای ثبت توکن‌های امنیتی FIDO2 برای حجم‌های LUKS2 استفاده کنید\&. .sp از \fBsystemd\-cryptenroll \-\-fido2\-device=list\fR برای فهرست کردن تمام توکن‌های امنیتی FIDO2 مناسب که در حال حاضر متصل هستند، همراه با گره‌های دستگاهی آن‌ها استفاده کنید\&. .sp این گزینه سازوکار زیر را پیاده‌سازی می‌کند: کلید پیکربندی‌شده از طریق تابع درهم‌سازی کلیددار HMAC که دستگاه FIDO2 پیاده‌سازی می‌کند، و با یک کلید مخفی تعبیه‌شده در دستگاه کلیدگذاری شده است، هش می‌شود\&. مقدار هش حاصل با Base64 کدگذاری شده و برای بازگشایی قفل حجم LUKS2 استفاده می‌شود\&. از آنجایی که استخراج کلید مخفی از توکن سخت‌افزاری نباید امکان‌پذیر باشد، با در دست داشتن کلید پیکربندی‌شده \(em بدون در دست داشتن توکن سخت‌افزاری \(em بازیابی کلید هش‌شده نباید ممکن باشد\&. .sp توجه داشته باشید که بسیاری از توکن‌های امنیتی که FIDO2 را پیاده‌سازی می‌کنند، PKCS#11 را نیز پیاده‌سازی می‌کنند که برای بازگشایی قفل حجم‌ها از طریق گزینه \fBpkcs11\-uri=\fR که در بالا توضیح داده شد مناسب است\&. معمولاً استاندارد جدیدتر و ساده‌تر FIDO2 ترجیح داده می‌شود\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBfido2\-cid=\fR .RS 4 یک شناسه کلاینت (CID) با کدگذاری Base64 از FIDO2 را برای استفاده در عملیات بازگشایی قفل FIDO2 می‌گیرد\&. اگر مشخص شود، اما \fBfido2\-device=\fR مشخص نشده باشد، \fBfido2\-device=auto\fR استنباط می‌شود\&. اگر \fBfido2\-device=\fR استفاده شود اما \fBfido2\-cid=\fR مشخص نشده باشد، حجم باید از نوع LUKS2 باشد و CID از هدر توکن JSON مربوط به LUKS2 خوانده می‌شود\&. از \fBsystemd-cryptenroll\fR(1) برای ثبت یک توکن FIDO2 در هدر LUKS2 به گونه‌ای سازگار با این حالت خودکار استفاده کنید\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBfido2\-rp=\fR .RS 4 یک رشته می‌گیرد و Relying Party (rp) در FIDO2 را برای عملیات بازگشایی قفل FIDO2 پیکربندی می‌کند\&. اگر مشخص نشود، "io\&.systemd\&.cryptsetup" استفاده می‌شود، مگر اینکه هدر توکن JSON مربوط به LUKS2 حاوی مقدار متفاوتی باشد\&. معمولاً نباید نیازی به بازنویسی این مقدار باشد\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBfido2\-pin=\fR .RS 4 کنترل می‌کند که آیا هنگام بازگشایی قفل حجم، کاربر ملزم به وارد کردن PIN باشد یا خیر (قابلیت "clientPin" در FIDO2)\&. این گزینه فقط در حالت دستی اعمال می‌شود، یعنی زمانی که گزینه \fBfido2\-cid=\fR تنظیم شده باشد\&. مقدار پیش‌فرض نه true است و نه false، بلکه رفتار \fBv248\fR است، یعنی: ابتدا بدون PIN تلاش می‌شود، اما اگر توکن گزارش دهد که PIN لازم است، دوباره با درخواست PIN تلاش می‌شود\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fBfido2\-up=\fR .RS 4 کنترل می‌کند که آیا هنگام بازگشایی قفل حجم، کاربر ملزم به تایید حضور (لمس فیزیکی توکن، قابلیت "up" در FIDO2) باشد یا خیر\&. این گزینه فقط در حالت دستی اعمال می‌شود، یعنی زمانی که گزینه \fBfido2\-cid=\fR تنظیم شده باشد\&. مقدار پیش‌فرض نه true است و نه false، بلکه رفتار \fBv248\fR است، یعنی: ابتدا بدون UP تلاش می‌شود، اما اگر توکن گزارش دهد که UP لازم است، دوباره با فعال بودن UP تلاش می‌شود\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fBfido2\-uv=\fR .RS 4 کنترل می‌کند که آیا هنگام بازگشایی قفل حجم، اعتبارسنجی کاربر (قابلیت "uv" در FIDO2) الزامی باشد یا خیر\&. این گزینه فقط در حالت دستی اعمال می‌شود، یعنی زمانی که گزینه \fBfido2\-cid=\fR تنظیم شده باشد\&. مقدار پیش‌فرض نه true است و نه false، بلکه رفتار \fBv248\fR است، یعنی: کلاً از پیکربندی UV صرف‌نظر می‌شود\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fBtpm2\-device=\fR .RS 4 یا مقدار ویژه "auto" یا مسیر یک گره دستگاهی (مانند /dev/tpmrm0) را می‌پذیرد که به یک تراشه امنیتی TPM2 اشاره دارد\&. برای نمونه‌ای از نحوه راه‌اندازی این سازوکار برای بازگشایی قفل یک حجم رمزگذاری‌شده با تراشه TPM2 به بخش زیر مراجعه کنید\&. .sp از \fBtpm2\-pcrs=\fR (زیر را ببینید) برای پیکربندی مجموعه‌ای از PCRهای TPM2 جهت متصل کردن بازگشایی قفل حجم به آن‌ها استفاده کنید\&. از \fBsystemd-cryptenroll\fR(1) به عنوان ابزاری ساده برای ثبت تراشه‌های امنیتی TPM2 در حجم‌های LUKS2 استفاده کنید\&. .sp اگر به صورت "auto" مشخص شود، دستگاه TPM2 به طور خودکار کشف می‌شود\&. از \fBsystemd\-cryptenroll \-\-tpm2\-device=list\fR برای فهرست کردن تمام دستگاه‌های TPM2 مناسب در دسترس، همراه با گره‌های دستگاهی آن‌ها استفاده کنید\&. .sp این گزینه سازوکار زیر را پیاده‌سازی می‌کند: هنگام ثبت یک دستگاه TPM2 از طریق \fBsystemd\-cryptenroll\fR روی یک حجم LUKS2، یک کلید تصادفی برای بازگشایی قفل حجم روی میزبان ایجاد شده و در تراشه TPM2 بارگذاری می‌شود، جایی که با یک جفت‌کلید نامتقارن "اصلی" مشتق‌شده از کلید "seed" داخلی TPM2 رمزگذاری می‌شود\&. نه کلید seed و نه کلید اصلی هرگز اجازه خروج از تراشه TPM2 را ندارند \(em با این حال، کلید تصادفی که اکنون رمزگذاری شده است، می‌تواند خارج شود\&. این کلید در هدر توکن JSON مربوط به حجم LUKS2 ذخیره می‌شود\&. هنگام بازگشایی قفل حجم رمزگذاری‌شده، جفت‌کلید اصلی دوباره روی تراشه TPM2 تولید می‌شود (که تا زمانی که کلید seed تراشه به درستی توسط تراشه TPM2 نگهداری شود کار می‌کند)، و سپس برای رمزگشایی (روی تراشه TPM2) کلید رمزگذاری‌شده موجود در هدر توکن JSON مربوط به حجم LUKS2 که در زمان ثبت در آنجا ذخیره شده بود، استفاده می‌شود\&. کلید رمزگشایی‌شده حاصل سپس برای باز کردن قفل حجم استفاده می‌شود\&. هنگامی که کلید تصادفی رمزگذاری می‌شود، مقادیر فعلی PCRهای انتخاب‌شده (زیر را ببینید) در عملیات لحاظ می‌شوند، به طوری که وضعیت‌های متفاوت PCR به کلیدهای رمزگذاری‌شده متفاوتی منجر می‌شوند و کلید رمزگشایی‌شده تنها در صورتی قابل بازیابی است که همان وضعیت PCR دوباره ایجاد شود\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBtpm2\-pcrs=\fR .RS 4 فهرستی جداشده با "+" از شناسه‌های عددی TPM2 PCR (یعنی «Platform Configuration Register») را می‌پذیرد تا بازگشایی قفل حجم TPM2 را به آن‌ها متصل (bind) کند\&. این گزینه تنها زمانی مفید است که متادیتای ثبت TPM2 از قبل در هدر توکن JSON مربوط به LUKS2 وجود نداشته باشد (روشی که \fBsystemd\-cryptenroll\fR آن را در آنجا می‌نویسد)\&. در صورت عدم استفاده (و اگر متادیتایی در هدر توکن JSON مربوط به LUKS2 آن را تعریف نکرده باشد)، به طور پیش‌فرض روی فهرستی با یک ورودی تکی تنظیم می‌شود: PCR 7\&. یک رشته خالی اختصاص دهید تا سیاستی رمزگذاری شود که کلید را به هیچ PCR متصل نمی‌کند، و کلید را صرف‌نظر از وضعیت فعلی PCR برای برنامه‌های محلی در دسترس قرار می‌دهد\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBtpm2\-pin=\fR .RS 4 یک آرگومان بولی می‌پذیرد که مقدار پیش‌فرض آن "false" است\&. کنترل می‌کند که آیا علاوه بر PCRها، بازگشایی قفل حجم TPM2 به یک PIN نیز متصل شود یا خیر\&. به همین ترتیب، این گزینه تنها زمانی مفید است که متادیتای ثبت TPM2 در دسترس نباشد\&. .sp افزوده‌شده در نسخه 251\&. .RE .PP \fBtpm2\-signature=\fR .RS 4 یک مسیر مطلق به فایل امضای JSON مربوط به TPM2 PCR را می‌گیرد، همان‌طور که توسط ابزار \fBsystemd-measure\fR(1) تولید می‌شود\&. این اجازه می‌دهد تا حجم‌های LUKS2 به هر مقادیر PCR که برای آن‌ها امضای معتبری منطبق با کلید عمومی مشخص‌شده در زمان ثبت کلید ارائه شود، قفل شوند\&. برای جزئیات مربوط به ثبت کلیدهای عمومی TPM2 PCR به \fBsystemd-cryptenroll\fR(1) مراجعه کنید\&. اگر این گزینه مشخص نشده باشد اما تلاشی برای بازگشایی قفل یک حجم LUKS2 با یک ثبت TPM2 PCR امضاشده صورت گیرد، یک فایل امضای مناسب با نام tpm2\-pcr\-signature\&.json به ترتیب در /etc/systemd/، /run/systemd/ و /usr/lib/systemd/ جستجو می‌شود\&. .sp افزوده‌شده در نسخه 252\&. .RE .PP \fBtpm2\-pcrlock=\fR .RS 4 یک مسیر مطلق به فایل خط‌مشی pcrlock مربوط به TPM2 را می‌گیرد، همان‌طور که توسط ابزار \fBsystemd-pcrlock\fR(8) تولید می‌شود\&. این اجازه می‌دهد تا حجم‌های LUKS2 به یک خط‌مشی محلی از مقادیر مجاز PCR همراه با متغیرها قفل شوند\&. برای جزئیات ثبت خط‌مشی‌های pcrlock مربوط به TPM2 به \fBsystemd-cryptenroll\fR(1) مراجعه کنید\&. اگر این گزینه مشخص نشود اما تلاشی برای بازگشایی قفل یک حجم LUKS2 با یک ثبت pcrlock مربوط به TPM2 صورت گیرد، یک فایل امضای مناسب با نام pcrlock\&.json به ترتیب در /run/systemd/ و /var/lib/systemd/ جستجو می‌شود\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fBtpm2\-measure\-pcr=\fR .RS 4 کنترل می‌کند که آیا کلید حجم مربوط به حجم رمزگذاری‌شده در یک PCR از TPM2 اندازه‌گیری (سنجش) شود یا خیر\&. اگر روی "no" تنظیم شود (که پیش‌فرض است) هیچ افزونه PCR انجام نمی‌شود\&. اگر روی "yes" تنظیم شود، کلید حجم در PCR 15 اندازه‌گیری می‌شود\&. اگر روی یک عدد صحیح ده‌دهی در محدوده 0\&...23 تنظیم شود، کلید حجم در PCR مشخص‌شده سنجیده می‌شود\&. کلید حجم به همراه نام حجم فعال‌شده و UUID آن اندازه‌گیری می‌شود\&. این قابلیت به ویژه برای حجم رمزگذاری‌شده پشتیبان سیستم فایل ریشه مفید است، زیرا پس از آن اجازه می‌دهد اشیاء بعدی TPM به طور امن به سیستم فایل ریشه و در نتیجه به نصب خاص سیستم متصل شوند\&. .sp افزوده‌شده در نسخه 253\&. .RE .PP \fBtpm2\-measure\-bank=\fR .RS 4 یک یا چند بانک PCR از TPM2 را برای سنجش کلید حجم در آن، همان‌طور که با \fBtpm2\-measure\-pcr=\fR در بالا پیکربندی شده است، انتخاب می‌کند\&. ممکن است چندین بانک مشخص شود که با نویسه دونقطه (:) از هم جدا می‌شوند\&. در صورت عدم تعیین، بانک‌های موجود و استفاده‌شده را به طور خودکار تعیین می‌کند\&. یک نام چکیده پیام (مانند "sha1", "sha256", \&...) را به عنوان آرگومان برای شناسایی بانک انتظار دارد\&. .sp افزوده‌شده در نسخه 253\&. .RE .PP \fBtpm2\-measure\-keyslot\-nvpcr=\fR .RS 4 کنترل می‌کند که آیا اطلاعات مربوط به اسلات کلید LUKS استفاده‌شده برای بازگشایی قفل در یک نمایه غیرفرار TPM2 (یعنی nvindex در حالت PCR) اندازه‌گیری شود یا خیر\&. یک آرگومان بولی یا یک نام NvPCR را می‌پذیرد\&. اگر روی false یا یک رشته خالی تنظیم شود (که پیش‌فرض است) هیچ توسعه‌ای در TPM2 nvindex انجام نمی‌شود، در غیر این صورت اطلاعات اسلات کلید در یک nvindex با نام مشخص‌شده اندازه‌گیری می‌شود که در صورت نیاز تخصیص می‌یابد\&. اگر روی true تنظیم شود، مقدار پیش‌فرض توصیه‌شده "cryptsetup" به عنوان NvPCR انتخاب می‌شود\&. نمایه اسلات و سازوکار بازگشایی استفاده‌شده (یعنی "tpm2", "fido2", "pkcs11") همراه با نام حجم فعال‌شده و UUID آن اندازه‌گیری می‌شوند\&. .sp افزوده‌شده در نسخه 259\&. .RE .PP \fBtoken\-timeout=\fR .RS 4 حداکثر مدت زمان انتظار برای حاضر شدن دستگاه‌های امنیتی پیکربندی‌شده (یعنی FIDO2, PKCS#11, TPM2) را مشخص می‌کند\&. یک مقدار زمانی بر حسب ثانیه می‌گیرد (اما سایر واحدهای زمانی نیز می‌توانند مشخص شوند، برای فرمت‌های پشتیبانی‌شده به \fBsystemd.time\fR(7) مراجعه کنید)\&. مقدار پیش‌فرض 30s است\&. هنگامی که مهلت مشخص‌شده به پایان برسد، احراز هویت از طریق گذرواژه امتحان می‌شود\&. توجه داشته باشید که این مهلت زمانی برای انتظار جهت حاضر شدن دستگاه امنیتی اعمال می‌شود \(em برای اعلان درخواست PIN دستگاه (در صورت نیاز) یا موارد مشابه اعمال نمی‌شود\&. مقدار 0 را برای خاموش کردن مهلت زمانی و انتظار همیشگی ارسال کنید\&. .sp افزوده‌شده در نسخه 250\&. .RE .PP \fBtry\-empty\-password=\fR .RS 4 یک آرگومان بولی می‌پذیرد\&. اگر فعال باشد، درست قبل از درخواست گذرواژه از کاربر، ابتدا تلاشی برای بازگشایی قفل حجم با یک گذرواژه خالی صورت می‌گیرد\&. این برای سیستم‌هایی مفید است که با یک حجم رمزگذاری‌شده راه‌اندازی می‌شوند که تنها یک گذرواژه خالی برای آن تنظیم شده است، و قرار است در اولین بوت اما پس از فعال‌سازی با یک گذرواژه مناسب جایگزین شود\&. .sp افزوده‌شده در نسخه 246\&. .RE .PP \fBx\-systemd\&.device\-timeout=\fR .RS 4 مشخص می‌کند که systemd چه مدت باید منتظر ظاهر شدن یک دستگاه بلوکی بماند قبل از اینکه از آن ورودی صرف‌نظر کند\&. آرگومان، زمانی بر حسب ثانیه یا واحدهای صریحاً مشخص‌شده از "s", "min", "h", "ms" است\&. .sp افزوده‌شده در نسخه 216\&. .RE .PP \fBx\-initrd\&.attach\fR .RS 4 این دستگاه بلوکی رمزگذاری‌شده را در initrd راه‌اندازی می‌کند، مشابه واحدهای \fBsystemd.mount\fR(5) که با \fBx\-initrd\&.mount\fR علامت‌گذاری شده‌اند\&. .sp اگرچه علامت‌گذاری ورودی سوار کردن (mount) سیستم فایل ریشه با \fBx\-initrd\&.mount\fR ضروری نیست، اما \fBx\-initrd\&.attach\fR همچنان برای دستگاه بلوکی رمزگذاری‌شده حاوی سیستم فایل ریشه توصیه می‌شود، زیرا در غیر این صورت systemd در حین خاموش شدن عادی سیستم در حالی که هنوز در حال استفاده است، تلاش خواهد کرد دستگاه را جدا کند\&. با این گزینه، دستگاه همچنان جدا می‌شود اما بعداً پس از پیاده شدن (unmount) سیستم فایل ریشه صورت می‌گیرد\&. .sp تمامی دستگاه‌های بلوکی رمزگذاری‌شده دیگر که حاوی سیستم فایل‌های سوارشده در initrd هستند، باید از این گزینه استفاده کنند\&. .sp افزوده‌شده در نسخه 245\&. .RE .PP \fBfixate\-volume\-key=\fR .RS 4 هش مورد انتظار کلید حجم را تثبیت می‌کند\&. .sp در موارد خاص، مثلاً برای حجم‌های LUKS که کلید در TPM2 مهر و موم (seal) شده است، ممکن است برای ارائه این تضمین که حجم در حال اتصال همان حجمی است که قبلاً ایجاد شده بود، لازم باشد\&. \fBfixate\-volume\-key=\fR می‌تواند برای تنظیم هش مورد انتظار کلید حجم و رد اتصال حجم در صورت داشتن هش متفاوت استفاده شود\&. هش مورد انتظار با خلاصه‌ای مطابقت دارد که هنگام استفاده از \fBtpm2\-measure\-pcr=\fR در بانک sha256 PCR تراشه TPM2 اندازه‌گیری می‌شود\&. .sp برای حجم‌های LUKS تازه ایجادشده، هش مورد انتظار می‌تواند توسط \fBsystemd-repart\fR(8) تولید شود\&. برای جزئیات بیشتر، توضیحات \fBEncryptedVolume=\fR را در \fBrepart.d\fR(5) ببینید\&. .sp افزوده‌شده در نسخه 260\&. .RE .PP در اوایل بوت و هنگامی که پیکربندی مدیر سیستم دوباره بارگذاری می‌شود، این فایل توسط \fBsystemd-cryptsetup-generator\fR(8) به واحدهای بومی systemd ترجمه می‌شود\&. .SH "فایلهای کلید AF_UNIX (AF_UNIX KEY FILES)" .PP اگر مسیر فایل کلید (همان‌طور که در ستون سوم ورودی‌های /etc/crypttab مشخص شده است، بالا را ببینید) به یک سوکت جریانی \fBAF_UNIX\fR در سیستم فایل اشاره کند، کلید با اتصال به سوکت و خواندن کلید از این اتصال به دست می‌آید\&. این اتصال از یک نام سوکت \fBAF_UNIX\fR در فضای نام انتزاعی (abstract namespace) برقرار می‌شود؛ برای جزئیات به \fBunix\fR(7) مراجعه کنید\&. نام سوکت مبدأ بر اساس فرمت زیر انتخاب می‌شود: .sp .if n \{\ .RS 4 .\} .nf \fBNUL\fR \fIRANDOM\fR /cryptsetup/ \fIVOLUME\fR .fi .if n \{\ .RE .\} .PP به عبارت دیگر: یک بایت \fBNUL\fR (همان‌طور که برای سوکت‌های فضای نام انتزاعی لازم است)، به دنبال آن یک رشته تصادفی (تنها متشکل از نویسه‌های الفبایی\-عددی)، به دنبال آن رشته دقیق "/cryptsetup/" و سپس نام حجمی که کلید برای آن دریافت می‌شود\&. به عنوان مثال، برای حجم "myvol": .sp .if n \{\ .RS 4 .\} .nf \e0d7067f78d9827418/cryptsetup/myvol .fi .if n \{\ .RE .\} .PP سرویس‌هایی که به سوکت جریانی \fBAF_UNIX\fR گوش می‌دهند می‌توانند نام سوکت مبدأ را با \fBgetpeername\fR(2) استعلام کنند و از این برای تعیین اینکه کدام کلید باید ارسال شود استفاده نمایند، که به یک سوکت شنونده واحد اجازه می‌دهد کلیدهای چندین حجم را ارائه دهد\&. اگر منطق PKCS#11 استفاده شود (بالا را ببینید)، نام مبدأ سوکت به روشی مشابه انتخاب می‌شود، با این تفاوت که رشته دقیق "/cryptsetup\-pkcs11/" استفاده می‌شود\&. و به طور مشابه برای FIDO2 (رشته "/cryptsetup\-fido2\-salt/") و TPM2 (رشته "/cryptsetup\-tpm2/")\&. یک جزء مسیر متفاوت استفاده می‌شود تا سرویس‌های ارائه‌دهنده داده‌های کلید بدانند که کلید محرمانه مستقیماً درخواست نشده است، بلکه یک کلید رمزگذاری‌شده درخواست شده که از طریق منطق PKCS#11/FIDO2/TPM2 برای دستیابی به کلید محرمانه نهایی رمزگشایی خواهد شد\&. .SH "مثالها (EXAMPLES)" .PP \fBمثال\ \&1.\ \&نمونه /etc/crypttab\fR .PP راه‌اندازی چهار دستگاه بلوکی رمزگذاری‌شده\&. یکی با استفاده از LUKS برای ذخیره‌سازی معمولی، دیگری برای استفاده به عنوان یک دستگاه swap و دو حجم TrueCrypt\&. برای دستگاه چهارم، رشته گزینه‌ها به صورت دو گزینه "cipher=xchacha12,aes\-adiantum\-plain64" و "keyfile\-timeout=10s" تفسیر می‌شود\&. .sp .if n \{\ .RS 4 .\} .nf luks UUID=2505567a\-9e27\-4efe\-a4d5\-15ad146c258b swap /dev/sda7 /dev/urandom swap truecrypt /dev/sda2 /etc/container_password tcrypt hidden /mnt/tc_hidden /dev/null tcrypt\-hidden,tcrypt\-keyfile=/etc/keyfile external /dev/sda3 keyfile:LABEL=keydev keyfile\-timeout=10s,cipher=xchacha12\e,aes\-adiantum\-plain64 .fi .if n \{\ .RE .\} .PP \fBمثال\ \&2.\ \&نمونه بازگشایی قفل حجم با PKCS#11 مبتنی بر Yubikey\fR .PP منطق PKCS#11 امکان اتصال هر توکن امنیتی سازگار را که قادر به ذخیره کلیدهای رمزنگاری RSA یا EC باشد، برای باز کردن قفل یک حجم رمزگذاری‌شده فراهم می‌کند\&. در اینجا نمونه‌ای از نحوه راه‌اندازی یک توکن امنیتی Yubikey برای این منظور روی یک حجم LUKS2 با استفاده از \fBykmap\fR(1) از پروژه yubikey\-manager برای راه‌اندازی اولیه توکن و \fBsystemd-cryptenroll\fR(1) برای افزودن آن به حجم LUKS2 آورده شده است: .sp .if n \{\ .RS 4 .\} .nf # SPDX\-License\-Identifier: MIT\-0 # Destroy any old key on the Yubikey (careful!) ykman piv reset # Generate a new private/public key pair on the device, store the public key in # \*(Aqpubkey\&.pem\*(Aq\&. ykman piv generate\-key \-a RSA2048 9d pubkey\&.pem # Create a self\-signed certificate from this public key, and store it on the # device\&. The "subject" should be an arbitrary user\-chosen string to identify # the token with\&. ykman piv generate\-certificate \-\-subject "Knobelei" 9d pubkey\&.pem # We do not need the public key anymore, let\*(Aqs remove it\&. Since it is not # security sensitive we just do a regular "rm" here\&. rm pubkey\&.pem # Enroll the freshly initialized security token in the LUKS2 volume\&. Replace # /dev/sdXn by the partition to use (e\&.g\&. /dev/sda1)\&. sudo systemd\-cryptenroll \-\-pkcs11\-token\-uri=auto /dev/sdXn # Test: Let\*(Aqs run systemd\-cryptsetup to test if this all worked\&. sudo systemd\-cryptsetup attach mytest /dev/sdXn none pkcs11\-uri=auto # If that worked, let\*(Aqs now add the same line persistently to /etc/crypttab, # for the future\&. We do not want to use the (unstable) /dev/sdX name, so let\*(Aqs # figure out a stable link: udevadm info \-q symlink \-r /dev/sdXn # Now add the line using the by\-uuid symlink to /etc/crypttab: sudo bash \-c \*(Aqecho "mytest /dev/disk/by\-uuid/\&.\&.\&. none pkcs11\-uri=auto" >>/etc/crypttab\*(Aq # Depending on your distribution and encryption setup, you may need to manually # regenerate your initramfs to be able to use a Yubikey / PKCS#11 token to # unlock the partition during early boot\&. # More information at https://unix\&.stackexchange\&.com/a/705809 # On Fedora based systems: sudo dracut \-\-force # On Debian based systems: sudo update\-initramfs \-u .fi .if n \{\ .RE .\} .PP چند نکته در مورد موارد بالا: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ما از RSA2048 استفاده می‌کنیم که طولانی‌ترین اندازه کلیدی است که Yubikeyهای فعلی پشتیبانی می‌کنند .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ما از اسلات کلید 9d در Yubikey استفاده می‌کنیم، زیرا ظاهراً این اسلات کلیدی است که باید برای اهداف رمزگشایی استفاده شود، به \m[blue]\fBYubico PIV certificate slots\fR\m[]\&\s-2\u[3]\d\s+2 مراجعه کنید\&. .RE .PP \fBمثال\ \&3.\ \&نمونه بازگشایی قفل حجم با FIDO2\fR .PP منطق FIDO2 امکان استفاده از هر توکن امنیتی سازگار با FIDO2 را که افزونه "hmac\-secret" را پیاده‌سازی می‌کند، برای بازگشایی قفل یک حجم رمزگذاری‌شده فراهم می‌سازد\&. در اینجا نمونه‌ای از نحوه راه‌اندازی یک توکن امنیتی FIDO2 برای این منظور در یک حجم LUKS2 با استفاده از \fBsystemd-cryptenroll\fR(1) آورده شده است: .sp .if n \{\ .RS 4 .\} .nf # SPDX\-License\-Identifier: MIT\-0 # Enroll the security token in the LUKS2 volume\&. Replace /dev/sdXn by the # partition to use (e\&.g\&. /dev/sda1)\&. sudo systemd\-cryptenroll \-\-fido2\-device=auto /dev/sdXn # Test: Let\*(Aqs run systemd\-cryptsetup to test if this worked\&. sudo systemd\-cryptsetup attach mytest /dev/sdXn none fido2\-device=auto # If that worked, let\*(Aqs now add the same line persistently to /etc/crypttab, # for the future\&. We do not want to use the (unstable) /dev/sdX name, so let\*(Aqs # figure out a stable link: udevadm info \-q symlink \-r /dev/sdXn # Now add the line using the by\-uuid symlink to /etc/crypttab: sudo bash \-c \*(Aqecho "mytest /dev/disk/by\-uuid/\&.\&.\&. none fido2\-device=auto" >>/etc/crypttab\*(Aq # Depending on your distribution and encryption setup, you may need to manually # regenerate your initramfs to be able to use a FIDO2 device to unlock the # partition during early boot\&. # More information at https://unix\&.stackexchange\&.com/a/705809 # On Fedora based systems: sudo dracut \-\-force # On Debian based systems: sudo update\-initramfs \-u .fi .if n \{\ .RE .\} .PP \fBمثال\ \&4.\ \&نمونه بازگشایی قفل حجم با TPM2\fR .PP منطق TPM2 اجازه می‌دهد از هر تراشه TPM2 که توسط هسته لینوکس پشتیبانی می‌شود برای باز کردن قفل یک حجم رمزگذاری‌شده استفاده کنید\&. در اینجا نمونه‌ای از نحوه راه‌اندازی یک تراشه TPM2 برای این منظور در یک حجم LUKS2 با استفاده از \fBsystemd-cryptenroll\fR(1) آورده شده است: .sp .if n \{\ .RS 4 .\} .nf # SPDX\-License\-Identifier: MIT\-0 # Enroll the TPM2 security chip in the LUKS2 volume, and bind it to PCR 7 # only\&. Replace /dev/sdXn by the partition to use (e\&.g\&. /dev/sda1)\&. sudo systemd\-cryptenroll \-\-tpm2\-device=auto \-\-tpm2\-pcrs=7 /dev/sdXn # Test: Let\*(Aqs run systemd\-cryptsetup to test if this worked\&. sudo systemd\-cryptsetup attach mytest /dev/sdXn none tpm2\-device=auto # If that worked, let\*(Aqs now add the same line persistently to /etc/crypttab, # for the future\&. We do not want to use the (unstable) /dev/sdX name, so let\*(Aqs # figure out a stable link: udevadm info \-q symlink \-r /dev/sdXn # Now add the line using the by\-uuid symlink to /etc/crypttab: sudo bash \-c \*(Aqecho "mytest /dev/disk/by\-uuid/\&.\&.\&. none tpm2\-device=auto" >>/etc/crypttab\*(Aq # And now let\*(Aqs check that automatic unlocking works: sudo systemd\-cryptsetup detach mytest sudo systemctl daemon\-reload sudo systemctl start cryptsetup\&.target systemctl is\-active systemd\-cryptsetup@mytest\&.service # Once we have the device which will be unlocked automatically, we can use it\&. # Usually we would create a file system and add it to /etc/fstab: sudo mkfs\&.ext4 /dev/mapper/mytest # This prints a \*(AqFilesystem UUID\*(Aq, which we can use as a stable name: sudo bash \-c \*(Aqecho "/dev/disk/by\-uuid/\&.\&.\&. /var/mytest ext4 defaults,x\-systemd\&.mkdir 0 2" >>/etc/fstab\*(Aq # And now let\*(Aqs check that the mounting works: sudo systemctl daemon\-reload sudo systemctl start /var/mytest systemctl status /var/mytest # Depending on your distribution and encryption setup, you may need to manually # regenerate your initramfs to be able to use a TPM2 security chip to unlock # the partition during early boot\&. # More information at https://unix\&.stackexchange\&.com/a/705809 # On Fedora based systems: sudo dracut \-\-force # On Debian based systems: sudo update\-initramfs \-u .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBsystemd-cryptsetup@.service\fR(8), \fBsystemd-cryptsetup-generator\fR(8), \fBsystemd-cryptenroll\fR(1), \fBsystemd-repart\fR(8), \fBrepart.d\fR(5), \fBfstab\fR(5), \fBcryptsetup\fR(8), \fBmkswap\fR(8), \fBmke2fs\fR(8) .SH "یادداشتها (NOTES)" .IP " 1." 4 Veracrypt Personal Iterations Multiplier .RS 4 \%https://www.veracrypt.fr/en/Personal%20Iterations%20Multiplier%20%28PIM%29.html .RE .IP " 2." 4 RFC7512 PKCS#11 URI .RS 4 \%https://tools.ietf.org/html/rfc7512 .RE .IP " 3." 4 Yubico PIV certificate slots .RS 4 \%https://developers.yubico.com/PIV/Introduction/Certificate_slots.html .RE