CRYPTTAB(5)

الاسم
crypttab - ضبط الأجهزة الكتلية المعماة

موجز

/etc/crypttab

الوصف

يصف ملف /etc/crypttab الأجهزة الكتلية المعماة التي تُضبط أثناء إقلاع النظام.

تُتجاهل السطور الفارغة والأسطر التي تبدأ بمحرف "#". يصف كل سطر من الأسطر المتبقية جهازًا كتليًا معما واحدًا. تُفصل الحقول بفراغات بيضاء.

كل سطر يأتي في الشكل

    اسم-القسم-الممتد الجهاز-المعمى ملف-المفتاح الخيارات

الحقلان الأولان إلزاميان، والحقلان المتبقيان اختياريان.

يدعم إعداد الأجهزة الكتلية المعماة باستخدام هذا الملف أربعة أنماط تعمية: LUKS و TrueCrypt و BitLocker و plain. انظر cryptsetup(8) لمزيد من المعلومات حول كل نمط. عندما لا يُحدد أي نمط في حقل الخيارات ويحتوي الجهاز الكتلي على توقيع LUKS، فإنه يُفتح كجهاز LUKS؛ وإلا فإنه يُفترض أنه بصيغة dm-crypt الخام (النمط plain).

تُعرّف الحقول الأربعة لملف /etc/crypttab على النحو التالي:

    1. يحتوي الحقل الأول على اسم القسم الممتد الناتج ذي البيانات المفتوحة التعمية؛ ويُعد جهازه الكتلي تحت المسار /dev/mapper/.

    2. يحتوي الحقل الثاني على مسار الجهاز الكتلي أو الملف الأساسي، أو توصيف للجهاز الكتلي عبر "UUID=" متبوعًا بالمعرف الفريد العالمي (UUID).

    3. يحدد الحقل الثالث مسارًا مطلقًا لملف يحتوي على مفتاح التعمية. واختياريًا، يمكن أن يُتبع المسار بـ ":" وتوصيف للجهاز بأسلوب ملف /etc/fstab (مثلًا يبدأ بـ "LABEL=" أو ما شابه)؛ وفي هذه الحالة يُؤخذ المسار نسبيًا إلى جذر نظام ملفات الجهاز المحدد. إذا لم يكن الحقل موجودًا أو كان "none" أو "-"، فإن ملف المفتاح المسمى باسم القسم الممتد المراد فتح قفله (أي العمود الأول من السطر)، ملحقًا بـ .key يُحمّل آليًا من الدليلين /etc/cryptsetup-keys.d/ و /run/cryptsetup-keys.d/، إن وُجدا. وإلا، يجب إدخال كلمة السر يدويًا أثناء إقلاع النظام. لتعمية قسم التبديل (swap)، يمكن استخدام /dev/urandom كملف مفتاح، مما ينتج عنه مفتاح عشوائي.

    إذا كان مسار ملف المفتاح المحدد يشير إلى مقبس دفق من النوع AF_UNIX في نظام الملفات، فإنه يُحصل على المفتاح عبر الاتصال بالمقبس وقراءته من هذا الاتصال. يتيح ذلك تنفيذ خدمة لتقديم معلومات المفتاح ديناميكيًا، في اللحظة التي تشتد الحاجة إليه فيها. للتفاصيل انظر أدناه.

    4. الحقل الرابع، إن وُجد، هو قائمة خيارات مفصولة بفاصلة. تُسرد الخيارات المدعومة أدناه.

تحصيل المفتاح

تُدعم ست آليات مختلفة لتحصيل مفتاح فك التعمية أو عبارة المرور التي تفتح قفل القسم الممتد المعمى. وتحديدًا:

    1. الأكثر شيوعًا، هو إمكانية استجواب المستخدم تفاعليًا أثناء تنشيط القسم الممتد (أي عادةً عند الإقلاع)، حيث يُطلب منه كتابة عبارات المرور اللازمة.

    2. يمكن قراءة المفتاح (غير المعمى) من ملف على القرص، وربما على وسيط قابل للفصل. يرمز الحقل الثالث من كل سطر هذا الموقع، وللتفاصيل انظر أعلاه.

    3. يمكن طلب المفتاح (غير المعمى) من خدمة أخرى، وذلك بتحديد مقبس نظام ملفات من النوع AF_UNIX بدلاً من ملف المفتاح في الحقل الثالث. للتفاصيل انظر أعلاه وأدناه.

    4. يمكن تحصيل المفتاح عبر رمز أمان عتادي متوافق مع PKCS#11 أو بطاقة ذكية. وفي هذه الحالة، يُخزن المفتاح المحفوظ المستخدم في عملية فتح القفل على القرص/الوسيط القابل للفصل، أو يُحصل عليه عبر AF_UNIX، أو يُخزن في ترويسة البيانات الوصفية لرمز LUKS2 بصيغة JSON. بالنسبة إلى RSA، يكون المفتاح المحفوظ هو مفتاح قسم ممتد معمى. بعد ذلك، يُفك تعمية مفتاح القسم الممتد المعمى بواسطة رمز PKCS#11 باستخدام مفتاح RSA خاص مخزن عليه، ويُستخدم لفتح قفل القسم الممتد المعمى. أما بالنسبة لتعمية المنحنيات الإهليلجية (EC)، فإن المفتاح المحفوظ هو المفتاح العلني المولّد في عملية التسجيل. ثم يُستخدم المفتاح العلني لاشتقاق سر مشترك مع مفتاح خاص مخزن في رمز PKCS#11. ثم يُستخدم السر المشترك المشتق لفتح قفل القسم الممتد. استخدم خيار pkcs11-uri= الموصوف أدناه لاستخدام هذه الآلية.

    5. بالمثل، يمكن تحصيل المفتاح عبر رمز أمان عتادي متوافق مع FIDO2 (والذي يجب أن ينفذ امتداد "hmac-secret"). في هذه الحالة، يُخزن مفتاح مولّد عشوائيًا أثناء التسجيل على القرص/الوسيط القابل للفصل، أو يُحصل عليه عبر AF_UNIX، أو يُخزن في ترويسة البيانات الوصفية لرمز LUKS2 بصيغة JSON. يُعمى المفتاح العشوائي عبر دالة تعمية ذات مفتاح (HMAC) على رمز FIDO2، باستخدام مفتاح سري مخزن على الرمز ولا يغادره أبدًا. ثم تُستخدم قيمة التعمية الناتجة كمفتاح لفتح قفل القسم الممتد المعمى. استخدم خيار fido2-device= الموصوف أدناه لاستخدام هذه الآلية.

    6. بالمثل، يمكن تحصيل المفتاح عبر شريحة أمان TPM2. في هذه الحالة، يُخزن مفتاح مولّد عشوائيًا (أثناء التسجيل) — معمى بواسطة مفتاح غير متماثل مشتق من مفتاح بذرة شريحة TPM2 — على القرص/الوسيط القابل للفصل، أو يُحصل عليه عبر AF_UNIX، أو يُخزن في ترويسة البيانات الوصفية لرمز LUKS2 بصيغة JSON. استخدم خيار tpm2-device= الموصوف أدناه لاستخدام هذه الآلية.

