SYSTEMD-PCRPHASE.SERVICE(8)

الاسم
systemd-pcrphase.service، systemd-pcrphase-sysinit.service، systemd-pcrphase-initrd.service، systemd-pcrmachine.service، systemd-pcrosseparator.service، systemd-pcrproduct.service، systemd-pcrlogin@.service، systemd-pcrfs-root.service، systemd-pcrfs@.service، systemd-pcrnvdone.service، systemd-pcrextend - قياس مراحل الإقلاع، معرف الآلة، UUID المنتج، سجلات المستخدمين وهوية نظام الملفات في PCRs و NvPCRs الخاصة بـ TPM

موجز

systemd-pcrphase.service

systemd-pcrphase-sysinit.service

systemd-pcrphase-initrd.service

systemd-pcrmachine.service

systemd-pcrosseparator.service

systemd-pcrproduct.service

systemd-pcrlogin@.service

systemd-pcrfs-root.service

systemd-pcrfs@.service

systemd-pcrnvdone.service

/usr/lib/systemd/systemd-pcrextend [STRING]

الوصف

خدمات systemd-pcrphase.service و systemd-pcrphase-sysinit.service و systemd-pcrphase-initrd.service هي خدمات نظام تقوم بقياس سلاسل نصية محددة في PCR 11 الخاص بـ TPM2 أثناء الإقلاع في مراحل مختلفة من عملية الإقلاع.

خدمة systemd-pcrmachine.service هي خدمة نظام تقوم بقياس معرف الجهاز (انظر machine-id(5)) في PCR 15.

systemd-pcrosseparator.service هي خدمة نظام تقيس كلمة "os-separator" في PCRs 0-7، 9، 12-14. يعمل هذا كقياس فاصل إضافي يفصل قياسات ما قبل الإقلاع (أي البرامج الثابتة + محمل الإقلاع) عن قياسات نظام التشغيل، ويُغلق بشكل خاص PCRs البرامج الثابتة.

خدمة systemd-pcrproduct.service هي خدمة نظام تقوم بقياس معرّف المنتج الفريد (UUID) للبرامج الثابتة (كما هو مقدم من أحد SMBIOS أو Devicetree أو ...) في NvPCR يُسمى "hardware".

systemd-pcrlogin@.service هي خدمة قالب تقيس سجل المستخدم (المختزل، JSON القانوني) للمستخدم المشار إليه بواسطة معرف مثيله (UID) في NvPCR يُسمى "login". تُبدأ بواسطة systemd-logind.service(8) عند أول تسجيل دخول للمستخدم في الإقلاع الحالي، مثل user-runtime-dir@.service(5). على عكس الأخيرة، لا تُوقف عن قصد مرة أخرى: إنها خدمة Type=oneshot مع RemainAfterExit=yes في system.slice، لذلك يُقاس كل مستخدم مرة واحدة بالضبط لكل إقلاع بغض النظر عن عدد مرات تسجيل الدخول والخروج (تشكل امتدادات NvPCR سلسلة تجزئة، لذا فإن قياس نفس السجل مرتين سيجعل قيمة NvPCR غير متوقعة). وبالتالي، يوفر NvPCR "login" الناتج (مع سجل الأحداث /run/log/systemd/tpm2-measure.log) سجلًا مدعومًا بـ TPM وقابلًا للإضافة فقط لهويات المستخدمين التي نُشطت أثناء الإقلاع الحالي.

خدمة systemd-pcrnvdone.service هي خدمة نظام تقوم بقياس حدث فاصل في PCR 9 بمجرد اكتمال تهيئة جميع NvPCRs.

خدمات systemd-pcrfs-root.service و systemd-pcrfs@.service هي خدمات تقوم بقياس معلومات هوية نظام الملفات (أي نقطة التثبيت، ونوع نظام الملفات، والتسمية والمعرّف الفريد (UUID)، وتسمية القسم والمعرّف الفريد) في PCR 15. تقوم systemd-pcrfs-root.service بذلك لنظام الملفات الجذر، بينما systemd-pcrfs@.service هي وحدة قالب تقوم بقياس نظام الملفات المشار إليه بواسطة معرف المثيل الخاص بها بدلاً من ذلك.

