n スノーデン⽒の暴露事件により,国家規模の監視・盗聴に対するE2EEの必 要性が⼤ 多くのメッセージアプリケーションやビデオ会議システムで採⽤ n WhatsApp, Facebook Messanger, Google Duo, … u Signal Protocol [CCD+17] を採⽤ n iMessage (Apple), LINE u 脆弱性に関する指摘有り[GGK+16, IM18](是正済み) n Zoom u 第三者による安全性評価が未実施 [CCD+17] K. Cohn-Gordon et al. A Formal Security Analysis of the Signal Messaging Protocol. In EuroS&P 2017 [GGK+16] C. Garman et al. Dancing on the Lip of the Volcano: Chosen Ciphertext Attacks on Apple iMessage. In USENIX 2016 [IM18] T. Isobe and K. Minematsu. Breaking Message Integrity of an End-to-End Encryption Scheme of LINE. In ESORICS 2018
Communications社が提供するビデオ会議システム n 1⽇当たりのアクティブユーザ数:約3億⼈以上(2020年4⽉現在) n E2EE導⼊計画の発表(2020年5⽉) u ホワイトペーパー*として仕様を公開 https://github.com/zoom/zoom-e2e-whitepaper u 4つのフェーズのうちフェーズ1を展開,1ヶ⽉の技術プレビュー(2020年10⽉) *2020年12⽉末現在,最新版はVersion 3であるが,本研究では論⽂執筆時点で最新版のVersion 2.3.1を対象
攻撃者** 結託者** 被害者** 1 なりすまし 能動的 L/P - L/P 2 なりすまし 受動的 I - L/P/O 3 なりすまし 能動的 I L/P L/P/O 4 なりすまし 能動的 O I , L L/P/O 5 なりすまし 能動的 O L L/P/O 6 なりすまし 能動的 O I O 7 改ざん 受動的 I - L/P 8 サービス拒否 受動的 I - P *能動的攻撃:ミーティングへの参加だけでなく,データの正常な送受信が可能 *受動的攻撃:攻撃を実⾏するも,データの正常な送受信は不可 **I(インサイダー):Zoomのサーバ・インフラ管理者 ** O(アウトサイダー):ミーティングへのアクセス権を有しないZoomユーザ ** P(参加者):ミーティングへのアクセス権を有するZoomユーザ ** L(リーダー):共有鍵の⽣成・配布,参加者の承認・排除の権限を有する参加者 具体的な攻撃⼿順,現実世界での実現可能性,攻撃に対する効果的な対策を提案 ü 6個の脆弱性 ü 8種類の攻撃
攻撃者** 結託者** 被害者** 1 なりすまし 能動的 L/P - L/P 2 なりすまし 受動的 I - L/P/O 3 なりすまし 能動的 I L/P L/P/O 4 なりすまし 能動的 O I , L L/P/O 5 なりすまし 能動的 O L L/P/O 6 なりすまし 能動的 O I O 7 改ざん 受動的 I - L/P 8 サービス拒否 受動的 I - P *能動的攻撃:ミーティングへの参加だけでなく,データの正常な送受信が可能 *受動的攻撃:攻撃を実⾏するも,データの正常な送受信は不可 **I(インサイダー):Zoomのサーバ・インフラ管理者 ** O(アウトサイダー):ミーティングへのアクセス権を有しないZoomユーザ ** P(参加者):ミーティングへのアクセス権を有するZoomユーザ ** L(リーダー):共有鍵の⽣成・配布,参加者の承認・排除の権限を有する参加者 具体的な攻撃⼿順,現実世界での実現可能性,攻撃に対する効果的な対策を提案 設計者らの想定 n 参加者がインサイダーと結託することで別の参加者へのなりすまし可能 u インサイダーとの結託による攻撃は仕様上の制約事項と主張 設計者らの想定よりも強⼒な攻撃が可能 n インサイダーが結託なしで任意のユーザへなりすまし可能 u データの正常な送受信は不可(受動的攻撃) n インサイダーが参加者と結託することで任意のユーザへなりすまし可能 u データの正常な送受信も可能(能動的攻撃)
2020年11⽉:hackerone*を通じて報告済み(公開,発表の許可も取得済み) n 2020年12⽉:ホワイトペーパーのバージョン更新(2.3.1 → 3) u 攻撃2−6について仕様上の制約事項であることを明記(フェーズ2で強化) u フェーズ2のメジャーアップデート,謝辞の追加 *https://hackerone.com/zoom?type=team
攻撃者** 結託者** 被害者** 1 なりすまし 能動的 L/P - L/P 2 なりすまし 受動的 I - L/P/O 3 なりすまし 能動的 I L/P L/P/O 4 なりすまし 能動的 O I , L L/P/O 5 なりすまし 能動的 O L L/P/O 6 なりすまし 能動的 O I O 7 改ざん 受動的 I - L/P 8 サービス拒否 受動的 I - P *能動的攻撃:ミーティングへの参加だけでなく,データの正常な送受信が可能 *受動的攻撃:攻撃を実⾏するも,データの正常な送受信は不可 **I(インサイダー):Zoomのサーバ・インフラ管理者 ** O(アウトサイダー):ミーティングへのアクセス権を有しないZoomユーザ ** P(参加者):ミーティングへのアクセス権を有するZoomユーザ ** L(リーダー):共有鍵の⽣成・配布,参加者の承認・排除の権限を有する参加者 具体的な攻撃⼿順,現実世界での実現可能性,攻撃に対する効果的な対策を提案 ü 4個の脆弱性 ü 4種類の攻撃
n 被害者:任意の参加者(リーダーも含む) n 攻撃⼿順: 1. 攻撃者がプロトコルに従って共有鍵 MK を⼊⼿ 2. コンテンツを暗号化し,被害者のメタ情報(送信者IDなど)を付加して送信 脆弱性1(エンティティ認証⽋如) ミーティングコンテンツに対するエンティティ認証の⽋如 Ø 共有鍵 MK によるAES-GCMでの暗号化:機密性,完全性はOK,真正性はNG 参加者 被害者 掲⽰板 MK MK リーダー MK ① ② ② ① ①
n 被害者:任意の参加者(リーダーも含む) n 攻撃⼿順: 1. 攻撃者がプロトコルに従って共有鍵 MK を⼊⼿ 2. コンテンツを暗号化し,被害者のメタ情報(送信者IDなど)を付加して送信 脆弱性1(エンティティ認証⽋如) ミーティングコンテンツに対するエンティティ認証の⽋如 Ø 共有鍵 MK によるAES-GCMでの暗号化:機密性,完全性はOK,真正性はNG 考察 n 実現可能性:なりすまし⽤コンテンツの事前準備により実現可能性は⾼い u 被害者の信頼失墜,被害者への通信妨害 n 対策:署名添付※パフォーマンスと否認防⽌の観点から今後の課題(ホワイトペーパー記載)
1. ユーザAがリーダーとなってZoomミーティングを主催 2. 攻撃⼿順に従い,Aがインサイダー⼜はアウトサイダーに対し,相⼿⽅のユー ザBにとって影響⼒のある⼈物Cになりすますよう指⽰ 3. Cがコンテンツを何も発信しなければ,BはCから無⾔の圧⼒をかけられている と感じ,Bにとって交渉が思い通りに進まない可能性が⼤ インサイダー リーダーA 参加者B ② ① ③
攻撃者** 結託者** 被害者** 1 なりすまし 能動的 L/P - L/P 2 なりすまし 受動的 I - L/P/O 3 なりすまし 能動的 I L/P L/P/O 4 なりすまし 能動的 O I , L L/P/O 5 なりすまし 能動的 O L L/P/O 6 なりすまし 能動的 O I O 7 改ざん 受動的 I - L/P 8 サービス拒否 受動的 I - P *能動的攻撃:ミーティングへの参加だけでなく,データの正常な送受信が可能 *受動的攻撃:攻撃を実⾏するも,データの正常な送受信は不可 **I(インサイダー):Zoomのサーバ・インフラ管理者 ** O(アウトサイダー):ミーティングへのアクセス権を有しないZoomユーザ ** P(参加者):ミーティングへのアクセス権を有するZoomユーザ ** L(リーダー):共有鍵の⽣成・配布,参加者の承認・排除の権限を有する参加者 具体的な攻撃⼿順,現実世界での実現可能性,攻撃に対する効果的な対策を提案 ü 6個の脆弱性 ü 8種類の攻撃
1. ユーザAがリーダーとなってZoomミーティングを主催 2. 攻撃⼿順に従い,Aがインサイダー⼜はアウトサイダーに対し,相⼿⽅のユー ザBにとって影響⼒のある⼈物Cになりすますよう指⽰ 3. Cがコンテンツを何も発信しなければ,BはCから無⾔の圧⼒をかけられている と感じ,Bにとって交渉が思い通りに進まない可能性が⼤ n 攻撃5の実現可能性:meetingUUIDの衝突 u 1⽇当たりアクティブユーザ数:約3億⼈以上(2020年4⽉現在) u 1セッション当たりのミーティング参加者:最⼤1000⼈ l 1年間で約226〜236セッション → 261回の試⾏(攻撃5)は現実的に困難 インサイダー リーダーA 参加者B ② ① ③
n 被害者:アウトサイダーとデバイスを共有するZoomユーザC n 攻撃⼿順: 1. アウトサイダーが ISKC の暗号⽂を⼊⼿ 2. アウトサイダーが ISKC の暗号⽂をインサイダーと共有,⼜はインサイダーから Cと紐付けられた KWK を⼊⼿ 3. 攻撃者がKWKでISKC の暗号⽂を復号 → Cとしてミーティングに参加可能 対策 n KWKの保存を信頼できる第三者機関に委託,⼜は秘密分散法を活⽤ インサイダー (IVKC , ISKC ) KWKC CC 参加者 犠牲者C アウトサイダー ① ② ③ ③
インサイダー:参加者の署名や公開鍵を⾃由に収集,改ざん可能 攻撃8:脆弱性2を悪⽤した(受動的)サービス拒否 n 攻撃者:インサイダー n 結託者:なし n 被害者:参加者D n 攻撃⼿順: 1. 被害者Dが SigD と pkD を掲⽰板に投稿 2. インサイダーが pkD を差し替える. 3. リーダーによる署名の検証 → 検証に失敗 考察 n 実現可能性:参加者から依頼を受けてインサイダーが容易に実⾏可能 n 対策:掲⽰板の管理を第三者機関に委託,⼜は掲⽰板の内容を暗号化 インサイダー 掲⽰板 被害者D リーダー ① ② ③