日本電信電話(NTT)は、東北大学 電気通信研究所およびドイツ Ruhr University Bochum,CASAとの共同研究により、CPUメモリ間のデータ取得更新の際にキャッシュによって遅延差が発生することに起因する脆弱性を取り除く専用のキャッシュランダム関数を開発した。これにより、キャッシュ攻撃による情報漏洩を防ぐ安全性を持つCPUの実現に貢献するという。
昨今のCPUは、キャッシュメモリを導入し、一度アクセスしたデータをCPU近くに配置することで次回以降の参照を高速化し、CPUメモリ間のデータのやり取りに要する遅延の影響を低減させている。しかしながら、一度参照したアドレスは次回以降、高速に参照可能であり、攻撃者が悪用することが可能な情報だとしている。
この情報を悪用した攻撃はキャッシュ攻撃と呼ばれ、現実的な脆弱性にもつながるため対策が必要となり、攻撃対象のプログラムと攻撃プログラムがキャッシュの取り合いを行うことに起因する「Contention型キャッシュ攻撃」は、攻撃者の前提条件が少なく、現実的な脅威として認識されているという。
Contention型キャッシュ攻撃に対抗する手段として、キャッシュインデックスのランダム化が有効であるとのこと。ランダム化を実行することで攻撃者は、あるアドレスが利用するキャッシュインデックスを特定できなくなるため、キャッシュを悪用した攻撃が不可能になると考えられているが、ランダム化を実現するうえで、どのようなレベルで実装すれば必要十分なのかがこれまでわかっていなかったとしている。
同研究では、初めに、キャッシュランダム関数に対して攻撃者が実際に実行できることは何かを調査し、攻撃者の能力を適切に反映したキャッシュランダム関数特化型の攻撃者モデルの設計に取り組んだ。具体的には、出力の一部が衝突したときに、対応する入力ペアを観測可能とする衝突モデル、ブロック暗号の代わりに調整可能ブロック暗号を用いて、調整値t1で暗号化後に調整値t2で復号するEnc-then-Decのモデルを導入。とりわけ、後者のモデルは、既存の共通鍵暗号設計理論との親和性が高く、適切な設計を行うことで、従来と比べて遅延を半減させることを可能にするという。
また、同研究では、Enc-then-Decモデルを用いて設計された、具体的なキャッシュランダム関数SCARF(Secure CAche Ransomization Function)を提案。既存の低遅延ブロック暗号が15nm Technologyで560~630psの遅延を要するのに対し、SCARFの遅延は同環境で305.76psと約半減を達成しているという。この半減の実現には、Enc-then-Decモデルを有効活用した設計技術が使われている。
今回の開発により、PC内のCPUについてのContention型キャッシュ攻撃を無効化することが期待されるという。具体的には「Spectre(スペクター)」や「Meltdown(メルトダウン)」など、Contention型キャッシュ攻撃を利用した悪質な脆弱性を取り除くことが可能となる。
キャッシュランダム関数SCARFには、現在の多くのキャッシュアーキテクチャに適合するよう設計されている一方で、一部、SCARと互換性の乏しいアーキテクチャも存在している。そのため、今後より広範囲なアーキテクチャに対応できるよう、SCARFの構造の一般化が期待されているという。
NTTは、今後も本研究のような用途を限定した環境下において、汎用暗号化方式を大きく性能で上回る、目的特化型な暗号技術の研究開発を推進していくとしている。
【関連記事】
・JR西日本グループ、NTTデータのGHG可視化システム「C-Turtle」を導入
・NTTデータ数理システムの「Alkano」がCData製品と連携、クラウドへのアクセスをシームレスに
・NTTドコモの国際ローミングサービスのサービス回復時間を75%削減、ServiceNow導入で実現