96
WebRTC is secure, or not secure? -WebRTC セキュリティ概説- WebRTC Meetup Tokyo #6 @iwashi86 1

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

Embed Size (px)

Citation preview

Page 1: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

WebRTC is secure,or not secure?

-WebRTC セキュリティ概説-

WebRTC Meetup Tokyo #6@iwashi86

1

Page 2: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

●Attribute

・Name -> Yoshimasa IWASE

・Twitter -> @iwashi86

・Web -> iwashi.co

●Work @ NTT Communications

・SkyWay(WebRTC)の裏側の開発

・HTML5 Experts.jpというWebメディアの編集

●Recently

・SkyWayでTURNトライアルを開始しました!

2

Page 3: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

今日のお話WebRTCのセキュリティ

3

Page 4: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

WebRTCって安全!

4

Page 5: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

WebRTCって安全!

ホント?考えたことありますか?

5

Page 6: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

DTL Securi

ty

IP

UDP

DTL Security

Secure RTP SCTP

Audio/Video Data

Meetup #3 でお話したこと

6

Page 7: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

DTL Securi

ty

IP

UDP

DTL Security

Secure RTP SCTP

Audio/Video Data

Meetup #3 でお話したこと

7

Secureって書いてあるSecureって書いてある

Page 8: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

DTL Securi

ty

IP

UDP

DTL Security

Secure RTP SCTP

Audio/Video Data

Meetup #3 でお話したこと

8

Secureって書いてあるSecureって書いてある

どこ暗号化?

Page 9: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

ざっくり通信フローでちょっと考えてみよう

9

Page 10: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバ

HTML/JS/CSSをDL

Signalingサーバ

WebRTCアプリをWebサーバから落とす

10

Page 11: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバ

己のグローバルIP/Portを知る

Signalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからSTUNに問合せ。STUNとTURNは同じサーバでもOK。

発信前にSTUNへ問合せ

11

Page 12: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバ

直接接続できない場合に使うTURNサーバのアドレスを取得

Signalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからTURNに問合せ

発信前にTURNにも問合せ

12

Page 13: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバ

互いのIP等を交換

Signalingサーバ

シグナリングで必要な情報交換

13

Page 14: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

音声・映像を接続開始

注:接続開始前にはICEで頑張ってホールパンチングする

P2Pでメディア(音声・映像)接続する

14

Page 15: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

注:接続開始前にはICEで頑張ってホールパンチングする

またはTURN経由でメディア接続する

15

Page 16: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

DTL Securi

ty

IP

UDP

DTL Security

Secure RTP SCTP

Audio/Video Data

SRTP × DTLS は どこを暗号化?

16

Page 17: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

暗号化対象

暗号化されるのはメディアのみ

17

Page 18: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

暗号化対象

Webサーバ STUNサーバ TURNサーバSignalingサーバ

その他の経路はWebRTCアプリ側で面倒をみる(∵WebRTCにおいて、シグナリングは未規定なので当たり前?)

18補足:STUNは、用途によってはセキュリティをあまり考慮しないこともある

Page 19: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

暗号化対象

Webサーバ STUNサーバ TURNサーバSignalingサーバ

その他の経路はWebRTCアプリ側で面倒をみる(∵WebRTCにおいて、シグナリングは未規定なので当たり前?)

19補足:STUNは、用途によってはセキュリティをあまり考慮しないこともある

しかもセキュリティって色々な要素がありますよね?

Page 20: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

※ http://www.ipa.go.jp/files/000015290.pdf P.4

IPAの資料※を抜粋すると

20

その他、以下も定義されることも◆真正性◆責任追跡性◆否認防止性

Page 21: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

※ http://www.ipa.go.jp/files/000015290.pdf P.4

IPAの資料※を抜粋すると

21

その他、以下も定義されることも◆真正性◆責任追跡性◆否認防止性

要は・・・・中身をばれずに・かつ改ざんされずに・許可された人が使いたくなったら使える

Page 22: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

※ http://www.ipa.go.jp/files/000015290.pdf P.4

IPAの資料※を抜粋すると

22

その他、以下も定義されることも◆真正性◆責任追跡性◆否認防止性

要は・・・・中身をばれずに・かつ改ざんされずに・許可された人が使いたくなったら使える

要は・・・・本人確認できて・やらかした人を特定できて・言い逃れさせないこと

Page 23: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

※ http://www.ipa.go.jp/files/000015290.pdf P.4

IPAの資料※を抜粋すると

23

