はじめに
イランのデモがニュースになっているが、SNS上でデモへの支持を表明したインフルエンサーが拘束されたりしている。
現地ではSNS上でのメッセージのやり取りにも気を遣っている様子が見られ、検閲を恐れてか既読を確認後にメッセージを送信取り消し等の対処をしていると聞く。
例えばInstagramだとDMは暗号化されているはずなので国家とはいえ暗号化されたメッセージの検閲、というのは難しいように思う。
その為実際には検閲がどこまで行われているのか、SNSの検閲は実現可能なのか、どのような手段で実装されているのか調べてみることにした。
検閲とは
そもそも「検閲」とは何をしているのか
「検閲」と聞くと「投稿を削除する」「危険な文章を見張る」というイメージだが、技術的には次のような行為の総称となる。
- 通信の遮断(特定IP・ドメイン・プロトコルをブロック)
- 通信の検出・分類(DPIによるアプリ・プロトコル識別)
- メタデータの収集(誰が・いつ・どこに接続したか)
- プラットフォームへの介入(サービス遮断・アカウント統制)
- 端末・アプリ側での検閲(クライアント監視・改変)
実際に「何をどこまでやるか」は国により様々で、以下に一例を挙げる
中国
グレート・ファイアウォールにより多くの海外サービスへのアクセスを制限
ネットワークレベル中心
ロシア
中国ほどの完全遮断は少ない一方、通信データの監視・記録
事後統制寄りの印象
イラン
イスラムの道徳基準に反する、または宗教的権威を脅かすとみなされるコンテンツは体系的に排除される
本記事で扱うスコープ
本記事では、最近大規模な通信制限が行われていたイランの検閲構造を例にする
イランにおける検閲は単一の手法ではなく、レイヤをまたいだ多層構造になっている
アプリケーション層(L7)ではDPIによる通信内容の解析が行われ、ネットワーク層(L3)およびトランスポート層(L4)では特定サービスへの到達性が制御される
さらに有事下では、L3レベルでのインターネット遮断が実施されることもありタイムリーだったのがこれ
| レイヤ | 検閲内容 | 技術的手法 |
|---|---|---|
| L7(アプリケーション層) | 通信内容の監視・分類 | DPI、プロトコル解析、キーワード検出 |
| L3 / L4(ネットワーク・トランスポート層) | 特定サービスへのアクセス制限 | IPブロック、ポート遮断、SNIフィルタ、RST注入 |
| L3(ネットワーク層) | (有事下)インターネット遮断 | BGP制御、国際回線遮断、IX遮断 |
今回掘り下げたいのはL7のプロトコル・データを解析対象にする検閲についてである
通信内容の監視
暗号化されていない通信については下記のような事が行われている
深い検査とはこれらの通信の中身を継続的に解析して、禁止されたキーワードや接続先を検知する仕組みです。ビジネスに例えれば、社内の郵便物を中身まで開けて確認する「検査ライン」を国全体に作るようなものですよ。
これを実現するにはDeep Packet Inspection(DPI)システムが利用されている
政府がトラフィックを監視するために使用するDeep Packet Inspection(DPI)システムは、多くの場合、V2Rayトラフィックと正当なHTTPSを区別できません。
Deep Packet Inspection(DPI)システム
通常のパケットインスペクションは、IP(Internet Protocol)、UDP(User Datagram Protocol)、TCP(Transmission Control Protocol)などのプロトコルデータをもとに、ヘッダー部分のIPアドレスを調べるSPI(Stateful Packet Inspection)です。しかし、ヘッダー部分ではなくボディにウイルスが埋め込まれるパターンが生まれ、SPIだけではセキュリティが完全ではなくなりました。
そこで登場したのがDPIです。DPIは従来のヘッダーだけではなくボディ部分も調べ、危険の有無について感知します。
本来ならウイルス検知に使用されるDPIだがパケットデータ部分の解析も技術的に可能となる事から、検閲にも利用されている
イランで利用されているDPI
Nokia Siemens Networks(NSN、シーメンスとノキアの合弁企業)からDPI用といわれるシステムを購入したと、2009年6月のウォール・ストリート・ジャーナル紙でNSNのスポークスマン Ben Roome の言葉を引用する形で報道された。
イランに販売した監視センターはあらゆるネットワーク上の音声とデータの通信を監視・傍受できるとされている。
イランは他にも Secure Computing Corp. から同様の機器を購入している[28]。
具体的にどのタイミングで監視しているのか
※実際の構成は機密情報の為こんな感じでは、というイメージ
[User] ── ISP ── [国家DPIシステム] ── Internet
技術的に何をやっているのか
※実際の構成は機密情報の為こんな感じでは、というイメージ
1.パケットの取得
ネットワークスイッチ上で検出されたパケットのコピーを監視システムに送信
2.セッション再構成
インターネットでは、回線や機器ごとに「一度に送れる最大サイズ(MTU)」が決まっているため、アプリケーションのデータはTCPによって小さな単位に分割されて送信される。検閲装置は、これらの分割されたパケットを再構成することで、初めてHTTPやDNSといった上位プロトコルの中身を解析できる。
3.プロトコル解析
HTTP、DNS、FTP、独自プロトコルなどをパースし内容が読める状態になる
DPIはプロトコル識別エンジンを持つ為、独自プロトコルに対しても識別可能であり、それらに高精度フィンガープリントも適用可能
後述するTelegramの通信経路で利用される独自プロトコルなどは普通に解析されそう
TLS / HTTPSについてはハンドシェイクや通信フローを解析することでプロトコル識別(推定)は行える。ただし暗号鍵を持たないため、通信内容そのものを復号して検閲することはできない
4.ルールマッチング
復元したデータに対してgrep、正規表現・機械学習分類等を実施し中身ベースの検閲を実施する
5.アクション実行
条件に一致した通信に対しての切断、リダイレクト、記録等を実施する
ここまでのまとめ
暗号化されていなければ、国家は通信内容から国が決めた規定にそぐわない個人間のメッセージのやり取り、インターネット検索などの通信を割と簡単に見つけていそう
暗号化された通信への検閲
次に暗号化された通信について
暗号化された通信の主な例として、メッセージアプリやSNSのDM機能をあげてみる
| サービス名 | 暗号化手段 |
|---|---|
| エンドツーエンド暗号化(E2EE) | |
| エンドツーエンド暗号化(E2EE) | |
| Telegram | 通信経路はMTProtoプロトコル(独自)で暗号化され、サーバーへの保存時にも暗号化された状態で保存される |
Telegramも秘匿性が高いと言われるシークレットモードではE2EEが適用される為、ここではE2EEを掘り下げる
エンドツーエンド暗号化(E2EE)とは
Instagramより抜粋
エンドツーエンド暗号化スレッドに参加している各デバイスには、スレッドを保護するために使われる特別なキーが存在します。メッセージや通話がエンドツーエンド暗号化で保護されているかどうかを、他の利用者とキーを照合して確認することができます。
エンドツーエンドで暗号化されたチャットでメッセージを送信すると、デバイスは送信するメッセージをロックします。このメッセージのロックを解除できるのは、そのチャット用の特別なキーの1つを所有するデバイスだけです。動画や音声によるスレッドのコンテンツについても同様です。
この特別なキーを持っている人以外は、たとえMetaであっても、メッセージを読んだり通話を聞くことができません。やってみたいと思ってもできるものではないのです。
E2EEメッセージの検閲は可能か
下記の理由より基本的に中身の検閲は難しいはず
- 暗号鍵は送信者と受信者の端末にしか存在しない
- サーバ・ISP・国家検閲装置は復号鍵を持たない
- 暗号はIND-CPA/CCA耐性(公開鍵暗号方式の安全性を評価する基準)を前提に設計されている
とはいえ暗号化されていても残る情報(メタデータなど)から、下記の情報は取得可能と思われる
- 通信相手
- プロトコル
- 通信時刻・頻度
- パケットサイズ
AとBがやりとりしている内容はわからないけど、A側からの通信後、B側でアクションが起きた、等は把握が可能
E2EEメッセージが犯罪に使われていた場合、警察の捜査でも確認できないのか
結論としては警察も内容は確認できない
ただし、先に述べたように暗号化されたとしても残る情報から、下記は可能
- 人間関係の把握
- 組織構造の推定
- 共犯関係の立証
これにより立件までは可能、それによりエンドポイント(端末)を抑えることができれば確認できる事が増える
端末上でのE2EEの仕組み
端末上では元のデータは平文で保存されている
入力 → 平文 → 暗号化 → 通信 → 復号 → 平文 → 表示
仮に端末上で削除してもデータサルベージによって復元できる可能性があるから、何の疑いもなければ端末を見られる事もなくデータの中身を見られる事はないけれど、疑いを持たれた場合は端末押収によりE2EEのやりとりでも警察が確認可能、といった流れになる
話を検閲に戻すと、下記のような捜査が可能という事になる。
国外にいるBが国の規定にそぐわないSNS投稿をしている。Bは国内にいるAという相手と頻繁に通信している。BのSNS投稿は決まってAからの通信があったタイミングだ。AからBへ何らかの示唆が行われている疑いがある為、Aのスマホを押収すると、Bへの指示メッセージが確認できた。
冒頭で述べた
現地ではSNS上でのメッセージのやり取りにも気を遣っている様子が見られ、検閲を恐れてか既読を確認後にメッセージを送信取り消し等の対処をしていると聞く。
は端末への直接介入に備えたものである可能性がある。
尚端末におけるセキュリティ(エンドポイントセキュリティ)ではゼロトラストモデルの設計思想においても重要な前提とされており、端末内部の鍵や平文は別途保護すべき対象とされており、下記ページに記載されているような保護や検知の技術がそれらを支えているが、さすがに物理的な端末押収への対策にはならない。
ここまでは端末に何も問題がない前提の話で、端末側にそもそも国家による仕掛けがある場合は下記のように話が大きく変わってくる。
参考:クライアント侵害による平文取得
そもそも暗号の脅威モデルは端末が信用できる前提で設計されている
暗号化の前に盗聴される仕組みがそもそもスマホにあると、いくらE2EEでも無力
スマホ自体に下記のような仕掛けが元々あった場合は、容易に情報収集されている可能性もある
- マルウェア
- スパイウェア
- キーロガー
- OS改変
但し国内に流通しているスマホに上記を仕掛けることは現実的でないとは思われる
(技術的制約・コスト・社会的リスクによる)
国家レベルで通信インフラを統制している国だから、技術的には可能という話
まとめ
本記事で整理したように、エンドツーエンド暗号化(E2EE)は「通信経路上でメッセージ内容を検閲する」ことを強力に防ぐ。
これは国家であっても例外ではなく、暗号鍵を持たない限りネットワーク上から内容を直接読むことは難しいと思われる。
一方で、検閲や捜査が成立している現実は、E2EEに穴がある訳ではなく、検閲が暗号とは異なるレイヤで行われ、その情報を元に端末を押さえることによると推測される。
検閲の流れ
- L3/L4では通信の到達性が制御
- L7ではメタデータが収集・分析
- 最終的には端末側で直接「暗号の前後」に介入し平文確認することでメッセージ内容に到達
検閲は暗号そのものを破壊することを目標としているわけではなく、暗号化通信を避け、メタデータ解析や端末側への介入といった「暗号の外側」を攻めることで成立していると考えられる。
一方で、こうした手法が実際に逮捕や拘束といった形でどこまで使われているのかについては、確かな情報は少なく、断定的なことは言えない。
冒頭のニュースは、SNS上でデモへの支持を表明した人物が拘束されたという事例であり、インターネット上に公開された情報が検閲や統制の対象となり得ることを示している。
DMのような非公開通信に対して、実際にどこまで監視や統制が行われているのかについては、技術的に可能な範囲は整理できるものの、実態については不明な点が多い。
本記事で整理したような技術的背景を踏まえてニュースを読むことで、何が可能で、何が容易ではないのかを切り分けながら理解する一助になれば幸いである。