web-dev-qa-db-ja.com

従業員のOpenPGPキーを管理する方法は?

私の会社のユーザー間でキーを保存および維持するための安全なポリシーを作成しようとしています。

私はOpenPGPを初めて使用するので、アドバイスが必要です。

現在、アイデアは次のとおりです。

  • 認証機能のみを使用して、ユーザーごとにマスターキーを生成します。このキーを物理ボールトにバックアップします。
  • このマスターキーの失効証明書を生成し、それを物理ボールトに保存します。
  • 暗号化サブキーを生成して物理ボールトに保存し、それをYubikeyに移動します。
  • Yubikeyで直接認証サブキー(ssh用)を生成します。

これは、GnuPGでユーザーキーを管理する適切な方法としてインターネットで見つけたものの一種の要約です。

今私はたくさんの質問があります:

  • 誰かが退職した場合はどうなりますか?マスターキー失効証明書を使用して、マスターキーとそのすべてのサブキーをキャンセルする必要があると思います。
  • ユーザーがユビキーを紛失した場合はどうなりますか?マスターキー全体を取り消しますか、それともサブキーのみを取り消しますか?
  • キーを紛失した場合、ユーザーに新しいキーを提供する必要があります。古いマスター+暗号化キーをインポートすることはできますか?次に、新しい認証SSHキーを生成しますか?この場合、なぜマスター/暗号化キーを区別する必要があるのですか?
  • 一部のユーザーが同じキーを共有する必要があるという事実をどのように処理しますか?たとえば、パッケージに署名するためのキー、または一部の共有ファイルを暗号化するためのキー。

また、この件に関する優れたドキュメントも公開しています。私はGnuPGウェブサイトのドキュメントを掘り下げましたが、マニュアル、ハンドブック、Wikiはプロセス全体を説明するのではなく、「使用法シート」に似ています。私は非対称暗号法を理解していますが、概念を理解することと、これらの概念を使用してマンボジャンボを実行してクリーンなプロセスを実現することには、精神的なギャップがあります。

7
NewbiZ

私の会社のユーザー間でキーを保存および維持するための安全なポリシーを作成しようとしています。

次の回答は、あなたの投稿に基づいて想定する要件に基づいています(以下では、ユーザーを従業員と呼びます)。

  • 従業員のキーを取り消すことができる必要があります。
  • 従業員のために暗号化された情報を復号化できるようにしたい。
  • 従業員は自分でキーの内容を変更できないようにする必要があります。

    これにより、従業員はもう証明書を発行できなくなるため、信頼の網に参加することができなくなります(これが必要かどうかはわからないかもしれません)。従業員にキーの作成を許可することを検討してください。ただし、必要に応じて暗号化サブキーを渡して、会社のキーを指定の取り消し者として追加するよう依頼してください。これは、会社所有のX.509 PKIインフラストラクチャでのキー処理に相当します。

現在、アイデアは次のとおりです。

  • 認証機能のみを使用して、ユーザーごとにマスターキーを生成します。このキーを物理ボールトにバックアップします。

認証の制限は妥当であると思われるため、誤って主キーを暗号化する人は誰もいないはずです(そうする必要があります)。従業員はメッセージを読むことができません。

  • このマスターキーの失効証明書を生成し、物理ボールトに保存します。

別の方法として、指定の失効者として会社を追加することもできます。これにより、一連の失効証明書の処理が容易になり、実際に何が起きるかにマップされます(company従業員を失効させますキー):

gpg --desig-revoke [key-id]
  • 暗号化サブキーを生成し、それを物理ボールトに保存してから、Yubikeyに移動します。

これは、従業員のメッセージを読むことができるようにしたい場合に必要です。一部の法域では法的な問題であるか、会社のメールアドレスの私的使用を防ぐように要求する場合があります。

  • Yubikeyで直接認証サブキー(ssh用)を生成します。

