暗号化通話・メッセージアプリ「Signal」は、セキュリティコミュニティで高い評価を得ています。開発者たちは、ユーザーにとって不利な状況に陥る可能性を回避するため、Signalのセキュリティをさらに強化することを決定しました。
Signalは、ネットユーザーから最低限の情報のみを取得することで安全性を確保していると自負していますが、誰がメッセージや通話をしているかを特定するには、連絡先へのアクセスが必要です。アプリの連絡先へのアクセスを遮断しても機能は継続しますが、誰が連絡を取っているかを特定するには、生の番号を自分で確認する必要があります。
重要なのは、Signalがあなたと、このアプリを使用している友人、親戚、同僚、その他の連絡先を繋げようとしていることです。このソフトウェアをインストールし、アドレス帳へのアクセスを許可すると、Signalはアプリをインストールしている連絡先を特定します。
これを行うために、アプリケーションは連絡先の電話番号をバックエンドサーバーに送信します。各番号のSHA256ハッシュを計算し、ハッシュの短縮コピーをSignalのシステムにアップロードします。バックエンドマシンはハッシュを使用して連絡先をリンクします。つまり、エマとジュリーがそれぞれAndroidスマートフォンに相手の電話番号を登録していて、安全なエンドツーエンドの暗号化チャットのためにSignalをインストールしている場合、Signalのシステムは、エマとジュリーがSignalで利用可能であることを両者に通知できます。
これはかなり堅牢なシステムですが、もし誰かがSignalサーバーをハッキングしたり、政府がその運営を掌握したりすれば、ハッシュ値を入手して分析することで、全員の関係者を特定できる可能性があります。これは、マシンにマルウェアを感染させたり、ホストOSを利用してユーザーからの受信データをスパイしたりすることで実現できます。
電話番号の数が比較的限られているため、たとえば米国の携帯電話番号の可能なすべての切り捨てハッシュを計算し、それを使用して Signal のハッシュを数字に変換し、個々の人物を特定することが可能です。
インテルのSGXセキュリティ拡張機能:詳細を確認するまでは安全
続きを読む
火曜日のブログ投稿で、Signalを開発するOpen Whisper Systems(OWS)の創業者で、ドレッドヘアのセキュリティ推進者でもあるモクシー・マーリンスパイク氏は、状況は理想的ではないと説明した。結局のところ、Signalは万全のセキュリティ対策を講じる必要があるのだ。
「私たちはただ、人々に私たちを信頼してもらいたくないだけなのです」と彼は言った。「プライバシーとはそういうものではありません。」
ハッシュが悪意ある者の手に渡るのを防ぐため、SignalはIntelの技術、具体的にはSoftware Guard Extensions(SGX)を採用しています。2013年に導入されたSGXは、著作権侵害対策やコピー防止などのメカニズムを支援するツールとして開発されました。Signalは、バックエンドサーバー上のハードウェア暗号化RAM内のSGXエンクレーブ内でハッシュを処理します。理論上、このエンクレーブは、マシンに侵入した者、たとえOSやシステム上で実行されている他のプログラムであっても、ハッシュを読み取ることができません。これにより、警察がマシンを占拠し、ハッシュを検査するためにマシンを稼働させ続けるといった事態を阻止できるはずです。
連絡先は「オブリビアス」ハッシュテーブルにも保存されます。これは非効率的なデータ構造で、覗き見された人が内容やレイアウトを推測できないようにすることを目的としています。Marlinspike氏によると、その仕組みは以下のとおりです。
SGXは完璧ではありません。システムを破壊する可能性のある概念実証ハッキングが既に存在するため、OWSは追加の予防措置を講じています。特に、メモリアクセスパターンを観察することで、解析対象のデータを推測しています。上記のキャッシュ観察はまさにこのことを指しています。SGXを解読するには数百万ドルが必要と推定されていますが、これはNSAやFBIなどの予算の範囲内です。つまり、資金力のある攻撃者であれば、上記の防御策をすべて突破できる可能性があるということです。
コードは現在オンラインに公開されており、今後数か月かけてチェックおよび検証してから展開されます。®