これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド sign-efi-sig-list です。
プログラム:
NAME
sign-efi-sig-list - EFI 署名リストとしての安全な変数の署名ツール
SYNOPSIS
署名 efi 署名リスト [-r] [-m] [-a] [-g ] [-o] [-t ] [-i ] [-c <crt
ファイル>] [-k <キー ファイル>] <efi SIG リスト ファイル> <出力 ファイル>
DESCRIPTION
安全なファイルに直接更新するための認証ヘッダーを含む出力ファイルを生成します。
変数。 この出力は、通常の鍵で直接署名するか、分割することができます。
を使用した外部署名 -o と -i オプション。
OPTIONS
-r 証明書は x2048 ではなく rsa509 です [未実装]
-m タイムスタンプの代わりに単調カウントを使用する [未実装]
-a 変数を置換ではなく APPEND_WRITE 用に準備する
-o 署名しないで、署名する正確なバンドルのファイルを出力します
-t
使用する時限変数更新のタイムスタンプとして存在しない場合、
タイムスタンプはシステム時刻から取得されます。 このオプションは、次の場合に使用する必要があることに注意してください。
そうしないと、署名が正しくなくなります。
タイムスタンプの不一致。
-i
によって生成されたバンドルの分離された署名 (PEM 形式) を取得します。 -o そして完了
アップデートの作成
-g
使用する署名所有者の GUID として
-c
PEM形式の署名証明書を含むファイルです
-k
のキーを含むファイルですPEM形式で
例
EFI 署名リストとして準備された db への単純な追加更新に署名するには
DB.esl を実行し、DB.auth の認証ヘッダーを使用して結果を出力します。
署名-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
次に、標準の openssl 方法で DB.forsig ファイルに署名します。 標準が要求することに注意してください
署名アルゴリズムとしてのsha256
openssl smime -sign -binary -in DB.forsig -out DB.signed -signer KEK.crt -inkey KEK.key
-outform DER -md sha256
これにより、DB.signed で切り離された PKCS7 署名が生成されます。 これを
同じタイムスタンプ (および -a フラグ) を維持することを覚えているプログラム:
sign-efi-sig-list -a -i DB.signed -t 'Jul 21 09:39:37 BST 2012' db DB.auth
キーを削除するには、空の EFI 署名リスト ファイルに署名するだけで、変数を生成できます。
PK を削除する更新:
> null.esl
次に、標準的な方法で署名します (追加書き込み更新であってはなりません)。
署名-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 ファイルが追加書き込みとして作成された場合、-a フラグが必要な場所
変数を置き換える場合は更新し、存在しません。
onworks.net サービスを使用してオンラインで sign-efi-sig-list を使用する