3年後の有効期限でソースリポジトリのソフトウェアパッケージに署名するための新しいOpenPGPキーを作成しました。キーが危険にさらされたり盗まれたりした場合の被害は限定的であるため、これは優れたセキュリティ対策のように思われました。
しかし、私は新しい鍵に署名する必要がある日について考えました。古いキーで新しいキーに署名することは、古いキーを保持することと同じように見えるため、セキュリティには何も追加されません。
有効期限を設定するとキーのセキュリティが向上しますか?その場合、最適な有効期限/キー交換ポリシーは何ですか?
tl; dr:有効期限は、主キーをprotectするための合理的なメカニズムではありません。手元に失効証明書を持っている。
少し長いバージョンは、有効期限の影響が主キーとサブキーで異なり、また、防止する目的も異なります。
サブキーの場合、効果はかなり単純です。一定の期間が経過すると、サブキーの有効期限が切れます。この有効期限は、主キーを使用してのみ変更できます。攻撃者がサブキー(これのみ)を手にした場合、有効期限が過ぎると自動的に無効になります。
サブキーの有効期限は、定期的にサブキーを切り替えることを発表するための優れたツールであり、指定された時間が経過した後、他の人がキーを更新するときがきたことを示します。
主キーの場合、状況は異なります。秘密鍵 にアクセスできる場合は、有効期限を必要に応じて変更できます 。つまり、攻撃者が秘密鍵にアクセスした場合、有効期間を任意に延長することができます。最悪の場合、同時に秘密鍵にアクセスできなくなり、公開鍵を取り消すことができなくなります(失効証明書が印刷されているか、オフラインで安全に保管されていますか?)。キーを制御できなくなった場合(攻撃者がキーを制御できない場合)は、有効期限が役立つことがあります。キーは一定の時間が経過すると自動的に期限切れになるため、キーサーバー上に永久に存在する、名前が記載された使用できないキーは存在しません。
さらに悪いことに、有効期限は誤った安心感を与える可能性があります。キーサーバーのキーの有効期限が切れたので、なぜそれを取り消す必要があるのでしょうか。キーサーバーネットワークには、適切に接続された多数のRSA 512ビットキーがあり、おそらく、(Debian RNGの問題のために)比較的多くの弱いDSAキーがあります。より高速なプロセッサとアルゴリズムの弱点に関する新しい知識が加わると、攻撃者は将来、期限切れではあるが取り消されていないキーをクラックして使用できるようになる可能性があります。
失効証明書を入手していて、秘密鍵と失効証明書の両方に同時にアクセスできない可能性がないと確信している場合(火災、(物理的)盗難、家を捜している公的機関)、考えられる混乱とそれを拡張するためのより多くの作業を除けば、有効期限の設定には絶対に役に立ちません。
マスターキーの有効期限は、セキュリティを確保するために実際には何もしないことに注意してください。これを侵害した人は、とにかくそれを延長することができます。 http://madduck.net/blog/2006.06.20:expiring-gpg/ を参照してください。
(一方、サブキーの期限切れは便利な場合があり、キー作成時のオプションはすべてのキーの日付を設定します。)
有効期限を設定すると、キーのセキュリティが向上しますか?
はい。あなたもすでに理由も言っています:
キーが危険にさらされたり盗まれたりした場合、被害は限定されるため、これは優れたセキュリティ対策のように思われました。
あなたが危険にさらされており、キーが盗まれた場合、明らかに、最初のアクションはキーを取り消して新しいキーを発行することです。ただし、すべてのユーザーが失効したキーを確認するわけではありません。無効になるまで盲目的に使用し続けます。
同様に、あなたが危険にさらされている場合、誰かがあなたになりすましているのは固定ウィンドウだけです。
もしそうなら、最高の有効期限\キー交換ポリシーは何ですか?
実際には1つはありません-問題は、「制約X Y Zを考慮して、私ができる最善のことは何か」です。たとえば、ウィンドウの設定が小さすぎると、ユーザーにとって不便になります。ただし、高すぎるため、危険にさらされるとリスクが高まります。それは本当に判断の呼びかけです-あなたが保護しているものは正確にどれほど敏感で、頻繁にキーを交換することはどれくらいの頻度/不便ですか?