تتطلب هذه الخدمات استخدام systemd-stub(7) في صورة نواة موحدة (UKI). لا تنفذ أي عملية عندما لا يُستخدم الكعب لاستدعاء النواة. سيقوم الكعب بقياس النواة المستدعاة والموارد المرتبطة بالبائع في PCR 11 قبل تسليم التحكم إليها؛ بمجرد استدعاء مساحة المستخدم، ستقوم هذه الخدمات بعد ذلك بتمديد PCR 11 الخاص بـ TPM2 بسلاسل نصية حرفية تشير إلى مراحل عملية الإقلاع. أثناء عملية إقلاع عادية، يتم تمديد PCR 11 بالسلاسل التالية:

    1. "enter-initrd" — مبكرًا عند تهيئة initrd، قبل تفعيل صور تمديد النظام لـ initrd. يعمل كحاجز بين الوقت الذي تهيئ فيه النواة والوقت الذي يبدأ فيه initrd العمل ويمكّن صور تمديد النظام، أي الشيفرة المشحونة خارج UKI. (يحدث هذا التمديد عند بدء خدمة systemd-pcrphase-initrd.service(8).)

    2. "leave-initrd" — عندما يكون initrd على وشك الانتقال إلى نظام الملفات المضيف. يعمل كحاجز بين شيفرة initrd وشيفرة نظام التشغيل المضيف. (يحدث هذا التمديد عند إيقاف خدمة systemd-pcrphase-sysinit.service(8).)

    3. "sysinit" — عند اكتمال تهيئة النظام الأساسية (والتي تتضمن تثبيت أنظمة الملفات المحلية)، ويبدأ النظام في تشغيل خدمات النظام العادية. (يحدث هذا التمديد عند بدء خدمة systemd-pcrphase-sysinit.service(8).)

    4. "ready" — أثناء الإقلاع المتأخر، بعد تفعيل أنظمة الملفات البعيدة (أي بعد remote-fs.target)، ولكن قبل السماح للمستخدمين بتسجيل الدخول (أي قبل systemd-user-sessions.service). يعمل كحاجز بين الوقت الذي لا يزال فيه المستخدمون العاديون غير المميزين ممنوعين من تسجيل الدخول والوقت الذي يُسمح لهم فيه بتسجيل الدخول. (يحدث هذا التمديد عند بدء خدمة systemd-pcrphase-sysinit.service(8).)

    5. "shutdown" — عندما يبدأ إيقاف تشغيل النظام. يعمل كحاجز بين الوقت الذي يكون فيه النظام قيد التشغيل بالكامل والوقت الذي يكون على وشك الإيقاف. (يحدث هذا التمديد عند إيقاف خدمة systemd-pcrphase.service.)

    6. "final" — في نهاية إيقاف تشغيل النظام. يعمل كحاجز بين الوقت الذي لا يزال فيه مدير الخدمة قيد التشغيل والوقت الذي ينتقل فيه إلى مرحلة الإيقاف النهائية حيث لا تتوفر إدارة الخدمة بعد الآن. (يحدث هذا التمديد عند إيقاف خدمة systemd-pcrphase-sysinit.service(8).)

خلال دورة حياة نظام عادية، يتم تمديد PCR 11 بالسلاسل "enter-initrd" و "leave-initrd" و "sysinit" و "ready" و "shutdown" و "final".

يمكن الإشارة إلى مراحل محددة من عملية الإقلاع عبر سلسلة السلاسل المقاسة، مفصولة بنقطتين رأسيتين ("مسار المرحلة"). على سبيل المثال، مسار المرحلة لوقت تشغيل النظام العادي هو "enter-initrd:leave-initrd:sysinit:ready"، بينما مسار initrd هو فقط "enter-initrd". مسار المرحلة لمرحلة الإقلاع قبل initrd هو سلسلة فارغة؛ ولأنه من الصعب تمرير ذلك، يمكن استخدام نقطتين رأسيتين (":") بدلاً من ذلك. لاحظ أن السلاسل الست المذكورة أعلاه هي مجرد سلاسل افتراضية وقد تقيس الأنظمة الفردية سلاسل أخرى في أوقات أخرى، وبالتالي تنفذ مراحل إقلاع مختلفة وأكثر تفصيلاً لربط السياسة بها.

من خلال ربط سياسة كائنات TPM2 بمسار مرحلة محدد، يمكن تقييد الوصول إليها لمراحل محددة من عملية الإقلاع، على سبيل المثال جعل الوصول إلى مفتاح تشفير نظام الملفات الجذر مستحيلاً بعد انتقال النظام من initrd إلى نظام الملفات الجذر المضيف.

استخدم systemd-measure(1) لحساب قيم PCR 11 المتوقعة مسبقًا لمراحل إقلاع محددة (عبر المفتاح --phase=).

يتم سحب systemd-pcrfs-root.service و systemd-pcrfs@.service آليًا إلى المعاملة الأولية بواسطة systemd-gpt-auto-generator(8) لأنظمة الملفات الجذر و /var/. سيقوم systemd-fstab-generator(8) بذلك لجميع نقاط التثبيت مع خيار التثبيت x-systemd.pcrfs في /etc/fstab.

الخيارات

يمكن أيضًا استدعاء الملف التنفيذي /usr/lib/systemd/systemd-pcrextend من سطر الأوامر، حيث يتوقع الكلمة المراد تمديدها في PCR أو NvPCR، بالإضافة إلى المفاتيح التالية:

--bank=
    يأخذ بنوك PCR لتمديد الكلمة المحددة فيها. إذا لم يُحدد، تحدد الأداة آليًا جميع بنوك PCR الممكّنة وتقيس الكلمة في جميعها.

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

