SYSTEMD-SBSIGN(1) systemd-sbsign SYSTEMD-SBSIGN(1)

systemd-sbsign - امضای فایل‌های باینری PE برای بوت امن EFI (EFI Secure Boot)

systemd-sbsign [OPTIONS...] {COMMAND}

systemd-sbsign می‌تواند برای امضای فایل‌های باینری PE برای بوت امن EFI (EFI Secure Boot) استفاده شود.

sign

فایل باینری PE داده‌شده را برای بوت امن EFI امضا می‌کند. یک مسیر به باینری PE را به عنوان آرگومان خود دریافت می‌کند. اگر باینری PE از قبل دارای جدول گواهی باشد، امضای جدید به آن اضافه خواهد شد. در غیر این صورت، یک جدول گواهی جدید ایجاد می‌شود. باینری PE امضاشده در مسیری که با --output= مشخص شده است نوشته خواهد شد.

در نگارش ۲۵۷ اضافه شد.

گزینه‌های زیر پشتیبانی می‌شوند:

--output=PATH

مسیری را مشخص می‌کند که باینری PE امضاشده یا داده‌هایی که باید به صورت آفلاین امضا شوند (هنگام استفاده از گزینه --prepare-offline-signing) در آن نوشته شوند.

در نگارش ۲۵۷ اضافه شد.

--private-key=PATH/URI, --private-key-source=TYPE[:NAME], --certificate=PATH, --certificate-source=TYPE[:NAME]

کلید خصوصی و گواهی بوت امن را برای استفاده با فرمان sign تنظیم می‌کند. گزینه --certificate= یک مسیر به گواهی X.509 با کدگذاری PEM یا یک URI که به ارائه‌دهنده (provider) OpenSSL پیکربندی‌شده با --certificate-source ارسال می‌شود را می‌پذیرد. گزینه --certificate-source یکی از مقادیر "file" یا "provider" را می‌گیرد که در حالت دوم یک شناسه ارائه‌دهنده مشخص به همراه دونقطه به دنبال آن می‌آید، مانند "provider:pkcs11". گزینه --private-key= یک مسیر یا URI را می‌پذیرد که به موتور (engine) یا ارائه‌دهنده (provider) OpenSSL، همان‌گونه که توسط --private-key-source= به صورت چندتایی "type:name" مشخص شده است (مانند "engine:pkcs11")، ارسال خواهد شد. موتور امضا یا ارائه‌دهنده OpenSSL مشخص‌شده برای امضای باینری PE استفاده خواهد شد.

در نگارش ۲۵۷ اضافه شد.

--prepare-offline-signing

هنگامی که این گزینه مشخص شود، فرمان sign داده‌هایی را که باید امضا شوند، به جای نوشتن باینری PE امضاشده، در مسیر مشخص‌شده با --output= می‌نویسد. این داده‌ها سپس می‌توانند خارج از سیستم (out-of-band) امضا شوند و پس از آن امضا می‌تواند با استفاده از گزینه‌های --signed-data= و --signed-data-signature= به باینری PE ضمیمه شود.

در نگارش ۲۵۸ اضافه شد.

--signed-data=PATH, --signed-data-signature=PATH

داده‌های امضاشده (همان‌طور که هنگام استفاده از گزینه --prepare-offline-signing در مسیر مشخص‌شده با --output= نوشته شده است) و امضای متناظر را برای فرمان sign پیکربندی می‌کند.

در نگارش ۲۵۸ اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

--version

نمایش رشتهٔ نگارش کوتاه و خروج.

مثال ۱. امضای آفلاین بوت امن EFI برای یک باینری PE

دستورات زیر امضای آفلاین بوت امن را برای systemd-boot انجام می‌دهد:

SD_BOOT="$(find /usr/lib/systemd/boot/efi/ -name "systemd-boot*.efi" | head -n1)"
# Extract the data that should be signed offline.
/usr/lib/systemd/systemd-sbsign \
    sign \
    --certificate=secure-boot-certificate.pem \
    --output=signed-data.bin \
    --prepare-offline-signing \
    "$SD_BOOT"
# Sign the data out-of-band. This step usually happens out-of-band on a separate system.
openssl dgst -sha256 -sign secure-boot-private-key.pem -out signed-data.sig signed-data.bin
# Attach the signed data and its signature to the systemd-boot PE binary.
/usr/lib/systemd/systemd-sbsign \
    sign \
    --certificate=secure-boot-certificate.pem \
    --output="$SD_BOOT.signed" \
    --signed-data=signed-data.bin \
    --signed-data-signature=signed-data.sig \
    "$SD_BOOT"

bootctl(1)

systemd 261.2