何度も読んだ OpenPGP証明書の主キーペアをサブキーペアに署名するためだけに使用し、一般的な日常の使用には使用しないことをお勧めします (秘密鍵を-セキュリティを強化するためのネットワーク対応PC)。最近、証明書の各キーペアに、排他的に使用する必要がある目的を定義するフラグがあることに気付きました。私が現在理解している限り(ドキュメントを見つけるのに問題があります)、サブキーペアに署名するプロセスはA
(認証用)で表されます。
新しく生成された証明書では、主キーペアに使用フラグSC
(署名と証明書)があります。これで、GnuPGコマンドラインツールを使用してサブキーのこれらのフラグを変更するのは非常に簡単ですが、主キーペアの使用フラグを変更する方法が見つかりません。
私ができるようにしたいのは、プライマリキーペアを制限して、証明書内の追加のサブキーペアにのみ署名して取り消すことができるようにすることです。これが可能かどうか、そしてその方法を誰かに教えてもらえますか?
使用フラグcertifyC
が必要です。これは、とにかくOpenPGP仕様で必要です。認証A
はめったに使用されず、自分自身を認証できることを意味します(SSHキーベースの認証と同様)。
しかし、GnuPGの使用フラグを変更することはできません(ただし、 コードをハッキングすることによって )。 Resul Cetinによるメッセージ そのメーリングリストスレッドから:
わかりました、それは非常に簡単でした(きれいではありませんが、速くてハック的な方法で行うことができました)。
gnupg-1.4.9/g10/getkey.c:parse_key_usage
を検索し、p
をnon-const
に変更し、常に(*p) &=~2;
を設定しました。その後、新しくコンパイルされたhackish -gpg --edit-key
を開始し、マスターキーの有効期限を設定しました。この手順の後、Certフラグのみを設定しました。クリストフに感謝します-あなたはその日の私の個人的なヒーローです:)
既存のマスターキーを変更するために、Jensが引用したgnupg-usersスレッドは、私が見た唯一の方法をカバーしています。
マスターキーを作成時にCertifyのみに設定するのは少し簡単です。
bash-3.2$ gpg --gen-key --expert
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
Your selection? 8
Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Sign Certify Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? s
Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Certify Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? e
Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Certify
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? q
RSA keys may be between 1024 and 16384 bits long.
What keysize do you want? (2048) C-c C-c
gpg: Interrupt caught ... exiting
bash-3.2$
ただし、後でgpg--edit-keyコマンドを使用して手動でサブキーを作成する必要があります。