Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zoomのエンドツーエンド暗号化に対する安全性評価

Ryoma Ito
January 21, 2021

 Zoomのエンドツーエンド暗号化に対する安全性評価

研究発表 @ SCIS 2021

Ryoma Ito

January 21, 2021
Tweet

More Decks by Ryoma Ito

Other Decks in Research

Transcript

  1. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 エンドツーエンド暗号化とクライアント・サーバ間の暗号化通信の違い エンドツーエンド暗号化(E2EE) 2 通信するエンドユーザのみが暗号化・復号可能な⽅式 n

    通信システムの提供者であってもメッセージの盗聴・改ざん不可 n スノーデン⽒の暴露事件により,国家規模の監視・盗聴に対するE2EEの必 要性が⼤ サービスプロバイダ 安全な通信路 サービスプロバイダ 安全な通信路 安全な通信路 ?
  2. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 エンドツーエンド暗号化(E2EE) 3 通信するエンドユーザのみが暗号化・復号可能な⽅式 n 通信システムの提供者であってもメッセージの盗聴・改ざん不可

    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
  3. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 Zoom 4 n Zoom Video

    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を対象
  4. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 本研究の貢献:ZoomのE2EEに対する安全性評価 5 No. 攻撃⽅法 攻撃種別*

    攻撃者** 結託者** 被害者** 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種類の攻撃
  5. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 本研究の貢献:ZoomのE2EEに対する安全性評価 6 No. 攻撃⽅法 攻撃種別*

    攻撃者** 結託者** 被害者** 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 データの正常な送受信も可能(能動的攻撃)
  6. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 Zoom Video Communications社への情報開⽰ 7 n

    2020年11⽉:hackerone*を通じて報告済み(公開,発表の許可も取得済み) n 2020年12⽉:ホワイトペーパーのバージョン更新(2.3.1 → 3) u 攻撃2−6について仕様上の制約事項であることを明記(フェーズ2で強化) u フェーズ2のメジャーアップデート,謝辞の追加 *https://hackerone.com/zoom?type=team
  7. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 ZoomにおけるE2EEセッション確⽴プロトコル 8 1. 参加者 i

    の⻑期署名鍵ペア (IVKi , ISKi ) の⽣成 u ZoomアプリケーションがE2EEをサポート後に⽣成 u Local Key Securityメカニズムによる鍵ペアの保存(細部は論⽂を参照) 2. 参加者 i のECDH⽤鍵ペア (ski , pki ) ,署名 Sigi の⽣成 3. リーダーによる共有鍵 MK の⽣成 4. 参加者 i の署名 Sigi の検証 5. 共有鍵 MK の共有 6. AES-GCMによるミーティングコンテンツの暗号化 Zoomサーバ リーダーA 参加者B 掲⽰板* *掲⽰板:TLSセッションを確⽴して参加者間での各種情報共有(公開鍵,署名,など)を可能とするもの (IVKA , ISKA ) (IVKB , ISKB ) IVKA IVKB ⾚字:脆弱性に関係
  8. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 ZoomにおけるE2EEセッション確⽴プロトコル 9 1. 参加者 i

    の⻑期署名鍵ペア (IVKi , ISKi ) の⽣成 2. 参加者 i のECDH⽤鍵ペア (ski , pki ) ,署名 Sigi の⽣成 u EdDSA over Ed25519による署名⽣成:Sigi ← Sign.Sign(ISKi , Context ∥ Bindingi ) l Bindingi ← (meetingID ∥ meetingUUID ∥ i ∥ deviceID ∥ IVKi ∥ pki ) 3. リーダーによる共有鍵 MK の⽣成 4. 参加者 i の署名 Sigi の検証 5. 共有鍵 MK の共有 6. AES-GCMによるミーティングコンテンツの暗号化 Zoomサーバ リーダーA 参加者B 掲⽰板* *掲⽰板:TLSセッションを確⽴して参加者間での各種情報共有(公開鍵,署名,など)を可能とするもの (skA , pkA ) BindingA (skB , pkB ) BindingB meetingID, meetingUUID meetingID, meetingUUID pkA , SigA pkB , SigB ⾚字:脆弱性に関係
  9. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 ZoomにおけるE2EEセッション確⽴プロトコル 10 1. 参加者 i

    の⻑期署名鍵ペア (IVKi , ISKi ) の⽣成 2. 参加者 i のECDH⽤鍵ペア (ski , pki ) ,署名 Sigi の⽣成 3. リーダーによる共有鍵 MK の⽣成 u 32バイト乱数 u AES-GCMの秘密鍵 4. 参加者 i の署名 Sigi の検証 5. 共有鍵 MK の共有 6. AES-GCMによるミーティングコンテンツの暗号化 Zoomサーバ リーダーA 参加者B 掲⽰板* *掲⽰板:TLSセッションを確⽴して参加者間での各種情報共有(公開鍵,署名,など)を可能とするもの MK ← rand() ⾚字:脆弱性に関係
  10. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 ZoomにおけるE2EEセッション確⽴プロトコル 11 1. 参加者 i

    の⻑期署名鍵ペア (IVKi , ISKi ) の⽣成 2. 参加者 i のECDH⽤鍵ペア (ski , pki ) ,署名 Sigi の⽣成 3. リーダーによる共有鍵 MK の⽣成 4. 参加者 i の署名 Sigi の検証 u 署名検証: True/False ← Sign.Verify(IVKi , Sigi , Context ∥ Bindingi ) l Bindingi ← (meetingID ∥ meetingUUID ∥ i ∥ deviceID ∥ IVKi ∥ pki ) 5. 共有鍵 MK の共有 6. AES-GCMによるミーティングコンテンツの暗号化 Zoomサーバ リーダーA 参加者B 掲⽰板* *掲⽰板:TLSセッションを確⽴して参加者間での各種情報共有(公開鍵,署名,など)を可能とするもの IVKB IVKA BindingB BindingA ⾚字:脆弱性に関係 pkB , SigB pkA , SigA
  11. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 ZoomにおけるE2EEセッション確⽴プロトコル 12 1. 参加者 i

    の⻑期署名鍵ペア (IVKi , ISKi ) の⽣成 2. 参加者 i のECDH⽤鍵ペア (ski , pki ) ,署名 Sigi の⽣成 3. リーダーによる共有鍵 MK の⽣成 4. 参加者 i の署名 Sigi の検証 5. 共有鍵 MK の共有 u ECDH鍵共有により共有鍵 MK を暗号化するための秘密鍵を共有 u XChaCha20/Poly-1305により共有鍵 MK を暗号化して共有 6. AES-GCMによるミーティングコンテンツの暗号化 Zoomサーバ リーダーA *掲⽰板:TLSセッションを確⽴して参加者間での各種情報共有(公開鍵,署名,など)を可能とするもの 掲⽰板* 参加者B pkB pkA , (B, CB ) (skA , pkA ) MK (skB , pkB ) (B, CB ) → MK (B, CB ) ⾚字:脆弱性に関係
  12. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 ZoomのE2EEに対する安全性評価 13 No. 攻撃⽅法 攻撃種別*

    攻撃者** 結託者** 被害者** 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種類の攻撃
  13. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃1:エンティティ認証⽋如に基づくなりすまし 14 概要:脆弱性1を悪⽤した(能動的)なりすまし n 攻撃者:リーダー⼜は参加者(結託者:なし)

    n 被害者:任意の参加者(リーダーも含む) n 攻撃⼿順: 1. 攻撃者がプロトコルに従って共有鍵 MK を⼊⼿ 2. コンテンツを暗号化し,被害者のメタ情報(送信者IDなど)を付加して送信 脆弱性1(エンティティ認証⽋如) ミーティングコンテンツに対するエンティティ認証の⽋如 Ø 共有鍵 MK によるAES-GCMでの暗号化:機密性,完全性はOK,真正性はNG 参加者 被害者 掲⽰板 MK MK リーダー MK ① ② ② ① ①
  14. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃1:エンティティ認証⽋如に基づくなりすまし 15 概要:脆弱性1を悪⽤した(能動的)なりすまし n 攻撃者:リーダー⼜は参加者(結託者:なし)

    n 被害者:任意の参加者(リーダーも含む) n 攻撃⼿順: 1. 攻撃者がプロトコルに従って共有鍵 MK を⼊⼿ 2. コンテンツを暗号化し,被害者のメタ情報(送信者IDなど)を付加して送信 脆弱性1(エンティティ認証⽋如) ミーティングコンテンツに対するエンティティ認証の⽋如 Ø 共有鍵 MK によるAES-GCMでの暗号化:機密性,完全性はOK,真正性はNG 考察 n 実現可能性:なりすまし⽤コンテンツの事前準備により実現可能性は⾼い u 被害者の信頼失墜,被害者への通信妨害 n 対策:署名添付※パフォーマンスと否認防⽌の観点から今後の課題(ホワイトペーパー記載)
  15. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃2−4:任意のZoomユーザへのなりすまし 16 脆弱性2(掲⽰板への⾃由なアクセス) インサイダー,リーダー,参加者が掲⽰板へ⾃由にアクセス可能 Ø

    インサイダー:参加者の署名や公開鍵を⾃由に収集,改ざん可能※ホワイトペーパー記載 脆弱性3(Bindingの再利⽤) Bindingi は参加者 i の⻑期署名鍵 ISKi で署名 Ø Bindingi ← (meetingID ∥ meetingUUID ∥ i ∥ deviceID ∥ IVKi ∥ pki ) • meetingID ∥ meetingUUID:インサイダーが⽣成(意図的に再利⽤可能) • 参加者の公開鍵 pki :過去の掲⽰板から⼊⼿可能(脆弱性2を悪⽤) Ø 過去と同じ Bindingi を⽣成可能 → 過去と同じ Sigi を⽣成可能 脆弱性4(リーダーによる共有鍵の⽣成) 共有鍵の⽣成に関与しているのはリーダーのみ(意図的に再利用可能) Ø MK ← rand() ※32バイト乱数, AES-GCMの秘密鍵
  16. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃2:任意のZoomユーザへのなりすまし 17 概要:脆弱性2,3を悪⽤した(受動的)なりすまし n 攻撃者:インサイダー(結託者:なし)

    n 被害者:任意のZoomユーザA(ミーティングに招待されていないユーザも含む) n 攻撃⼿順: 1. 攻撃者が過去の掲⽰板に投稿された SigA と pkA を収集 2. 攻撃者が過去の meetingID と meetingUUID を再利⽤ 3. 攻撃者が新しい掲⽰板に収集した SigA と pkA を投稿 → 署名を正常に検証可能 新しいミーティング 過去のミーティング インサイダー 掲⽰板 被害者A 掲⽰板 参加者 リーダー ① pkA , SigA ③ ユーザAとしてミーティングへの参加のみ可能 ③ pkA , SigA ② BindingA BindingA
  17. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 新しいミーティング 過去のミーティング 攻撃3:任意のZoomユーザへのなりすまし 18 概要:脆弱性1−3を悪⽤した(能動的)なりすまし

    n 攻撃者:インサイダー(結託者:リーダー⼜は参加者) n 被害者:任意のZoomユーザA(ミーティングに招待されていないユーザも含む) n 攻撃⼿順: 1. 攻撃者が過去の掲⽰板に投稿された SigA と pkA を収集 2. 攻撃者が過去の meetingID と meetingUUID を再利⽤ 3. 攻撃者が新しい掲⽰板に収集した SigA と pkA を投稿 → 署名を正常に検証可能 4. 結託者から共有鍵 MK を⼊⼿,被害者Aのメタ情報を付加してコンテンツ送信 → データの正常な送受信も可能 インサイダー 掲⽰板 被害者A 掲⽰板 参加者 リーダー ① ③ pkA , SigA ③ ④ ④ pkA , SigA ② BindingA BindingA MK
  18. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃3:任意のZoomユーザへのなりすまし 19 概要:脆弱性1−3を悪⽤した(能動的)なりすまし n 攻撃者:インサイダー(結託者:リーダー⼜は参加者)

    n 被害者:任意のZoomユーザA(ミーティングに招待されていないユーザも含む) n 攻撃⼿順: 1. 攻撃者が過去の掲⽰板に投稿された SigA と pkA を収集 2. 攻撃者が過去の meetingID と meetingUUID を再利⽤ 3. 攻撃者が新しい掲⽰板に収集した SigA と pkA を投稿 → 署名を正常に検証可能 4. 結託者から共有鍵 MK を⼊⼿,被害者Aのメタ情報を付加してコンテンツ送信 → データの正常な送受信も可能 設計者らの想定:避けられない攻撃 n 共有鍵 MK を⼊⼿した攻撃者は容易にコンテンツの盗聴が可能 設計者らの想定よりも強⼒な攻撃(攻撃3)が可能 n インサイダーが共有鍵 MK を⼊⼿して任意のユーザへなりすまし可能
  19. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃4:任意のZoomユーザへのなりすまし 20 概要:脆弱性1−4を悪⽤した(能動的)なりすまし n 攻撃者:アウトサイダー(結託者:インサイダー,リーダー)

    n 被害者:任意のZoomユーザB(ミーティングに招待されていないユーザも含む) n 攻撃⼿順: 1. リーダーが過去の掲⽰板に投稿された SigB と pkB を収集,攻撃者と共有 2. インサイダーが過去の meetingID と meetingUUID を再利⽤ 3. リーダーが過去の共有鍵 MK を再利⽤(攻撃者と共有) 4. 攻撃者が新しい掲⽰板に収集した SigB と pkB を投稿 → 署名を正常に検証可能 新しいミーティング 過去のミーティング インサイダー 掲⽰板 掲⽰板 参加者 ① pkB , SigB 被害者B アウトサイダー リーダー ①③ ② ④ ④ pkB , SigB BindingB BindingB MK
  20. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃2−4:任意のZoomユーザへのなりすまし 21 実現可能性 n シナリオ(案):重要な交渉を有利に進めたい場合

    1. ユーザAがリーダーとなってZoomミーティングを主催 2. 攻撃⼿順に従い,Aがインサイダー⼜はアウトサイダーに対し,相⼿⽅のユー ザBにとって影響⼒のある⼈物Cになりすますよう指⽰ 3. Cがコンテンツを何も発信しなければ,BはCから無⾔の圧⼒をかけられている と感じ,Bにとって交渉が思い通りに進まない可能性が⼤ インサイダー リーダーA 参加者B ② ① ③
  21. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃2−4:任意のZoomユーザへのなりすまし 22 対策:脆弱性3を回避 n Bindingに時間情報timeを付加(例:ミーティング開始⽇時など)

    u Bindingi ← (meetingID ∥ meetingUUID ∥ i ∥ deviceID ∥ IVKi ∥ pki ∥ time) n 署名検証時に時間情報を検証するフローを追加 脆弱性3(Bindingの再利⽤) Bindingi は参加者 i の⻑期署名鍵 ISKi で署名 Ø Bindingi ← (meetingID ∥ meetingUUID ∥ i ∥ deviceID ∥ IVKi ∥ pki ) • meetingID ∥ meetingUUID:インサイダーが⽣成(意図的に再利⽤可能) • 参加者の公開鍵 pki :過去の掲⽰板から⼊⼿可能(脆弱性2を悪⽤) Ø 過去と同じ Bindingi を⽣成可能 → 過去と同じ Sigi を⽣成可能 効果 n 過去と同じBindingを⽣成するために時間情報timeも再利⽤する必要有り n 署名検証時に時間情報timeの不正検出可能 → 攻撃2−4を全て防ぐことが可能
  22. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 まとめ 23 No. 攻撃⽅法 攻撃種別*

    攻撃者** 結託者** 被害者** 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種類の攻撃
  23. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 Local Key Securityメカニズム 25 共有デバイス上で複数ユーザの⻑期署名鍵を管理するメカニズム

    n 参加者 i の⻑期署名鍵ペア (IVKi , ISKi ) u IVKi はZoomサーバに, ISKi はデバイス上に保存 1. キーラッピング鍵 KWKi を⽣成,ユーザと紐付けてサーバに保存 2. Context ← “Zoombase-1-ClientOnly-KDF-SecretStore” 3. Ci ← CtE1-Enc(K=KWKi , H=Context, M=ISKi ) u CtE1: コミットメント認証暗号⽅式,H: 関連データ Zoomサーバ リーダーA 参加者B (IVKA , ISKA ) (IVKB , ISKB ) KWKA KWKB 共有デバイス CA CB
  24. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃5:任意のZoomユーザへのなりすまし 27 概要:脆弱性1−4を悪⽤した(能動的)なりすまし n 攻撃者:アウトサイダー(結託者:インサイダー,リーダー)

    n 被害者:任意のZoomユーザB(ミーティングに招待されていないユーザも含む) n 攻撃⼿順: 1. リーダーが過去の掲⽰板に投稿された SigB と pkB を収集,攻撃者と共有 2. meetingID をリーダーが⽣成(固定ID),meetingUUID を261回の試⾏で衝突 3. リーダーが過去の共有鍵 MK を再利⽤(攻撃者と共有) 4. 攻撃者が新しい掲⽰板に収集した SigB と pkB を投稿 → 署名を正常に検証可能 新しいミーティング 過去のミーティング インサイダー 掲⽰板 掲⽰板 参加者 ① pkB , SigB 被害者B アウトサイダー リーダー ①③ ② ④ ④ pkB , SigB BindingB BindingB MK
  25. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃2−5:任意のZoomユーザへのなりすまし 28 実現可能性 n シナリオ(案):重要な交渉を有利に進めたい場合

    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 ② ① ③
  26. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃6:共有デバイス上の別ユーザへのなりすまし 29 Local Key Securityメカニズム

    1. キーラッピング鍵 KWKi を⽣成,ユーザと紐付けてサーバに保存 2. Context ← “Zoombase-1-ClientOnly-KDF-SecretStore” 3. Ci ← CtE1-Enc(K=KWKi , H=Context, M=ISKi ) Zoomサーバ リーダーA 参加者B (IVKA , ISKA ) (IVKB , ISKB ) KWKA KWKB 共有デバイス CA CB 脆弱性5(⻑期署名鍵の保存) 参加者の⻑期署名鍵ISKi はインサイダーが⽣成するKWKで暗号化 Ø 暗号⽂は参加者のデバイス上,KWKはZoomサーバ上に保存
  27. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃6:共有デバイス上の別ユーザへのなりすまし 30 攻撃6:脆弱性1,5を悪⽤した(能動的)なりすまし n 攻撃者・結託者:インサイダー/アウトサイダー

    n 被害者:アウトサイダーとデバイスを共有するZoomユーザC n 攻撃⼿順: 1. アウトサイダーが ISKC の暗号⽂を⼊⼿ 2. アウトサイダーが ISKC の暗号⽂をインサイダーと共有,⼜はインサイダーから Cと紐付けられた KWK を⼊⼿ 3. 攻撃者がKWKでISKC の暗号⽂を復号 → Cとしてミーティングに参加可能 対策 n KWKの保存を信頼できる第三者機関に委託,⼜は秘密分散法を活⽤ インサイダー (IVKC , ISKC ) KWKC CC 参加者 犠牲者C アウトサイダー ① ② ③ ③
  28. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃7:コンテンツの改ざんに対する安全性 31 脆弱性6(Nonceの誤⽤) ミーティングコンテンツは参加者共通の共有鍵 MK

    を⽤いてAES-GCMで暗号化 Ø Nonceの誤⽤によりAES-GCMにおける既知の攻撃が成⽴ 攻撃7:脆弱性6を悪⽤した(受動的)改ざん n 攻撃者:インサイダー n 結託者:なし n 被害者:リーダー⼜は参加者 n 攻撃⼿順: 1. 攻撃者は被害者が同じNonceを再利⽤するような脆弱性を埋め込む. 2. 被害者がNonceを再利⽤して暗号化したコンテンツを送信 3. 攻撃者がコンテンツを傍受 4. 攻撃者がAES-GCMに対する既知の攻撃を適⽤ → 認証鍵を⼊⼿ 対策 n misuse-resistance authenticated encryption (MRAE) の採⽤
  29. 五⼗部孝典,伊藤⻯⾺ 2021年1⽉21⽇ @ オンライン Zoomのエンドツーエンド暗号化に対する安全性評価 攻撃8:サービス拒否に対する安全性 32 脆弱性2(掲⽰板への⾃由なアクセス) インサイダー,参加者が掲⽰板へ⾃由にアクセス可能 Ø

    インサイダー:参加者の署名や公開鍵を⾃由に収集,改ざん可能 攻撃8:脆弱性2を悪⽤した(受動的)サービス拒否 n 攻撃者:インサイダー n 結託者:なし n 被害者:参加者D n 攻撃⼿順: 1. 被害者Dが SigD と pkD を掲⽰板に投稿 2. インサイダーが pkD を差し替える. 3. リーダーによる署名の検証 → 検証に失敗 考察 n 実現可能性:参加者から依頼を受けてインサイダーが容易に実⾏可能 n 対策:掲⽰板の管理を第三者機関に委託,⼜は掲⽰板の内容を暗号化 インサイダー 掲⽰板 被害者D リーダー ① ② ③