SlideShare ist ein Scribd-Unternehmen logo
1 von 83
Downloaden Sie, um offline zu lesen
Security, Authentication and Privacy:
The WebRTC Challenge
Lorenzo Miniero
@elminiero
Kamailio World
May 16th 2018,
Before we start...
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Open source believer
Contacts and info
• http://www.meetecho.com
• https://twitter.com/elminiero
• https://www.slideshare.net/LorenzoMiniero
Before we start...
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Open source believer
Contacts and info
• http://www.meetecho.com
• https://twitter.com/elminiero
• https://www.slideshare.net/LorenzoMiniero
Before we start...
Lorenzo Miniero
• Ph.D @ UniNA
• Chairman @ Meetecho
• Open source believer
Contacts and info
• http://www.meetecho.com
• https://twitter.com/elminiero
• https://www.slideshare.net/LorenzoMiniero
Nope, not going to talk about Janus, today...
Nope, not going to talk about Janus, today...
... but it will reappear before we wrap this up!
A bit of history (of evil)
• Several security threats
• Interception and modification
• Abuse of Service (fraud)
• Interruption of Service (Denial of Service attacks)
• Social attacks (SPAM over Internet Telephony)
• Hard to take care of them all
• Several protocols/components/topologies involved
• Completely different attacks (RTP bleed anyone?)
Where do you typically start?
Securing the protocols themselves with some good ol’ encryption!
• SIP/TLS will protect negotiation info too
A bit of history (of evil)
• Several security threats
• Interception and modification
• Abuse of Service (fraud)
• Interruption of Service (Denial of Service attacks)
• Social attacks (SPAM over Internet Telephony)
• Hard to take care of them all
• Several protocols/components/topologies involved
• Completely different attacks (RTP bleed anyone?)
Where do you typically start?
Securing the protocols themselves with some good ol’ encryption!
• SIP/TLS will protect negotiation info too
A bit of history (of evil)
• Several security threats
• Interception and modification
• Abuse of Service (fraud)
• Interruption of Service (Denial of Service attacks)
• Social attacks (SPAM over Internet Telephony)
• Hard to take care of them all
• Several protocols/components/topologies involved
• Completely different attacks (RTP bleed anyone?)
Where do you typically start?
Securing the protocols themselves with some good ol’ encryption!
• SIP/TLS will protect negotiation info too
“Think of the media!”
Securing RTP
• Not as easy as securing SIP
• Might use RTP/TLS, but...
• RTP is almost always transported over UDP
• TCP not suitable for its real-time requirements
• Might use RTP/IPsec, but...
• Assumes IPsec is available (e.g., in a VPN)
• A lot of overhead involved
Secure Real-time Transport Protocol (SRTP)
https://tools.ietf.org/html/rfc3711
• Extends RTP to make it “secure”
• Authentication, integrity, protection against replay
Securing RTP
• Not as easy as securing SIP
• Might use RTP/TLS, but...
• RTP is almost always transported over UDP
• TCP not suitable for its real-time requirements
• Might use RTP/IPsec, but...
• Assumes IPsec is available (e.g., in a VPN)
• A lot of overhead involved
Secure Real-time Transport Protocol (SRTP)
https://tools.ietf.org/html/rfc3711
• Extends RTP to make it “secure”
• Authentication, integrity, protection against replay
Securing RTP
• Not as easy as securing SIP
• Might use RTP/TLS, but...
• RTP is almost always transported over UDP
• TCP not suitable for its real-time requirements
• Might use RTP/IPsec, but...
• Assumes IPsec is available (e.g., in a VPN)
• A lot of overhead involved
Secure Real-time Transport Protocol (SRTP)
https://tools.ietf.org/html/rfc3711
• Extends RTP to make it “secure”
• Authentication, integrity, protection against replay
Securing RTP
• Not as easy as securing SIP
• Might use RTP/TLS, but...
• RTP is almost always transported over UDP
• TCP not suitable for its real-time requirements
• Might use RTP/IPsec, but...
• Assumes IPsec is available (e.g., in a VPN)
• A lot of overhead involved
Secure Real-time Transport Protocol (SRTP)
https://tools.ietf.org/html/rfc3711
• Extends RTP to make it “secure”
• Authentication, integrity, protection against replay
Secure Real-time Transport Protocol (SRTP)
Key Exchange (1)
• SRTP specifies how to encrypt packets...
• ... but not how to exchange keys
• Several alternatives
• MIKEY (Multimedia Internet KEYing)
• https://tools.ietf.org/html/rfc3830
• Ticket-Based system
• Too complex for VoIP? (but used by 3GPP)
• ZRTP (Zimmermann RTP)
• https://tools.ietf.org/html/rfc6189 (Informational!)
• Focus on end-to-end (no need for PKI)
• Diffie-Hellman on Media path (no need for encrypted signalling)
Key Exchange (1)
• SRTP specifies how to encrypt packets...
• ... but not how to exchange keys
• Several alternatives
• MIKEY (Multimedia Internet KEYing)
• https://tools.ietf.org/html/rfc3830
• Ticket-Based system
• Too complex for VoIP? (but used by 3GPP)
• ZRTP (Zimmermann RTP)
• https://tools.ietf.org/html/rfc6189 (Informational!)
• Focus on end-to-end (no need for PKI)
• Diffie-Hellman on Media path (no need for encrypted signalling)
Key Exchange (1)
• SRTP specifies how to encrypt packets...
• ... but not how to exchange keys
• Several alternatives
• MIKEY (Multimedia Internet KEYing)
• https://tools.ietf.org/html/rfc3830
• Ticket-Based system
• Too complex for VoIP? (but used by 3GPP)
• ZRTP (Zimmermann RTP)
• https://tools.ietf.org/html/rfc6189 (Informational!)
• Focus on end-to-end (no need for PKI)
• Diffie-Hellman on Media path (no need for encrypted signalling)
Key Exchange (1)
• SRTP specifies how to encrypt packets...
• ... but not how to exchange keys
• Several alternatives
• MIKEY (Multimedia Internet KEYing)
• https://tools.ietf.org/html/rfc3830
• Ticket-Based system
• Too complex for VoIP? (but used by 3GPP)
• ZRTP (Zimmermann RTP)
• https://tools.ietf.org/html/rfc6189 (Informational!)
• Focus on end-to-end (no need for PKI)
• Diffie-Hellman on Media path (no need for encrypted signalling)
ZRTP (Zimmermann Secure RTP)
Key Exchange (2)
• SDES-SRTP (Secure Description)
• https://tools.ietf.org/html/rfc4568
• Simple, widespread
• Exchanges keys in SDP (requires secure signalling)
• DTLS-SRTP (Datagram Transport Layer Security)
• https://tools.ietf.org/html/rfc5763
• Exploits DTLS, which is “like TLS” but for UDP
• SDP transports certificate fingerprints (keys exchanged in DTLS)
Hot topic in the IETF (RTPSEC BOF was a long time ago, March 2007)
• http://www.ietf.org/proceedings/68/rtpsec.html
Key Exchange (2)
• SDES-SRTP (Secure Description)
• https://tools.ietf.org/html/rfc4568
• Simple, widespread
• Exchanges keys in SDP (requires secure signalling)
• DTLS-SRTP (Datagram Transport Layer Security)
• https://tools.ietf.org/html/rfc5763
• Exploits DTLS, which is “like TLS” but for UDP
• SDP transports certificate fingerprints (keys exchanged in DTLS)
Hot topic in the IETF (RTPSEC BOF was a long time ago, March 2007)
• http://www.ietf.org/proceedings/68/rtpsec.html
Key Exchange (2)
• SDES-SRTP (Secure Description)
• https://tools.ietf.org/html/rfc4568
• Simple, widespread
• Exchanges keys in SDP (requires secure signalling)
• DTLS-SRTP (Datagram Transport Layer Security)
• https://tools.ietf.org/html/rfc5763
• Exploits DTLS, which is “like TLS” but for UDP
• SDP transports certificate fingerprints (keys exchanged in DTLS)
Hot topic in the IETF (RTPSEC BOF was a long time ago, March 2007)
• http://www.ietf.org/proceedings/68/rtpsec.html
Secure Description (SDES)
• Simple mechanism to negotiate parameters
• Negotiation in SDP as additional a-line
a=crypto:<tag> <crypto-suite> inline:<key||salt>
[session-parms]
• Supported crypto-suites (AES/SHA1 variations, GCM, ...)
• AES_CM_128_HMAC_SHA1_80
• AES_CM_128_HMAC_SHA1_32
• F8_128_HMAC_SHA1_32
• ...
• Master key and salt provided inline
• Concatenated and base64 encoded
• Secure only if no one has access to the SDP...
Secure Description (SDES)
• Simple mechanism to negotiate parameters
• Negotiation in SDP as additional a-line
a=crypto:<tag> <crypto-suite> inline:<key||salt>
[session-parms]
• Supported crypto-suites (AES/SHA1 variations, GCM, ...)
• AES_CM_128_HMAC_SHA1_80
• AES_CM_128_HMAC_SHA1_32
• F8_128_HMAC_SHA1_32
• ...
• Master key and salt provided inline
• Concatenated and base64 encoded
• Secure only if no one has access to the SDP...
Secure Description (SDES)
• Simple mechanism to negotiate parameters
• Negotiation in SDP as additional a-line
a=crypto:<tag> <crypto-suite> inline:<key||salt>
[session-parms]
• Supported crypto-suites (AES/SHA1 variations, GCM, ...)
• AES_CM_128_HMAC_SHA1_80
• AES_CM_128_HMAC_SHA1_32
• F8_128_HMAC_SHA1_32
• ...
• Master key and salt provided inline
• Concatenated and base64 encoded
• Secure only if no one has access to the SDP...
Secure Description (SDES)
Datagram Transport Layer Security (DTLS)
• Recent standard, favourite in the IETF
• But not very deployed up to very recently...
• SRTP keys exchanged over DTLS
• https://tools.ietf.org/html/rfc5764
• Ad-hoc extensions for SRTP keys (use_srtp)
• Media still SRTP! (DTLS not used as a transport)
• SDP still used for negotiation, but does not contain keys
• Cryptographic handshake done in-band (à-la ZRTP), over media channel
• Basically TLS over UDP
• Handshake authenticated via certificate fingerprint
• Fingerprint is what is exchanged via SDP
• Some additional parameters related to DTLS and roles
Datagram Transport Layer Security (DTLS)
• Recent standard, favourite in the IETF
• But not very deployed up to very recently...
• SRTP keys exchanged over DTLS
• https://tools.ietf.org/html/rfc5764
• Ad-hoc extensions for SRTP keys (use_srtp)
• Media still SRTP! (DTLS not used as a transport)
• SDP still used for negotiation, but does not contain keys
• Cryptographic handshake done in-band (à-la ZRTP), over media channel
• Basically TLS over UDP
• Handshake authenticated via certificate fingerprint
• Fingerprint is what is exchanged via SDP
• Some additional parameters related to DTLS and roles
Datagram Transport Layer Security (DTLS)
• Recent standard, favourite in the IETF
• But not very deployed up to very recently...
• SRTP keys exchanged over DTLS
• https://tools.ietf.org/html/rfc5764
• Ad-hoc extensions for SRTP keys (use_srtp)
• Media still SRTP! (DTLS not used as a transport)
• SDP still used for negotiation, but does not contain keys
• Cryptographic handshake done in-band (à-la ZRTP), over media channel
• Basically TLS over UDP
• Handshake authenticated via certificate fingerprint
• Fingerprint is what is exchanged via SDP
• Some additional parameters related to DTLS and roles
Datagram Transport Layer Security (DTLS)
• Recent standard, favourite in the IETF
• But not very deployed up to very recently...
• SRTP keys exchanged over DTLS
• https://tools.ietf.org/html/rfc5764
• Ad-hoc extensions for SRTP keys (use_srtp)
• Media still SRTP! (DTLS not used as a transport)
• SDP still used for negotiation, but does not contain keys
• Cryptographic handshake done in-band (à-la ZRTP), over media channel
• Basically TLS over UDP
• Handshake authenticated via certificate fingerprint
• Fingerprint is what is exchanged via SDP
• Some additional parameters related to DTLS and roles
Datagram Transport Layer Security (DTLS)
• Recent standard, favourite in the IETF
• But not very deployed up to very recently...
• SRTP keys exchanged over DTLS
• https://tools.ietf.org/html/rfc5764
• Ad-hoc extensions for SRTP keys (use_srtp)
• Media still SRTP! (DTLS not used as a transport)
• SDP still used for negotiation, but does not contain keys
• Cryptographic handshake done in-band (à-la ZRTP), over media channel
• Basically TLS over UDP
• Handshake authenticated via certificate fingerprint
• Fingerprint is what is exchanged via SDP
• Some additional parameters related to DTLS and roles
Enter WebRTC/RTCWEB...
• Standard effort to build real-time communications integrated in browsers
• Re-uses pre-existing standards, with some enhancements, and adds others
• SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids”
• Strong emphasis on security and privacy
• https://tools.ietf.org/html/draft-ietf-rtcweb-security
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
• Media security is mandatory
• https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage
• MUST implement DTLS-SRTP (with ECDHE+ECDSA)
• NULL ciphers and SDES-SRTP MUST NOT be supported
• In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
Enter WebRTC/RTCWEB...
• Standard effort to build real-time communications integrated in browsers
• Re-uses pre-existing standards, with some enhancements, and adds others
• SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids”
• Strong emphasis on security and privacy
• https://tools.ietf.org/html/draft-ietf-rtcweb-security
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
• Media security is mandatory
• https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage
• MUST implement DTLS-SRTP (with ECDHE+ECDSA)
• NULL ciphers and SDES-SRTP MUST NOT be supported
• In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
Enter WebRTC/RTCWEB...
• Standard effort to build real-time communications integrated in browsers
• Re-uses pre-existing standards, with some enhancements, and adds others
• SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids”
• Strong emphasis on security and privacy
• https://tools.ietf.org/html/draft-ietf-rtcweb-security
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
• Media security is mandatory
• https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage
• MUST implement DTLS-SRTP (with ECDHE+ECDSA)
• NULL ciphers and SDES-SRTP MUST NOT be supported
• In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
Enter WebRTC/RTCWEB...
• Standard effort to build real-time communications integrated in browsers
• Re-uses pre-existing standards, with some enhancements, and adds others
• SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids”
• Strong emphasis on security and privacy
• https://tools.ietf.org/html/draft-ietf-rtcweb-security
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
• Media security is mandatory
• https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage
• MUST implement DTLS-SRTP (with ECDHE+ECDSA)
• NULL ciphers and SDES-SRTP MUST NOT be supported
• In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
The WebRTC “trapezoid” (hey, it looks like SIP!)
It really isn’t SIP, though...
• Negotiation (Signalling completely agnostic!)
• Javascript Session Establishment Protocol (JSEP)
• Session Description Protocol (SDP) adaptation
• Connection Establishment and NAT Traversal
• Session Traversal Utilities for NAT (STUN)
• Traversal Using Relay NAT (TURN)
• Interactive Connectivity Establishment (ICE)
• Media Transport and Control
• Real-time Transport (and Control) Protocol (RTP/RTCP)
• Secure Extensions to RTP (SRTP)
• Datagram Transport Layer Security (DTLS)
• Multimedia codecs
• Opus audio codec (MTI, Mandatory-to-implement)
• VP8 and H.264 video codecs (MTI, Mandatory-to-implement)
• Generic Data
• WebRTC Data Channels (SCTP)
The WebRTC protocol suite
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
WebRTC Security Architecture
• Basic concept: trust no one but yourself (as in “your browser” is the TCB)
• ... well, and the webserver if HTTPS is verified (SDP goes there)...
• ... and other users if we can verify them too!
• Steps that WebRTC endpoints must take care of
1 Consent to access local devices (only UIs)
2 Media consent verification (ICE)
3 Secure exchange of crypto keys (DTLS)
4 Secure delivery of media packets (SRTP)
5 “Content freshness” (STUN keepalives)
Proposed Standard (learning more)
• https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
Does WebRTC “RTP bleed” too?
• RTP bleed is a well known issue, now
• https://www.rtpbleed.com/
• https://fosdem.org/2018/schedule/event/rtpbleed/
• Basically caused by so-called “media latching” RTP servers often do
• Rather than sending to negotiated address, they send to who last sent them media
• Simple trick to help with NATs (you don’t need ICE), but terrible for security
• Any session can be highjacked or disrupted by just sending stuff to the right port
Thanks to its architecture WebRTC is typically NOT affected, though
• Media is always encrypted, and connectivity paths are authenticated with ICE
• https://www.rtpbleed.com/#so-is-webrtc-also-vulnerable
Does WebRTC “RTP bleed” too?
• RTP bleed is a well known issue, now
• https://www.rtpbleed.com/
• https://fosdem.org/2018/schedule/event/rtpbleed/
• Basically caused by so-called “media latching” RTP servers often do
• Rather than sending to negotiated address, they send to who last sent them media
• Simple trick to help with NATs (you don’t need ICE), but terrible for security
• Any session can be highjacked or disrupted by just sending stuff to the right port
Thanks to its architecture WebRTC is typically NOT affected, though
• Media is always encrypted, and connectivity paths are authenticated with ICE
• https://www.rtpbleed.com/#so-is-webrtc-also-vulnerable
Does WebRTC “RTP bleed” too?
• RTP bleed is a well known issue, now
• https://www.rtpbleed.com/
• https://fosdem.org/2018/schedule/event/rtpbleed/
• Basically caused by so-called “media latching” RTP servers often do
• Rather than sending to negotiated address, they send to who last sent them media
• Simple trick to help with NATs (you don’t need ICE), but terrible for security
• Any session can be highjacked or disrupted by just sending stuff to the right port
Thanks to its architecture WebRTC is typically NOT affected, though
• Media is always encrypted, and connectivity paths are authenticated with ICE
• https://www.rtpbleed.com/#so-is-webrtc-also-vulnerable
What about “Man in the Middle” attacks?
https://webrtchacks.com/webrtc-and-man-in-the-middle-attacks/
What about “Man in the Middle” attacks?
https://webrtchacks.com/webrtc-and-man-in-the-middle-attacks/
The proposed solution: Identity Providers!
• All certificates in WebRTC are self-signed
• How can I trust a user/verify the fingerprint?
• Identity Verification via Identity Providers
• PeerConnection generates fingerprints
• User authenticates at IdP and sends info
• IdP generates Identity Assertion (to be put in SDP)
• Peers validate each other against IdPs
Playing with Identity Providers
• Client side currently only available in Firefox
• http://w3c.github.io/webrtc-pc/#sec.identity-proxy
• Hackaton at latest IETF101 for Identity Services
• http://webrtcbydralex.com/index.php/2018/03/22/
The proposed solution: Identity Providers!
• All certificates in WebRTC are self-signed
• How can I trust a user/verify the fingerprint?
• Identity Verification via Identity Providers
• PeerConnection generates fingerprints
• User authenticates at IdP and sends info
• IdP generates Identity Assertion (to be put in SDP)
• Peers validate each other against IdPs
Playing with Identity Providers
• Client side currently only available in Firefox
• http://w3c.github.io/webrtc-pc/#sec.identity-proxy
• Hackaton at latest IETF101 for Identity Services
• http://webrtcbydralex.com/index.php/2018/03/22/
The proposed solution: Identity Providers!
• All certificates in WebRTC are self-signed
• How can I trust a user/verify the fingerprint?
• Identity Verification via Identity Providers
• PeerConnection generates fingerprints
• User authenticates at IdP and sends info
• IdP generates Identity Assertion (to be put in SDP)
• Peers validate each other against IdPs
Playing with Identity Providers
• Client side currently only available in Firefox
• http://w3c.github.io/webrtc-pc/#sec.identity-proxy
• Hackaton at latest IETF101 for Identity Services
• http://webrtcbydralex.com/index.php/2018/03/22/
The proposed solution: Identity Providers!
• All certificates in WebRTC are self-signed
• How can I trust a user/verify the fingerprint?
• Identity Verification via Identity Providers
• PeerConnection generates fingerprints
• User authenticates at IdP and sends info
• IdP generates Identity Assertion (to be put in SDP)
• Peers validate each other against IdPs
Playing with Identity Providers
• Client side currently only available in Firefox
• http://w3c.github.io/webrtc-pc/#sec.identity-proxy
• Hackaton at latest IETF101 for Identity Services
• http://webrtcbydralex.com/index.php/2018/03/22/
Example of Identity Assertion (IdP)
{
"fingerprint": [
{
"algorithm": "sha-256",
"digest": "4A:AD:B9:B1:3F:...:E5:7C:AB"
},
{
"algorithm": "sha-1",
"digest": "74:E9:76:C8:19:...:F4:45:6B"
}
]
}
Example of Identity Assertion (SDP)
v=0
o=- 1181923068 1181923196 IN IP4 ua1.example.com
s=example1
c=IN IP4 ua1.example.com
a=fingerprint:sha-1
4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB
a=identity:
eyJpZHAiOnsiZG9tYWluIjoiZXhhbXBsZS5vcmciLCJwcm90b2NvbCI6ImJvZ3Vz
In0sImFzc2VydGlvbiI6IntcImlkZW50aXR5XCI6XCJib2JAZXhhbXBsZS5vcmdc
IixcImNvbnRlbnRzXCI6XCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3l6XCIsXCJz
aWduYXR1cmVcIjpcIjAxMDIwMzA0MDUwNlwifSJ9
a=...
t=0 0
m=audio 6056 RTP/SAVP 0
a=sendrecv
...
What about privacy?
• You may have heard this many times...
• “This site uses fake datachannels to locate me!”
• “WebRTC leaks my real IP address even behind a VPN/proxy!”
• Four specific modes for WebRTC behaviour
1 Enumerate all addresses (best media path, but most info disclosed)
2 Default route + associated local addresses (typically same route as HTTP traffic)
3 Default route only (quality implications)
4 Force proxy (reduced quality if proxy doesn’t support UDP)
• Mode 1 only used in case of user consent, otherwise fallback to Mode 2
• What is consent, though? (using getUserMedia for that would be terrible...)
• Hot debate the past few weeks on the RTCWEB mailing list
WebRTC IP Address Handling Requirements
• https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
What about privacy?
• You may have heard this many times...
• “This site uses fake datachannels to locate me!”
• “WebRTC leaks my real IP address even behind a VPN/proxy!”
• Four specific modes for WebRTC behaviour
1 Enumerate all addresses (best media path, but most info disclosed)
2 Default route + associated local addresses (typically same route as HTTP traffic)
3 Default route only (quality implications)
4 Force proxy (reduced quality if proxy doesn’t support UDP)
• Mode 1 only used in case of user consent, otherwise fallback to Mode 2
• What is consent, though? (using getUserMedia for that would be terrible...)
• Hot debate the past few weeks on the RTCWEB mailing list
WebRTC IP Address Handling Requirements
• https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
What about privacy?
• You may have heard this many times...
• “This site uses fake datachannels to locate me!”
• “WebRTC leaks my real IP address even behind a VPN/proxy!”
• Four specific modes for WebRTC behaviour
1 Enumerate all addresses (best media path, but most info disclosed)
2 Default route + associated local addresses (typically same route as HTTP traffic)
3 Default route only (quality implications)
4 Force proxy (reduced quality if proxy doesn’t support UDP)
• Mode 1 only used in case of user consent, otherwise fallback to Mode 2
• What is consent, though? (using getUserMedia for that would be terrible...)
• Hot debate the past few weeks on the RTCWEB mailing list
WebRTC IP Address Handling Requirements
• https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
What about privacy?
• You may have heard this many times...
• “This site uses fake datachannels to locate me!”
• “WebRTC leaks my real IP address even behind a VPN/proxy!”
• Four specific modes for WebRTC behaviour
1 Enumerate all addresses (best media path, but most info disclosed)
2 Default route + associated local addresses (typically same route as HTTP traffic)
3 Default route only (quality implications)
4 Force proxy (reduced quality if proxy doesn’t support UDP)
• Mode 1 only used in case of user consent, otherwise fallback to Mode 2
• What is consent, though? (using getUserMedia for that would be terrible...)
• Hot debate the past few weeks on the RTCWEB mailing list
WebRTC IP Address Handling Requirements
• https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
Private Media Requirements in Privacy
Enhanced RTP Conferencing (PERC)
• Media security works “great” for peer-to-peer
• What if I want to join a media conference, though?
• Several approaches to conferencing
• Full-mesh (everybody connects to everybody)
• Multi-point Control Unit (MCU) → server!
• Selective Forwarding Unit (SFU) → server!
• Going through an SFU or MCU, you “see” the server, not the users
Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC)
https://datatracker.ietf.org/wg/perc/charter/
• Ensure end-to-end confidentiality/authentication
• No need to “trust” elements on the media path
Private Media Requirements in Privacy
Enhanced RTP Conferencing (PERC)
• Media security works “great” for peer-to-peer
• What if I want to join a media conference, though?
• Several approaches to conferencing
• Full-mesh (everybody connects to everybody)
• Multi-point Control Unit (MCU) → server!
• Selective Forwarding Unit (SFU) → server!
• Going through an SFU or MCU, you “see” the server, not the users
Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC)
https://datatracker.ietf.org/wg/perc/charter/
• Ensure end-to-end confidentiality/authentication
• No need to “trust” elements on the media path
Private Media Requirements in Privacy
Enhanced RTP Conferencing (PERC)
• Media security works “great” for peer-to-peer
• What if I want to join a media conference, though?
• Several approaches to conferencing
• Full-mesh (everybody connects to everybody)
• Multi-point Control Unit (MCU) → server!
• Selective Forwarding Unit (SFU) → server!
• Going through an SFU or MCU, you “see” the server, not the users
Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC)
https://datatracker.ietf.org/wg/perc/charter/
• Ensure end-to-end confidentiality/authentication
• No need to “trust” elements on the media path
Private Media Requirements in Privacy
Enhanced RTP Conferencing (PERC)
• Media security works “great” for peer-to-peer
• What if I want to join a media conference, though?
• Several approaches to conferencing
• Full-mesh (everybody connects to everybody)
• Multi-point Control Unit (MCU) → server!
• Selective Forwarding Unit (SFU) → server!
• Going through an SFU or MCU, you “see” the server, not the users
Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC)
https://datatracker.ietf.org/wg/perc/charter/
• Ensure end-to-end confidentiality/authentication
• No need to “trust” elements on the media path
Selective Forwarding Unit (SFU)
https://webrtchacks.com/webrtc-beyond-one-one/
Double Encryption with PERC Lite
https://www.slideshare.net/alexpiwi5/perc-webrtc-e2e-media-encryption-with-sfu
Prototyping PERC Lite with Janus
http://www.meetecho.com/blog/meetecho-and-cosmo-strike-again-perc-lite-integration-in-janus/
What else can PERC help with?
• PERC originally conceived for multimedia conferencing
• Double encryption to preserve end-to-end encryption properties
• The same concept can be reused in other contexts, though
• e.g., what about multimedia streaming and DRM via WebRTC?
• Encrypted content can only be played if you have the right key
• Played a bit with this in the Janus Record&Play feature
• PERC Lite integration to preserve end-to-end encryption properties
• Recording contains end-to-end encrypted RTP packets in .mjr file
• Replay needs to happen in PERC Lite session with the original key
• Ad-hoc tools to decrypt/encrypt recordings on the server side
• Useful for having different keys for different sessions
What else can PERC help with?
• PERC originally conceived for multimedia conferencing
• Double encryption to preserve end-to-end encryption properties
• The same concept can be reused in other contexts, though
• e.g., what about multimedia streaming and DRM via WebRTC?
• Encrypted content can only be played if you have the right key
• Played a bit with this in the Janus Record&Play feature
• PERC Lite integration to preserve end-to-end encryption properties
• Recording contains end-to-end encrypted RTP packets in .mjr file
• Replay needs to happen in PERC Lite session with the original key
• Ad-hoc tools to decrypt/encrypt recordings on the server side
• Useful for having different keys for different sessions
What else can PERC help with?
• PERC originally conceived for multimedia conferencing
• Double encryption to preserve end-to-end encryption properties
• The same concept can be reused in other contexts, though
• e.g., what about multimedia streaming and DRM via WebRTC?
• Encrypted content can only be played if you have the right key
• Played a bit with this in the Janus Record&Play feature
• PERC Lite integration to preserve end-to-end encryption properties
• Recording contains end-to-end encrypted RTP packets in .mjr file
• Replay needs to happen in PERC Lite session with the original key
• Ad-hoc tools to decrypt/encrypt recordings on the server side
• Useful for having different keys for different sessions
What else can PERC help with?
• PERC originally conceived for multimedia conferencing
• Double encryption to preserve end-to-end encryption properties
• The same concept can be reused in other contexts, though
• e.g., what about multimedia streaming and DRM via WebRTC?
• Encrypted content can only be played if you have the right key
• Played a bit with this in the Janus Record&Play feature
• PERC Lite integration to preserve end-to-end encryption properties
• Recording contains end-to-end encrypted RTP packets in .mjr file
• Replay needs to happen in PERC Lite session with the original key
• Ad-hoc tools to decrypt/encrypt recordings on the server side
• Useful for having different keys for different sessions
Encrypted recordings with Janus+PERC Lite
https://ieeexplore.ieee.org/document/8169749/
Encrypted recordings with Janus+PERC Lite
https://ieeexplore.ieee.org/document/8169749/
Encrypted recordings with Janus+PERC Lite
https://ieeexplore.ieee.org/document/8169749/
Encrypted recordings with Janus+PERC Lite
https://ieeexplore.ieee.org/document/8169749/
Encrypted recordings with Janus+PERC Lite
https://ieeexplore.ieee.org/document/8169749/
An interesting use case: SHINE
• Secure Hybrid In Network caching Environment
• Security and Content Rights Management
• Satellite-assisted In Network Caching Systems
https://artes.esa.int/projects/shine-secure-hybrid-network-caching-environment
An interesting use case: SHINE
• Secure Hybrid In Network caching Environment
• Security and Content Rights Management
• Satellite-assisted In Network Caching Systems
https://artes.esa.int/projects/shine-secure-hybrid-network-caching-environment
Thanks! Questions? Comments?
Get in touch!
• https://twitter.com/elminiero
• https://twitter.com/meetecho
• http://www.meetecho.com

