Use of the IPv6 Flow Label as a Transport-Layer Nonce draft-blake-ipv6-flow-nonce-02 Steven Blake IETF 76 November 2009.

Slides:



Advertisements
Similar presentations
SIP, Firewalls and NATs Oh My!. SIP Summit SIP, Firewalls and NATs, Oh My! Getting SIP Through Firewalls Firewalls Typically.
Advertisements

CST Computer Networks NAT CST 415 4/10/2017 CST Computer Networks.
IPv6 – IPv4 Network Address, Port & Protocol Translation & Multithreaded DNS Gateway Navpreet Singh, Abhinav Singh, Udit Gupta, Vinay Bajpai, Toshu Malhotra.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 W. Schulte Chapter 5: Network Address Translation for IPv4  Connecting.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks Multipath.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Chapter 7: Transport Layer
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
Network Certification Preparation. Module - 1 Communication methods OSI reference model and layered communication TCP/IP model TCP and UDP IP addressing.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
Chapter 7 – Transport Layer Protocols
IP Spoofing Defense On the State of IP Spoofing Defense TOBY EHRENKRANZ and JUN LI University of Oregon 1 IP Spoofing Defense.
The Power of Explicit Congestion Notification Aleksandar Kuzmanovic Northwestern University
1 Internet Networking Spring 2004 Tutorial 13 LSNAT - Load Sharing NAT (RFC 2391)
Sanjay Goel, School of Business/Center for Information Forensics and Assurance University at Albany Proprietary Information 1 Unit Outline Information.
Transition Mechanisms for Ipv6 Hosts and Routers RFC2893 By Michael Pfeiffer.
FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. 6 Packet Filtering By Whitman, Mattord, & Austin© 2008 Course Technology.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #12 LSNAT - Load Sharing NAT (RFC 2391)
ECCP A Formally-Verified Migration Protocol For Mobile, Multi-Homed Hosts Matvey Arye Joint work with: Erik Nordström, Robert Kiefer Jennifer Rexford, Michael.
July 18th, th IETF Yokohama A Protocol for Anycast Address Resolving Shingo Ata, Osaka City University Hiroshi Kitamura,
Firewalls CS432. Overview  What are firewalls?  Types of firewalls Packet filtering firewalls Packet filtering firewalls Sateful firewalls Sateful firewalls.
Middleboxes & Network Appliances EE122 TAs Past and Present.
Support Protocols and Technologies. Topics Filling in the gaps we need to make for IP forwarding work in practice – Getting IP addresses (DHCP) – Mapping.
ICMP (Internet Control Message Protocol) Computer Networks By: Saeedeh Zahmatkesh spring.
Packet Filtering. 2 Objectives Describe packets and packet filtering Explain the approaches to packet filtering Recommend specific filtering rules.
1 Transport Layer Computer Networks. 2 Where are we?
1 IP: putting it all together Part 2 G53ACC Chris Greenhalgh.
Chapter 6: Packet Filtering
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
1 NAT Network Address Translation Motivation for NAT To solve the insufficient problem of IP addresses IPv6 –All software and hardware need to be updated.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 7: Transport Layer Introduction to Networking.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Chapter 5 Transport layer With special emphasis on Transmission Control Protocol (TCP)
1 Section 10.9 Internet Security Association and Key Management Protocol ISAKMP.
I. Basic Network Concepts. I.1 Networks Network Node Address Packet Protocol.
UNIT IP Datagram Fragmentation Figure 20.7 IP datagram.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
Chapter 6-2 the TCP/IP Layers. The four layers of the TCP/IP model are listed in Table 6-2. The layers are The four layers of the TCP/IP model are listed.
Inter-process communication: Socket. socket Internet socket From Wikipedia, the free encyclopedia Jump to: navigation,
Multimedia Wireless Networks: Technologies, Standards, and QoS Chapter 3. QoS Mechanisms TTM8100 Slides edited by Steinar Andresen.
CHAPTER 5 TCP/IP PROTOCOLS. P ROTOCOL STANDARDS Protocols are formal rules of behavior When computers communicate, it is necessary to define a set of.
Module 10: How Middleboxes Impact Performance
BAI513 - PROTOCOLS ARP BAIST – Network Management.
An end-to-end usage of the IPv6 flow label
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 11: Network Address Translation for IPv4 Routing And Switching.
1 Requirements for Internet Routers (Gateways) and Hosts Relates to Lab 3. (Supplement) Covers the compliance requirements of Internet routers and hosts.
IP addresses IPv4 and IPv6. IP addresses (IP=Internet Protocol) Each computer connected to the Internet must have a unique IP address.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
1 Lecture 13 IPsec Internet Protocol Security CIS CIS 5357 Network Security.
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
1 Network Address Translation. 2 Network Address Translation (NAT) Extension of original addressing scheme Motivated by exhaustion of IP address space.
1 Review – The Internet’s Protocol Architecture. Protocols, Internetworking & the Internet 2 Introduction Internet standards Internet standards Layered.
1 User Datagram Protocol. 2 Transport Protocols Provide logical communication between application processes running on different hosts Run on end hosts.
K. Salah1 Security Protocols in the Internet IPSec.
Draft-carpenter-v6ops-label-balance-02 Brian Carpenter Sheng Jiang (Speaker) Willy Tarreau March 2012 IPv6 Flow Label for Server Load Balancing - update.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Process-to-Process Delivery:
Lecture 13 IP V4 & IP V6. Figure Protocols at network layer.
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
IPv6 Flow Label Specification
TCP-in-UDP draft-welzl-irtf-iccrg-tcp-in-udp-00.txt
TCP Transport layer Er. Vikram Dhiman LPU.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
I. Basic Network Concepts
Firewalls.
Chapter 11: Network Address Translation for IPv4
Presentation transcript:

