| SIGN-EFI-SIG-LIST(1) | User Commands | SIGN-EFI-SIG-LIST(1) |
نام (NAME)
sign-efi-sig-list - ابزار امضای متغیرهای امن به صورت فهرستهای امضای EFI
خلاصه دستور (SYNOPSIS)
sign-efi-sig-list [-r] [-m] [-a] [-g <guid>] [-o] [-t <timestamp>] [-i <infile>] [-c <crt file>] [-k <key file>] [-e <engine>] <var> <efi sig list file> <output file>
توضیحات (DESCRIPTION)
تولید یک فایل خروجی همراه با هدر احراز هویت جهت بهروزرسانی مستقیم متغیرهای امن (secure variables). این خروجی میتواند مستقیماً با کلیدهای معمول امضا شود یا برای امضای خارجی با استفاده از گزینههای -o و -i تفکیک گردد.
گزینهها (OPTIONS)
- -r
- گواهی به جای x509 از نوع rsa2048 است [پیادهسازی نشده]
- -m
- استفاده از شمارش یکنواخت (monotonic count) به جای برچسب زمانی [پیادهسازی نشده]
- -a
- آمادهسازی متغیر برای APPEND_WRITE به جای جایگزینی کامل
- -o
- امضا نکردن، بلکه خروجی دادن فایلی از بسته دقیقی که باید امضا شود
- -t <timestamp>
- استفاده از <timestamp> به عنوان برچسب زمانی بهروزرسانی زماندار متغیر. در صورت عدم تعیین، برچسب زمانی از ساعت سیستم گرفته خواهد شد. توجه داشته باشید که هنگام انجام امضای مجزا (detached signing) باید الزاماً از این گزینه استفاده کنید؛ در غیر این صورت به دلیل عدم تطابق برچسبهای زمانی، امضا نامعتبر خواهد بود.
- -i <infile>
- دریافت یک امضای مجزا (در قالب PEM) از بسته تولیدشده توسط گزینه -o و تکمیل ساخت فایل بهروزرسانی
- -g <guid>
- استفاده از <guid> به عنوان شناسه یکتای مالک امضا (GUID)
- -c <crt>
- فایل <crt> حاوی گواهی امضا در قالب PEM است
- -k <key>
- فایل <key> حاوی کلید اختصاصی برای <crt> در قالب PEM است
- -e <engine>
- استفاده از موتور openssl با نام <engine> برای کلید خصوصی
مثالها (EXAMPLES)
برای امضای یک بهروزرسانی افزایشی ساده روی db که به عنوان یک فهرست امضای EFI در DB.esl آماده شده است و تولید خروجی نتیجه همراه با هدر احراز هویت در DB.auth:
sign-efi-sig-list -a -c KEK.crt -k KEK.key db DB.esl DB.auth
برای انجام امضای مجزا به همان روش:
sign-efi-sig-list -a -t 'Jul 21 09:39:37 BST 2012' -o db DB.esl DB.forsig
اکنون فایل DB.forsig را با روش استاندارد openssl امضا کنید. توجه داشته باشید که استانداردها به الگوریتم امضای sha256 نیاز دارند:
openssl smime -sign -binary -in DB.forsig -out DB.signed -signer KEK.crt -inkey KEK.key -outform DER -md sha256
این دستور یک امضای مجزای PKCS7 در DB.signed تولید میکند. حال این فایل را با یادآوری حفظ همان برچسب زمانی (و سوییچ -a) مجدداً به برنامه بدهید:
sign-efi-sig-list -a -i DB.signed -t 'Jul 21 09:39:37 BST 2012' db DB.auth
برای حذف یک کلید، کافی است یک فایل فهرست امضای EFI خالی را امضا کنید؛ بنابراین برای تولید یک بهروزرسانی متغیر که PK را حذف میکند:
> null.esl
و سپس آن را به روش استاندارد امضا کنید (نباید یک بهروزرسانی از نوع نوشتن افزایشی باشد):
sign-efi-sig-list -c PK.crt -k PK.key PK null.esl PK.auth
هنگامی که فایل .auth به پلتفرم UEFI منتقل شد، میتوانید از برنامه UpdateVars.efi برای اعمال آن استفاده کنید:
UpdateVars [-a] db DB.auth
که در آن در صورتی که فایل DB.auth به عنوان یک بهروزرسانی نوشتن افزایشی (append write) ایجاد شده باشد سوییچ -a باید درج شود، و اگر متغیر جایگزین میشود باید حذف گردد.
همچنین ببینید (SEE ALSO)
برای جزئیات مربوط به نحوه تولید فهرستهای امضای EFI، به cert-to-efi-sig-list(1) مراجعه کنید.
| January 2026 | sign-efi-sig-list 1.9.2 |