بالنسبة للآليات الخمس الأخيرة، يُضبط مصدر مادة المفتاح المستخدمة لفتح قفل القسم الممتد بشكل رئيس في الحقل الثالث من كل سطر في /etc/crypttab، ولكن يمكن أيضًا ضبطه في /etc/cryptsetup-keys.d/ و /run/cryptsetup-keys.d/ (انظر أعلاه) أو في ترويسة رمز LUKS2 بصيغة JSON (في حالة الآليات الثلاث الأخيرة). استخدم أداة systemd-cryptenroll(1) لتسجيل أجهزة PKCS#11 و FIDO2 و TPM2 في أقسام LUKS2 الممتدة.

الخيارات المدعومة

يمكن استخدام الخيارات التالية في الحقل الرابع من كل سطر:

cipher=
    يحدد شيفرة التعمية المستخدمة. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار. يوصى باستخدام شيفرة ذات قيم IV غير متوقعة، مثل "aes-cbc-essiv:sha256". يجب الهروب من الفاصلات المضمنة في مواصفات الشيفرة بسبقها بشرطة مائلة عكسية، انظر المثال أدناه.

    أُضيف في الإصدارة 186.

discard
    السماح بتمرير طلبات الإهمال (discard) عبر الجهاز الكتلي المعمى. يؤدي هذا إلى تحسين الأداء على وسائط تخزين SSD ولكن له تداعيات أمنية.

    أُضيف في الإصدارة 207.

hash=
    يحدد دالة التعمية (hash) المستخدمة لتعمية كلمة السر. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار.

    أُضيف في الإصدارة 186.

header=
    استخدام جهاز بيانات وصفية أو ملف منفصل (مفصول) حيث تُخزن الترويسة التي تحتوي على المفتاح (المفاتيح) الرئيسة. هذا الخيار ذو صلة فقط بأجهزة LUKS و TrueCrypt/VeraCrypt. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار.

    واختياريًا، يمكن أن يُتبع المسار بـ ":" وتوصيف للجهاز بأسلوب ملف /etc/fstab (مثلًا يبدأ بـ "UUID=" أو ما شابه)؛ وفي هذه الحالة، يكون المسار نسبيًا إلى جذر نظام ملفات الجهاز. يُوصل الجهاز آليًا طوال مدة تنشيط جهاز LUKS فقط.

    أُضيف في الإصدارة 219.

keyfile-offset=
    يحدد عدد البايتات المراد تخطيها في بداية ملف المفتاح. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار.

    أُضيف في الإصدارة 187.

keyfile-size=
    يحدد الحد الأقصى لعدد البايتات المراد قراءتها من ملف المفتاح. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار. يُتجاهل هذا الخيار في نمط التعمية البسيط (plain)، حيث يُحدد حجم ملف المفتاح بحجم المفتاح نفسه. ويُتجاهل أيضًا عندما يُستخدم ملف المفتاح كملف ملح (salt) لرمز FIDO2، لأن حجم الملح في هذه الحالة محدد بموجب مواصفات FIDO2 ليكون 32 بايتًا بالضبط.

    أُضيف في الإصدارة 188.

keyfile-erase
    إذا فُعّل، يُمحى ملف المفتاح المحدد بعد تنشيط القسم الممتد أو عند فشل التنشيط. هذا مفيد بشكل خاص عندما يُحصل على ملف المفتاح بشكل عابر فقط قبل التنشيط (مثلًا عبر ملف في /run/، تولّده خدمة تعمل قبل التنشيط)، ويجب إزالته بعد الاستخدام. القيمة المبدئية هي الإيقاف.

    أُضيف في الإصدار 246.

key-slot=
    يحدد فتحة المفتاح (key slot) لمقارنة عبارة المرور أو المفتاح بها. إذا كانت فتحة المفتاح لا تطابق عبارة المرور أو المفتاح المعطى، ولكن فتحة أخرى تطابقها، فإن إعداد الجهاز سيفشل بغض النظر عن ذلك. يتضمن هذا الخيار luks. انظر cryptsetup(8) للقيم الممكنة. المبدئي هو تجربة جميع فتحات المفاتيح بالترتيب المتسلسل.

    أُضيف في الإصدارة 209.

keyfile-timeout=
    يحدد المهلة الزمنية للجهاز الذي يقع عليه ملف المفتاح أو الجهاز المستخدم كملف مفتاح، ويتراجع إلى كلمة السر إذا تعذر الوصول إليه. انظر systemd-cryptsetup-generator(8) لملفات المفاتيح على الأجهزة الخارجية.

    أُضيف في الإصدار 243.

link-volume-key=
    يحدد حلقة مفاتيح النواة ووصف المفتاح (انظر keyrings(7)) حيث يُربط مفتاح قسم LUKS2 الممتد أثناء تنشيط الجهاز. يجب فصل وصف حلقة مفاتيح النواة ووصف المفتاح بواسطة "::".

    يمكن أن يكون جزء حلقة مفاتيح النواة وصفًا نصيًا أو حلقة مفاتيح نواة محددة مسبقًا مسبوقة بـ "@" (مثلًا: لاستخدام حلقة مفاتيح الجلسة "@s" أو المستخدم "@u" مباشرةً). لا يلزم نص بادئة النوع في وصف حلقة مفاتيح النواة. يجب أن تكون حلقة مفاتيح النواة المحددة موجودة بالفعل في وقت تنشيط الجهاز.

    جزء المفتاح عبارة عن وصف نصي مسبوق اختياريًا بـ "%key_type:". إذا لم يُحدد أي نوع، فيُربط مفتاح من النوع "user" مبدئيًا. انظر keyctl(1) لمزيد من المعلومات حول أوصاف المفاتيح (قسم KEY IDENTIFIERS).

    لاحظ أن مفتاح القسم الممتد المربوط لا يُنظف آليًا عند فصل الجهاز.

    أُضيف في الإصدار 256.

luks
    فرض نمط LUKS. عند استخدام هذا النمط، تُتجاهل الخيارات التالية لأن ترويسة LUKS على الجهاز توفرها: cipher= و hash= و size=.

    أُضيف في الإصدارة 186.

bitlk
    فك تعمية محرك أقراص BitLocker. يستنتج cryptsetup معلمات التعمية من تروِيسة BitLocker.

    أُضيف في الإصدار 246.

_netdev
    يصنف جهاز cryptsetup هذا على أنه يتطلب شبكة. وسيُبدأ تشغيله بعد توفر الشبكة، على غرار وحدات systemd.mount(5) المصنفة بـ _netdev. ستُرتّب وحدة الخدمة لإعداد هذا الجهاز بين remote-fs-pre.target و remote-cryptsetup.target، بدلاً من cryptsetup-pre.target و cryptsetup.target.

    تلميح: إذا كان هذا الجهاز يُستخدم لنقطة وصل محددة في fstab(5)، فيجب أيضًا استخدام الخيار _netdev لنقطة الوصل. وإلا، فقد يتم إنشاء حلقة تبعية حيث يتم سحب نقطة الوصل بواسطة local-fs.target، بينما تبدأ الخدمة المخصصة لتهيئة الشبكة عادةً فقط بعد وصل نظام الملفات المحلي.

    أُضيف في الإصدارة 235.

noauto
    لن يُضاف هذا الجهاز إلى cryptsetup.target. وهذا يعني أنه لن يُفتح قفله آليًا عند الإقلاع، ما لم يسحبه شيء آخر. على وجه الخصوص، إذا كان الجهاز مستخدمًا لنقطة وصل، فسيُفتح قفله آليًا أثناء الإقلاع، ما لم تُعطّل نقطة الوصل نفسها أيضًا باستخدام noauto.

    أُضيف في الإصدارة 186.

