Skip to content
Latchkey

ハードウェアセキュリティモジュール (HSM) とは? 決して外に出ない鍵

ハードウェアセキュリティモジュール (HSM) は、暗号鍵を保管し、鍵が平文のまま外に出ないように操作を実行する専用の耐タンパー性ハードウェアです。

ハードウェアセキュリティモジュール、すなわちHSMは、暗号鍵を保護するためのゴールドスタンダードです。署名鍵や暗号鍵をコピー可能なソフトウェア上に置く代わりに、HSMは鍵を耐タンパー性のハードウェア内に保持し、暗号処理を内部で実行します。鍵はデバイスの外に平文で現れることが決してなく、これがHSMが最も機密性の高い鍵を守る理由です。

HSMはどのように鍵を保護するか

秘密鍵はHSMの内部で生成され、決してエクスポートされません。署名や復号を行うには、データを送り込みます。HSMが操作を実行して結果を返します。鍵がハードウェアから決して外に出ないため、侵害されたアプリケーションでも鍵を盗むことはできません。

信頼できる理由

  • 耐タンパー性: 物理的な攻撃は鍵の破壊を引き起こします。
  • 隔離: 鍵はデバイスの外に平文で存在することが決してありません。
  • 誰が操作を呼び出せるかについての監査可能性とアクセス制御。

HSMが使われる場所

HSMは最も価値の高い鍵を保護します。認証局のルート鍵、コード署名鍵、マスター暗号鍵などです。クラウドプロバイダーはマネージドHSMサービスを提供しており、チームはデバイス自体を運用することなくハードウェアグレードの保護を得られます。

CI/CDにおけるHSM

pipelineがreleaseやコンテナイメージに署名する際、署名鍵をHSM (またはHSMに裏付けられたマネージドサービス) に保持しておくと、pipelineは生の鍵を保持することなく署名を要求できます。侵害されたrunnerでも、決して保持していない鍵を抜き出すことはできません。

HSM対ソフトウェアの鍵

ソフトウェアの鍵は、保管時にどれだけ暗号化されていても、使用するためにメモリ内で復号され、そこで読み取られる可能性があります。HSMは鍵を決して露出させず、"盗みにくい"から"抜き出せない"へと水準を引き上げます。これは信頼の基盤となる鍵にとって最も重要です。

HSMに裏付けられた署名とrunner

HSMに裏付けられた署名では、runnerは署名対象のデータを送り、署名を受け取るだけで、鍵自体には決して触れません。隔離された使い捨てのrunner (Latchkeyのマネージドrunnerなど) と組み合わせることで、署名素材はbuild環境の手の届かないところに完全にとどまります。

重要なポイント

  • HSMは鍵を耐タンパー性のハードウェアに保管し、暗号処理を内部で実行します。
  • 鍵は平文のままデバイスから決して外に出ないため、抜き出すことができません。
  • HSMに裏付けられた署名により、pipelineは鍵を保持することなく署名を得られます。

関連ガイド