web-dev-qa-db-ja.com

キー詳細リストでGPG使用フラグはどのように定義されていますか?

キーの詳細をリストすると、次のような出力が得られます。

$ gpg --edit-key SOMEID
pub [..] created: [..] expires: [..]   usage:SC
[..]
sub [..] created: [..] expires: [..]   usage: E

あるいは usage: SCA別の鍵(マスター鍵部分)。

使用法フィールドのこれらの略語はどういう意味ですか?

私はそれを導き出すことができます:

S -> for signing
E -> for encrypting

しかし、CAはどうですか?

そしてもっとありますか?

そして、このようなものをどこに見せるのですか?

61
maxschlepzig

わかりました、gpgマニュアルではこれらの略語について言及していないようです。したがって、ソースを確認する必要があります。

たとえば、Debian/Ubuntuの場合:

$ apt-get source gnupg2
$ cd gnupg2-2.0.17
$ cscope -bR
$ grep 'usage: %' . -r --exclude '*po*'
$ vim g10/keyedit.c
jump to usage: %
jump to definition of `usagestr_from_pk`

コードから次の表を導出できます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
定数文字
── ─────────────────────────────
 PUBKEY_USAGE_SIG S 
 PUBKEY_USAGE_CERT C 
 PUBKEY_USAGE_ENC E 
 PUBKEY_USAGE_AUTH A 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

したがって、たとえば、usage: SCAは、サブキーを署名、証明書の作成、認証の目的で使用できることを意味します。

62
maxschlepzig

--edit-keyリストのレイアウトは文書化されていません(とにかく見つけることができなかったわけではありません)。ただし、あなたが言及する略語は、情報ページ(info gpg)のどこかにあります。

S:を検索したところ、usage:を実際に検索したいことがわかりました。

「GPGキー関連オプション」:

4.2.1構成を変更する方法

これらのオプションは、構成を変更するために使用され、通常はオプションファイルにあります。

'--list-options parameters'

 show-usage

      Show usage information for keys and subkeys in the standard
      key listing.  This is a list of letters indicating the allowed
      usage for a key ('E'=encryption, 'S'=signing,
      'C'=certification, 'A'=authentication).  Defaults to no.

したがって、gpg -k --list-options show-usage 1A3ABKEYを実行すると、次のように表示されます。

pub   rsa4096/1A3ABKEY 2015-01-25 [SC]
uid         [ultimate] Some Key
sub   rsa4096/4B907KEY 2015-09-19 [S]
sub   rsa4096/F9A41KET 2015-09-19 [E]

さらに詳しい情報は、「GPGの無人使用」にあります。

キー使用法:USAGE-LIST

 Space or comma delimited list of key usages.  Allowed values are
 'encrypt', 'sign', and 'auth'.  This is used to generate the key
 flags.  Please make sure that the algorithm is capable of this
 usage.  Note that OpenPGP requires that all primary keys are
 capable of certification, so no matter what usage is given here,
 the 'cert' flag will be on.  If no 'Key-Usage' is specified and the
 'Key-Type' is not 'default', all allowed usages for that particular
 algorithm are used; if it is not given but 'default' is used the
 usage will be 'sign'.

したがって、すぐにはわかりませんが、情報はシステムのどこかにあります。 manが役に立たない場合は、man -kinfoを試してください。

16
jeroentbt

これらの主要なフラグは OpenPGP仕様 で定義されています

5.2.3.21。主なフラグ

(フラグのNオクテット)

このサブパケットには、キーに関する情報を保持するバイナリフラグのリストが含まれています。これはオクテットの文字列であり、実装は固定サイズを想定してはなりません。これは、時間の経過とともに大きくなる可能性があるためです。リストが実装で期待されているよりも短い場合、明記されていないフラグはゼロと見なされます。定義されているフラグは次のとおりです。

   First octet:

   0x01 - This key may be used to certify other keys.

   0x02 - This key may be used to sign data.

   0x04 - This key may be used to encrypt communications.

   0x08 - This key may be used to encrypt storage.

   0x10 - The private component of this key may have been split
          by a secret-sharing mechanism.

   0x20 - This key may be used for authentication.

   0x80 - The private component of this key may be in the
          possession of more than one person.
5
AccidentalOps

別の情報源は [〜#〜] details [〜#〜]GnuPGディストリビューション のファイルです。

セクション "フィールド12-主要機能" 状態

定義されている機能は次のとおりです。
 
 e 
暗号化
 s 
署名
 c 
認証
 a 
認証
?
不明な機能
 
キーは、それらを任意の順序で組み合わせたものにすることができます。 
これらの文字に加えて、主キーには大文字の
バージョンの文字があり、
キー全体の使用可能な機能を示します。潜在的な文字「D」は、無効化されたキー。
2
Claudius B

GnuPGメーリングリスト ...

「使用法」の右側の文字はどういう意味ですか?
(S、C、A、E)推測できるのは| S | ign、| E | ncrypt、...だけです。

(S)ign:一部のデータ(ファイルなど)に署名
(C)ertify:鍵に署名します(これは証明書と呼ばれます)
(A)uthenticate:コンピュータへの認証(たとえば、ログイン)
(E)ncrypt:データを暗号化

2
elboulangero