nofail
    لن يكون هذا الجهاز تبعية صارمة لـ cryptsetup.target. وسيجري سحبه وبدؤه، لكن النظام لن ينتظر ظهور الجهاز وفتح قفله، ولن يفشل الإقلاع إذا لم ينجح ذلك. لاحظ أن الوحدات الأخرى التي تعتمد على الجهاز المفتوح قفله قد تظل تفشل. على وجه الخصوص، إذا كان الجهاز مستخدمًا لنقطة وصل، فإن نقطة الوصل نفسها تحتاج أيضًا إلى خيار nofail، وإلا سيفشل الإقلاع إذا لم يُفتح قفل الجهاز بنجاح. إذا حُدد ملف مفتاح و/أو ترويسة header، فلن تكون التبعيات على أدلتها المعنية قاتلة أيضًا، بحيث لا يؤدي فصل الأدلة المذكورة إلى إلغاء تنشيط وحدة cryptset المولّدة.

    أُضيف في الإصدارة 186.

offset=
    إزاحة البداية في الجهاز الخلفي، بقطاعات حجمها 512 بايت. هذا الخيار ذو صلة فقط بالأجهزة البسيطة (plain).

    أُضيف في الإصدارة 220.

plain
    فرض نمط التعمية البسيط (plain).

    أُضيف في الإصدارة 186.

read-only, readonly
    إعداد الجهاز الكتلي المعمى في نمط القراءة فقط.

    أُضيف في الإصدارة 186.

same-cpu-crypt
    تنفيذ التعمية باستخدام نفس وحدة المعالجة المركزية (CPU) التي أُرسلت منها عمليات الإدخال والإخراج. المبدئي هو استخدام زمام عمل غير مقيد بحيث تتوازن أعمال التعمية آليًا بين وحدات المعالجة المركزية المتاحة.

    يتطلب هذا نواة 4.0 أو أحدث.

    أُضيف في الإصدارة 242.

submit-from-crypt-cpus
    تعطيل ترحيل الكتابات إلى خيط منفصل بعد التعمية. هناك بعض الحالات التي يؤدي فيها ترحيل طلبات الكتابة من خيوط التعمية إلى خيط مخصص إلى تقليل الأداء بشكل كبير. المبدئي هو ترحيل طلبات الكتابة إلى خيط مخصص لأنه يفيد جدولة CFQ لإرسال الكتابات باستخدام نفس السياق.

    يتطلب هذا نواة 4.0 أو أحدث.

    أُضيف في الإصدارة 242.

no-read-workqueue
    تجاوز زمام العمل الداخلي لـ dm-crypt ومعالجة طلبات القراءة متزامنًا. المبدئي هو وضع هذه الطلبات في صف ومعالجتها غير متزامن.

    يتطلب هذا نواة 5.9 أو أحدث.

    أُضيف في الإصدار 248.

no-write-workqueue
    تجاوز زمام العمل الداخلي لـ dm-crypt ومعالجة طلبات الكتابة متزامنًا. المبدئي هو وضع هذه الطلبات في صف ومعالجتها غير متزامن.

    يتطلب هذا نواة 5.9 أو أحدث.

    أُضيف في الإصدار 248.

skip=
    كم عدد القطاعات ذات الحجم 512 بايت من البيانات المعماة المراد تخطيها في البداية. يختلف هذا عن خيار offset= فيما يتعلق بأرقام القطاعات المستخدمة في حساب متجه التهيئة (IV). استخدام offset= سيؤدي إلى إزاحة حساب IV بنفس المقدار السلبي. وبالتالي، إذا أُعطي offset=n، فسيحصل القطاع n على رقم قطاع 0 لحساب IV. يؤدي استخدام skip= إلى جعل القطاع n أيضًا القطاع الأول للجهاز الممسوح، ولكن مع كون رقمه لتوليد IV هو n.

    هذا خيار ذو صلة فقط بالأجهزة البسيطة (plain).

    أُضيف في الإصدارة 220.

size=
    يحدد حجم المفتاح بالبتات. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار.

    أُضيف في الإصدارة 186.

sector-size=
    يحدد حجم القطاع بالبايتات. انظر cryptsetup(8) للقيم الممكنة والقيمة المبدئية لهذا الخيار.

    أُضيف في الإصدار 240.

swap
    سيُستخدم الجهاز الكتلي المعمى كجهاز تبديل (swap)، وسيُهيأ وفقًا لذلك بعد إعداد الجهاز الكتلي المعمى باستخدام mkswap(8). يتضمن هذا الخيار plain.

        تحذير
        يؤدي استخدام خيار swap إلى تدمير محتويات القسم المسمى أثناء كل إقلاع، لذا تأكد من تحديد الجهاز الكتلي الأساسي بشكل صحيح.

    أُضيف في الإصدارة 186.

tcrypt
    استخدام نمط تعمية TrueCrypt. عند استخدام هذا النمط، تُتجاهل الخيارات التالية لأنها تتوفر بواسطة ترويسة TrueCrypt على الجهاز أو لا تنطبق: cipher= و hash= و keyfile-offset= و keyfile-size= و size=.

    عند استخدام هذا النمط، تُقرأ عبارة المرور من ملف المفتاح المعطى في الحقل الثالث. يُقرأ السطر الأول فقط من هذا الملف، باستثناء محرف السطر الجديد.

    لاحظ أن تنسيق TrueCrypt يستخدم كلاً من عبارة المرور وملفات المفاتيح لاشتقاق كلمة سر للمجلد. لذلك، يلزم تقديم عبارة المرور وجميع ملفات المفاتيح. استخدم tcrypt-keyfile= لتقديم المسار المطلق لجميع ملفات المفاتيح. عند استخدام عبارة مرور فارغة بالاقتران مع ملف مفاتيح واحد أو أكثر، استخدم "/dev/null" كملف كلمة سر في الحقل الثالث.

    أُضيف في الإصدارة 206.

tcrypt-hidden
    استخدم مجلد TrueCrypt المخفي. يتضمن هذا الخيار tcrypt.

    سيؤدي هذا إلى تعيين المجلد المخفي الموجود داخل المجلد المقدم في الحقل الثاني. يرجى ملاحظة عدم وجود حماية للمجلد المخفي إذا وُصل المجلد الخارجي بدلاً منه. راجع cryptsetup(8) لمزيد من المعلومات حول هذا القيد.

    أُضيف في الإصدارة 206.

tcrypt-keyfile=
    يحدد المسار المطلق لملف مفتاح لاستخدامه مع مجلد TrueCrypt. يتضمن هذا tcrypt ويمكن استخدامه أكثر من مرة لتقديم عدة ملفات مفاتيح.

    راجع إدخال tcrypt لمعرفة سلوك عبارة المرور وملفات المفاتيح عند استخدام وضع تعمية TrueCrypt.

    أُضيف في الإصدارة 206.

tcrypt-system
    استخدم TrueCrypt في وضع تعمية النظام. يتضمن هذا الخيار tcrypt.

    أُضيف في الإصدارة 206.

tcrypt-veracrypt
    افحص وجود مجلد VeraCrypt. إن VeraCrypt هو تفريع من TrueCrypt متوافق معه غالباً، ولكنه يستخدم خوارزميات اشتقاق مفاتيح مختلفة وأقوى لا يمكن اكتشافها دون هذا العلم. قد يؤدي تمكين هذا الخيار إلى إبطاء عملية إلغاء القفل بشكل كبير، لأن اشتقاق مفتاح VeraCrypt يستغرق وقتاً أطول بكثير من TrueCrypt. يتضمن هذا الخيار tcrypt.

    أُضيف في الإصدار 232.