その他、以下も定義されることも◆真正性◆責任追跡性◆否認防止性

要は・・・・中身をばれずに・かつ改ざんされずに・許可された人が使いたくなったら使える

要は・・・・本人確認できて・やらかした人を特定できて・言い逃れさせないこと

安全にサービス提供するには色々考えないとイカン!

Page 24: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

そこで、本セッションでは、WebRTCアプリに対する

攻撃とその対策について紹介

(特にWebRTCアプリの開発者向けに)

24

Page 25: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

25

本題の前に基礎知識SSL/TLS について

(今日よく出てくるので)

Page 26: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

SSL/TLSとは

26

TCPレイヤの上で動作し、以下の機能を提供する:

• 認証• 相手が本物か確かめられる

• 暗号化• 盗聴しても分からなくなる

• 改ざん検出• 経路途中で書き換えられていないか検出できる

Page 27: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

27http://upload.wikimedia.org/wikipedia/ja/6/64/SSL%E3%81%AB%E3%82%88%E3%82%8B%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%81%AA%E9%80%9A%E4%BF%A1.jpg

SSL/TLSのフロー

Page 28: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

28

では本題

Page 29: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

今日のスコープ ⇒ 主に音声/映像

29

DTL Securi

ty

IP

UDP

DTLS

Secure RTP SCTP

Audio/Video Data

Page 30: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

お話の流れシンプルな通信フローにツッコミを入れていこう

30

Page 31: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

まず最初のダウンロード

31

Page 32: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

まず最初のダウンロード

32

本当に信じていいWebサーバ?

Page 33: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

まず最初のダウンロード

33

本当に信じていいWebサーバ?

SSL/TLSで証明しよう!

Page 34: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバ

セキュアさは比較的重要視されないのでスルー(単にグローバルIP/Portを調べる動作なので)

ただし、STUNのRFC5389で規定される以下の技術要素は知っておくべき:

・long term credential・short term credential (こっちはほぼ不要)

Signalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからSTUNに問合せ。STUNとTURNは同じサーバでもOK。

お次はSTUN

34

Page 35: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

RFC5389より

35

Page 36: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

RFC5389より

36

同じCredentialを「長期間」使う仕組み

Page 37: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

RFC5389より

同じCredentialを「長期間」使う仕組み

「一時的」なCredentialを使う仕組み

37

Page 38: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

RFC5389より

同じCredentialを「長期間」使う仕組み(WebRTCは、こっち)

「一時的」なCredentialを使う仕組み

38

Page 39: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからTURNに問合せ

発信前にTURNにも問合せ

39

Page 40: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからTURNに問合せ

そのTURN、本物?

40

例:TURN over TLSでチェック

Page 41: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからTURNに問合せ

それよりも重要なこと

41

その仕組み上CPU等のリソース、NWリソースを大量消費する

Page 42: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

注:厳密にはCallee(受信側)は、相手の発信を受けてからTURNに問合せ

発信前にTURNにも問合せ

42

その仕組み上CPU等のリソース、NWリソースを大量消費する

⇒ 勝手に利用されると超マズイしかもTURNのデフォルトの認証は

WebRTC的にはイケてない・・・

Page 43: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/

デフォルトでのTURNの使うサンプルコード

43

Page 44: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/

何故イケてないかというと・・・

44

Turnを利用する際にUsername と Credential(≒パスワード)をWebRTCアプリ側で設定する

Page 45: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ 45

Turnを利用する際にUsername と Credential(≒パスワード)をWebRTCアプリ側で設定する

普通にJSに書いておくと、秘匿すべき情報を誰でも知ること出来てしまう。(⇒タダ乗り)

何故イケてないかというと・・・

Page 46: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf

対策は色々考えられますが、その1つ

46

Page 47: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

問題をもうちょっとkwskhttp://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf

47

Page 48: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ

※ Hashed Message Authentication Code。秘密鍵(SS)をつけてハッシュを計算したもの。

ざっくり言うと、Shared Secretを共有してHMAC※で共有値を作る仕組み

48

GET /?service=turn

password: <HMAC("1375043487:abcd1234", SharedSecret)>

TURNサーバ

Page 49: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

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)をつけてハッシュを計算したもの。

Page 50: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

ちなみにRFCはExpire..

50

Page 51: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

が・・・実装されてる!

ただし、TURNだけ。対となるHTTPサーバ側は自分で実装してね

51

Page 52: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

元に戻って、次はSignaling

52

Page 53: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバ

互いのIP等を交換

