Proposed WebRTC Security Architecture
IETF 82 Eric Rescorla ekr@rtfm.com
IETF 82 WebRTC Security Architecture 1
Proposed WebRTC Security Architecture IETF 82 Eric Rescorla - - PowerPoint PPT Presentation
Proposed WebRTC Security Architecture IETF 82 Eric Rescorla ekr@rtfm.com IETF 82 WebRTC Security Architecture 1 Trust Model Browser acts as the Trusted Computing Base (TCB) Only piece of the system user can really trust Job is to
IETF 82 WebRTC Security Architecture 1
IETF 82 WebRTC Security Architecture 2
IETF 82 WebRTC Security Architecture 3
IETF 82 WebRTC Security Architecture 4
IETF 82 WebRTC Security Architecture 5
Signaling Server Alice’s Browser Bob’s Browser H T T P S ( R O A P ? ) H T T P S ( R O A P ? ) JS API JS API Media (DTLS-SRTP) Identity Provider Identity Provider Get Assertion Get Assertion Verify Assertion Verify Assertion
IETF 82 WebRTC Security Architecture 6
Alice’s IdP Alice Signaling Server Bob Calling App
Offer + Assertion
IETF 82 WebRTC Security Architecture 7
Alice Signaling Server Bob Bob’s IdP [Bob Answers]
(DTLS-SRTP)
IETF 82 WebRTC Security Architecture 8
IETF 82 WebRTC Security Architecture 9
IETF 82 WebRTC Security Architecture 10
IETF 82 WebRTC Security Architecture 11
IETF 82 WebRTC Security Architecture 12
www.slashdot.org pokerweb.example.org new PeerConnection() { ... });
IETF 82 WebRTC Security Architecture 13
IETF 82 WebRTC Security Architecture 14
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js">
IETF 82 WebRTC Security Architecture 15
IETF 82 WebRTC Security Architecture 16
IETF 82 WebRTC Security Architecture 17
∗Somewhat harder with a low-level API, but still possible with the right design.
IETF 82 WebRTC Security Architecture 18
IETF 82 WebRTC Security Architecture 19
IETF 82 WebRTC Security Architecture 20
Alice’s Brower WebRTC JS Code Peer Connection BrowserID Signer Fingerprint Signed Fingerprint Identity Provider Get Certificate Bob’s Brower WebRTC JS Code Peer Connection BrowserID Verifier Signed Fingerprint ’Alice’ Offer Check Certificate
IETF 82 WebRTC Security Architecture 21
{ "messageType":"OFFER", "callerSessionId":"13456789ABCDEF", "seq": 1 "sdp":" v=0\n ... 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB\n", "identity":{ "identityType":"browserid", "assertion": { "digest":"<hash of fingerprint and session IDs>", "audience": "[TBD]" "valid-until": 1308859352261, }, // signed using user’s key "certificate": { "email": "rescorla@gmail.com", "public-key": "<ekrs-public-key>", "valid-until": 1308860561861, } // certificate is signed by gmail.com } }
IETF 82 WebRTC Security Architecture 22
{ "name":"audio", "fingerprint":{ "algorithm":"SHA-1", "digest":"4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB" }, "identity":{ "identityType":"browserid", "assertion": { "digest":"<hash of fingerprint>", "audience": "[TBD]" "valid-until": 1308859352261, }, // signed using user’s key "certificate": { "email": "rescorla@gmail.com", "public-key": "<ekrs-public-key>", "valid-until": 1308860561861, } // certificate is signed by gmail.com }, "candidates:[...] }
IETF 82 WebRTC Security Architecture 23
IETF 82 WebRTC Security Architecture 24
IETF 82 WebRTC Security Architecture 25