veracrypt-pim=
    يحدد قيمة مضاعف التكرار الشخصي (PIM) المخصصة، والتي يمكن أن تتراوح من 0..2147468 لمجلدات veracrypt القياسية و0..65535 لمجلدات نظام veracrypt. تعني القيمة 0 استخدام مبدئي VeraCrypt. لا يكون هذا الخيار فعالاً إلا عند ضبط tcrypt-veracrypt.

    لاحظ أن VeraCrypt يفرض حداً أدنى مسموحاً به لقيمة PIM اعتماداً على قوة كلمة السر وخوارزمية التجزئة المستخدمة لاشتقاق المفتاح، ومع ذلك لا يُفحص veracrypt-pim= مقابل هذه الحدود. راجع توثيق Veracrypt Personal Iterations Multiplier[1] لمزيد من المعلومات.

    أُضيف في الإصدار 254.

timeout=
    يحدد المهلة الزمنية للاستعلام عن كلمة السر. في حال عدم تحديد وحدة، تُستخدم الثواني. الوحدات المدعومة هي s، ms، us، min، h، d. مهلة 0 تنتظر إلى أجل غير مسمى (وهو المبدئي).

    أُضيف في الإصدارة 186.

tmp=
    سيُهيأ الجهاز الكتلي المعمى لاستخدامه كـ /tmp/؛ وسيُنسق باستخدام mkfs(8). يأخذ نوع نظام ملفات كمعامل، مثل "ext4" أو "xfs" أو "btrfs". إذا لم يُحدد أي معامل، فإنه يؤول مبدئياً إلى "ext4". يتضمن هذا الخيار plain.

        تحذير
        سيؤدي استخدام خيار tmp إلى تدمير محتويات القسم المسمى أثناء كل إقلاع، لذا تأكد من تحديد الجهاز الكتلي الأساسي بشكل صحيح.

    أُضيف في الإصدارة 186.

tries=
    يحدد الحد الأقصى لعدد المرات التي يُستعلم فيها من المستخدم عن كلمة السر. المبدئي هو 3. إذا ضُبط على 0، يُستعلم من المستخدم عن كلمة السر إلى أجل غير مسمى.

    أُضيف في الإصدارة 186.

headless=
    يأخذ معامل منطقياً، ويؤول مبدئياً إلى false. إذا كان true، فلا يُستعلم تفاعلياً أبداً عن كلمة السر/PIN. مفيد للأنظمة التي تعمل بدون شاشة.

    أُضيف في الإصدار 249.

verify
    إذا قُرئت كلمة سر التعمية من الطرفية، فيجب إدخالها مرتين لمنع الأخطاء المطبعية.

    أُضيف في الإصدارة 186.

password-echo=yes|no|masked
    يتحكم في ما إذا كان سيتم إظهار كلمات المرور أو رموز PIN لتوكنات الأمان التي تُقرأ من الطرفية. يأخذ قيمة منطقية أو السلسلة الخاصة "masked". المبدئي هو password-echo=masked.

    إذا مُّكن، تُظهر الأحرف المكتوبة حرفياً. وإذا عُّطل، لا تُظهر الأحرف المكتوبة بأي شكل من الأشكال، ولن يحصل المستخدم على أي تغذية راجعة لمدخلاته. وإذا ضُبط على "masked"، تُظهر علامة نجمة ("*") لكل حرف يُكتب. بغض النظر عن الوضع المختار، إذا ضغط المستخدم على مفتاح الجدولة ("↹") في أي وقت، أو مفتاح الحذف للخلف ("") قبل إدخال أي بيانات أخرى، فسيتم إيقاف تشغيل الإظهار.

    أُضيف في الإصدار 249.

password-cache=yes|no|read-only
    يتحكم في ما إذا كانت ستُستخدم خبيئة لكلمات المرور أو رموز PIN لتوكنات الأمان. يأخذ قيمة منطقية أو السلسلة الخاصة "read-only". يؤول مبدئياً إلى "yes".

    إذا ضُبط على "read-only"، تُفحص حلقة مفاتيح النواة بحثاً عن كلمة سر/PIN قبل طلبها تفاعلياً. وإذا ضُبط على "yes"، فبالإضافة إلى فحص حلقة المفاتيح، تُخبأ أي كلمة سر/PIN جرى إدخالها تفاعلياً في حلقة المفاتيح مع مهلة زمنية قدرها 2.5 دقيقة قبل تطهيرها.

    لاحظ أن هذا الخيار غير مسموح به لتوكنات أمان PKCS#11. والسبب في ذلك هو أن توكنات أمان PKCS#11 تُضبط عادةً لتُقفل بعد تزويدها برمز PIN غير صالح لعدة مرات، لذا فإن استخدام الخبيئة قد يقفل التوكن دون قصد.

    أُضيف في الإصدار 257.

pkcs11-uri=
    يأخذ إما القيمة الخاصة "auto" أو معرف RFC7512 PKCS#11 URI[2] يشير إلى مفتاح خاص يُستخدم لفك تعمية المفتاح المعمى المحدد في العمود الثالث من السطر. هذا مفيد لإلغاء قفل المجلدات المعماة من خلال توكنات الأمان المتوافقة مع PKCS#11 أو البطاقات الذكية. انظر أدناه للحصول على مثال لكيفية إعداد هذه الآلية لإلغاء قفل مجلد LUKS2 باستخدام توكن أمان YubiKey.

    إذا حُدد كـ "auto"، يجب أن يكون المجلد من نوع LUKS2 ويجب أن يحمل البيانات الوصفيّة لتوكن أمان PKCS#11 في قسم توكن LUKS2 JSON الخاص به. في هذا الوضع، يُقرأ معرّف المورد الموحد (URI) والمفتاح المعمى آلياً من ترويسة توكن LUKS2 JSON. استخدم systemd-cryptenroll(1) كأداة بسيطة لتسجيل توكنات أمان PKCS#11 أو البطاقات الذكية بطريقة متوافقة مع "auto". في هذا الوضع، يجب أن يبقى العمود الثالث من السطر فارغاً (أي يحدد كـ "-").

    يمكن أن يشير معرّف URI المحدد مباشرة إلى مفتاح خاص مخزن على توكن أو بدلاً من ذلك إلى فتحة أو توكن فقط، وفي هذه الحالة سيُجرى بحث عن مفتاح خاص مناسب. في هذه الحالة، إذا عُثر على كائنات مناسبة متعددة، يُرفض التوكن. يُستخدم ملف المفتاح المضبوط في العمود الثالث من السطر كما هو (أي في شكل ثنائي، بدون معالجة). بعد ذلك، يُرمز المفتاح الناتج الذي فُكت تعميته (بالنسبة لـ RSA) أو السر المشترك المشتق (بالنسبة لـ ECC) بتنسيق Base64 قبل استخدامه لإلغاء قفل مجلد LUKS.

    استخدم systemd-cryptenroll --pkcs11-token-uri=list لسرد جميع توكنات أمان PKCS#11 المناسبة والموصولة حالياً، إلى جانب معرّفات URI الخاصة بها.

    لاحظ أن العديد من توكنات الأمان الأحدث التي قد تُستخدم كتوكن أمان PKCS#11 تطبق عادةً أيضًا معيار FIDO2 الأحدث والأبسط. ضع في اعتبارك استخدام fido2-device= (الموصوف أدناه) لتسجيله عبر FIDO2 بدلاً من ذلك. لاحظ أن توكن الأمان المسجل عبر PKCS#11 لا يمكن استخدامه لإلغاء قفل المجلد عبر FIDO2، إلا إذا سُجل أيضًا عبر FIDO2، والعكس صحيح.

    أُضيف في الإصدار 245.

