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

WebRTC セキュリティ概説 / WebRTC is secure, or not sec...

iwashi
November 27, 2022

WebRTC セキュリティ概説 / WebRTC is secure, or not secure?

WebRTC Meetup Tokyo #6にて発表したスライドで、
WebRTCのセキュリティについて、
実際のコールフローに沿っての概説。

iwashi

November 27, 2022
Tweet

More Decks by iwashi

Other Decks in Technology

Transcript

  1. •Attribute
  ・Name -> Yoshimasa IWASE 
  ・Twitter -> @iwashi86
  ・Web

    -> iwashi.co
 
 •Work @ NTT Communications
  ・SkyWay(WebRTC)の裏側の開発
  ・HTML5 Experts.jpというWebメディアの編集
 
 •Recently
  ・SkyWayでTURNトライアルを開始しました!
 2
  2. DTL Securi ty IP UDP DTL Security Secure RTP SCTP

    Audio/Video Data Meetup #3 でお話したこと
 6
  3. DTL Securi ty IP UDP DTL Security Secure RTP SCTP

    Audio/Video Data Meetup #3 でお話したこと
 7 Secureって書いてある Secureって書いてある
  4. DTL Securi ty IP UDP DTL Security Secure RTP SCTP

    Audio/Video Data Meetup #3 でお話したこと
 8 Secureって書いてある Secureって書いてある どこ暗号化?
  5. DTL Securi ty IP UDP DTL Security Secure RTP SCTP

    Audio/Video Data SRTP × DTLS は どこを暗号化?
 16
  6. ※ http://www.ipa.go.jp/files/000015290.pdf P.4 IPAの資料※を抜粋すると
 22 その他、以下も定義されることも ◆真正性 ◆責任追跡性 ◆否認防止性 要は・・・

    ・中身をばれずに ・かつ改ざんされずに ・許可された人が使いたくなったら使える 要は・・・ ・本人確認できて ・やらかした人を特定できて ・言い逃れさせないこと
  7. ※ http://www.ipa.go.jp/files/000015290.pdf P.4 IPAの資料※を抜粋すると
 23 その他、以下も定義されることも ◆真正性 ◆責任追跡性 ◆否認防止性 要は・・・

    ・中身をばれずに ・かつ改ざんされずに ・許可された人が使いたくなったら使える 要は・・・ ・本人確認できて ・やらかした人を特定できて ・言い逃れさせないこと 安全にサービス提供するには 色々考えないとイカン!
  8. SSL/TLSとは
 26 TCPレイヤの上で動作し、以下の機能を提供する: • 認証 • 相手が本物か確かめられる • 暗号化 •

    盗聴しても分からなくなる • 改ざん検出 • 経路途中で書き換えられていないか検出できる
  9. Webサーバ STUNサーバ TURNサーバ セキュアさは比較的重要視されないのでスルー (単にグローバルIP/Portを調べる動作なので) ただし、STUNのRFC5389で規定される以下 の技術要素は知っておくべき: ・long term credential

    ・short term credential (こっちはほぼ不要) Signalingサーバ 注:厳密にはCallee(受信側)は、相手の発信を受けてから STUNに問合せ。STUNとTURNは同じサーバでもOK。 お次はSTUN
 34
  10. Webサーバ TURNサーバ ざっくり言うと、Shared Secretを共有して
 HMAC※で共有値を作る仕組み
 49 GET /?service=turn password: <HMAC("1375043487:abcd1234",

    SharedSecret)> TURNリクエストにて credential: <HMAC("1375043487:abcd1234", SharedSecret)> OkだったらリソースをAllocateして返す ※ Hashed Message Authentication Code。秘密鍵(SS)をつけてハッシュを計算したもの。
  11. Webサーバ STUNサーバ TURNサーバ Signalingサーバ XX(任意のシグナリング) over WSS で対応
 55 平文?

    本物? Signalingは未規定なので 一例だが、 XX over WSS Signalingは未規定なので 一例だが、 XX over WSS Signalingは未規定なので 一例だが、 XX over WSS
  12. Signalingサーバ Man In The Middle してみる
 途中で暗号を解かない場合
 76 悪いサーバ 暗号化

    1. 発信する(情報は暗号化) 2. 暗号化された情報をそのまま送る(Replay) 何が起きるかはSignaling Protocol依存 (対策としてはシーケンス番号を付与、等)
  13. Signalingサーバ 78 悪いサーバ 暗号 化 暗号化 なりすまして 盗聴する or 改ざんする

    WebRTCデフォルトのDTLSオレオレ証明書を使っていると、 MITMには無防備なことに注意 (前述したよう通信相手が本物だと確かめる必要有り) Man In The Middle してみる
 途中で暗号を解いてみる場合

  14. 82 ◆責任追跡性 ◆否認防止性 ・やらかした人を特定できて ・言い逃れさせないこと セキュリティの要素にはこんなのもありました
 Signaling サーバ 電話網とか Gateway

    <WebRTCから電話できる有償サービスの場合> 長時間通信しても、「そんなに使ってないよ」 とお客様が言い出したら、正しい料金を請求できない ⇒ 通信の開始・終了を記録しておけばOK 特にオレオレSignalingプロトコルのときは要注意 お客様
  15. 95 • WebRTCはセキュリティ機能を提供している
 – ただし、メディアの通信経路のみ
 – しかも、オレオレ証明で対応
 • メディア以外のセキュリティ機能については、各自で 対応する


    – WebRTC(/VoIP)系の攻撃
 • Signaling
 • STUN/TURN
 • 本人確認
 – それ以外の攻撃
 • Syn/UDP/ICMP Flood
 
 WebRTCのセキュリティまとめ

  16. 96 • WebRTCはセキュリティ機能を提供している
 – ただし、メディアの通信経路のみ
 – しかも、オレオレ証明で対応
 • メディア以外のセキュリティ機能については、各自で 対応する


    – WebRTC(/VoIP)系の攻撃
 • Signaling
 • STUN/TURN
 • 本人確認
 – それ以外の攻撃
 • Syn/UDP/ICMP Flood
 
 WebRTCのセキュリティまとめ
 おしまい! 
 Any questions?