ニュース

NTT、SpectreやMeltdownなどCPUに対するキャッシュ攻撃を防ぐキャッシュランダム関数を開発

 日本電信電話株式会社(以下、NTT)は2日、東北大学電気通信研究所および独Ruhr University Bochum, CASAとの共同研究により、CPUメモリ間のデータ取得更新の際に、キャッシュによって遅延差が発生することに起因する脆弱性を取り除く、専用のキャッシュランダム関数を開発したと発表した。これにより、キャッシュ攻撃による情報漏えいを防ぐ高い安全性を持つCPUの実現に貢献する。

 昨今のCPUはキャッシュメモリを導入し、一度アクセスしたデータをCPU近くに配置することで、次回以降の参照を高速化し、CPUメモリ間のデータのやり取りに要する遅延の影響を低減させている。しかし、一度参照したアドレスは次回以降、高速に参照可能で、攻撃者が悪用することが可能な情報となる。この情報を悪用した攻撃はキャッシュ攻撃と呼ばれ、現実的な脆弱性にもつながるため対策が必要となっており、とりわけ、攻撃対象のプログラムと攻撃プログラムがキャッシュの取り合いを行うことに起因する「Contention型キャッシュ攻撃」は、攻撃者の前提条件が少なく、現実的な脅威として認識されている。

 Contention型キャッシュ攻撃に対抗する手段としては、キャッシュインデックスのランダム化が有効となる。ランダム化を実行することで、攻撃者は、あるアドレスが利用するキャッシュインデックスを特定できなくなるため、キャッシュを悪用した攻撃が不可能になると考えられているが、ランダム化を実現する上で、どのようなレベルで実装すれば必要十分なのかがこれまで分かっていなかった。

 研究では、初めに、キャッシュランダム関数に対して攻撃者が実際に実行できることは何かを調査し、攻撃者の能力を適切に反映したキャッシュランダム関数特化型の攻撃者モデルの設計に取り組んだ。具体的には、出力の一部が衝突したときに、対応する入力ペアを観測可能とする衝突モデルと、ブロック暗号の代わりに調整可能ブロック暗号を用いて、調整値t1で暗号化後に調整値t2で復号するEnc-then-Decのモデルを導入した。とりわけ、Enc-then-Decモデルは、既存の共通鍵暗号設計理論との親和性が高く、適切な設計を行うことで、従来と比べて遅延を半減させることを可能とする。

従来の共通鍵暗号のモデルとキャッシュランダム化関数特化型のモデル

 研究においては、Enc-then-Decモデルを用いて設計された、具体的なキャッシュランダム関数SCARF(Secure CAche Ransomization Function)を提案した。SCARFの設計には、NTTで培われた共通鍵暗号設計のノウハウが生かされており、既存の低遅延ブロック暗号が15nm Technologyで560~630psの遅延を要するのに対し、SCARFの遅延は同環境で305.76psと約半減を達成している。この半減の実現には、Enc-then-Decモデルを最大限有効活用した設計技術が使われている。

 この成果により、すべてPC内のCPUについて、Contention型キャッシュ攻撃を無効化することが期待されると説明。具体的には、「Spectre」や「Meltdown」といった、Contention型キャッシュ攻撃を利用した悪質な脆弱性を取り除くことが可能になるとしている。

 NTTでは今後も、今回の研究のように、用途を限定した環境下において、汎用暗号化方式を大きく性能で上回る、目的特化型な暗号技術の研究開発を推進していくとしている。