(その通信のセッションを特定できる情報等、超重要な情報を含む)

Signalingサーバ

シグナリングで必要な情報交換

53

Page 54: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

Signalingサーバは本物?通信経路はダダ漏れ?

54

本物?

平文?

Page 55: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

XX(任意のシグナリング) over WSS で対応

55

平文?

本物?

Signalingは未規定なので一例だが、

XX over WSS

Signalingは未規定なので一例だが、

XX over WSS

Signalingは未規定なので一例だが、

XX over WSS

Page 56: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingは まだ続く

56

Page 57: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

通信するPeerは本物? きみ誰?

57

Bobに発信しているつもり

AliceBob Carol

実は違う人(Carol)だった

Page 58: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

WebRTCではDTLSがあるじゃない?

58http://chimera.labs.oreilly.com/books/1230000000545/ch18.html

<DTLS HandShake>

Page 59: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

WebRTCではDTLSがあるじゃない?

59http://chimera.labs.oreilly.com/books/1230000000545/ch18.html

これを作るのは自分(=オレオレ証明書)

<DTLS HandShake>

Page 60: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

WebRTCではDTLSがあるじゃない?

60http://chimera.labs.oreilly.com/books/1230000000545/ch18.html

これを作るのは自分(=オレオレ証明書)

しかもOriginベースで使い回し

(=通信相手ごとに作るようなコントロールをJSで出来ない)

<DTLS HandShake>

Page 61: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

先に証明書生成の話

61http://chimera.labs.oreilly.com/books/1230000000545/ch18.html

これを作るのは自分(=オレオレ証明書)

しかもOriginベースで使い回し

(=通信相手ごとに作るようなコントロールをJSで出来ない)

<DTLS HandShake>

Page 62: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://www.slideshare.net/yusukenaka52/webrtcortc より引用 62

Page 63: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://www.w3.org/2012/webcrypto/wiki/images/b/bc/Webrtc.pdf

サンプルコードのイメージはこんな感じ

63

注:ブラウザに実装されてない。あくまでサンプルです。

Page 64: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

もう1つ

64

Page 65: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://chimera.labs.oreilly.com/books/1230000000545/ch18.html

これを作るのは自分(=オレオレ証明書)

しかもOriginベースで使い回し

(=通信相手ごとに作るようなコントロールをJSで出来ない)

ユーザの真正性の話

<DTLS HandShake>

65

Page 66: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

http://chimera.labs.oreilly.com/books/1230000000545/ch18.html

これを作るのは自分(=オレオレ証明書)

しかもOriginベースで使い回し

(=通信相手ごとに作るようなコントロールをJSで出来ない)

ユーザの真正性の話

<DTLS HandShake>

どうやって証明書を証明する?

66

Page 67: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

よくあるWebの仕組み

この証明書はVerisign社によって証明されている

67

Page 68: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

よくあるWebの仕組み

この証明書はVerisign社によって証明されている

WebRTCだとちょっとヘビー?

68

Page 69: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

69

かなり前から議論が進んでいるhttp://www.ietf.org/proceedings/82/slides/rtcweb-13.pdf

Page 70: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

70

提案されているTopologyの全体像

http://www.ietf.org/proceedings/82/slides/rtcweb-13.pdf

Page 71: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

71

提案されているTopologyの全体像

http://www.ietf.org/proceedings/82/slides/rtcweb-13.pdf

・IdP (Identity Provider)が本人であること証明してくれる。・IdPは信頼できるところならなんでもいい。例えば、GoogleやFacebookとか。

Page 72: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

72

Call Flow

http://www.ietf.org/proceedings/82/slides/rtcweb-13.pdf

◆ポイント・AliceはBobに発信するときに、IdPに問合せて証明してもらう・その証明情報をつけて、SDPのOfferをBobに送る・Bobはそれを受け取ったら、AliceのIdPに本物か確認する

Page 73: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

73

続 Call Flow

http://www.ietf.org/proceedings/82/slides/rtcweb-13.pdf

◆ポイント・Bobが応答するときは、BobもIdPに問合わせて証明してもらう・Bobは証明情報をつけて、Aliceへ応答する・Aliceはそれを受け取ったら、BobのIdPに確認する

Page 74: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingは まだまだ続く

74

Page 75: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingサーバ

Man In The Middle してみる途中で暗号を解かない場合

75

悪いサーバ

暗号化

1. 発信する(情報は暗号化)

Page 76: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingサーバ

Man In The Middle してみる途中で暗号を解かない場合

