| SYSTEMD-PCRPHASE.SERVICE(8) | systemd-pcrphase.service | SYSTEMD-PCRPHASE.SERVICE(8) |
نام (NAME)
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-pcrphase-factory-reset.service, systemd-pcrphase-storage-target-mode.service, systemd-pcrextend - اندازهگیری فازهای بوت، شناسه ماشین، UUID محصول، رکوردهای کاربر و هویت سیستمفایل در TPM PCRها و NvPCRها
خلاصه دستور (SYNOPSIS)
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-pcrphase-factory-reset.service
systemd-pcrphase-storage-target-mode.service
/usr/lib/systemd/systemd-pcrextend [STRING]
توضیحات (DESCRIPTION)
systemd-pcrphase.service، systemd-pcrphase-sysinit.service و systemd-pcrphase-initrd.service سرویسهای سیستمی هستند که رشتههای مشخصی را در طول بوت در نقاط عطف مختلف فرآیند بوت در TPM2 PCR 11 اندازهگیری میکنند.
systemd-pcrmachine.service یک سرویس سیستمی است که شناسه ماشین (به machine-id(5) مراجعه کنید) را در PCR 15 اندازهگیری میکند.
systemd-pcrosseparator.service یک سرویس سیستمی است که کلمه "os-separator" را در PCRهای 0-7، 9 و 12-14 اندازهگیری میکند. این عمل به عنوان یک اندازهگیری جداکننده اضافی، اندازهگیریهای پیش از بوت (یعنی سفتافزار + بارگذار بوت) را از اندازهگیریهای سیستمعامل جدا میسازد و بهویژه PCRهای سفتافزار را «مهر و موم» (seal) میکند.
systemd-pcrproduct.service یک سرویس سیستمی است که UUID محصول سفتافزار را (همانطور که توسط یکی از SMBIOS، Devicetree و غیره ارائه شده است) در یک NvPCR با نام "hardware" اندازهگیری میکند.
systemd-pcrlogin@.service یک سرویس الگو (template) است که رکورد کاربر (خلاصهشده، در قالب 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 و فقطافزودنی (append-only) از هویتهای کاربری فعالشده در طول بوت جاری فراهم میکند.
systemd-pcrnvdone.service یک سرویس سیستمی است که پس از اتمام مقداردهی اولیه تمام NvPCRها، یک رویداد جداکننده را در PCR 9 اندازهگیری میکند.
systemd-pcrfs-root.service و systemd-pcrfs@.service سرویسهایی هستند که اطلاعات هویتی سیستمفایل (یعنی نقطه اتصال، نوع سیستمفایل، برچسب و UUID، برچسب پارتیشن و UUID) را در PCR 15 اندازهگیری میکنند. systemd-pcrfs-root.service این کار را برای سیستمفایل ریشه انجام میدهد و systemd-pcrfs@.service یک واحد الگو است که به جای آن سیستمفایل مشخصشده توسط شناسه نمونه خود را اندازهگیری میکند.
این سرویسها نیازمند استفاده از systemd-stub(7) در یک ایمیج هسته یکپارچه (UKI) هستند. هنگامی که از stub برای فراخوانی هسته استفاده نشده باشد، هیچ عملیاتی انجام نمیدهند. پیش از واگذاری کنترل به هسته، stub هسته فراخوانیشده و منابع مرتبط سازنده را در PCR 11 اندازهگیری میکند؛ به محض اینکه فضای کاربری (userspace) فراخوانی شود، این سرویسها TPM2 PCR 11 را با رشتههای متنی مشخصی که نشاندهنده فازهای فرآیند بوت هستند گسترش میدهند. در طول یک فرآیند بوت عادی، PCR 11 با رشتههای زیر گسترش مییابد:
در طول چرخه حیات عادی سیستم، PCR 11 با رشتههای "enter-initrd"، "leave-initrd"، "sysinit"، "ready"، "shutdown" و "final" گسترش مییابد.
فازهای خاص فرآیند بوت را میتوان از طریق سری رشتههای اندازهگیریشده که با دونقطه از هم جدا شدهاند (به اصطلاح «مسیر فاز» یا "phase path") مورد ارجاع قرار داد. برای مثال، مسیر فاز برای زمان اجرای عادی سیستم "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 هستند انجام خواهد داد.
گزینهها (OPTIONS)
فایل اجرایی /usr/lib/systemd/systemd-pcrextend را میتوان از خط فرمان نیز فراخوانی کرد، که در آن انتظار کلمهای برای گسترش در یک PCR یا NvPCR و همچنین سوییچهای زیر را دارد:
--bank=
در نسخه ۲۵۲ اضافه شد.
--pcr=
در نسخه ۲۵۵ اضافه شد.
--nvpcr=
در نسخه ۲۵۹ اضافه شد.
--tpm2-device=PATH
در نسخه ۲۵۲ اضافه شد.
--graceful
در نسخه ۲۵۳ اضافه شد.
--early
در نسخه ۲۵۹ اضافه شد.
--machine-id
در نسخه ۲۵۳ اضافه شد.
--product-id
در نسخه ۲۵۹ اضافه شد.
--login=
در نسخه ۲۶۱ اضافه شد.
--file-system=
در نسخه ۲۵۳ اضافه شد.
--event-type=
در نسخه ۲۵۹ اضافه شد.
-h, --help
--version
فایلها (FILES)
/run/log/systemd/tpm2-measure.log
هنگام انجام اندازهگیری و بهروزرسانی فایل، یک قفل فایل BSD از نوع LOCK_EX (flock(2)) روی فایل گزارش اعمال میشود. بنابراین، برنامههایی که قصد دارند یک نقلقول (quote) منسجم از TPM همراه با تصویر لحظهای (snapshot) مرتبط از گزارش رویداد به دست آورند، باید در هنگام انجام این کار یک قفل LOCK_SH به دست آورند.
در نسخه ۲۵۲ اضافه شد.
/usr/lib/nvpcr/*.nvpcr
در نسخه ۲۵۹ اضافه شد.
همچنین ببینید (SEE ALSO)
systemd(1), systemd-stub(7), systemd-measure(1), systemd-gpt-auto-generator(8), systemd-fstab-generator(8), اندازهگیریهای TPM2 PCR انجامشده توسط systemd[3]
نکات (NOTES)
- 1.
- JSON-SEQ
- 2.
- قالب گزارش رویداد متعارف TCG (CEL-JSON)
- 3.
- اندازهگیریهای TPM2 PCR انجامشده توسط systemd
| systemd 261.2 |