fido2-device=
    يأخذ إما القيمة الخاصة "auto" أو مسار عقدة جهاز "hidraw" (مثل /dev/hidraw1) تشير إلى توكن أمان FIDO2 يطبق امتداد "hmac-secret" (معظم توكنات الأمان العتادية الحالية تفعل ذلك). انظر أدناه للحصول على مثال لكيفية إعداد هذه الآلية لإلغاء قفل مجلد معمى باستخدام توكن أمان FIDO2.

    إذا حُدد كـ "auto"، يُكتشف جهاز توكن FIDO2 آلياً عند وصله.

    يتطلب إلغاء قفل مجلد FIDO2 ضبط تجزئة معرف العميل (CID) عبر fido2-cid= (انظر أدناه) ومفتاح لتمريره إلى وظيفة HMAC الخاصة بتوكن الأمان (المضبوط في العمود الثالث من السطر) ليعمل. إذا لم يُضبط وكان المجلد من نوع LUKS2، فإن الـ CID والمفتاح يُقرآن من البيانات الوصفية لتوكن LUKS2 JSON بدلاً من ذلك. استخدم systemd-cryptenroll(1) كأداة بسيطة لتسجيل توكنات أمان FIDO2 لمجلدات LUKS2.

    استخدم systemd-cryptenroll --fido2-device=list لسرد جميع توكنات أمان FIDO2 المناسبة والموصولة حالياً، إلى جانب عقد الأجهزة الخاصة بها.

    يطبق هذا الخيار الآلية التالية: يُجزأ المفتاح المضبوط عبر وظيفة التجزئة المفتاحية HMAC التي يطبقها جهاز FIDO2، ومفتاحها هو مفتاح سري مدمج في الجهاز. تُرمز قيمة التجزئة الناتجة بتنسيق Base64 وتُستخدم لإلغاء قفل مجلد LUKS2. وبما أنه لا ينبغي أن يكون من الممكن استخراج السر من التوكن العتادي، فلا ينبغي أن يكون من الممكن استرداد المفتاح المـجزأ بمعلومية المفتاح المضبوط — دون حيازة التوكن العتادي.

    لاحظ أن العديد من توكنات الأمان التي تطبق FIDO2 تطبق أيضًا PKCS#11، وهي مناسبة لإلغاء قفل المجلدات عبر خيار pkcs11-uri= الموصوف أعلاه. عادةً ما يُفضل معيار FIDO2 الأحدث والأبسط.

    أُضيف في الإصدار 248.

fido2-cid=
    يأخذ معرف عميل FIDO2 مرموزاً بتنسيق Base64 لاستخدامه في عملية إلغاء قفل FIDO2. إذا حُدد، ولم يُحدد fido2-device=، فسيُتضمن خيار fido2-device=auto. إذا استُخدم fido2-device= ولم يُستعمل fido2-cid=، فيجب أن يكون المجلد من نوع LUKS2، ويُقرأ الـ CID من ترويسة توكن LUKS2 JSON. استخدم systemd-cryptenroll(1) لتسجيل توكن FIDO2 في ترويسة LUKS2 المتوافقة مع هذا الوضع الآلي.

    أُضيف في الإصدار 248.

fido2-rp=
    يأخذ سلسلة نصية، لضبط الطرف المعتمد لـ FIDO2‏ (rp) لعملية إلغاء قفل FIDO2. إذا لم يُحدد، يُستخدم "io.systemd.cryptsetup"، إلا إذا احتوت ترويسة توكن LUKS2 JSON على قيمة مختلفة. لا ينبغي أن يكون من الضروري تجاوز هذا عادةً.

    أُضيف في الإصدار 248.

fido2-pin=
    يتحكم في ما إذا كان سيُطلب من المستخدم إدخال رمز PIN عند إلغاء قفل المجلد (ميزة "clientPin" في FIDO2). لا ينطبق هذا الخيار إلا عندما يكون في الوضع اليدوي، أي عندما يُضبط خيار fido2-cid=. لا يؤول مبدئياً إلى true ولا false، بل إلى سلوك v248، أي: المحاولة بدون رمز PIN أولاً، ولكن إذا أفاد التوكن أن رمز PIN مطلوب، فسيُحاول مجدداً مع طلب رمز PIN.

    أُضيف في الإصدار 257.

fido2-up=
    يتحكم في ما إذا كان سيُطلب من المستخدم التحقق من الوجود (النقر على التوكن، ميزة "up" في FIDO2) عند إلغاء قفل المجلد. لا ينطبق هذا الخيار إلا عندما يكون في الوضع اليدوي، أي عندما يُضبط خيار fido2-cid=. لا يؤول مبدئياً إلى true ولا false، بل إلى سلوك v248، أي: المحاولة بدون ميزة UP أولاً، ولكن إذا أفاد التوكن أن ميزة UP مطلوبة، فسيُحاول مجدداً مع تمكين ميزة UP.

    أُضيف في الإصدار 257.

fido2-uv=
    يتحكم في ما إذا كان سيُطلب التحقق من المستخدم (ميزة "uv" في FIDO2) عند إلغاء قفل المجلد. لا ينطبق هذا الخيار إلا عندما يكون في الوضع اليدوي، أي عندما يُضبط خيار fido2-cid=. لا يؤول مبدئياً إلى true ولا false، بل إلى سلوك v248، أي: حذف ضبط ميزة UV تماماً.

    أُضيف في الإصدار 257.

tpm2-device=
    يأخذ إما القيمة الخاصة "auto" أو مسار عقدة جهاز (مثل /dev/tpmrm0) تشير إلى شريحة أمان TPM2. انظر أدناه للحصول على مثال لكيفية إعداد هذه الآلية لإلغاء قفل مجلد معمى باستخدام شريحة TPM2.

    استخدم tpm2-pcrs= (انظر أدناه) لضبط مجموعة سجلات التكوين للنظام الأساسي (PCRs) لـ TPM2 لربط إلغاء قفل المجلد بها. استخدم systemd-cryptenroll(1) كأداة بسيطة لتسجيل شرائح أمان TPM2 في مجلدات LUKS2.

    إذا حُدد كـ "auto"، يُكتشف جهاز TPM2 آلياً. استخدم systemd-cryptenroll --tpm2-device=list لسرد جميع أجهزة TPM2 المناسبة والمتاحة حالياً، إلى جانب عقد الأجهزة الخاصة بها.

    يطبق هذا الخيار الآلية التالية: عند تسجيل جهاز TPM2 عبر systemd-cryptenroll على مجلد LUKS2، يُنشأ مفتاح عشوائي يلغي قفل المجلد على المضيف ويُحمل إلى شريحة TPM2 حيث يُعمى باستخدام زوج مفاتيح "رئيس" غير متماثل مشتق من مفتاح "البذرة" الداخلي لـ TPM2. لا يُسمح لمفتاح البذرة ولا للمفتاح الرئيس بمغادرة شريحة TPM2 أبداً — ومع ذلك، فإن المفتاح العشوائي المعمى الآن قد يغادرها. ويُحفظ في ترويسة توكن JSON لمجلد LUKS2. عند إلغاء قفل المجلد المعمى، يُنشأ زوج المفاتيح الرئيس على شريحة TPM2 مجدداً (والذي يعمل طالما أن مفتاح بذرة الشريحة يجري صيانته بشكل صحيح بواسطة شريحة TPM2)، والذي يُستخدم بعد ذلك لفك التعمية (على شريحة TPM2) للمفتاح المعمى من ترويسة توكن JSON لمجلد LUKS2 المحفوظة هناك أثناء التسجيل. ثم يُستخدم المفتاح الناتج الذي فُكت تعميته لإلغاء قفل المجلد. عندما يُعمى المفتاح العشوائي، تُضمن القيم الحالية لسجلات PCR المحددة (انظر أدناه) في العملية، بحيث تؤدي حالة PCR المختلفة إلى مفاتيح معماة مختلفة ولا يمكن استرداد المفتاح الذي فُكت تعميته إلا إذا أُعيد إنتاج نفس حالّة PCR.

    أُضيف في الإصدار 248.