76

悪いサーバ

暗号化

1. 発信する(情報は暗号化)

2. 暗号化された情報をそのまま送る(Replay)

何が起きるかはSignaling Protocol依存(対策としてはシーケンス番号を付与、等)

Page 77: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingサーバ

Man In The Middle してみる途中で暗号を解いてみる場合

77

悪いサーバ

暗号化 暗号化

なりすまして盗聴する or 改ざんする

Page 78: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingサーバ

78

悪いサーバ

暗号化 暗号化

なりすまして盗聴する or 改ざんする

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

Man In The Middle してみる途中で暗号を解いてみる場合

Page 79: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signaling 最後

79

Page 80: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

80

◆責任追跡性◆否認防止性

・やらかした人を特定できて・言い逃れさせないこと

セキュリティの要素にはこんなのもありました

Page 81: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

81

◆責任追跡性◆否認防止性

・やらかした人を特定できて・言い逃れさせないこと

セキュリティの要素にはこんなのもありました

Signalingサーバ

電話網とかGateway

<WebRTCから電話できる有償サービスの場合>

お客様

Page 82: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

82

◆責任追跡性◆否認防止性

・やらかした人を特定できて・言い逃れさせないこと

セキュリティの要素にはこんなのもありました

Signalingサーバ

電話網とかGateway

<WebRTCから電話できる有償サービスの場合>

長時間通信しても、「そんなに使ってないよ」とお客様が言い出したら、正しい料金を請求できない

⇒ 通信の開始・終了を記録しておけばOK特にオレオレSignalingプロトコルのときは要注意

お客様

Page 83: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Signalingが終わったら次はメディア確立

83

Page 84: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

ICE Negotiation

メディア確立時には裏でICEが動いてる

84

ICEを三行で:• 相手と使えそうなIPアドレス/Port候補を集める• ひたすら通信確立にトライ(ホールパンチング含む)• 定期的に空けた穴が閉じないようにキープアライブ

Page 85: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

ICE Negotiation

メディア確立時にはICEが動く

85

さっきSignalingでIPアドレスとか交換したけど、本物?

Signaling時のSDP抜粋

Page 86: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

ICE Negotiation

ICE自体にも認証の仕組みがついている

86

Signaling時のSDP抜粋

さっきSignalingでIPアドレスとか交換したけど、そのICEの情報は本物?

セッション単位で変わるufrag(username)とpwd(password)

でICEが正しいと証明

Page 87: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

ここまでで簡単な通信フローは

おしまい

87

Page 88: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

その他WebRTC特有の課題

88

Page 89: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

89

Privacy

・音声/映像を取得していることを示すことが大事ブラウザはデフォルトで対応するが、ネイティブアプリを作るときは要注意

・スクリーンシェアする場合は、している旨を通知すること

http://www.slideshare.net/Quobis/webinar-webrtc-security-concerns-a-real-problem

Page 90: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

その他 一般的なこと

90

Page 91: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

Internetで公開するWebRTCアプリの場合以下のサーバ群は全て公開サーバとなる

91

Page 92: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

92

昨日の出来事(Facebook is down)

Page 93: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

Webサーバ STUNサーバ TURNサーバSignalingサーバ

Internetで公開するWebRTCアプリの場合以下のサーバ群は全て公開サーバとなる

93

そのため、通信確立時のフローだけではなく、その他セキュリティ対策も必要(特に可用性対策)

例:• DDoS攻撃• SynFlood攻撃• ICMP/UDP Flood攻撃 などなど

Page 94: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

まとめ

94

Page 95: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

95

• WebRTCはセキュリティ機能を提供している– ただし、メディアの通信経路のみ

– しかも、オレオレ証明で対応

• メディア以外のセキュリティ機能については、各自で対応する– WebRTC(/VoIP)系の攻撃

• Signaling

• STUN/TURN

• 本人確認

– それ以外の攻撃• Syn/UDP/ICMP Flood

WebRTCのセキュリティまとめ

Page 96: WebRTC is secure, or not secure? - WebRTC セキュリティ概説 -

96

• WebRTCはセキュリティ機能を提供している– ただし、メディアの通信経路のみ

– しかも、オレオレ証明で対応

• メディア以外のセキュリティ機能については、各自で対応する– WebRTC(/VoIP)系の攻撃

• Signaling

• STUN/TURN

• 本人確認

– それ以外の攻撃• Syn/UDP/ICMP Flood

WebRTCのセキュリティまとめ

おしまい!Any questions?