Weitere ähnliche Inhalte

Was ist angesagt?

Scaling WebRTC applications with Janus
Scaling WebRTC applications with JanusScaling WebRTC applications with Janus
Scaling WebRTC applications with JanusLorenzo Miniero
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Lorenzo Miniero
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022Lorenzo Miniero
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Lorenzo Miniero
 
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmIETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmLorenzo Miniero
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDLorenzo Miniero
 
SIP/WebRTC load testing @ KamailioWorld 2017
SIP/WebRTC load testing @ KamailioWorld 2017SIP/WebRTC load testing @ KamailioWorld 2017
SIP/WebRTC load testing @ KamailioWorld 2017Lorenzo Miniero
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Lorenzo Miniero
 
Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017Lorenzo Miniero
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Lorenzo Miniero
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021Lorenzo Miniero
 
Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18Lorenzo Miniero
 
Janus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmJanus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmLorenzo Miniero
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Lorenzo Miniero
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Lorenzo Miniero
 
Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingLorenzo Miniero
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSLorenzo Miniero
 
WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017Lorenzo Miniero
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Paolo Saviano
 

Was ist angesagt? (20)

Scaling WebRTC applications with Janus
Scaling WebRTC applications with JanusScaling WebRTC applications with Janus
Scaling WebRTC applications with Janus
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
 
Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020Insertable Streams and E2EE @ ClueCon2020
Insertable Streams and E2EE @ ClueCon2020
 
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmIETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
SIP/WebRTC load testing @ KamailioWorld 2017
SIP/WebRTC load testing @ KamailioWorld 2017SIP/WebRTC load testing @ KamailioWorld 2017
SIP/WebRTC load testing @ KamailioWorld 2017
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019
 
Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017Janus/SIP @ OpenSIPS 2017
Janus/SIP @ OpenSIPS 2017
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
Janus @ RTC2017 Beijing
Janus @ RTC2017 BeijingJanus @ RTC2017 Beijing
Janus @ RTC2017 Beijing
 
Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18
 