tpm2-pcrs=
    يأخذ قائمة مفصولة بعلامة "+" من مؤشرات TPM2 PCR الرقمية (أي "سجل تكوين المنصة") لربط إلغاء قفل مجلد TPM2 بها. لا يكون هذا الخيار مفيداً إلا عندما لا تكون البيانات الوصفية لتسجيل TPM2 متاحة بالفعل في ترويسة توكن LUKS2 JSON، بالطريقة التي يكتبها بها systemd-cryptenroll هناك. إذا لم يُستخدم (ولم تحدده أي بيانات وصفية في ترويسة توكن LUKS2 JSON)، فإنه يؤول مبدئياً إلى قائمة تحتوي على إدخال واحد: PCR 7. عيّن سلسلة فارغة لترميز سياسة لا تربط المفتاح بأي سجلات PCR، مما يجعل المفتاح متاحاً للبرامج المحلية بغض النظر عن حالة PCR الحالية.

    أُضيف في الإصدار 248.

tpm2-pin=
    يأخذ معاملاً منطقياً، ويؤول مبدئياً إلى "false". يتحكم في ما إذا كان إلغاء قفل مجلد TPM2 مرتبطاً برمز PIN بالإضافة إلى سجلات PCR. وبالمثل، لا يكون هذا الخيار مفيداً إلا عندما لا تتوفر البيانات الوصفية لتسجيل TPM2.

    أُضيف في الإصدار 251.

tpm2-signature=
    يأخذ مساراً مطلقاً لملف توقيع TPM2 PCR JSON، كما تنتجه أداة systemd-measure(1). يسمح هذا بقفل مجلدات LUKS2 على أي قيم PCR يمكن تقديم توقيع صالح لها يطابق مفتاحاً عاماً محدداً في وقت تسجيل المفتاح. راجع systemd-cryptenroll(1) لمعرفة التفاصيل حول تسجيل المفاتيح العامة لـ TPM2 PCR. إذا لم يُحدد هذا الخيار ولكن جرت محاولة لإلغاء قفل مجلد LUKS2 بتسجيل TPM2 PCR موقع، فيُبحث عن ملف توقيع مناسب باسم tpm2-pcr-signature.json في /etc/systemd/، و/run/systemd/، و/usr/lib/systemd/ (بهذا الترتيب).

    أُضيف في الإصدار 252.

قفل-tpm2-pcr=
    يأخذ مساراً مطلقاً لملف سياسة pcrlock لـ TPM2، كما تنتجه أداة systemd-pcrlock(8). يتيح ذلك قفل مجلدات LUKS2 على سياسة محلية لقيم PCR المسموح بها مع متغيرات. راجع systemd-cryptenroll(1) للحصول على تفاصيل حول تسجيل سياسات pcrlock لـ TPM2. إذا لم يُحدد هذا الخيار ولكن جرت محاولة لإلغاء قفل مجلد LUKS2 بتسجيل pcrlock لـ TPM2، فيُبحث عن ملف توقيع مناسب باسم pcrlock.json في /run/systemd/ و/var/lib/systemd/ (بهذا الترتيب).

    أُضيف في الإصدار 255.

tpm2-measure-pcr=
    يتحكم في ما إذا كان سيقاس مفتاح المجلد للمجلد المعمى إلى سجل TPM2 PCR. إذا ضُبط على "no" (وهو المبدئي) فلن يُجرى أي تمديد لـ PCR. وإذا ضُبط على "yes" يُقاس مفتاح المجلد في PCR 15. وإذا ضُبط على عدد صحيح عشري في النطاق 0...23 يُقاس مفتاح المجلد في سجل PCR المحدد. يُقاس مفتاح المجلد جنباً إلى جنب مع اسم المجلد المنشط ومعرفه الفريد العمومي UUID. وتُعد هذه الوظيفة مفيدة بشكل خاص للمجلد المعمى الذي يدعم نظام الملفات الجذري، لأنها تسمح لاحقًا ل كائنات TPM بالارتباط بشكل آمن بنظام الملفات الجذري وبالتالي بالتثبيت المحدد.

    أُضيف في الإصدار 253.

tpm2-measure-bank=
    يختار بنكاً واحداً أو أكثر من بنوك TPM2 PCR لقياس مفتاح المجلد فيها، كما هو مضبوط مع tpm2-measure-pcr= أعلاه. يمكن تحديد بنوك متعددة، مفصولة بعلامة النقطتين الرأسيتين. إذا لم يُحدد، تُحدد البنوك المتاحة والمستخدمة آلياً. يتوقع اسم خلاصة الرسالة (مثل "sha1"، "sha256"، ...) كمعامل، لتحديد البنك.

    أُضيف في الإصدار 253.

tpm2-measure-keyslot-nvpcr=
    يتحكم في ما إذا كان سيقاس معلومات حول فتحة مفتاح إلغاء قفل LUKS المستخدمة إلى مؤشر TPM2 غير متطاير (nvindex في وضع PCR). يأخذ معاملاً منطقياً، أو اسم NvPCR. إذا ضُبط على false أو سلسلة فارغة (وهو المبدئي) فلن يُجرى أي تمديد لـ TPM2 nvindex، وإلا فستُقاس معلومات فتحة المفتاح إلى nvindex بالاسم المحدد، والذي يُخصص إذا لزم الأمر. إذا ضُبط على true، فسيُختار المبدئي الموصى به وهو "cryptsetup" كـ NvPCR. يُقاس مؤشر الفتحة وآلية إلغاء القفل المستخدمة (أي "tpm2"، "fido2"، "pkcs11") جنباً إلى جنب مع اسم المجلد المنشط ومعرفه UUID.

    أُضيف في الإصدار 259.