--pcr=
    يأخذ فهرس PCR المراد تمديده. إذا حُدد --machine-id أو --file-system=، فالمبدئي هو 15، وإلا (وما لم يُحدد --product-id) فالمبدئي هو 11. يمكن تحديده عدة مرات، لقياس PCRs متعددة في نفس الوقت. لا يمكن دمجه مع --nvpcr=.

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

--nvpcr=
    يأخذ اسم NvPCR لتمديده. NvPCRs هي PCRs إضافية مطبقة عبر فهارس NV الخاصة بـ TPM. يجب أن يكون الاسم سلسلة قصيرة مثل "hardware" أو "disk-encryption". إذا تم تحديد --product-id فالمبدئي هو "hardware". لا يجوز دمجه مع --pcr=.

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

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

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

--graceful
    إذا لم يُعثر على دعم لبرنامج TPM2 الثابت أو النظام الفرعي للنواة أو برنامج تشغيل النواة أو الجهاز، يُخرج بحالة خروج 0 (أي يشير إلى النجاح). إذا لم يُحدد هذا، فإن أي محاولة للقياس بدون جهاز TPM2 ستتسبب في فشل الاستدعاء.

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

--early
    يختار وضع الإقلاع المبكر. تحديدًا يعني هذا أن سر مرساة NvPCR لا يُحاول كتابته في /var/lib/ وقسم محمل الإقلاع بالإضافة إلى /run/. (على عكس الأخير، فإن الأولين غير مركبين وقابلين للكتابة عمومًا أثناء الإقلاع المبكر أو في initrd.)

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

--machine-id
    بدلاً من قياس كلمة محددة في سطر الأوامر إلى PCR 11، قم بقياس معرف آلة المضيف إلى PCR 15.

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

--product-id
    بدلاً من قياس كلمة محددة في سطر الأوامر إلى PCR 11، قم بقياس UUID منتج البرنامج الثابت إلى NvPCR باسم "hardware".

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

--login=
    بدلاً من قياس كلمة محددة في سطر الأوامر في PCR 11، قم بقياس سجل المستخدم للمستخدم المحدد في NvPCR يُسمى "login". يجب أن يكون المعامل اسم مستخدم أو UID رقمي. يُختزل السجل إلى أقسامه "regular" و "perMachine" و "binding" (أي تُزال الأقسام المميزة والسرية والحالة والتوقيع، بحيث لا تؤثر تغييرات تجزئة كلمة السر على NvPCR)، ويُطبع ويُسلسل إلى JSON قانوني قبل القياس. يُستخدم هذا بشكل رئيسي بواسطة systemd-pcrlogin@.service.

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

--file-system=
    بدلاً من قياس كلمة محددة في سطر الأوامر إلى PCR 11، قم بقياس معلومات هوية نظام الملفات المحدد إلى PCR 15. يجب أن تكون المعلمة المسار إلى نقطة التثبيت المقررة لنظام الملفات المراد قياسه.

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

--event-type=
    اضبط نوع حدث سجل الأحداث لهذا القياس. مرر "help" للحصول على قائمة المعرفات المعرفة حاليًا. المبدئي هو قيمة مناسبة لـ --machine-id و --product-id و --file-system= و --login=، وإلا فهو "phase".

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

-h، --help
    اطبع نص مساعدة قصير واخرج.

--version
    اطبع سلسلة إصدار قصيرة واخرج.

الملفات

/run/log/systemd/tpm2-measure.log
    تُسجل القياسات في ملف سجل أحداث يُحتفظ به في /run/log/systemd/tpm2-measure.log، والذي يحتوي على سلسلة JSON-SEQ[1] من الكائنات التي تتبع البنية العامة لكائنات حدث TCG Canonical Event Log Format (CEL-JSON)[2] (ولكنها تفتقر إلى حقل "recnum").

    يُكتسب قفل ملف BSD LOCK_EX (flock(2)) على ملف السجل أثناء إجراء القياس وتحديث الملف. وبالتالي، يجب على التطبيقات التي تنوي الحصول على اقتباس متسق من TPM مع لقطة سجل الأحداث المرتبطة أن تكتسب قفل LOCK_SH أثناء القيام بذلك.

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

/usr/lib/nvpcr/*.nvpcr
    ملفات تعريف لـ NvPCRs.

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

انظر أيضًا

systemd(1)، systemd-stub(7)، systemd-measure(1)، systemd-gpt-auto-generator(8)، systemd-fstab-generator(8)، قياسات PCR لـ TPM2 التي يقوم بها systemd[3]

ملاحظات

1.  JSON-SEQ
    https://www.rfc-editor.org/rfc/rfc7464.html

2.  تنسيق سجل أحداث TCG القانوني (CEL-JSON)
    https://trustedcomputinggroup.org/resource/canonical-event-log-format/

3.  قياسات TPM2 PCR التي أجراها systemd
    https://systemd.io/TPM2_PCR_MEASUREMENTS

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

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

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