「Stateless OpenPGP」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(初版)
 
(同期)
 
(他の1人の利用者による、間の1版が非表示)
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}}
   
 
Stateless OpenPGP (SOP) は、コマンドラインインターフェイス (CLI) ツールが [[OpenPGP]] の操作を行うための標準規格です。
 
Stateless OpenPGP (SOP) は、コマンドラインインターフェイス (CLI) ツールが [[OpenPGP]] の操作を行うための標準規格です。
 
この機能と構文の概要が記されている[https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/ これについて扱っている IETF のドラフト]で定義されています。
 
この機能と構文の概要が記されている[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"
  +
|+ Stateless 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-03-16|801673}}
+
{{TranslationStatus|Stateless OpenPGP|2024-05-11|808064}}

2024年5月11日 (土) 06:05時点における最新版

関連記事

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

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

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

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

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

インストール

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

機能

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

Stateless 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 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。