web-dev-qa-db-ja.com

キーストレージと使用に対するmod_nssとopensslの動作

たぶん私は正しい検索用語を求めているだけです。

mod_nssおよびNSS情報/設計のアイデアは、キーストレージデバイス(この場合はHSM)がDH/SSLハンドシェイクを実行できる場合、そのデバイスが使用されるというものです(キーはHSMから抽出されず、次に、ハンドシェイクのためにホストで使用されますが、HSMに残され、HSMがハンドシェイクの実行に使用されます)。考え方は、HSMを使用する必要があるほど偏執的(または規制)である場合、キーが危険にさらされるため、キーをホストに抽出したくないということです。

HSM管理ハンドシェイクが遅すぎる

問題は、ハンドシェイクの持続時間です。 PCIeの直接接続されたHSMがなくても、単一のTLSハンドシェイクに必要な時間の長さは測定可能です。ハンドシェイクに突然HSMを使用しようとすると、PCIeのボトルネックとそれに伴うすべてのオーバーヘッドによって制限されます。HSMは通常、高性能ではなくセキュリティのために構築されています。

HSMは、「十分な」接続/秒をサポートするサービスのボトルネックになります。「十分な」とは、「HSMを圧倒するのに十分」と定義されます。

HSMのセキュリティとホストベースのTLSハンドシェイクのパフォーマンス(複数のコアなどの恩恵を受けることができる)の間でトレードオフするには、HSMにキーを保存する必要がありますが、ホストでキーを使用します。

NSSの世界観はこれを防ぎます。

質問:秘密鍵を抽出できますか?

HSMに接続できるOpenSSLまたはその他の暗号スイートは、HSMからキーを抽出し、ホストで使用するためにキャッシュできますか?

次の手段

プランBは、(OpenSSL)OpenSC + OpenP11エン​​ジンまたはNSSソースコードを取得し、それをハックして最初の要求で秘密鍵を抽出してキャッシュし、opensslにコールバックして、実際のTLSハンドシェイクを実行することです。新しい接続ごとにHSMに接続し、保存されたキーのセキュリティを提供しながら、httpsおよびssh接続の現在の(作業中の)環境を利用できるようにします。しかし、私はむしろ既存のコードを利用したいと思います。

検索エンジンは私を同じページに連れて行ってくれます。関連するものもあれば(たとえばNSSの設計哲学)、そうでないものもあります。あなたが知っているページに私を連れて行く良い検索用語のセットを知っているなら:)それは最も助けになるでしょう。

お時間をいただきありがとうございます。

1
rip...

TLSでHSMを使用する場合、秘密鍵を含むすべての暗号化操作はHSMで実行されます。これは、秘密鍵がHSMを離れることがないことを意味します。実際、HSMは、ソフトウェアベースの攻撃、場合によってはハードウェアベースの攻撃(つまり、改ざん防止)を使用して秘密鍵の漏洩を保護するように特別に設計されています。これがまさにHSMが使用される理由です。

これは、OpenSSLまたは他のツールを使用して、あるいは特別に設計されたハッキン​​グツールを使用して秘密鍵を抽出できる場合、HSMはそのお金の価値がないことを意味します。したがって、既存のすべてのHSMに対する質問への回答は、うまくいけば次のようになります。いいえ、ソフトウェアを使用して秘密鍵を抽出することはできません。

つまり、すべてのTLS接続でHSMのパフォーマンスとセキュリティの両方を向上させる必要がある場合は、より高速なHSMを入手してください。

2
Steffen Ullrich

多分そうだね。

はい、HSMのバックアップ機能を使用/悪用(Wordに最適なものを選択)して、秘密鍵のプレーンテキストバージョンを抽出できる場合があります。

少なくとも、これを可能にするためにバックアップ/復元手順が文書化されている場合。

そして、少なくとも「NitrokeyHSM」/「SmartCard-HSM」の場合、これは実際に可能です。なぜなら、それに関するすべてがオープンソースであり、そのバックアップ/復元機能の使用/乱用を阻止するハードウェアがないからです。

詳細はこちら:

だが...

これを要約すると、技術的には可能かもしれませんが、HSMが存在する理由そのものに反します。つまり:中身、中に入ってください!-あなたがやろうとしていることは大ざっぱで危険に聞こえます。 --Steffenが言ったことに同意します:HSMが遅すぎる場合:より大きなHSMを入手してください。ボックスとして、またはCloudflareの「キーレスSSL」などのサービスとして。 (または、HSMを完全に削除します。)

0
StackzOfZtuff