何かが足りない気がします。HSM がキーや暗号化されたデータなどを 100% 確実に保護できることは知っています。しかし、HSM にアクセスしてシークレットをユーザーのメモリにコピーした直後に、攻撃者が機密データを盗むのを防ぐにはどうすればよいでしょうか? または、たとえば、同じ API を使用してモジュールにアクセスするだけですか? アプリケーション認証はどのように機能しますか? パスワードのような単純なものに基づいている場合、なぜ攻撃者はメモリからパスワードを盗み、HSM にログインして、必要なものを取得できないのでしょうか? また、カーネルが侵害された場合、プロセスと HSM 間の通信をリッスンまたは改ざんできると思いますよね?
2 に答える
これについて心配するのは正しいです.HSMは万能薬ではなく、HSMを認証して使用する機能を持つ侵害されたサーバーは、Diginotarによってうまく実証されているように、実際のリスクです.
アプリケーション認証はどのように機能しますか?
HSM が異なれば、物理トークン (スマート カードなど)、物理ピン エントリ、論理トークン (メモリ キー内)、ユーザー定義のカスタム ソリューションなど、さまざまな認証オプションが提供されます。
しかし、HSM にアクセスしてシークレットをユーザーのメモリにコピーした直後に、攻撃者が機密データを盗むのを防ぐにはどうすればよいでしょうか?
理想的には、HSM を使用してソリューションを実装する場合、機密キーが HSM の外部に公開されることはありません。HSM にキーを提供してもらうのではなく、HSM にキーを使用させます (署名/暗号化など)。
HSM にログインして、彼が欲しいものを手に入れますか?
HSM を使用すると、キーを HSM からエクスポートする方法がないように保護できます (ユーザー/管理者の資格情報がすべてある場合でも)。
また、カーネルが侵害された場合、プロセスと HSM 間の通信をリッスンまたは改ざんできると思いますよね?
はい; アプリケーションと HSM の間に暗号で保護されたチャネルが存在する可能性がありますが、最終的には、カーネルが侵害されたマシンは、攻撃者が制御するマシンと見なされるべきです。
全体として、HSM はキーを生成、保存、および保護するための物理デバイスです。
現代の暗号化の最大の悪夢は鍵の侵害であり、HSM はそれに対する適切なソリューションです。HSM は、大規模な組織や金融部門でよく使用されています。人々が HSM の使用を選択したもう 1 つの理由は、監査またはコンプライアンス要件 (PCI-DSS など) によるものです。
HSM は、トークン (スマート カードなど) またはパスフレーズを使用して、キーの読み込みに対して多要素認証を提供します。接続しているサーバーにアクセスできたとしても、すべての要素が取得されていなければ、キーにアクセスすることはできません。
パスワードを盗む部分については、ベンダーがパスワード認証ロジックを HSM セキュア メモリに組み込んだ E2EE パスワード保護ソリューションがいくつかあります。そのため、復号化された資格情報は HSM 内でのみ利用可能で、アプリケーションは認証結果のみを認識します。これにより、パスワードは常に適切に保護されます。