Janus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup StockholmJanus @ WebRTC Meetup Stockholm
Janus @ WebRTC Meetup Stockholm
 
Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019Fuzzing RTC @ Kamailio World 2019
Fuzzing RTC @ Kamailio World 2019
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
 
Janus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 BeijingJanus workshop @ RTC2019 Beijing
Janus workshop @ RTC2019 Beijing
 
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPSVirtual IETF meetings with WebRTC @ IETF 109 MOPS
Virtual IETF meetings with WebRTC @ IETF 109 MOPS
 
WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017WebRTC Rockstars Asian Tour 2017
WebRTC Rockstars Asian Tour 2017
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
 

Ähnlich wie WebRTC security+more @ KamailioWorld 2018

Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Lorenzo Miniero
 
ssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptxssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptxjithu26327
 
Trick or XFLTReaT a.k.a. Tunnel All The Things
Trick or XFLTReaT a.k.a. Tunnel All The ThingsTrick or XFLTReaT a.k.a. Tunnel All The Things
Trick or XFLTReaT a.k.a. Tunnel All The ThingsBalazs Bucsay
 
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...BlueHat Security Conference
 
Alice and bob: Love & the most important crypto on the net
Alice and bob: Love & the most important crypto on the netAlice and bob: Love & the most important crypto on the net
Alice and bob: Love & the most important crypto on the netChris Hammond-Thrasher
 
