CPUの脆弱性「メルトダウン」などを回避、低遅延な手法をNTTが開発

GettyImages

CPUに潜む脆弱性に対して、より安全性が高く低遅延で実現する手法をNTTと東北大学電気通信研究所、ドイツ Ruhr University Bochum, CASA の共同研究により開発したことが発表された。

2018年に公開されたCPUの脆弱性「Spectre(スペクター)」や「Meltdown(メルトダウン)」は、CPUのアーキテクチャにかかわるハードウェアレベルの脆弱性で、CPUのキャッシュを悪用した「Contention型キャッシュ攻撃」と呼ばれている。

CPUには1度アクセスしたデータをCPU内のキャッシュメモリーに配置することで、メモリーへアクセスするより高速に参照できることで、より効率的な処理を可能にしている。ところが、このキャッシュメモリーに配置した情報を悪用する攻撃方法が発見されたことで、対策する必要が生じたわけだ。

ただハードウェアレベルの脆弱性を解決することは難しく、OSやソフトウェア側で対策することで回避するしかない。すでにWindowsなどでは修正プログラムによって対策が打たれているが、この対策方法によってCPUの性能で低下するという事態になり、何度か改善は図られているが、今回のNTTの発表は、より低遅延で安全な手法であるとしているのだ。

Contention型キャッシュ攻撃のメカニズムについては上図のとおりで、キャッシュメモリーにデータを配置する際に、どこへ割り当てるかキャッシュインデックスが用意されますが、これがわかりやすい割り当てになっていたため、参照したいアドレスを特定できてしまうのが問題だった。

この問題に対しては、キャッシュインデックスをランダム化することが有効で、これによりどこに割り当てられるが特定できなくなるものの、どのようなレベルで実装すべきか、これまで十分にはわかっていなかったという。

研究にあたっては、従来の共通鍵暗号モデルとキャッシュランダム関数特化型の「衝突モデル」「Enc-then-Decモデル」の攻撃者を想定し調査。その結果、共通鍵暗号の一緒で調整値入力が付加された「調整可能プロック暗号」(ブロック暗号:秘密鍵と固定長のメッセージを入力したとき固定長の暗号文を出力)を用い、調整値t1で暗号化し、調整値t2で復号するEnc-then-Decモデルが、従来の共通鍵暗号設計理論と親和性が高く、適切な設計を行うことで、従来と比べて遅延を半減させることに成功したという。

Enc-then-Decモデルを用いて設計したキャッシュランダム関数SCARF(Secure CAche Ransomization Function) は、長年NTTで培われた共通鍵暗号設計のノウハウが活かされたもの。15nmプロセスのCPUで遅延を計測したところ、従来のブロック暗号の場合は560~630ピコ秒(ピコは1兆分の1)だったのが、SCARFの場合は305.76ピコ秒とほぼ半減している。

低遅延で安全性も高めたキャッシュランダム関数SCARF。現在の多くのキャッシュアーキテクチャに適合するよう設計されており、より広範囲なアーキテクチャに対応できるよう、SCARFの構造の一般化が期待されている。

プレスリリース:NTT「CPUメモリ間における高速かつ安全なデータ取得更新を 可能とするキャッシュランダム関数の開発 ~キャッシュ攻撃による情報漏洩を防ぐCPUの実現~」より

文=飯島範久

ForbesBrandVoice

人気記事