Googleは米国時間8月24日、同社のカスタムチップである「Titan」によって、ファームウェアベースの攻撃からいかにサーバを保護するのかについてブログ上で解説した。
提供:Image: Google
GoogleはTitanチップを披露した際、同社のクラウド内の各サーバに固有のアイデンティティを付与するために、このプロセッサを使用すると語っていた。
同社は今回、この言葉の意味するところをより詳細に解説するとともに、各マシンにおけるファームウェアのロードと、同社のデータセンター内におけるその他の暗号化機能の提供をセキュアにするための「hardware root of trust」(ハードウェアに根ざした信頼性)の実現に向け、Titanがいかに機能するのかについて説明している。
Titanは「セキュアなアプリケーションプロセッサと、暗号化コプロセッサ、ハードウェア乱数発生器、洗練されたキー階層、内蔵SRAM(Static Random Access Memory)、内蔵フラッシュメモリ、読み取り専用メモリブロック」から構成されているという。
TitanはCPUと他のコンポーネントを精査し、「ブートファームウェアの全バイト」を監視し、サーバの電源が入れられた際に読み取り専用メモリからコードを実行する。また、ファームウェアが改ざんされていないかどうかもチェックする。
Titanのブートメモリは自らのファームウェアをロードするにあたり、PKI(Public Key Infrastructure:公開鍵暗号基盤)を用いてそれを検証したうえで、PKIを用いてホストシステムのファームウェアを検証する。その後、Googleの検証済みブートファームウェアがマシンのコンフィギュレーションを行い、ブートローダとOSをロードする。
Googleによると、これらの検証処理は、Titanのファームウェア自体へのパッチ適用機能とともに、起動時に実行されるコードの先頭バイト群の検証機能を有しているという点で、「Secure Boot」と呼ばれる起動時のファームウェア検証メカニズムよりも踏み込んだ内容になっているという。
またGoogleは、Titanサーバがどのようにして各マシンに固有の暗号学的アイデンティティを付与するのかと、Titanのファームウェアにパッチを適用する必要性が出てきた場合に、どのようにそのアイデンティティを利用できるのかについて以下のように説明している。
「Titanチップの製造プロセスでは、各チップ毎に固有の鍵用素材を生成し、その素材を来歴情報とともにセキュアなかたちでレジストリデータベースに格納する。このデータベースのコンテンツは、クォーラム(定足数)ベースで動作するオフラインの「Titan Certification Authorit(CA)」内に保存された鍵を用いることで、暗号学的に保護される」
「個々のTitanチップは、(Titanのアイデンティティ管理者クォーラムの配下にある)Titan CAに向けた証明書署名要求(CSR)を生成することができ、これによりTitan CAはアイデンティティ証明の発行に先立って、レジストリデータベース内の情報を用いてCSRの真正性を検証できる」
このシステムにより、GoogleのバックエンドシステムはTitan対応マシンに向けた鍵を提供できるようになるとともに、これらマシンが改ざんされていないかどうかを(マシンに対する管理者権限を有する悪意ある内部犯行者の手による改ざんであるかどうかにかかわらず)確認するための監査ログに署名できるようになる。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。