Windows 11がリリースされた際に、システム要件の一つにTPM(Trusted Platform Module) バージョン 2.0に対応していることが求められた。TPMとは、デバイス上でさまざまなセキュリティ機能を実現するためのモジュールで、PCの基板の上に小型チップとして実装されている。セキュリティ対策がソフトウェアだけでなく、ハードウェアを組み合わせなければ、実現できない状況となっているのだ。この特集では、セキュリティモジュールを活用したセキュリティ対策について紹介する。

暗号資産保護で注目されるセキュリティモジュール

グローバルインフレが進む中、不安定な動きを続ける暗号資産だが、そのリスクは市場の変動だけではない。ハッキングによる窃取リスクがそれだ。その背景として、かねてから指摘されるのが、共産圏傘下で活動するハッカー集団の存在である。

米国の暗号資産調査会社によると、昨年1年間に窃取された暗号資産は世界全体で38億ドル。北朝鮮が絡むものはその4割強、17億ドルに及ぶとのことだ。盗まれた資産は細かく分散させたり、別の暗号資産に両替するなどしたうえで、中国やロシアで換金していると見られる。

では、彼らはどのような手段で暗号資産を窃取しているのか。ベトナムのオンラインゲーム企業を標的に、6億2,000万ドルもの暗号資産を窃取したケースでは、起点となったのは従業員のSNSに送付された偽のヘッドハンティングのオファーだった。メッセージの添付ファイルを開封したことで、仕込まれたマルウェアがネットワークに拡散。送金に関連する複数のシステムが乗っ取られ、巨額の流出につながった。

手口としては極めて古典的だ。だがターゲットが登録する転職サイトまで調べ上げていたとしたら、企業がどれだけ情報セキュリティ教育に力を入れても効果は限定的にならざるを得ないのが現実だ。
暗号資産の取引は公開鍵と秘密鍵の組み合わせによって行われる。そのため、暗号資産を守るためには、特に秘密鍵の保護が大きな意味を持つ。秘密鍵を保管する仕組みは「ウォレット」と呼ばれるが、サイバー攻撃対策としてオフラインウォレットの利用が好まれている。だが、秘密鍵をオフラインで厳密に管理したとしても盗難リスクがゼロになるわけではない。秘密鍵による暗号化や署名はインターネットにアクセス可能なPC上で行うことになるからだ。

ハードウェアウォレットの限界
鍵はウォレットで安全に保管されるが、アプリケーションで暗号化する際の盗み見には対応できない

少々専門的な話になるが、鍵データはその性質上、ランダムネス(乱数性)が高いという特徴を備えている。暗号強度を高めるうえでは、文字列・数字列の関連性のなさが高いセキュリティにつながるからだ。それに対し、一般的なデータはプログラム、ドキュメントを問わず、一定の規則性を備える。そのためメモリダンプの要領でPCのメモリ内のデータを抽出し、解析を行うことで秘密鍵データが簡単に特定できてしまうのだ。

暗号資産の送金の仕組み​

こうした課題解決に大きな役割を果たすことが期待されるのが、1枚の半導体チップ内部で暗号鍵の生成、保管、暗号化を行うHSM(Hardware Security Module)である。それにより、秘密鍵が常にチップ内に保たれる。

開封と同時にデータを破壊することで情報を保護

技術面から見たHSMの特徴は大きく三つある。まず挙げられるのは、すでに触れた通り、暗号化の処理プロセスが1枚のチップ内で完結する点である。
それにより秘密鍵は常にHSM内部に保たれることになったが、窃取リスクが完全になくなったわけではない。秘密鍵が格納されたHSMを物理的に盗み出し、データを解析することで秘密鍵を抽出する方法も考えられる。そのためHSMは、特殊なパッケージに封入し、開封と同時に保持していたデータが破壊される仕組みなど、物理的アプローチへの対応策も備えている。こうした耐タンパー性の高さが、HSMの第二の特徴である。

HSMの考え方

ちなみに、軍事利用を除く米国政府機関による情報・通信機器の調達・利用では、NIST(米国国立標準技術研究所)によるセキュリティ要件FIPS 140認証済みの暗号モジュール使用が求められる。HSM製品は耐タンパー性を含め、FIPS 140が求めるセキュリティ要件を満たしていることが一般的だ。同様にカナダ、イギリス政府もFIPS 140認証済みの暗号モジュールの使用を推奨し、日本政府の調達案件でもFIPS 140認証取得を求めるケースが現れはじめている。

