データベースサーバーに、クレジットカード番号を(可逆的に)暗号化するために使用されているHSMがあるとします。 HSMを使用してパスワードハッシュスキームに強度を追加する方法はありますか? (または、HSMを利用して純粋なソフトウェアスキームよりも安全なパスワードハッシュスキームがあります)
ハッシュの代わりに、 [〜#〜] mac [〜#〜] を使用できます。これは、再計算に必要な秘密鍵を使用することを除いて、一種のハッシュ関数です。鍵はHSMに保管します。 HSMはパスワードを検証するために必要です。攻撃者がデータベースを盗んだ場合でも、辞書攻撃は実行できません。このようなスキームは peppering と呼ばれることもあり、HSMはペッパーを使用する正しい方法です。このようなシステムを無効にするには、攻撃者はHSMをハイジャックし、それを使用して「パスワードを試す」必要があります。
パスワードをハッシュし、ハッシュを保存し、HSM内ですべてのハッシュ検証を実行して、残りのサービスを提供するマシンにハッシュが存在しないようにすることができます。
これにより、職務の分離が可能になり、セキュリティの高いシナリオで役立ちます。クラッキングのためにハッシュを抽出するためには、HSMを危険にさらす必要があります。
ただし、これは従来のHSMのかなり珍しい使用法であり、通常は元の平文に戻す必要がある機密データの保存に使用されます。アイデアは、単一の安全な組み込み目的のデバイスが暗号化されたデータとキーを格納し、要求に応じて暗号化されていないデータを提供できるというものです。