Use of the IPv6 Flow Label as a Transport-Layer Nonce draft-blake-ipv6-flow-nonce-02 Steven Blake IETF 76 November 2009

2 IPv6 Flow Label IPv6 introduced the concept of an internetworking-layer flow. Flow Label: 20 bit field in IPv6 header Flow identity defined as (RFC 3697)‏ We want to utilize the Flow Label as a per-connection nonce, to increase the work factor for off-path spoofing attackers. Randomization of Flow Label, SRCPORT, and ISN increases entropy to > 51 bits.

3 Hidden Agenda Flow label originally conceived to enable router optimizations: Simplified packet classification (i.e., less need to go digging past extension headers). It would be nice to be able to use the Flow Label as part of the ECMP load balancing key, for instance. Hosts won't automatically set non-zero Flow Label values for packets without some end-to-end incentives. This proposal provides one such incentive. Goal is to define the requirements in such a way that it does not preclude other flow label applications to be used simultaneously.

4 RFC 3697 Flow Label Rules Source MUST keep Flow Label constant for the duration of a flow. Flow Label MUST remain unchanged end-to-end. Source SHOULD assign each transport connection or application datastream to a unique flow. Source SHOULD select an unused Flow Label if not explicitly selected by an application. Flow Labels MUST be unique at a source host at any instant in time. Source MUST NOT reuse the same Flow Label to the same destination for a quarantine period after flow termination (>= 120 seconds).

5 Flow Label Nonce Use Each host assigns each transport connection to a flow. Host selects an outgoing Flow Label per-connection. Host records the incoming Flow Label from the peer and checks it against every received packet in the connection. Host silently discards packets with invalid Flow Labels. Excessive Flow Label errors SHOULD be logged. Scheme is incrementally deployable: If a destination does not check Flow Label, nothing broken (but attack resistance not improved). If source does not support this scheme, Flow Label = 0. Destination check will not fail.

6 Additional Flow Label Rules Host MUST assign each transport connection to a new flow. Host MUST be able to select unused Flow Labels when the application does not request a specific value. Flow Label MUST be practically unguessable (e.g., selected by a RFC 4086-compliant RNG). Host MUST clean-up flow state when cleaning up transport state. Quarantine period must be no less than the duration where transport state may linger (e.g., TIME_WAIT state).

7 Changes from -01 Clarified that this mechanism is mostly useless as a security mechanism for multicast. Corrected language regarding UDP-Lite: scheme is equally applicable for UDP and UDP-Lite. Added NAT considerations section. Added proposal for sub-flow support.

8 NAT Considerations Since when did we have to start worrying about NATs in IPv6? For stateless NAT mechanisms such as NAT66, GSE, etc.: There is no N:1 address multiplexing (on the outbound path, at least). Therefore, Flow Label values SHOULD NOT be changed by the NAT device. For an IPv6 NAPT (yuck), there will be address multiplexing: The flows emerging from the NAPT have to obey the same Flow Label rules as a host. Therefore, some Flow Label values may have to be modified, to avoid collisions.

9 Sub-flow Support One-ended approach to TCP multi-path does not change the receiver, but wants to set different Flow Label values on sub- flows, and use the Flow Label as part of the ECMP load balancing key, to split the sub-flows across multiple network paths. This will break if the receiver implements this proposal. Propose loosening the receiver behavior, so that it only checks the lower 16 bits of INCOMING_FLOW_ID. This allows the source host to split the traffic in a TCP connection across up to 16 Flow Label values, without breaking the receiver verification test. Not sure if this is such a great idea!

10 Further Work Examine applicability to SCTP, DCCP, and RTP (over UDP or DCCP). Suggestions welcome. Finish Linux prototype.

11 Backup‏

12 TCP Operation (1)‏ Client TCP stack selects OUTGOING_FLOW_ID at connection creation. Compute at same time as SRCPORT and ISN. Save OUTGOING_FLOW_ID in connection TCB. Client sends SYN with its OUTGOING_FLOW_ID. Server records SYN packet's Flow Label as INCOMING_FLOW_ID in connection TCB (ignoring SYN cache/cookie case here). Server selects OUTGOING_FLOW_ID (same procedure as client). Value can (but does not have to) equal INCOMING_FLOW_ID. Server sends SYN-ACK with its OUTGOING_FLOW_ID. Client records SYN_ACK packet's Flow Label as INCOMING_FLOW_ID in connection TCB.

13 TCP Operation (2)‏ Both ends always send packets with their OUTGOING_FLOW_ID. Both ends always check received packet's INCOMING_FLOW_ID. If the INCOMING_FLOW_ID check fails, silently discard the packet. When the connection closes, Flow Label cannot be reused to the same destination for MAX(2 x MSL, 120 sec).

14 Applicability to UDP Also useful for UDP & UDP-Lite, since they only have source port randomization as an obfuscation technique. Ex/ use Flow Label as nonce in DNS queries to protect against DNS cache poisoning attacks. DNS server sends the reply with the same Flow Label as used in the query. Client verifies the received Flow Label. Issues: UDP/IP stack does not have the equivalent of a TCP connection TCB (except for connected sockets). Ergo, setting/checking of Flow Label needs to happen in the application (above the socket API). No standard sockets API for setting/retrieving Flow Label.