三つ目は、HSMが備える純粋な乱数を生成する機能だ。秘密鍵は自動生成された乱数で構成される。乱数とは「前後の数字にあらゆる意味で関連性がない」状態を指す。生年月日など覚えやすい数字を選びがちなパスワード設定を考えれば分かる通り、完璧な乱数を考える作業はあまり人間の得意な作業ではない。そこでコンピューターの出番になるわけだが、一般的なソフトウェアによる乱数生成ではきれいな乱数を生むことは難しいのが現実だ。それに対し、HSMには、真性乱数と呼ばれる純粋な乱数を生成する機能が備わることが一般的だ。

HSMは現在、金融サービスや政府機関によるデータ管理を中心に普及が進んでいる。金融サービスの分野では、オンライン決済におけるクレジットカード番号や銀行口座番号などの機密情報の暗号化のほか、オンライン契約の署名・認証の真正性の担保にも活用されている。

政府機関の利用例としてまず挙げられるのが、ICチップを組み込んだ運転免許証、パスポート等の真正性の担保である。
HSMの提供形態としては、アプライアンス型、サーバーのカードスロットに挿入するGP(General Purpose) 型、USB接続型などのほか、クラウドサービスの一環として提供されるタイプも登場している。

民間分野をみると、現状は金融サービスにおける取引情報の保護が中心だが、個人情報や機密情報といった特定データを暗号化するデータベースとHSMの連携ソリューションなども現れはじめている。

製造現場では、IoTデータ保護を目的とした活用にも注目したい。IoTの取り組みでは情報漏洩対策が重要な課題の一つになっているが、公開鍵と秘密鍵による暗号化とHSMによる秘密鍵の保護はその解決策になり得るだろう。
さらに、USBポートに接続するコンパクトサイズのHSMの登場は、海外拠点とのセキュアな通信への応用にもつながっている。海外拠点との通信は、VPNによって担保されると考えがちだ。だが地政学リスクを伴うエリアではその常識は通じにくい。ローカルネットワークのセキュリティが保たれていなければVPNは意味を持たないからだ。HSMであれば、本社と拠点のPCの通信を一対一の関係で強固に暗号化することも可能だ。

ハードに備わる機能でファームウェア書き換えを阻止

HSMは、ハードウェアによって暗号化を行うことでセキュリティを担保するデバイス、と位置付けることができる。しかし、ハードウェアによるセキュリティ対策という考え方自体は、決して目新しいものではない。例えば、WindowsのBitLockerにも利用されるTPM(Trusted Platform Module)などの存在だ。BitLockerは、デバイスのストレージの暗号鍵をTPMによって提供される専用チップで管理することが基本的な考え方になる。

TPMの考え方をさらに一歩前進させたのが、インテルが提供する統合型PCプラットフォーム、インテル vProである。その機能は大きく二つに分けられる。一つが遠隔の電源操作に代表される、管理者による遠隔PC管理機能。そしてもう一つが、アプリケーションやOSの下層に位置するファームウェアやハードウェアを攻撃から保護する機能である。

インテル vProハーウェア・シールド

アプリケーション層やOS層へのサイバー攻撃については、すでに大部分の企業が対策を終えているはずだが、ハードウェアへの攻撃の対策はとられていないことが一般的だ。しかしファームウェア書き換えなどを通しサービスを完全に停止させるPDoS(Permanent Denial-of-Service attack)の被害は深刻だ。情報漏洩リスクこそ少ないが、機器の再起動によるリカバリが困難になる関係上、可用性という面でソフトウェアへの攻撃以上にダメージが大きくなることがその理由である。

PDoS攻撃の多くは、PCが起動しOSが立ち上がるまでのわずかなタイムラグを利用して行われる。Windows 10にはPC起動時に安全性を逐次確認するセキュアブートが導入されたが、高度な攻撃によりUEFI(BIOS)が改ざんされてしまうと正常に機能しない。そのため、ハードウェア層への攻撃にはハードウェアレベルで対策をとる必要がある。その観点から生まれたのがインテル vProのハードウェア・シールド機能で、PC起動時にUEFI(BIOS)が書き換えられていないことをチェックし、安全な場合のみOSを起動するIntel Boot Guardなどの機能が実装されている。

ハードウェア・シールドの保護範囲

インテル vProプラットフォームの機能を利用するには、CPU、チップセット、ネットワークデバイスがインテル vProに対応している必要がある。ノートPCやNUCベアボーンの場合、CPUエンブレムにvProマークが付いていることがその目印になる。
なお、ブート中のファームウェア改ざんを防ぐ機能は、一部のPCメーカーも独自機能として提供している。企業のセキュリティ対策においてハードウェアレベルでの対応は重要なキーワードの一つになりそうだ。