現在、gpg
を使用して一部の個人情報を暗号化しています(実際にはgpgdir
)。秘密鍵のデジタルコピーを紛失しないように、データマトリックスの形式で用紙に印刷した秘密鍵のコピーを持っています。
しかし、暗号化のベストプラクティスについて読んでいると、キーを「取り消す」という概念に出くわすことがよくあります。 gpg
では、gpg --gen-revoke KEY
を使用して失効キーを生成できます。これは、後でキーを「取り消す」ために使用できます。
しかし、それは実際にはどういう意味ですか?そして、それはどのように便利ですか?キーを取り消して取り消しキーを生成するためのhowに関する大量の情報をオンラインで見つけましたが、キーを「取り消し」たときに実際に何が起こるかはわかりません。
暗号化されたデータの唯一の対象ユーザーである場合、この機能は役立ちますか?
キーファイルに追加されたコメントとしてキーを取り消すことを考えてください。このコメントは、存在する場合、あなたのキーを他のユーザー(例:暗号化されたgpgメールを送信するユーザー)に、キーが取り消されていること、および使用してはいけないことを知らせます。
キーを取り消すのは、キーサーバーにキーを送信して、取り消されたことを他の人に知らせる場合にのみ役立ちます。
Gnupgはオープンソース(ええ!)なので、何が起きているかを調べることができます。キーの失効証明書を作成するとき、つまり「gpg --gen-revoke name」を介して
内部的に次の機能/主要ステップを移動します
main()
in gpg.c (gpgコマンドラインツール)が呼び出され、gen_revoce( const char *uname)
in revoce.c が呼び出されます、make_keysig_packet
_を sign.c で呼び出しますrc = make_keysig_packet(&sig、pk、NULL、NULL、sk、0x20、0、 opt.force_v4_certs?4:0、0、0、 revocation_reason_build_cb、reason);鍵ペア(公開
pk
および秘密sk
)を使用し、_revocation_reason_build_cb
_への関数ポインターと取り消しreason
)を備えた文字列を追加で提供します。make_keysig_packet
_は次にhash_algoを使用してメッセージダイジェストmdを作成します。これは最終的にcomplete_sig( sig, sk, md );
に提供され、内部で_do_sign
_を呼び出し、md
で非対称暗号化を使用します。次に、キーサーバーに提供されるこの証明書では、これを許可します(@WayToDoorと同じ)、サーバー上のキーへのコメント。
秘密の秘密鍵を所持する人だけが、公開鍵で検証するメッセージに署名できます。したがって、取り消しは、「秘密鍵で署名されたメッセージの送信、生成されたメッセージのハッシュ、非対称暗号化」のようなものです。
さらに、私の失効は、いったん取り消されると、キーペアが焼かれるということです(信頼できる価値はありません)。
したがって、より安全な(エアギャップ)マスター暗号化キーにサブキーを使用して、新しいサブキーの公開キーを安全にチャネル検証する必要なしに、取り消されたキーを置き換えるために新しい有効なサブキーを再発行できるようにするのが賢明です。 -keypair。