token-timeout=
    يحدد الحد الأقصى لوقت انتظار ظهور أجهزة الأمان المضبوطة (أي FIDO2، PKCS#11، TPM2). يأخذ قيمة زمنية بالثواني (ولكن يمكن تحديد وحدات زمنية أخرى أيضًا، راجع systemd.time(7) لمعرفة التنسيقات المدعومة). يؤول مبدئياً إلى 30 ثانية. بمجرد انقضاء المهلة المحددة، يُحاول الاستيثاق عبر كلمة السر. لاحظ أن هذه المهلة تنطبق على انتظار ظهور جهاز الأمان — ولا تنطبق على مطالبة رمز PIN للجهاز (إذا كانت هناك حاجة إليها) أو ما شابه ذلك. مرر 0 لإيقاف تشغيل المهلة والانتظار إلى الأبد.

    أُضيف في الإصدار 250.

try-empty-password=
    يأخذ معاملاً منطقياً. إذا مُّكن، وقبل سؤال المستخدم عن كلمة سر مباشرة، يُحاول أولاً إلغاء قفل المجلد بكلمة سر فارغة. هذا مفيد للأنظمة التي تُهيأ بمجلد معمى مضبوط بكلمة سر فارغة فقط، والتي يجب استبدالها بكلمة سر مناسبة أثناء الإقلاع الأول، ولكن بعد التنشيط.

    أُضيف في الإصدار 246.

x-systemd.device-timeout=
    يحدد المدة التي يجب أن ينتظرها systemd لظهور جهاز كتلي قبل التخلي عن الإدخال. المعامل هو وقت بالثواني أو وحدات محددة صراحة مثل "s"، "min"، "h"، "ms".

    أُضيف في الإصدارة 216.

x-initrd.attach
    أعد هذا الجهاز الكتلي المعمى في initrd، بشكل مشابه لوحدات systemd.mount(5) المعلمة بـ x-initrd.mount.

    على الرغم من أنه ليس من الضروري تعليم إدخال الوصل لنظام الملفات الجذري بـ x-initrd.mount، إلا أنه لا يزال يُوصى بـ x-initrd.attach مع الجهاز الكتلي المعمى الذي يحتوي على نظام الملفات الجذري، وإلا فسيحاول systemd فصل الجهاز أثناء إيقاف تشغيل النظام العادي بينما لا يزال قيد الاستخدام. مع هذا الخيار، سيظل الجهاز يُفصل ولكن في وقت لاحق بعد فصل نظام الملفات الجذري.

    يجب على جميع الأجهزة الكتلية المعماة الأخرى التي تحتوي على أنظمة ملفات موصولة في initrd استخدام هذا الخيار.

    أُضيف في الإصدار 245.

fixate-volume-key=
    ثبّت التجزئة المتوقعة لمفتاح المجلد.

    في حالات معينة، على سبيل المثال لمجلدات LUKS حيث يكون المفتاح مختوماً على TPM2، قد يكون هذا مطلوباً لتقديم ضمان بأن المجلد الذي يجري وصله هو المجلد الذي أُنشئ سابقاً. يمكن استخدام fixate-volume-key= لضبط تجزئة مفتاح المجلد المتوقعة ورفض وصل المجلد إذا كان يحتوي على تجزئة مختلفة. تطابق التجزئة المتوقعة الخلاصة التي تُقاس لبنك sha256 PCR الخاص بـ TPM2 عند استخدام tpm2-measure-pcr=.

    بالنسبة لمجلدات LUKS المنشأة حديثاً، يمكن إنشاء التجزئة المتوقعة بواسطة systemd-repart(8). للحصول على تفاصيل إضافية، راجع وصف EncryptedVolume= في repart.d(5).

    أُضيف في الإصدار 260.

في مرحلة الإقلاع المبكر وعند إعادة تحميل ضبط مدير النظام، يُترجم هذا الملف إلى وحدات systemd أصلية بواسطة systemd-cryptsetup-generator(8).

ملفات مفاتيح AF_UNIX

إذا كان مسار ملف المفتاح (كما هو محدد في العمود الثالث من إدخالات /etc/crypttab، راجع أعلاه) يشير إلى مقبس دفق AF_UNIX في نظام الملفات، فسيُحصل على المفتاح عن طريق الاتصال بالمقبس وقراءة المفتاح من الاتصال. يُنشأ الاتصال من اسم مقبس AF_UNIX في مساحة الأسماء المجردة، راجع unix(7) للحصول على التفاصيل. يُختار اسم مقبس المصدر وفقاً للتنسيق التالي:

    NUL RANDOM /cryptsetup/ VOLUME

بمعنى آخر: بايت NUL (كما هو مطلوب لمقابس مساحة الأسماء المجردة)، تليه سلسلة عشوائية (تتكون من أحرف وأرقام فقط)، تليها السلسلة الحرفية "/cryptsetup/"، يليه اسم المجلد المراد الحصول على المفتاح له. على سبيل المثال، للمجلد "myvol":

    \0d7067f78d9827418/cryptsetup/myvol

يجوز للخدمات التي تستمع على مقبس دفق AF_UNIX الاستعلام عن اسم مقبس المصدر باستخدام getpeername(2)، واستخدام هذا لتحديد المفتاح المراد إرساله، مما يسمح لمقبس استماع واحد بتقديم مفاتيح لعدة مجلدات. إذا استُخدم منطق PKCS#11 (انظر أعلاه)، فسيُختار اسم مصدر المقبس بطريقة مماثلة، باستثناء استخدام السلسلة الحرفية "/cryptsetup-pkcs11/". وبالمثل بالنسبة لـ FIDO2 ("/cryptsetup-fido2-salt/") و TPM2 ("/cryptsetup-tpm2/"). يُستخدم مكون مسار مختلف لكي تعلن الخدمات التي توفر مادة المفتاح أن المفتاح السري لم يُطلب مباشرة، بل طُلب مفتاح معمر سيُفك تعميته عبر منطق PKCS#11/FIDO2/TPM2 للحصول على المفتاح السري النهائي.

أمثلة

مثال 1. مثال على /etc/crypttab

إعداد أربعة أجهزة كتلية معماة. أحدها يستخدم LUKS للتخزين العادي، والآخر للاستخدام كجهاز تبديل ومجلدان TrueCrypt. بالنسبة للجهاز الرابع، تُفسر سلسلة الخيارات كخيارين "cipher=xchacha12,aes-adiantum-plain64"، و "keyfile-timeout=10s".

    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\,aes-adiantum-plain64

مثال 2. مثال على فك قفل المجلد القائم على PKCS#11 باستخدام Yubikey

يتيح منطق PKCS#11 ربط أي رمز أمان متوافق قادر على تخزين مفاتيح تعمية RSA أو EC لفك قفل مجلد معمى. إليك مثالاً على كيفية إعداد رمز أمان Yubikey لهذا الغرض على مجلد LUKS2، باستخدام ykmap(1) من مشروع yubikey-manager لتهيئة الرمز و systemd-cryptenroll(1) لإضافته في مجلد LUKS2:

    # SPDX-License-Identifier: MIT-0
    # تدمير أي مفتاح قديم على Yubikey (احذر!)
    ykman piv reset
    # توليد زوج مفاتيح عام/خاص جديد على الجهاز، وتخزين المفتاح العام في
    # 'pubkey.pem'.
    ykman piv generate-key -a RSA2048 9d pubkey.pem
    # إنشاء شهادة ذاتية التوقيع من هذا المفتاح العام، وتخزينها على
    # الجهاز. يجب أن يكون "الموضوع" سلسلة اختيارية يختارها المستخدم لتعريف
    # الرمز بها.
    ykman piv generate-certificate --subject "Knobelei" 9d pubkey.pem
    # لم نعد بحاجة إلى المفتاح العام، فلنحذفه. وبما أنه ليس حساسًا
    # من الناحية الأمنية، فإننا نقوم بمجرد إزالة عادية عبر "rm" هنا.
    rm pubkey.pem
    # تسجيل رمز الأمان المهيأ حديثًا في مجلد LUKS2. استبدل
    # /dev/sdXn بالقسم المراد استخدامه (مثل /dev/sda1).
    sudo systemd-cryptenroll --pkcs11-token-uri=auto /dev/sdXn
    # اختبار: فلنقم بتشغيل systemd-cryptsetup لاختبار ما إذا كان كل هذا قد نجح.
    sudo systemd-cryptsetup attach mytest /dev/sdXn none pkcs11-uri=auto
    # إذا نجح ذلك، فلنضف الآن السطر نفسه بشكل دائم إلى /etc/crypttab،
    # للمستقبل. لا نريد استخدام اسم /dev/sdX (غير المستقر)، فلنعرف
    # رابطًا مستقرًا:
    udevadm info -q symlink -r /dev/sdXn
    # الآن أضف السطر باستخدام رابط العطف القائم على uuid إلى /etc/crypttab:
    sudo bash -c 'echo "mytest /dev/disk/by-uuid/... none pkcs11-uri=auto" >>/etc/crypttab'
    # اعتمادًا على توزيعتك وإعداد التعمية، قد تحتاج إلى إعادة توليد
    # initramfs يدويًا لتتمكن من استخدام رمز Yubikey / PKCS#11 لفك
    # قفل القسم أثناء بدء التشغيل المبكر.
    # مزيد من المعلومات على https://unix.stackexchange.com/a/705809.
    # على الأنظمة القائمة على فيدورا:
    sudo dracut --force
    # على الأنظمة القائمة على دبيان:
    sudo update-initramfs -u

بضع ملاحظات حول ما سبق:

    • نستخدم RSA2048، وهو أطول حجم مفتاح تدعمه أجهزة Yubikeys الحالية

    • نستخدم فتحة مفتاح Yubikey 9d، لأنها على ما يبدو فتحة المفتاح المستخدمة لأغراض فك التعمية، انظر فتحات شهادات Yubico PIV[3].

مثال 3. مثال على فك قفل المجلد باستخدام FIDO2

يتيح منطق FIDO2 استخدام أي رمز أمان FIDO2 متوافق يطبق امتداد "hmac-secret" لفك قفل مجلد معمى. إليك مثالاً على كيفية إعداد رمز أمان FIDO2 لهذا الغرض لمجلد LUKS2، باستخدام systemd-cryptenroll(1):

    # SPDX-License-Identifier: MIT-0
    # تسجيل رمز الأمان في مجلد LUKS2. استبدل /dev/sdXn بالقسم
    # المراد استخدامه (مثل /dev/sda1).
    sudo systemd-cryptenroll --fido2-device=auto /dev/sdXn
    # اختبار: فلنقم بتشغيل systemd-cryptsetup لاخَتبار ما إذا كان هذا قد نجح.
    sudo systemd-cryptsetup attach mytest /dev/sdXn none fido2-device=auto
    # إذا نجح ذلك، فلنضف الآن السطر نفسه بشكل دائم إلى /etc/crypttab،
    # للمستقبل. لا نريد استخدام اسم /dev/sdX (غير المستقر)، فلنعرف
    # رابطًا مستقرًا:
    udevadm info -q symlink -r /dev/sdXn
    # الآن أضف السطر باستخدام رابط العطف القائم على uuid إلى /etc/crypttab:
    sudo bash -c 'echo "mytest /dev/disk/by-uuid/... none fido2-device=auto" >>/etc/crypttab'
    # اعتمادًا على توزيعتك وإعداد التعمية، قد تحتاج إلى إعادة توليد
    # initramfs يدويًا لتتمكن من استخدام جهاز FIDO2 لفك قفل
    # القسم أثناء بدء التشغيل المبكر.
    # مزيد من المعلومات على https://unix.stackexchange.com/a/705809.
    # على الأنظمة القائمة على فيدورا:
    sudo dracut --force
    # على الأنظمة القائمة على دبيان:
    sudo update-initramfs -u

مثال 4. مثال على فك قفل المجلد باستخدام TPM2

يتيح منطق TPM2 استخدام أي شريحة TPM2 تدعمها نواة لينكس لفك قفل مجلد معمى. إليك مثالاً على كيفية إعداد شريحة TPM2 لهذا الغرض لمجلد LUKS2، باستخدام systemd-cryptenroll(1):

    # SPDX-License-Identifier: MIT-0
    # تسجيل شريحة الأمان TPM2 في مجلد LUKS2، وربطها بـ PCR 7
    # فقط. استبدل /dev/sdXn بالقسم المراد استخدامه (مثل /dev/sda1).
    sudo systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/sdXn
    # اختبار: فلنقم بتشغيل systemd-cryptsetup لاختبار ما إذا كان هذا قد نجح.
    sudo systemd-cryptsetup attach mytest /dev/sdXn none tpm2-device=auto
    # إذا نجح ذلك، فلنضف الآن السطر نفسه بشكل دائم إلى /etc/crypttab،
    # للمستقبل. لا نريد استخدام اسم /dev/sdX (غير المستقر)، فلنعرف
    # رابطًا مستقرًا:
    udevadm info -q symlink -r /dev/sdXn
    # الآن أضف السطر باستخدام رابط العطف القائم على uuid إلى /etc/crypttab:
    sudo bash -c 'echo "mytest /dev/disk/by-uuid/... none tpm2-device=auto" >>/etc/crypttab'
    # والآن فلنتحقق من أن فك القفل الآلي يعمل:
    sudo systemd-cryptsetup detach mytest
    sudo systemctl daemon-reload
    sudo systemctl start cryptsetup.target
    systemctl is-active systemd-cryptsetup@mytest.service
    # بمجرد حصولنا على الجهاز الذي سيُفك قفله آليًا، يمكننا استخدامه.
    # عادةً ما ننشئ نظام ملفات ونضيفه إلى /etc/fstab:
    sudo mkfs.ext4 /dev/mapper/mytest
    # يطبع هذا 'Filesystem UUID'، والذي يمكننا استخدامه كاسم مستقر:
    sudo bash -c 'echo "/dev/disk/by-uuid/... /var/mytest ext4 defaults,x-systemd.mkdir 0 2" >>/etc/fstab'
    # والآن فلنتحقق من أن الوصل يعمل:
    sudo systemctl daemon-reload
    sudo systemctl start /var/mytest
    systemctl status /var/mytest
    # اعتمادًا على توزيعتك وإعداد التعمية، قد تحتاج إلى إعادة توليد
    # initramfs يدويًا لتتمكن من استخدام شريحة أمان TPM2 لفك
    # قفل القسم أثناء بدء التشغيل المبكر.
    # مزيد من المعلومات على https://unix.stackexchange.com/a/705809.
    # على الأنظمة القائمة على فيدورا:
    sudo dracut --force
    # على الأنظمة القائمة على دبيان:
    sudo update-initramfs -u

انظر أيضًا

systemd(1), systemd-cryptsetup@.service(8), systemd-cryptsetup-generator(8), systemd-cryptenroll(1), systemd-repart(8), repart.d(5), fstab(5), cryptsetup(8), mkswap(8), mke2fs(8)

ملاحظات

1.  مضاعف التكرارات الشخصية Veracrypt
    https://www.veracrypt.fr/en/Personal%20Iterations%20Multiplier%20%28PIM%29.html

2.  RFC7512 PKCS#11 URI
    https://tools.ietf.org/html/rfc7512

3.  فتحات شهادات Yubico PIV
    https://developers.yubico.com/PIV/Introduction/Certificate_slots.html

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.