「ステートレス OpenPGP」の版間の差分
(初版) |
(訳を修正) |
||
(2人の利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
+ | [[Category:デジタル署名]] |
||
[[Category:暗号化]] |
[[Category:暗号化]] |
||
[[Category:OpenPGP]] |
[[Category:OpenPGP]] |
||
6行目: | 7行目: | ||
{{Related|アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー}} |
{{Related|アプリケーション一覧/セキュリティ#暗号化, 署名, ステガノグラフィー}} |
||
{{Related|OpenPGP}} |
{{Related|OpenPGP}} |
||
+ | {{Related|OpenPGP カード}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | + | ステートレス OpenPGP (SOP) は、コマンドラインインターフェイス (CLI) ツールが [[OpenPGP]] の操作を行うための標準規格です。 |
|
− | この機能と構文の概要が記されている[https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/ |
+ | この機能と構文の概要が記されている [https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/ IETF のドラフト]で定義されています。 |
+ | |||
+ | SOP は、メッセージの署名/検証および暗号化/復号するための効率的な方法です。これらの全ての操作において[https://openpgp.dev/book/glossary.html#term-OpenPGP-Certificate 証明書]や[https://openpgp.dev/book/glossary.html#term-Transferable-Secret-Key 鍵]を明示的に指定することになっています。 |
||
+ | |||
+ | 通常、秘密鍵の操作は''ソフトウェア鍵''を用います。しかし、一部の SOP 実装においては、ハードウェアセキュリティデバイスに保存してある秘密鍵のデータを使用することもできます。 |
||
多くの SOP 実装が存在しており、[https://tests.sequoia-pgp.org/ 相互運用性テストスイート]で相互テストされています。 |
多くの SOP 実装が存在しており、[https://tests.sequoia-pgp.org/ 相互運用性テストスイート]で相互テストされています。 |
||
21行目: | 27行目: | ||
* {{Pkg|rsop}} |
* {{Pkg|rsop}} |
||
* {{Pkg|sequoia-sop}} |
* {{Pkg|sequoia-sop}} |
||
+ | |||
+ | == 機能 == |
||
+ | |||
+ | SOP は統一されたインターフェイスを提供しますが、OpenPGP の規定する暗号化メカニズムからサポートするサブセットを自由に選択することが許されています。 |
||
+ | 異なるバージョンのフォーマットや、ハードウェア上に保存された鍵をサポートしている場合も有ります。 |
||
+ | |||
+ | {| class="wikitable" |
||
+ | |+ ステートレス OpenPGP の実装 |
||
+ | ! パッケージ !! [https://www.rfc-editor.org/rfc/rfc4880 RFC 4880] (+ [https://www.rfc-editor.org/rfc/rfc6637 RFC 6637]) !! [https://datatracker.ietf.org/doc/draft-koch-librepgp/ draft-koch-librepgp] !! [https://datatracker.ietf.org/doc/draft-ietf-openpgp-crypto-refresh/ draft-ietf-openpgp-crypto-refresh] !! [https://datatracker.ietf.org/doc/draft-dkg-openpgp-hardware-secrets/ ハードウェアに保存された鍵] |
||
+ | |- |
||
+ | | {{pkg|rsop}} || {{ Yes }} || {{ No }} || {{ No }} || {{ Yes|https://wiki.archlinux.org/title/OpenPGP_card }} |
||
+ | |- |
||
+ | | {{Pkg|sequoia-sop}} || {{ Yes }} || {{ No }} || {{ No }} || {{ No }} |
||
+ | |} |
||
+ | |||
+ | === ハードウェアデバイスのサポート === |
||
+ | |||
+ | ハードウェアセキュリティデバイスを使用する際は、通常、秘密鍵のデータを指定する SOP のパラメータで、代わりに公開鍵のデータだけを指定します。 |
||
+ | |||
+ | この公開鍵データは、対応する秘密鍵データを提供するハードウェアデバイスを見つけ使用するための明示的な参照として機能します。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
以下の例では、SOP 実行ファイルの名前 (例: ''rsop'' や ''sqop'') が {{ic|$SOP}} 環境変数に格納されていると仮定します。 |
以下の例では、SOP 実行ファイルの名前 (例: ''rsop'' や ''sqop'') が {{ic|$SOP}} 環境変数に格納されていると仮定します。 |
||
+ | |||
+ | {{Tip|{{Pkg|rsop}} を使用する際は、[[OpenPGP カード]]上に保存されている秘密鍵データを使用することができます。関連する秘密署名鍵や秘密暗号化鍵は、{{ic|rsop}} を使用しているマシンに接続されている [[OpenPGP カード]]にすでに追加されていると想定され、使用されます。}} |
||
=== 秘密鍵を作成する === |
=== 秘密鍵を作成する === |
||
43行目: | 71行目: | ||
$ echo "Hello world" | $SOP sign archie.tsk > msg.sig |
$ echo "Hello world" | $SOP sign archie.tsk > msg.sig |
||
+ | |||
+ | {{Tip|[[OpenPGP カード]]を使用して同じ署名を作成するには、{{ic|rsop}} に秘密鍵ではなく証明書を渡す必要があります: |
||
+ | |||
+ | $ echo "Hello world" {{!}} rsop sign archie.cert > msg.sig |
||
+ | }} |
||
=== Detached 署名を検証する === |
=== Detached 署名を検証する === |
||
64行目: | 97行目: | ||
{{hc|$ $SOP decrypt archie.tsk < encrypted.msg| |
{{hc|$ $SOP decrypt archie.tsk < encrypted.msg| |
||
Hello world |
Hello world |
||
+ | }} |
||
+ | |||
+ | {{Tip|このメッセージを [[OpenPGP カード]]を用いて復号するには、{{ic|rsop}} に秘密鍵ではなく証明書を渡す必要があります: |
||
+ | {{hc|$ rsop decrypt archie.cert < encrypted.msg| |
||
+ | Hello world |
||
+ | }} |
||
}} |
}} |
||
83行目: | 122行目: | ||
-----END PGP SIGNATURE----- |
-----END PGP SIGNATURE----- |
||
</nowiki>}} |
</nowiki>}} |
||
+ | |||
+ | {{Tip|{{ic|rsop}} での [[OpenPGP カード]]の使用は、[[#Detached 署名を作成する]] で説明された例と同じように機能します。}} |
||
== 参照 == |
== 参照 == |
||
90行目: | 131行目: | ||
* [https://openpgp.dev/book/ OpenPGP for application developers] |
* [https://openpgp.dev/book/ OpenPGP for application developers] |
||
− | {{TranslationStatus|Stateless OpenPGP|2024- |
+ | {{TranslationStatus|Stateless OpenPGP|2024-05-11|808064}} |
2024年8月26日 (月) 15:53時点における最新版
ステートレス OpenPGP (SOP) は、コマンドラインインターフェイス (CLI) ツールが OpenPGP の操作を行うための標準規格です。 この機能と構文の概要が記されている IETF のドラフトで定義されています。
SOP は、メッセージの署名/検証および暗号化/復号するための効率的な方法です。これらの全ての操作において証明書や鍵を明示的に指定することになっています。
通常、秘密鍵の操作はソフトウェア鍵を用います。しかし、一部の SOP 実装においては、ハードウェアセキュリティデバイスに保存してある秘密鍵のデータを使用することもできます。
多くの SOP 実装が存在しており、相互運用性テストスイートで相互テストされています。
実装は様々な名前の実行可能ファイルを提供していますが、これらは全て同じ CLI を持っており、コア機能は互換性があります。
目次
インストール
インストール可能な実装はいくつか存在します:
機能
SOP は統一されたインターフェイスを提供しますが、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 実行ファイルの名前 (例: rsop や sqop) が $SOP
環境変数に格納されていると仮定します。
秘密鍵を作成する
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
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
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-----