IETF Security Architecture Update



Similar documents
RTCWEB Generic Identity Service

RTC-Web Security Considerations

MyIC setup and configuration (with sample configuration for Alcatel Lucent test environment)

NAT and Firewall Traversal with STUN / TURN / ICE

Cullen Jennings July 2015

FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

Building WebRTC Solutions with the Avaya WebRTC Collaboration Environment Snap-in. Joel Ezell Lead Architect, Collaboration Environment R&D

SIP Trunking Quick Reference Document

Low-rate TCP-targeted Denial of Service Attack Defense

Vesselin Tzvetkov, Holger Zuleger {vesselin.tzvetkov, Arcor AG&Co KG, Alfred-Herrhausen-Allee 1, Eschborn, Germany

NAT and Firewall Traversal. VoIP and MultiMedia /77

A Comparative Study of Signalling Protocols Used In VoIP

TECHNICAL CHALLENGES OF VoIP BYPASS

MITEL SIP CoE. Technical. Configuration Notes. Configure MCD 6.X for use with babytel SIP trunks. SIP CoE

FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

NAT and Firewall Traversal with STUN / TURN / ICE

Client Server Registration Protocol

Best Practices for SIP Security

Adding Multi-Homing and Dual-Stack Support to the Session Initiation Protocol

District of Columbia Courts Attachment 1 Video Conference Bridge Infrastructure Equipment Performance Specification

Guidance Regarding Skype and Other P2P VoIP Solutions

Application Notes for Avaya IP Office 7.0 Integration with Skype Connect R2.0 Issue 1.0

VoIP Security. Seminar: Cryptography and Security Michael Muncan

Technical Configuration Notes

SIP and VoIP 1 / 44. SIP and VoIP

Encapsulating Voice in IP Packets

How to Configure the NEC SV8100 for use with Integra Telecom SIP Solutions

Project Code: SPBX. Project Advisor : Aftab Alam. Project Team: Umair Ashraf (Team Lead) Imran Bashir Khadija Akram

Packet Level Authentication Overview

Secured Communications using Linphone & Flexisip

IxLoad: Advanced VoIP

Anat Bremler-Barr Ronit Halachmi-Bekel Jussi Kangasharju Interdisciplinary center Herzliya Darmstadt University of Technology

Session Border Controller

VOICE OVER IP SECURITY

Basic Vulnerability Issues for SIP Security

Voice Over IP. Priscilla Oppenheimer

OAuth Web Authorization Protocol Barry Leiba

Policy Management: The Avenda Approach To An Essential Network Service

Bridgit Conferencing Software: Security, Firewalls, Bandwidth and Scalability

Setting up a reflector-reflector interconnection using Alkit Reflex RTP reflector/mixer

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Voice over IP Communications

Op#mizing NAT and Firewall Keepalives using PCP

IP-Telephony Real-Time & Multimedia Protocols

Examining Proxies to Mitigate Pervasive Surveillance

Intro to Firewalls. Summary

Portal Authentication Technology White Paper

(Refer Slide Time: 6:17)

Application Notes for Configuring Intelepeer SIP Trunking with Avaya IP Office Issue 1.0

TLS and SRTP for Skype Connect. Technical Datasheet

Technical Configuration Notes

NAT Traversal for VoIP. Ai-Chun Pang Graduate Institute of Networking and Multimedia Dept. of Comp. Sci. and Info. Engr. National Taiwan University

User authentication in SIP

Security. Contents. S Wireless Personal, Local, Metropolitan, and Wide Area Networks 1

Semantic based Web Application Firewall (SWAF V 1.6) Operations and User Manual. Document Version 1.0

Application Notes for Configuring Avaya IP Office 9.0 with HIPCOM SIP Trunk Issue 1.0

Review: Lecture 1 - Internet History

Best Practices for Securing IP Telephony

Non-Cisco SIP phones setup

VoIP: Architectural Differences of SIP and MGCP/NCS Protocols and What It Means in Real World VoIP Service

Contents Introduction Why Fax over IP? How Real-time Fax over IP works Implementation with MessagePlus/Open Summary. About this document

Configuring a Mediatrix 500 / 600 Enterprise SIP Trunk SBC June 28, 2011

Security and the Mitel Teleworker Solution

Session Initiation Protocol (SIP) The Emerging System in IP Telephony

Application Note. Onsight Connect Network Requirements v6.3

Bit Chat: A Peer-to-Peer Instant Messenger

Unit 23. RTP, VoIP. Shyam Parekh

Communication Systems 16 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009

SIP: Ringing Timer Support for INVITE Client Transaction

Application Note. Onsight TeamLink And Firewall Detect v6.3

SHORT DESCRIPTION OF THE PROJECT...3 INTRODUCTION...4 MOTIVATION...4 Session Initiation Protocol (SIP)...5 Java Media Framework (JMF)...

Session Border Controller

VoIP QoS. Version 1.0. September 4, AdvancedVoIP.com. Phone:

This specification this document to get an official version of this User Network Interface Specification

SIP Trunking Application Notes V1.3

Securing SIP Trunks APPLICATION NOTE.

How To Use A Phone Over Ip (Phyto) For A Phone Call

Application Notes for BT Wholesale/HIPCOM SIP Trunk Service and Avaya IP Office 8.0 Issue 1.0

SIP : Session Initiation Protocol

COPYRIGHTED MATERIAL. Contents. Foreword. Acknowledgments

WebRTC: Why and How? FRAFOS GmbH. FRAFOS GmbH Windscheidstr. 18 Ahoi Berlin Germany

Mediatrix 4404 Step by Step Configuration Guide June 22, 2011

SIP: NAT and FIREWALL TRAVERSAL Amit Bir Singh Department of Electrical Engineering George Washington University

Wharf T&T Limited DDoS Mitigation Service Customer Portal User Guide

VoIP Server Reference


DOMIQ, SIP and Mobotix cameras

Computer Networks. Chapter 5 Transport Protocols

Communication Systems SSL

SIP Essentials Training

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

Architecture and Data Flow Overview. BlackBerry Enterprise Service Version: Quick Reference

1. Introduction. 2. DoS/DDoS. MilsVPN DoS/DDoS and ISP. 2.1 What is DoS/DDoS? 2.2 What is SYN Flooding?

Overview of VoIP Systems

MITEL SIP CoE Technical. Configuration Note. Configure MCD for use with Thinktel SIP Trunking Service. SIP CoE

Configuring SIP Trunk Failover in AOS

Transcription:

IETF Security Architecture Update IETF 84 Eric Rescorla ekr@rtfm.com IETF 84 RTCWEB Security Architecture 1

Overview Draft update Identity origin indication Consent freshness and ICE IETF 84 RTCWEB Security Architecture 2

Reviews Three reviews from Dan Druta, Richard Ejzack, Martin Thomson (on -01/-02) Your name here? Thanks! A few substantive issues and a lot of editorial ones Believe I have folded in all their comments IETF 84 RTCWEB Security Architecture 3

Changes since -02 Forbid persistent HTTP permissions. Clarified that IP Location Privacy is intended as protection against the other sides, not the site (S 5.4) Fold in the IETF portion of draft-rescorla-rtcweb-generic-idp Retarget the continuing consent section to assume Binding Requests (more on this shortly) IETF 84 RTCWEB Security Architecture 4

IP Location Privacy A side effect of the default ICE behavior is that the peer learns one s IP address, which leaks large amounts of location information, especially for mobile devices. This has negative privacy consequences in some circumstances. The following two API requirements in this section are intended to mitigate this issue: issue. Note that these requirements are NOT intended to protect the user s IP address from a malicious site. In general, the site will learn at least a user s server reflexive address from any HTTP transaction. Rather, these requirements are intended to allow a site to cooperate with the user to hide the user s IP address from the other side of the call. Hiding the user s IP address from the server requires some sort of explicit privacy preserving mechanism on the client (e.g., Torbutton [https://www.torproject.org/torbutton/]) and is out of scope for this specification. (S 5.4) IETF 84 RTCWEB Security Architecture 5

Identity Origin Detection Issue raised in discussions with W3C people A correct IdP identity assertion needs to be bound to the PeerConnection Otherwise malicious JS could instantiate the IdP proxy and get their own assertion Currently this requirement is levied on the IdP postmessage() messages must come from an origin starting with rtcweb:// Which can t be reproduced by ordinary content This works but is not very flexible And is a pain for the IdP IETF 84 RTCWEB Security Architecture 6

Proposed change Move verification from IdP to the PeerConnection (RP) Require assertions to carry an requesting_origin field Contains the origin of the postmessage() message In this case would be rtcweb://peerconnection [TBD] This would be passed to the receiving PeerConnection by the IdP Checked by the receiving PeerConnection Which would enforce the right value IETF 84 RTCWEB Security Architecture 7

Example { } "type":"success", "id":1, "message": { "idp":{ "domain": "example.org" "protocol": "bogus" }, "requesting_origin" : "rtcweb://peerconnection", // NEW "assertion": "..." // opaque } IETF 84 RTCWEB Security Architecture 8

Communications Consent Overview Consensus to use ICE for initial consent Sufficient for prevention of cross-protocol attack Not so great protection against packet-based DoS Open issues Binding Request versus new STUN method for continuing consent Timer settings Should we limit sender rate? What about simulated forking? IETF 84 RTCWEB Security Architecture 9

Consent Freshness As specified, ICE only checks at start of session Keepalives just keep the NAT binding open But aren t confirmed Or authenticated What if I no longer wish to receive traffic? General agreement, some sort of keepalive Check every X seconds If I don t receive a keepalive after Y seconds must stop transmitting Can re-start ICE if needed IETF 84 RTCWEB Security Architecture 10

What method to use? draft-muthu-01 Defines a new ICE method Simple request/response No username/password or message integrity Why not just use STUN binding Request? Binding requests require integrity checks One of the reasons for ICE choosing STUN Binding indications for keepalives is because Binding indication allows integrity to be disabled, allowing for better performance. This is useful for large- scale endpoints, such as PSTN gateways and SBCs as described in Appendix B section B.10 of the ICE specification. IETF 84 RTCWEB Security Architecture 11

Is a MAC needed? ICE Binding Requests are authenticated with a MAC Based on ufrag and password Consent as currently specified does not have a MAC All security is from the 96-bit STUN transaction ID... must be pseudorandomly generated This is plenty of security against an off-path attacker Without MAC, on-path attacker can simulate consent even if the victim is not responding MAC requires attacker to have username and password as well Not clear if there is a concrete attack that requires MAC IETF 84 RTCWEB Security Architecture 12

... But ICE implementations already need to implement Binding Requests Though Binding Indications are used for keepalives, an agent MUST be prepared to receive a connectivity check as well. If a connectivity check is received, a response is generated as discussed in [RFC5389], but there is no impact on ICE processing otherwise. [RFC 5245; Section 10] So Binding Requests will work better with non-rtcweb equipment IETF 84 RTCWEB Security Architecture 13

Duration of Unwanted Traffic/Timer Settings Assume we have initial consent and we re-check every T c seconds On average next check will be at T c /2 (worst case T c ) With RFC 5389 parameters, a transaction fails after 39500 ms This seems awful long Consensus at interim to shorten these parameters This is just a profile of ICE parameters IETF 84 RTCWEB Security Architecture 14

Shorter STUN timers RFC 5389 has configurable values Rc, Rm Proposal: Rc = 5, Rm = 4. Use measured RTO, minimum 200ms Example: Packets transmitted at 0, 200, 600, 1400, 3000; transaction fails at 4600ms Rationale If our RTT is > 5s, that s not going to be a very good user experience IETF 84 RTCWEB Security Architecture 15

A related problem: liveness testing Applications want to detect connection failure This needs to happen on a shorter time scale than consent How much dead air will people tolerate? (< 5seconds) Proposal: configurable minimal received traffic spacing If no packet is received in that time, send a Binding Request Application failure signaled on Binding Request failure IETF 84 RTCWEB Security Architecture 16

Why not RTCP for liveness? We want to do liveness testing for non-rtcweb peers Regrettably some of these do not do RTCP Design goal: get liveness without help of other side So just RTCP isn t enough But is counted as part of traffic spacing IETF 84 RTCWEB Security Architecture 17

Combined Consent/Liveness Both checks done via binding requests Consent timer: T c (default = 20s, no more than 30s) Packet receipt timer: T r (no less than 500ms); configurable When either timer expires start a STUN transaction When a STUN transaction succeeds, re-start both timers When a STUN transaction fails If transaction was started by T c, stop sending, abort... else, notify application of failure, but keep sending T r is also reset by receiving any packet from the other side This is what is in current draft-muthu-01 IETF 84 RTCWEB Security Architecture 18

What API points do we need? Ability to set keepalive frequency (individually on each stream?) A consent transaction has failed and so I am not transmitting on stream M A liveness check has failed on stream M IETF 84 RTCWEB Security Architecture 19

Proposed API // Do a liveness check every 500ms and call callback if it fails pc.setlivenesscheck(500, m, function(m) { // media stream m has apparently failed }); // pc.onstreamfailed = function(m) { // media steam consent check has failed } Would a constraint + event combination be better? IETF 84 RTCWEB Security Architecture 20

DoS via Excessive Traffic [Thomson and others] IETF 84 RTCWEB Security Architecture 21

Why does this work? ICE only verifies connectivity But anything can be sent over that channel SDP parameters are under the control of the attacker And that is what controls bit rate IETF 84 RTCWEB Security Architecture 22

No user consent required (?) We just need a source of high bandwidth data We (probably) can t use a datachannel because it s congestion controlled And the sequence numbers are unpredictable (allegedly) But media probably is not It s not video that requires user consent... but access to the camera Set up a bogus MediaStream blob that generates continuous patterns Use it to source the data This shouldn t trigger consent dialogs IETF 84 RTCWEB Security Architecture 23

How serious is this issue? Basically another version of voice hammer Short duration If we have consent freshness then < 1 minute But very scalable I can mount this using an ad network or any other traffic fishing system No user consent required Not self-throttling (unlike HTTP-based attacks) IETF 84 RTCWEB Security Architecture 24

Defenses against bandwidth attacks Bandwidth indications in the SDP This won t work Attacker controls the SDP Bandwidth indications in ICE checks This will work How do we deal with non-rtcweb peers? Assume infinite bandwidth? Assume finite bandwidth? If so, what? Arguably this is overkill Proposal: Live with it between consent checks IETF 84 RTCWEB Security Architecture 25

Simulated Forking [Westerlund] IETF 84 RTCWEB Security Architecture 26

Proposed Solutions Rate limit the number of outstanding ICE connections you respond to? Based on unique ufrag/passwords If using DTLS you can rate limit the number of DTLS associations Not clear that this is better than ICE Proposal: guidance to servers on rate limiting IETF 84 RTCWEB Security Architecture 27