ステートレス OpenPGP

提供: ArchWiki
2024年8月16日 (金) 18:28時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (ステートレスに書き換え)
ナビゲーションに移動 検索に移動

関連記事

ステートレス OpenPGP (SOP) は、コマンドラインインターフェイス (CLI) ツールが OpenPGP の操作を行うための標準規格です。 この機能と構文の概要が記されているこれについて扱っている IETF のドラフトで定義されています。

SOP は、メッセージの署名/検証および暗号化/復号するための効率的な方法です。これらの全ての操作において証明書を明示的に指定することになっています。

通常、秘密鍵の操作はソフトウェア鍵を用います。しかし、一部の SOP 実装においては、ハードウェアセキュリティデバイスに保存してある秘密鍵のデータを使用することもできます。

多くの SOP 実装が存在しており、相互運用性テストスイートで相互テストされています。

実装は様々な名前の実行可能ファイルを提供していますが、これらは全て同じ CLI を持っており、コア機能は互換性があります。

インストール

インストール可能な実装はいくつか存在します:

機能

SOP は統一されたインターフェイスを提供しますが、OpenPGP の規定する暗号化メカニズムからサポートするサブセットを自由に選択することが許されています。 異なるバージョンのフォーマットや、ハードウェア上に保存された鍵をサポートしている場合も有ります。

ステートレス OpenPGP の実装
パッケージ RFC 4880 (+ RFC 6637) draft-koch-librepgp draft-ietf-openpgp-crypto-refresh ハードウェアに保存された鍵
rsop Yes No No Yes
sequoia-sop Yes No No No

ハードウェアデバイスのサポート

ハードウェアセキュリティデバイスを使用する際は、通常、秘密鍵のデータを指定する SOP のパラメータで、代わりに公開鍵のデータだけを指定します。

この公開鍵データは、対応する秘密鍵データを提供するハードウェアデバイスを見つけ使用するための明示的な参照として機能します。

ヒントとテクニック

以下の例では、SOP 実行ファイルの名前 (例: rsopsqop) が $SOP 環境変数に格納されていると仮定します。

ヒント: rsop を使用する際は、OpenPGP カード上に保存されている秘密鍵データを使用することができます。関連する秘密署名鍵や秘密暗号化鍵は、rsop を使用しているマシンに接続されている OpenPGP カードにすでに追加されていると想定され、使用されます。

秘密鍵を作成する

User ID <archie@example.org> 付きの OpenPGP transferable secret key (別名: 秘密鍵) を作成するには:

$ $SOP generate-key "<archie@example.org>" > archie.tsk

証明書を抽出する

作成した transferable secret key から証明書 (別名: 公開鍵) を抽出するには:

$ $SOP extract-cert > archie.cert < archie.tsk

Detached 署名を作成する

メッセージの detached 署名を作成するには:

$ echo "Hello world" | $SOP sign archie.tsk > msg.sig
ヒント: OpenPGP カードを使用して同じ署名を作成するには、rsop に秘密鍵ではなく証明書を渡す必要があります:
$ echo "Hello world" | rsop sign archie.cert > msg.sig

Detached 署名を検証する

Detached 署名を検証するには、オリジナルのメッセージ、署名、そして OpenPGP 証明書を使用してください:

$ echo "Hello world" | $SOP verify msg.sig archie.cert
2024-02-27T17:36:28Z 12b7169b5fc99d1a2d546b8755d1f4d8a355f3cb 12b7169b5fc99d1a2d546b8755d1f4d8a355f3cb mode:binary

メッセージを暗号化する

メッセージは、受信者の OpenPGP 証明書によって暗号化できます:

$ echo "Hello world" | $SOP encrypt archie.cert > encrypted.msg

メッセージを復号する

暗号化されたメッセージを受信したユーザーは、そのユーザーの transferable secret key によってメッセージを復号することができます:

$ $SOP decrypt archie.tsk < encrypted.msg
Hello world
ヒント: このメッセージを OpenPGP カードを用いて復号するには、rsop に秘密鍵ではなく証明書を渡す必要があります:
$ rsop decrypt archie.cert < encrypted.msg
Hello world

Cleartext 署名されたメッセージを作成する

Transferable secret key で cleartext 署名されたメッセージを作成できます:

$ echo "Hello world" | $SOP inline-sign --as clearsigned archie.tsk
-----BEGIN PGP SIGNED MESSAGE-----

Hello world

-----BEGIN PGP SIGNATURE-----

wnUEARYKAB0WIQQStxabX8mdGi1Ua4dV0fTYo1XzywUCZd4eOgAKCRBV0fTYo1Xz
yyqJAQDUD/lbhqOHL/O0cjtytXQXnMOx5twW3FT3RJPlu9JZUAEA2OAMhzLmX6Bb
mXz8Tu0eApqbxu64ksieL8YNN20IwQs=
=77wU
-----END PGP SIGNATURE-----
ヒント: rsop での OpenPGP カードの使用は、#Detached 署名を作成する で説明された例と同じように機能します。

参照

翻訳ステータス: このページは en:Stateless OpenPGP の翻訳バージョンです。最後の翻訳日は 2024-05-11 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。