バックエンドでHSMを使用している場合(または物理サーバーにマスターキーがある場合)、そのキーを使用して操作を実行する必要があります。これは、アプリサーバーがHSM(またはキーサーバー)を呼び出すことを意味します。 HSMへの呼び出しを認証する通常の方法は何ですか?読んでみると、通常はHSMが署名/認識しているキーペアを介して行われます。ただし、アプリサーバーが侵害された場合、攻撃者はメッセージをリレーし、HSMを使用して操作を実行し、有効なデータを取得する可能性があります。サーバー自体が危険にさらされている場合、これは当然のことであり、当然のことです。
HSMを使用する背後にある主なアイデアは、キーを保護することです。しかし、HSM /キーサーバーへの侵害されたアクセスを特定するために多くの考え/労力が費やされていますか?
これは多くの方法で達成できます。 HSMへの最も簡単なアクセス制御は、物理的なボタンです。したがって、マルウェアがホストコンピュータを侵害した場合でも、HSMが何かを実行するには、ボタンを押すために誰かが物理的に存在する必要があります。
次に、ホストサーバーのソフトウェアを「外部で」検証することから、PIN=(それ自体が妥協された)。
HSMは、キーの操作を制限することもできます。たとえば、署名にのみ使用できるキーのみを許可し、復号化は許可しません。または、署名または復号化される入力データに特定の形式を要求する。
HSMが実施できるもう1つのことは、認証の試行と操作の両方でレートを制限することです。通常は復号化を行うサーバーで、たとえば15分ごとに1つのメッセージを10分ごとに最大1つのメッセージにレート制限するように設定できます。これにより、侵害されたサーバーからのHSMアクセスの有用性が低下します。
ただし、HSMの主な目的は、HSM自体へのアクセスを制限することではありません。 HSMの主な目的は、キー自体がHSMから出ないようにすることです。ここでは、単純なインターフェースを介したアクセスのみを許可する単純なHSMから、物理的な侵害/攻撃を防止する機能はありません。スケールのもう一方の端は、攻撃にも抵抗できる非常に高度なHSMです。敵対者がHSMへの監視されていない物理的アクセスを非常に長い間持っている場合。
類推するには:
想像してみてください。誰かがあなたの車のキーを一度使用できたとしたら、それは重要ですか?あなたの車は危険にさらされていますか?いいえ、車のキーはコピーされていません。敵はあなたの車に一度だけアクセスできました。車のキーの制御を取り戻すとすぐに、車のキーは完全に安全で安全に使用できます。
しかし、誰かが車のキーをコピーすると、そのキーは実質的に危険にさらされ、交換する必要があります。
暗号化キーについても同じことを想像してください。一部の暗号化キーは置き換えるのが難しいか扱いにくい場合があり、それを置き換えるプロセス自体は、置き換えプロセスが侵害されたキーに関係する場合、永続的で取り消し不可能な侵害に対して脆弱になる可能性があります。 (例:攻撃者は侵害されたキーを使用して自分のキーへの置換プロセスを開始します。キー管理システムが分散されて管理されていない場合、会社または個人はそのレコードへのアクセスを永久に失います)。
ここでHSMには、特定のPINが入力されていない限り、サーバーが知らない限り、置換プロセス(失効証明書など)を開始するための対応するデータが署名されないようにする機能も含めることができます。 。