認証と署名の両方のサブキーは、今後使用しない場合でも簡単に交換できます。コピーを保持しないことはセキュリティ面で合理的であるように思われます。あなたがしなければならないすべての努力は、新しいキーを配布することです(そしてサーバーのキーを切り替えることも)。

特にインフラストラクチャを共有している場合は、認証されたサーバーでmonkeysphereを使用することを検討することもできます。 Monkeysphere は、従業員の主キーの信頼のOpenPGP Web(つまり、信頼できる会社のキーによる署名)に依存し、サブキーをsshdに追加するため、認証をエスクローすることもできます個々のサーバーに変更を加えないサブキーですが、あまり一般的ではなく、めったに使用されませんが、SSHに使用されるGnuPG認証サブキーとうまく統合されます。

今私はたくさんの質問があります:

  • 誰かが退職した場合はどうなりますか?マスターキー失効証明書を使用して、マスターキーとそのすべてのサブキーをキャンセルする必要があると思います。

主キーを取り消す必要があるだけです。主キーが無効である場合、サブキーは自動的に無効になります。 sshd!の認証サブキーを無効にすることを忘れないでください。

事前に生成された失効証明書(現在の日付と特定の失効理由は含まれません)を使用する代わりに、失効の主キーを使用することをお勧めします(GnuPGは外出先で新しい失効証明書を生成します)。

  • ユーザーがユビキーを紛失した場合はどうなりますか?マスターキー全体、またはサブキーのみを取り消す必要がありますか?

主キーはボールトに安全に保存されているので、なぜそれを取り消すのですか?サブキーを取り消し、新しいセットを生成して、新しいYubikeyを配布します。利点は、すべての受信証明書が有効なままであり、新しい主キーを配布する必要がないことです。実際、実行する必要があるのは、すべてのユーザーの従業員のキーを更新することだけです。

  • キーを紛失した場合は、新しいキーをユーザーに提供する必要があります。古いマスター+暗号化キーをインポートすることはできますか?それから、新しい認証sshキーを生成しますか?この場合、なぜマスター/暗号化キーを区別する必要があるのですか?

従業員のYubiKeyに主キーを保存することについてはまだ説明していません。日常の使用には必要ありません。とにかくそこに置かないでください。

  • 一部のユーザーが同じキーを共有する必要があるという事実をどのように処理しますか?たとえば、パッケージに署名するためのキー、または一部の共有ファイルを暗号化するためのキー。

OpenPGPでは、暗号化されたメッセージの複数の受信者を追加できます。これは代替ですか?署名は、従業員の鍵に署名した会社の鍵を通じて検証される場合があります。

共有キーを簡単に取り消すことはできません。取り消すことはできます。それ以外の場合は、いくつかのオプションがあります。

  • 署名/復号化サービスを持っている。これは、一部の認証済みユーザーのパッケージに署名するビルドサーバーの場合もあります。外出先で暗号化/復号化するOpenPGPメール転送エージェントもあります。これを使用して、グループ暗号化キーを複数のユーザーにマッピングできます(MTAはプライベートグループ暗号化キーで復号化し、すべての従業員暗号化キーを再暗号化します)。
  • サブキーをファイルとしてすべての従業員に配布します。配布されたキーをエスクローする必要があるため、サブキー(従業員の1人が去るなど)を取り消す必要がある場合、これは煩わしくなります。
  • OpenPGPスマートカード(またはOpenPGPスマートカードプロトコルを実装するYubiKeys)にサブキーを配布して、実際にスマートカードを引き出すことができるようにします(スマートカードからキーをエクスポートできないため)。不利な点は、1人の従業員がキーを紛失したり、会社を辞めた後にキーを返却しなかったりした場合でも、失効する必要があることです。物理デバイスは簡単にコピーできないため、安全性の管理が簡単です。
  • 複数の人がアクセスできる、1つのよく管理されたスマートカード(紛失や盗難に遭いにくい)に共有キーを持ちます。
5
Jens Erat