The Security layer
The Security layerThe Security layer
The Security layerSwetha S
 
XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)
XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)
XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)Balazs Bucsay
 
XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)
XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)
XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)Balazs Bucsay
 
XFLTReat: a new dimension in tunnelling
XFLTReat:  a new dimension in tunnellingXFLTReat:  a new dimension in tunnelling
XFLTReat: a new dimension in tunnellingShakacon
 
[Wroclaw #8] TLS all the things!
[Wroclaw #8] TLS all the things![Wroclaw #8] TLS all the things!
[Wroclaw #8] TLS all the things!OWASP
 
XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)
XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)
XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)Balazs Bucsay
 
Solving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and ProtocolsSolving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and ProtocolsC4Media
 
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)Balazs Bucsay
 
Pentesting custom TLS stacks
Pentesting custom TLS stacksPentesting custom TLS stacks
Pentesting custom TLS stacksAlexandre Moneger
 
No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...
No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...
No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...Aaron Zauner
 
Reinventing anon email
Reinventing anon emailReinventing anon email
Reinventing anon emailantitree
 
Bit_Bucket_x31_Final
Bit_Bucket_x31_FinalBit_Bucket_x31_Final
Bit_Bucket_x31_FinalSam Knutson
 

Ähnlich wie WebRTC security+more @ KamailioWorld 2018 (20)

Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020
 
ssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptxssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptx
 
Trick or XFLTReaT a.k.a. Tunnel All The Things
Trick or XFLTReaT a.k.a. Tunnel All The ThingsTrick or XFLTReaT a.k.a. Tunnel All The Things
Trick or XFLTReaT a.k.a. Tunnel All The Things
 
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
 
Alice and bob: Love & the most important crypto on the net
Alice and bob: Love & the most important crypto on the netAlice and bob: Love & the most important crypto on the net
Alice and bob: Love & the most important crypto on the net
 
The Security layer
The Security layerThe Security layer
The Security layer
 
XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)
XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)
XFLTReaT: A New Dimension in Tunneling (Shakacon 2017)
 
Cryto Party at CCU
Cryto Party at CCUCryto Party at CCU
Cryto Party at CCU
 
XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)
XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)
XFLTReaT: A New Dimension in Tunnelling (HITB GSEC 2017)
 
XFLTReat: a new dimension in tunnelling
XFLTReat:  a new dimension in tunnellingXFLTReat:  a new dimension in tunnelling
XFLTReat: a new dimension in tunnelling
 
[Wroclaw #8] TLS all the things!
[Wroclaw #8] TLS all the things![Wroclaw #8] TLS all the things!
[Wroclaw #8] TLS all the things!
 
SSL overview
SSL overviewSSL overview
SSL overview
 
XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)
XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)
XFLTReaT: a new dimension in tunnelling (BruCON 0x09 2017)
 
Solving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and ProtocolsSolving HTTP Problems with Code and Protocols
Solving HTTP Problems with Code and Protocols
 
Ipsec
IpsecIpsec
Ipsec
 
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
XFLTReaT: A New Dimension In Tunnelling (DeepSec 2017)
 
Pentesting custom TLS stacks
Pentesting custom TLS stacksPentesting custom TLS stacks
Pentesting custom TLS stacks
 
No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...
No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...
No need for Black Chambers: Testing TLS in the E-Mail Ecosystem at Large (hac...
 
Reinventing anon email
Reinventing anon emailReinventing anon email
Reinventing anon email
 
Bit_Bucket_x31_Final
Bit_Bucket_x31_FinalBit_Bucket_x31_Final
Bit_Bucket_x31_Final
 

Mehr von Lorenzo Miniero

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerLorenzo Miniero
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023Lorenzo Miniero
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023Lorenzo Miniero
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Lorenzo Miniero
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!Lorenzo Miniero
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Lorenzo Miniero
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022Lorenzo Miniero
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceLorenzo Miniero
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Lorenzo Miniero
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with JanusLorenzo Miniero
 
Welcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusWelcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusLorenzo Miniero
 

Mehr von Lorenzo Miniero (14)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021
 
Turning live events to virtual with Janus
Turning live events to virtual with JanusTurning live events to virtual with Janus
Turning live events to virtual with Janus
 
Welcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of JanusWelcome to JanusCon! -- Past, Present and Future of Janus
Welcome to JanusCon! -- Past, Present and Future of Janus
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 

Kürzlich hochgeladen

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 

Kürzlich hochgeladen (20)

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

WebRTC security+more @ KamailioWorld 2018

  • 1. Security, Authentication and Privacy: The WebRTC Challenge Lorenzo Miniero @elminiero Kamailio World May 16th 2018,
  • 2. Before we start... Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Open source believer Contacts and info • http://www.meetecho.com • https://twitter.com/elminiero • https://www.slideshare.net/LorenzoMiniero
  • 3. Before we start... Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Open source believer Contacts and info • http://www.meetecho.com • https://twitter.com/elminiero • https://www.slideshare.net/LorenzoMiniero
  • 4. Before we start... Lorenzo Miniero • Ph.D @ UniNA • Chairman @ Meetecho • Open source believer Contacts and info • http://www.meetecho.com • https://twitter.com/elminiero • https://www.slideshare.net/LorenzoMiniero
  • 5. Nope, not going to talk about Janus, today...
  • 6. Nope, not going to talk about Janus, today... ... but it will reappear before we wrap this up!
  • 7. A bit of history (of evil) • Several security threats • Interception and modification • Abuse of Service (fraud) • Interruption of Service (Denial of Service attacks) • Social attacks (SPAM over Internet Telephony) • Hard to take care of them all • Several protocols/components/topologies involved • Completely different attacks (RTP bleed anyone?) Where do you typically start? Securing the protocols themselves with some good ol’ encryption! • SIP/TLS will protect negotiation info too
  • 8. A bit of history (of evil) • Several security threats • Interception and modification • Abuse of Service (fraud) • Interruption of Service (Denial of Service attacks) • Social attacks (SPAM over Internet Telephony) • Hard to take care of them all • Several protocols/components/topologies involved • Completely different attacks (RTP bleed anyone?) Where do you typically start? Securing the protocols themselves with some good ol’ encryption! • SIP/TLS will protect negotiation info too
  • 9. A bit of history (of evil) • Several security threats • Interception and modification • Abuse of Service (fraud) • Interruption of Service (Denial of Service attacks) • Social attacks (SPAM over Internet Telephony) • Hard to take care of them all • Several protocols/components/topologies involved • Completely different attacks (RTP bleed anyone?) Where do you typically start? Securing the protocols themselves with some good ol’ encryption! • SIP/TLS will protect negotiation info too
  • 10. “Think of the media!”
  • 11. Securing RTP • Not as easy as securing SIP • Might use RTP/TLS, but... • RTP is almost always transported over UDP • TCP not suitable for its real-time requirements • Might use RTP/IPsec, but... • Assumes IPsec is available (e.g., in a VPN) • A lot of overhead involved Secure Real-time Transport Protocol (SRTP) https://tools.ietf.org/html/rfc3711 • Extends RTP to make it “secure” • Authentication, integrity, protection against replay
  • 12. Securing RTP • Not as easy as securing SIP • Might use RTP/TLS, but... • RTP is almost always transported over UDP • TCP not suitable for its real-time requirements • Might use RTP/IPsec, but... • Assumes IPsec is available (e.g., in a VPN) • A lot of overhead involved Secure Real-time Transport Protocol (SRTP) https://tools.ietf.org/html/rfc3711 • Extends RTP to make it “secure” • Authentication, integrity, protection against replay
  • 13. Securing RTP • Not as easy as securing SIP • Might use RTP/TLS, but... • RTP is almost always transported over UDP • TCP not suitable for its real-time requirements • Might use RTP/IPsec, but... • Assumes IPsec is available (e.g., in a VPN) • A lot of overhead involved Secure Real-time Transport Protocol (SRTP) https://tools.ietf.org/html/rfc3711 • Extends RTP to make it “secure” • Authentication, integrity, protection against replay
  • 14. Securing RTP • Not as easy as securing SIP • Might use RTP/TLS, but... • RTP is almost always transported over UDP • TCP not suitable for its real-time requirements • Might use RTP/IPsec, but... • Assumes IPsec is available (e.g., in a VPN) • A lot of overhead involved Secure Real-time Transport Protocol (SRTP) https://tools.ietf.org/html/rfc3711 • Extends RTP to make it “secure” • Authentication, integrity, protection against replay
  • 15. Secure Real-time Transport Protocol (SRTP)
  • 16. Key Exchange (1) • SRTP specifies how to encrypt packets... • ... but not how to exchange keys • Several alternatives • MIKEY (Multimedia Internet KEYing) • https://tools.ietf.org/html/rfc3830 • Ticket-Based system • Too complex for VoIP? (but used by 3GPP) • ZRTP (Zimmermann RTP) • https://tools.ietf.org/html/rfc6189 (Informational!) • Focus on end-to-end (no need for PKI) • Diffie-Hellman on Media path (no need for encrypted signalling)
  • 17. Key Exchange (1) • SRTP specifies how to encrypt packets... • ... but not how to exchange keys • Several alternatives • MIKEY (Multimedia Internet KEYing) • https://tools.ietf.org/html/rfc3830 • Ticket-Based system • Too complex for VoIP? (but used by 3GPP) • ZRTP (Zimmermann RTP) • https://tools.ietf.org/html/rfc6189 (Informational!) • Focus on end-to-end (no need for PKI) • Diffie-Hellman on Media path (no need for encrypted signalling)
  • 18. Key Exchange (1) • SRTP specifies how to encrypt packets... • ... but not how to exchange keys • Several alternatives • MIKEY (Multimedia Internet KEYing) • https://tools.ietf.org/html/rfc3830 • Ticket-Based system • Too complex for VoIP? (but used by 3GPP) • ZRTP (Zimmermann RTP) • https://tools.ietf.org/html/rfc6189 (Informational!) • Focus on end-to-end (no need for PKI) • Diffie-Hellman on Media path (no need for encrypted signalling)
  • 19. Key Exchange (1) • SRTP specifies how to encrypt packets... • ... but not how to exchange keys • Several alternatives • MIKEY (Multimedia Internet KEYing) • https://tools.ietf.org/html/rfc3830 • Ticket-Based system • Too complex for VoIP? (but used by 3GPP) • ZRTP (Zimmermann RTP) • https://tools.ietf.org/html/rfc6189 (Informational!) • Focus on end-to-end (no need for PKI) • Diffie-Hellman on Media path (no need for encrypted signalling)
  • 21. Key Exchange (2) • SDES-SRTP (Secure Description) • https://tools.ietf.org/html/rfc4568 • Simple, widespread • Exchanges keys in SDP (requires secure signalling) • DTLS-SRTP (Datagram Transport Layer Security) • https://tools.ietf.org/html/rfc5763 • Exploits DTLS, which is “like TLS” but for UDP • SDP transports certificate fingerprints (keys exchanged in DTLS) Hot topic in the IETF (RTPSEC BOF was a long time ago, March 2007) • http://www.ietf.org/proceedings/68/rtpsec.html
  • 22. Key Exchange (2) • SDES-SRTP (Secure Description) • https://tools.ietf.org/html/rfc4568 • Simple, widespread • Exchanges keys in SDP (requires secure signalling) • DTLS-SRTP (Datagram Transport Layer Security) • https://tools.ietf.org/html/rfc5763 • Exploits DTLS, which is “like TLS” but for UDP • SDP transports certificate fingerprints (keys exchanged in DTLS) Hot topic in the IETF (RTPSEC BOF was a long time ago, March 2007) • http://www.ietf.org/proceedings/68/rtpsec.html
  • 23. Key Exchange (2) • SDES-SRTP (Secure Description) • https://tools.ietf.org/html/rfc4568 • Simple, widespread • Exchanges keys in SDP (requires secure signalling) • DTLS-SRTP (Datagram Transport Layer Security) • https://tools.ietf.org/html/rfc5763 • Exploits DTLS, which is “like TLS” but for UDP • SDP transports certificate fingerprints (keys exchanged in DTLS) Hot topic in the IETF (RTPSEC BOF was a long time ago, March 2007) • http://www.ietf.org/proceedings/68/rtpsec.html
  • 24. Secure Description (SDES) • Simple mechanism to negotiate parameters • Negotiation in SDP as additional a-line a=crypto:<tag> <crypto-suite> inline:<key||salt> [session-parms] • Supported crypto-suites (AES/SHA1 variations, GCM, ...) • AES_CM_128_HMAC_SHA1_80 • AES_CM_128_HMAC_SHA1_32 • F8_128_HMAC_SHA1_32 • ... • Master key and salt provided inline • Concatenated and base64 encoded • Secure only if no one has access to the SDP...
  • 25. Secure Description (SDES) • Simple mechanism to negotiate parameters • Negotiation in SDP as additional a-line a=crypto:<tag> <crypto-suite> inline:<key||salt> [session-parms] • Supported crypto-suites (AES/SHA1 variations, GCM, ...) • AES_CM_128_HMAC_SHA1_80 • AES_CM_128_HMAC_SHA1_32 • F8_128_HMAC_SHA1_32 • ... • Master key and salt provided inline • Concatenated and base64 encoded • Secure only if no one has access to the SDP...
  • 26. Secure Description (SDES) • Simple mechanism to negotiate parameters • Negotiation in SDP as additional a-line a=crypto:<tag> <crypto-suite> inline:<key||salt> [session-parms] • Supported crypto-suites (AES/SHA1 variations, GCM, ...) • AES_CM_128_HMAC_SHA1_80 • AES_CM_128_HMAC_SHA1_32 • F8_128_HMAC_SHA1_32 • ... • Master key and salt provided inline • Concatenated and base64 encoded • Secure only if no one has access to the SDP...
  • 28. Datagram Transport Layer Security (DTLS) • Recent standard, favourite in the IETF • But not very deployed up to very recently... • SRTP keys exchanged over DTLS • https://tools.ietf.org/html/rfc5764 • Ad-hoc extensions for SRTP keys (use_srtp) • Media still SRTP! (DTLS not used as a transport) • SDP still used for negotiation, but does not contain keys • Cryptographic handshake done in-band (à-la ZRTP), over media channel • Basically TLS over UDP • Handshake authenticated via certificate fingerprint • Fingerprint is what is exchanged via SDP • Some additional parameters related to DTLS and roles
  • 29. Datagram Transport Layer Security (DTLS) • Recent standard, favourite in the IETF • But not very deployed up to very recently... • SRTP keys exchanged over DTLS • https://tools.ietf.org/html/rfc5764 • Ad-hoc extensions for SRTP keys (use_srtp) • Media still SRTP! (DTLS not used as a transport) • SDP still used for negotiation, but does not contain keys • Cryptographic handshake done in-band (à-la ZRTP), over media channel • Basically TLS over UDP • Handshake authenticated via certificate fingerprint • Fingerprint is what is exchanged via SDP • Some additional parameters related to DTLS and roles
  • 30. Datagram Transport Layer Security (DTLS) • Recent standard, favourite in the IETF • But not very deployed up to very recently... • SRTP keys exchanged over DTLS • https://tools.ietf.org/html/rfc5764 • Ad-hoc extensions for SRTP keys (use_srtp) • Media still SRTP! (DTLS not used as a transport) • SDP still used for negotiation, but does not contain keys • Cryptographic handshake done in-band (à-la ZRTP), over media channel • Basically TLS over UDP • Handshake authenticated via certificate fingerprint • Fingerprint is what is exchanged via SDP • Some additional parameters related to DTLS and roles
  • 31. Datagram Transport Layer Security (DTLS) • Recent standard, favourite in the IETF • But not very deployed up to very recently... • SRTP keys exchanged over DTLS • https://tools.ietf.org/html/rfc5764 • Ad-hoc extensions for SRTP keys (use_srtp) • Media still SRTP! (DTLS not used as a transport) • SDP still used for negotiation, but does not contain keys • Cryptographic handshake done in-band (à-la ZRTP), over media channel • Basically TLS over UDP • Handshake authenticated via certificate fingerprint • Fingerprint is what is exchanged via SDP • Some additional parameters related to DTLS and roles
  • 32. Datagram Transport Layer Security (DTLS) • Recent standard, favourite in the IETF • But not very deployed up to very recently... • SRTP keys exchanged over DTLS • https://tools.ietf.org/html/rfc5764 • Ad-hoc extensions for SRTP keys (use_srtp) • Media still SRTP! (DTLS not used as a transport) • SDP still used for negotiation, but does not contain keys • Cryptographic handshake done in-band (à-la ZRTP), over media channel • Basically TLS over UDP • Handshake authenticated via certificate fingerprint • Fingerprint is what is exchanged via SDP • Some additional parameters related to DTLS and roles
  • 33. Enter WebRTC/RTCWEB... • Standard effort to build real-time communications integrated in browsers • Re-uses pre-existing standards, with some enhancements, and adds others • SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids” • Strong emphasis on security and privacy • https://tools.ietf.org/html/draft-ietf-rtcweb-security • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch • Media security is mandatory • https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage • MUST implement DTLS-SRTP (with ECDHE+ECDSA) • NULL ciphers and SDES-SRTP MUST NOT be supported • In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
  • 34. Enter WebRTC/RTCWEB... • Standard effort to build real-time communications integrated in browsers • Re-uses pre-existing standards, with some enhancements, and adds others • SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids” • Strong emphasis on security and privacy • https://tools.ietf.org/html/draft-ietf-rtcweb-security • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch • Media security is mandatory • https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage • MUST implement DTLS-SRTP (with ECDHE+ECDSA) • NULL ciphers and SDES-SRTP MUST NOT be supported • In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
  • 35. Enter WebRTC/RTCWEB... • Standard effort to build real-time communications integrated in browsers • Re-uses pre-existing standards, with some enhancements, and adds others • SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids” • Strong emphasis on security and privacy • https://tools.ietf.org/html/draft-ietf-rtcweb-security • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch • Media security is mandatory • https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage • MUST implement DTLS-SRTP (with ECDHE+ECDSA) • NULL ciphers and SDES-SRTP MUST NOT be supported • In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
  • 36. Enter WebRTC/RTCWEB... • Standard effort to build real-time communications integrated in browsers • Re-uses pre-existing standards, with some enhancements, and adds others • SDP, SRTP, ICE, and others (but not SIP) are all there, “on steroids” • Strong emphasis on security and privacy • https://tools.ietf.org/html/draft-ietf-rtcweb-security • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch • Media security is mandatory • https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage • MUST implement DTLS-SRTP (with ECDHE+ECDSA) • NULL ciphers and SDES-SRTP MUST NOT be supported • In browsers, HTTPS mandatory as well (to avoid messing with fingerprints)
  • 37. The WebRTC “trapezoid” (hey, it looks like SIP!)
  • 38. It really isn’t SIP, though... • Negotiation (Signalling completely agnostic!) • Javascript Session Establishment Protocol (JSEP) • Session Description Protocol (SDP) adaptation • Connection Establishment and NAT Traversal • Session Traversal Utilities for NAT (STUN) • Traversal Using Relay NAT (TURN) • Interactive Connectivity Establishment (ICE) • Media Transport and Control • Real-time Transport (and Control) Protocol (RTP/RTCP) • Secure Extensions to RTP (SRTP) • Datagram Transport Layer Security (DTLS) • Multimedia codecs • Opus audio codec (MTI, Mandatory-to-implement) • VP8 and H.264 video codecs (MTI, Mandatory-to-implement) • Generic Data • WebRTC Data Channels (SCTP)
  • 40. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 41. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 42. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 43. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 44. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 45. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 46. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 47. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 48. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 49. WebRTC Security Architecture • Basic concept: trust no one but yourself (as in “your browser” is the TCB) • ... well, and the webserver if HTTPS is verified (SDP goes there)... • ... and other users if we can verify them too! • Steps that WebRTC endpoints must take care of 1 Consent to access local devices (only UIs) 2 Media consent verification (ICE) 3 Secure exchange of crypto keys (DTLS) 4 Secure delivery of media packets (SRTP) 5 “Content freshness” (STUN keepalives) Proposed Standard (learning more) • https://tools.ietf.org/html/draft-ietf-rtcweb-security-arch
  • 50. Does WebRTC “RTP bleed” too? • RTP bleed is a well known issue, now • https://www.rtpbleed.com/ • https://fosdem.org/2018/schedule/event/rtpbleed/ • Basically caused by so-called “media latching” RTP servers often do • Rather than sending to negotiated address, they send to who last sent them media • Simple trick to help with NATs (you don’t need ICE), but terrible for security • Any session can be highjacked or disrupted by just sending stuff to the right port Thanks to its architecture WebRTC is typically NOT affected, though • Media is always encrypted, and connectivity paths are authenticated with ICE • https://www.rtpbleed.com/#so-is-webrtc-also-vulnerable
  • 51. Does WebRTC “RTP bleed” too? • RTP bleed is a well known issue, now • https://www.rtpbleed.com/ • https://fosdem.org/2018/schedule/event/rtpbleed/ • Basically caused by so-called “media latching” RTP servers often do • Rather than sending to negotiated address, they send to who last sent them media • Simple trick to help with NATs (you don’t need ICE), but terrible for security • Any session can be highjacked or disrupted by just sending stuff to the right port Thanks to its architecture WebRTC is typically NOT affected, though • Media is always encrypted, and connectivity paths are authenticated with ICE • https://www.rtpbleed.com/#so-is-webrtc-also-vulnerable
  • 52. Does WebRTC “RTP bleed” too? • RTP bleed is a well known issue, now • https://www.rtpbleed.com/ • https://fosdem.org/2018/schedule/event/rtpbleed/ • Basically caused by so-called “media latching” RTP servers often do • Rather than sending to negotiated address, they send to who last sent them media • Simple trick to help with NATs (you don’t need ICE), but terrible for security • Any session can be highjacked or disrupted by just sending stuff to the right port Thanks to its architecture WebRTC is typically NOT affected, though • Media is always encrypted, and connectivity paths are authenticated with ICE • https://www.rtpbleed.com/#so-is-webrtc-also-vulnerable
  • 53. What about “Man in the Middle” attacks? https://webrtchacks.com/webrtc-and-man-in-the-middle-attacks/
  • 54. What about “Man in the Middle” attacks? https://webrtchacks.com/webrtc-and-man-in-the-middle-attacks/
  • 55. The proposed solution: Identity Providers! • All certificates in WebRTC are self-signed • How can I trust a user/verify the fingerprint? • Identity Verification via Identity Providers • PeerConnection generates fingerprints • User authenticates at IdP and sends info • IdP generates Identity Assertion (to be put in SDP) • Peers validate each other against IdPs Playing with Identity Providers • Client side currently only available in Firefox • http://w3c.github.io/webrtc-pc/#sec.identity-proxy • Hackaton at latest IETF101 for Identity Services • http://webrtcbydralex.com/index.php/2018/03/22/
  • 56. The proposed solution: Identity Providers! • All certificates in WebRTC are self-signed • How can I trust a user/verify the fingerprint? • Identity Verification via Identity Providers • PeerConnection generates fingerprints • User authenticates at IdP and sends info • IdP generates Identity Assertion (to be put in SDP) • Peers validate each other against IdPs Playing with Identity Providers • Client side currently only available in Firefox • http://w3c.github.io/webrtc-pc/#sec.identity-proxy • Hackaton at latest IETF101 for Identity Services • http://webrtcbydralex.com/index.php/2018/03/22/
  • 57. The proposed solution: Identity Providers! • All certificates in WebRTC are self-signed • How can I trust a user/verify the fingerprint? • Identity Verification via Identity Providers • PeerConnection generates fingerprints • User authenticates at IdP and sends info • IdP generates Identity Assertion (to be put in SDP) • Peers validate each other against IdPs Playing with Identity Providers • Client side currently only available in Firefox • http://w3c.github.io/webrtc-pc/#sec.identity-proxy • Hackaton at latest IETF101 for Identity Services • http://webrtcbydralex.com/index.php/2018/03/22/
  • 58. The proposed solution: Identity Providers! • All certificates in WebRTC are self-signed • How can I trust a user/verify the fingerprint? • Identity Verification via Identity Providers • PeerConnection generates fingerprints • User authenticates at IdP and sends info • IdP generates Identity Assertion (to be put in SDP) • Peers validate each other against IdPs Playing with Identity Providers • Client side currently only available in Firefox • http://w3c.github.io/webrtc-pc/#sec.identity-proxy • Hackaton at latest IETF101 for Identity Services • http://webrtcbydralex.com/index.php/2018/03/22/
  • 59. Example of Identity Assertion (IdP) { "fingerprint": [ { "algorithm": "sha-256", "digest": "4A:AD:B9:B1:3F:...:E5:7C:AB" }, { "algorithm": "sha-1", "digest": "74:E9:76:C8:19:...:F4:45:6B" } ] }
  • 60. Example of Identity Assertion (SDP) v=0 o=- 1181923068 1181923196 IN IP4 ua1.example.com s=example1 c=IN IP4 ua1.example.com a=fingerprint:sha-1 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB a=identity: eyJpZHAiOnsiZG9tYWluIjoiZXhhbXBsZS5vcmciLCJwcm90b2NvbCI6ImJvZ3Vz In0sImFzc2VydGlvbiI6IntcImlkZW50aXR5XCI6XCJib2JAZXhhbXBsZS5vcmdc IixcImNvbnRlbnRzXCI6XCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3l6XCIsXCJz aWduYXR1cmVcIjpcIjAxMDIwMzA0MDUwNlwifSJ9 a=... t=0 0 m=audio 6056 RTP/SAVP 0 a=sendrecv ...
  • 61. What about privacy? • You may have heard this many times... • “This site uses fake datachannels to locate me!” • “WebRTC leaks my real IP address even behind a VPN/proxy!” • Four specific modes for WebRTC behaviour 1 Enumerate all addresses (best media path, but most info disclosed) 2 Default route + associated local addresses (typically same route as HTTP traffic) 3 Default route only (quality implications) 4 Force proxy (reduced quality if proxy doesn’t support UDP) • Mode 1 only used in case of user consent, otherwise fallback to Mode 2 • What is consent, though? (using getUserMedia for that would be terrible...) • Hot debate the past few weeks on the RTCWEB mailing list WebRTC IP Address Handling Requirements • https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
  • 62. What about privacy? • You may have heard this many times... • “This site uses fake datachannels to locate me!” • “WebRTC leaks my real IP address even behind a VPN/proxy!” • Four specific modes for WebRTC behaviour 1 Enumerate all addresses (best media path, but most info disclosed) 2 Default route + associated local addresses (typically same route as HTTP traffic) 3 Default route only (quality implications) 4 Force proxy (reduced quality if proxy doesn’t support UDP) • Mode 1 only used in case of user consent, otherwise fallback to Mode 2 • What is consent, though? (using getUserMedia for that would be terrible...) • Hot debate the past few weeks on the RTCWEB mailing list WebRTC IP Address Handling Requirements • https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
  • 63. What about privacy? • You may have heard this many times... • “This site uses fake datachannels to locate me!” • “WebRTC leaks my real IP address even behind a VPN/proxy!” • Four specific modes for WebRTC behaviour 1 Enumerate all addresses (best media path, but most info disclosed) 2 Default route + associated local addresses (typically same route as HTTP traffic) 3 Default route only (quality implications) 4 Force proxy (reduced quality if proxy doesn’t support UDP) • Mode 1 only used in case of user consent, otherwise fallback to Mode 2 • What is consent, though? (using getUserMedia for that would be terrible...) • Hot debate the past few weeks on the RTCWEB mailing list WebRTC IP Address Handling Requirements • https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
  • 64. What about privacy? • You may have heard this many times... • “This site uses fake datachannels to locate me!” • “WebRTC leaks my real IP address even behind a VPN/proxy!” • Four specific modes for WebRTC behaviour 1 Enumerate all addresses (best media path, but most info disclosed) 2 Default route + associated local addresses (typically same route as HTTP traffic) 3 Default route only (quality implications) 4 Force proxy (reduced quality if proxy doesn’t support UDP) • Mode 1 only used in case of user consent, otherwise fallback to Mode 2 • What is consent, though? (using getUserMedia for that would be terrible...) • Hot debate the past few weeks on the RTCWEB mailing list WebRTC IP Address Handling Requirements • https://tools.ietf.org/html/draft-ietf-rtcweb-ip-handling
  • 65. Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) • Media security works “great” for peer-to-peer • What if I want to join a media conference, though? • Several approaches to conferencing • Full-mesh (everybody connects to everybody) • Multi-point Control Unit (MCU) → server! • Selective Forwarding Unit (SFU) → server! • Going through an SFU or MCU, you “see” the server, not the users Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) https://datatracker.ietf.org/wg/perc/charter/ • Ensure end-to-end confidentiality/authentication • No need to “trust” elements on the media path
  • 66. Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) • Media security works “great” for peer-to-peer • What if I want to join a media conference, though? • Several approaches to conferencing • Full-mesh (everybody connects to everybody) • Multi-point Control Unit (MCU) → server! • Selective Forwarding Unit (SFU) → server! • Going through an SFU or MCU, you “see” the server, not the users Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) https://datatracker.ietf.org/wg/perc/charter/ • Ensure end-to-end confidentiality/authentication • No need to “trust” elements on the media path
  • 67. Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) • Media security works “great” for peer-to-peer • What if I want to join a media conference, though? • Several approaches to conferencing • Full-mesh (everybody connects to everybody) • Multi-point Control Unit (MCU) → server! • Selective Forwarding Unit (SFU) → server! • Going through an SFU or MCU, you “see” the server, not the users Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) https://datatracker.ietf.org/wg/perc/charter/ • Ensure end-to-end confidentiality/authentication • No need to “trust” elements on the media path
  • 68. Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) • Media security works “great” for peer-to-peer • What if I want to join a media conference, though? • Several approaches to conferencing • Full-mesh (everybody connects to everybody) • Multi-point Control Unit (MCU) → server! • Selective Forwarding Unit (SFU) → server! • Going through an SFU or MCU, you “see” the server, not the users Private Media Requirements in Privacy Enhanced RTP Conferencing (PERC) https://datatracker.ietf.org/wg/perc/charter/ • Ensure end-to-end confidentiality/authentication • No need to “trust” elements on the media path
  • 69. Selective Forwarding Unit (SFU) https://webrtchacks.com/webrtc-beyond-one-one/
  • 70. Double Encryption with PERC Lite https://www.slideshare.net/alexpiwi5/perc-webrtc-e2e-media-encryption-with-sfu
  • 71. Prototyping PERC Lite with Janus http://www.meetecho.com/blog/meetecho-and-cosmo-strike-again-perc-lite-integration-in-janus/
  • 72. What else can PERC help with? • PERC originally conceived for multimedia conferencing • Double encryption to preserve end-to-end encryption properties • The same concept can be reused in other contexts, though • e.g., what about multimedia streaming and DRM via WebRTC? • Encrypted content can only be played if you have the right key • Played a bit with this in the Janus Record&Play feature • PERC Lite integration to preserve end-to-end encryption properties • Recording contains end-to-end encrypted RTP packets in .mjr file • Replay needs to happen in PERC Lite session with the original key • Ad-hoc tools to decrypt/encrypt recordings on the server side • Useful for having different keys for different sessions
  • 73. What else can PERC help with? • PERC originally conceived for multimedia conferencing • Double encryption to preserve end-to-end encryption properties • The same concept can be reused in other contexts, though • e.g., what about multimedia streaming and DRM via WebRTC? • Encrypted content can only be played if you have the right key • Played a bit with this in the Janus Record&Play feature • PERC Lite integration to preserve end-to-end encryption properties • Recording contains end-to-end encrypted RTP packets in .mjr file • Replay needs to happen in PERC Lite session with the original key • Ad-hoc tools to decrypt/encrypt recordings on the server side • Useful for having different keys for different sessions
  • 74. What else can PERC help with? • PERC originally conceived for multimedia conferencing • Double encryption to preserve end-to-end encryption properties • The same concept can be reused in other contexts, though • e.g., what about multimedia streaming and DRM via WebRTC? • Encrypted content can only be played if you have the right key • Played a bit with this in the Janus Record&Play feature • PERC Lite integration to preserve end-to-end encryption properties • Recording contains end-to-end encrypted RTP packets in .mjr file • Replay needs to happen in PERC Lite session with the original key • Ad-hoc tools to decrypt/encrypt recordings on the server side • Useful for having different keys for different sessions
  • 75. What else can PERC help with? • PERC originally conceived for multimedia conferencing • Double encryption to preserve end-to-end encryption properties • The same concept can be reused in other contexts, though • e.g., what about multimedia streaming and DRM via WebRTC? • Encrypted content can only be played if you have the right key • Played a bit with this in the Janus Record&Play feature • PERC Lite integration to preserve end-to-end encryption properties • Recording contains end-to-end encrypted RTP packets in .mjr file • Replay needs to happen in PERC Lite session with the original key • Ad-hoc tools to decrypt/encrypt recordings on the server side • Useful for having different keys for different sessions
  • 76. Encrypted recordings with Janus+PERC Lite https://ieeexplore.ieee.org/document/8169749/
  • 77. Encrypted recordings with Janus+PERC Lite https://ieeexplore.ieee.org/document/8169749/
  • 78. Encrypted recordings with Janus+PERC Lite https://ieeexplore.ieee.org/document/8169749/
  • 79. Encrypted recordings with Janus+PERC Lite https://ieeexplore.ieee.org/document/8169749/
  • 80. Encrypted recordings with Janus+PERC Lite https://ieeexplore.ieee.org/document/8169749/
  • 81. An interesting use case: SHINE • Secure Hybrid In Network caching Environment • Security and Content Rights Management • Satellite-assisted In Network Caching Systems https://artes.esa.int/projects/shine-secure-hybrid-network-caching-environment
  • 82. An interesting use case: SHINE • Secure Hybrid In Network caching Environment • Security and Content Rights Management • Satellite-assisted In Network Caching Systems https://artes.esa.int/projects/shine-secure-hybrid-network-caching-environment
  • 83. Thanks! Questions? Comments? Get in touch! • https://twitter.com/elminiero • https://twitter.com/meetecho • http://www.meetecho.com