2人の暗号研究者が、インテルが誤った実装決定によって「ソフトウェア・ガード・エクステンションズ(SGX)」を台無しにしたと非難する大学院論文を発表した。
MITのビクター・コスタン氏とスリニヴァス・デバダス氏は、SGXがインターネット経由で暗号鍵を取得する方法を批判している[PDF]。2013年にリリースされたSGXは、プログラマーがコードとデータを格納したロックされたコンテナを作成できるCPU機能を追加し、コンテナ内のコードとデータへのアクセスをハードウェアで強制的に制御するようになった。
SGX の長くて非常に詳細な分析が今月、権威ある国際暗号研究協会によって公開され、システムの「認証モデル」の説明になるとチェーンソーが使われます。
ここで問題となるのは、モデルの仕組みと、Chipzillaが開発者に説明した内容との間に深刻な乖離があるように見えることです。Intelは認証について次のように述べています。
エンクレーブはサービスプロバイダーに連絡し、機密データをエンクレーブにプロビジョニングします。プラットフォームは、ハードウェア環境とエンクレーブを識別するセキュアアサーションを生成します。
[ここで言う「エンクレーブ」とは、保護されたソフトウェア コンテナーのことです。]
この「セキュアアサーション」の取得方法が暗号通貨コミュニティの注目を集めており、SGX 認証キーは Chipzilla から取得する必要があるため、プライバシーに反し安全ではないと考えられています。
ジョンズ・ホプキンス大学の著名な研究者マット・グリーン氏は次のように述べています。
IntelはSGX認証キーを安全にプロビジョニングするというアイデアを放棄したようです。今後はIntelに問い合わせる必要があります。pic.twitter.com/A9wwW0zJMD
— マシュー・グリーン(@matthew_d_green)2016年1月31日
SGXの微妙な設計上の問題は、あまり喜ばしいものではないことは承知しています。しかし、Intelはこのシステムのリモート認証機能を事実上台無しにしてしまったのです。
— マシュー・グリーン(@matthew_d_green)2016年1月31日
さらに悪いことに、これはインテルが事実上、巨大な暗号鍵データベースをインターネット上に設置していることを意味します。うまくいくことを祈ります。
— マシュー・グリーン(@matthew_d_green)2016年1月31日
グリーン氏の懸念は、論文のセクション 5.8 の詳細かつ技術的な分析に向けられており、おそらく次の引用 (セクション 6.6.1 から) に最もよく表れています。
「初期化されると、エンクレーブはソフトウェア認証プロセスに参加し、リモートサーバーに対して自己認証を行う必要があります。認証に成功すると、リモートサーバーは安全な通信チャネルを介してエンクレーブにいくつかの秘密情報を開示することが期待されます。」
問題部分は私たちが強調しています:
プロビジョニングキーがインターネット経由で渡される
問題は、グリーン氏のツイートの画像(論文から引用、左に全文転載)が示すように、インテルは対称プロビジョニング キーを SGX 対応チップとインテル サーバーの両方に配置することを意図している点です。
エンクレーブを確立するために、ソフトウェアはプロビジョニング キーを Intel に提供し、データベースに一致するものがあれば、Intel は SGX がエンクレーブをセットアップできるようにする認証キーを発行します。
(これは、Intel が発行した認証キーと、プロセッサに焼き付けられて外部に漏れることのないシール キーの組み合わせを使用して行われます。)
コスタン/デバダスの論文では、SGX がインテルをソフトウェアの世界の中心に据えていることにも言及している。「SGX の特許では、Launch Enclave は各エンクレーブの作成者がインテルとビジネス関係を持ち、ソフトウェア ライセンス システムを実装していることを保証するために導入されたことが明確に開示されている。」
これによりインテルは大きな力を持つ立場に立つと研究者らは書いている。「インテルはデスクトップおよびサーバークラスのプロセッサをほぼ独占しており、どのソフトウェアベンダーが SGX を使用できるかを決定できることで、事実上、多くのソフトウェア市場で勝者と敗者を決定できる立場にインテルが立つことになる。」
チップジラさん、お願いします。®