Securing Internet Communication: TLS, cont d Network security. CS 161: Computer Security Prof. Raluca Ada Popa

Similar documents
Networking Overview: Everything you need to know, in 50 minutes. CS 161: Computer Security Prof. David Wagner

Networking Overview. CS 161: Computer Security Prof. Vern Paxson. TAs: Jethro Beekman, Mobin Javed, Antonio Lupher, Paul Pearce & Matthias Vallentin

Network Security Issues, Part 1

Securing Internet Communication: TLS

Networking Overview. CS Computer Security Profs. Vern Paxson & David Wagner

Securing Internet Communication

Network Attacks. CS Computer Security Profs. Vern Paxson & David Wagner

Network Attacks. CS Computer Security. Once again thanks to Vern Paxson and David Wagner

CS 161 Computer Security

Networking Overview: Everything you need to know, in 50 minutes

Weaver. Computer Science 161 Fall Network Security 3

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

Internet Protocol and Transmission Control Protocol

ARP, IP, TCP, UDP. CS 166: Introduction to Computer Systems Security 4/7/18 ARP, IP, TCP, UDP 1

Lecture 6. Internet Security: How the Internet works and some basic vulnerabilities. Thursday 19/11/2015

Networking Background

Introduction to Network. Topics

ELEC5616 COMPUTER & NETWORK SECURITY

ECE 435 Network Engineering Lecture 9

Network Security. Thierry Sans

CS457 Transport Protocols. CS 457 Fall 2014

ECE 650 Systems Programming & Engineering. Spring 2018

User Datagram Protocol

20-CS Cyber Defense Overview Fall, Network Basics

Introduction to Networks and the Internet

ECE4110 Internetwork Programming. Introduction and Overview

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer

Layer 4: UDP, TCP, and others. based on Chapter 9 of CompTIA Network+ Exam Guide, 4th ed., Mike Meyers

EE 122: IP Forwarding and Transport Protocols

Goal of Today s Lecture. EE 122: Designing IP. The Internet Hourglass. Our Story So Far (Context) Our Story So Far (Context), Con t

Announcements. Designing IP. Our Story So Far (Context) Goals of Today s Lecture. Our Story So Far (Context), Con t. The Internet Hourglass

R (2) Implementation of following spoofing assignments using C++ multi-core Programming a) IP Spoofing b) Web spoofing.

Goals for Today s Class. EE 122: Networks & Protocols. What Global (non-digital) Communication Network Do You Use Every Day?

Introduction to TCP/IP networking

Lecture 8. Basic Internetworking (IP) Outline. Basic Internetworking (IP) Basic Internetworking (IP) Service Model

CSE/EE 461 Lecture 13 Connections and Fragmentation. TCP Connection Management

network security s642 computer security adam everspaugh

ECE 435 Network Engineering Lecture 10

Outline. What is TCP protocol? How the TCP Protocol Works SYN Flooding Attack TCP Reset Attack TCP Session Hijacking Attack

Lecture 8. Reminder: Homework 3, Programming Project 2 due on Thursday. Questions? Tuesday, September 20 CS 475 Networks - Lecture 8 1

Attacks on DNS: Risks of Caching

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Lecture 33. Firewalls. Firewall Locations in the Network. Castle and Moat Analogy. Firewall Types. Firewall: Illustration. Security April 15, 2005

EEC-682/782 Computer Networks I

Introduction to Internet. Ass. Prof. J.Y. Tigli University of Nice Sophia Antipolis

Examination 2D1392 Protocols and Principles of the Internet 2G1305 Internetworking 2G1507 Kommunikationssystem, fk SOLUTIONS

Networking interview questions

QUIZ: Longest Matching Prefix

Internet Infrastructure

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Computer Forensics: Investigating Network Intrusions and Cybercrime, 2nd Edition. Chapter 2 Investigating Network Traffic

Lecture 16: Network Layer Overview, Internet Protocol

TCP Service Model. Today s Lecture. TCP Support for Reliable Delivery. EE 122:TCP, Connection Setup, Reliability

Introduction to Information Science and Technology 2017 Networking II. Sören Schwertfeger 师泽仁

CSE 127: Computer Security Network Security. Kirill Levchenko

Network Security. Evil ICMP, Careless TCP & Boring Security Analyses. Mohamed Sabt Univ Rennes, CNRS, IRISA Thursday, October 4th, 2018

TCP /IP Fundamentals Mr. Cantu

UDP and TCP. Introduction. So far we have studied some data link layer protocols such as PPP which are responsible for getting data

CS4450. Computer Networks: Architecture and Protocols. Lecture 13 THE Internet Protocol. Spring 2018 Rachit Agarwal

CSE 565 Computer Security Fall 2018

Reliable Transport I: Concepts and TCP Protocol

Sequence Number. Acknowledgment Number. Checksum. Urgent Pointer plus Sequence Number indicates end of some URGENT data in the packet

CIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 8

CS419: Computer Networks. Lecture 10, Part 2: Apr 11, 2005 Transport: TCP mechanics (RFCs: 793, 1122, 1323, 2018, 2581)

CSC 574 Computer and Network Security. TCP/IP Security

Network Control, Con t

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

CSE 461 The Transport Layer

Introduction to Computer Security

Multiple unconnected networks

Data Security and Privacy. Topic 14: Authentication and Key Establishment

CS4700/CS5700 Fundamentals of Computer Networks

precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet protocol (bottom level)

Reliable Transport I: Concepts and TCP Protocol

Single Network: applications, client and server hosts, switches, access links, trunk links, frames, path. Review of TCP/IP Internetworking

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

Announcements. IP Forwarding & Transport Protocols. Goals of Today s Lecture. Are 32-bit Addresses Enough? Summary of IP Addressing.

CS 640 Introduction to Computer Networks Spring 2009

OSI Session / presentation / application Layer. Dr. Luca Allodi - Network Security - University of Trento, DISI (AA 2015/2016)

Internet Technology 3/2/2016

AN TOÀN LỚP 4: TCP/IP ATTACKS NGUYEN HONG SON PTITHCM

The Transport Layer. Part 1

Overview of SSL/TLS. Luke Anderson. 12 th May University Of Sydney.

Sirindhorn International Institute of Technology Thammasat University

IP Packet Switching. Goals of Todayʼs Lecture. Simple Network: Nodes and a Link. Connectivity Links and nodes Circuit switching Packet switching

Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ

On the Internet, nobody knows you re a dog.

Network Security - ISA 656 IPsec IPsec Key Management (IKE)

NWEN 243. Networked Applications. Layer 4 TCP and UDP

CSCI-GA Operating Systems. Networking. Hubertus Franke

CSE 461: Computer Networks John Zahorjan Justin Chan Rajalakshmi Nandkumar CJ Park

Endpoint Security - what-if analysis 1

ECE 4450:427/527 - Computer Networks Spring 2017

CSc 466/566. Computer Security. 18 : Network Security Introduction

CS164 Final Exam Winter 2013

EE 122: Transport Protocols. Kevin Lai October 16, 2002

TCP TCP/IP: TCP. TCP segment. TCP segment. TCP encapsulation. TCP encapsulation 1/25/2012. Network Security Lecture 6

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

Configuring attack detection and prevention 1

Transcription:

Securing Internet Communication: TLS, cont d Network security CS 161: Computer Security Prof. Raluca Ada Popa Feb 27, 2018 Some slides credit David Wagner

Announcements Midterm grades released Regrades: Read the follow-ups on the threads to make sure your regrade request is somewhat warranted. No public repos for projects DSP letters Midterm 2 will be the Wed after spring break (Apr 4). Project 2 is live, it has 3 parts. Prizes given! Do not cheat. We have good tools and caught students already. Intro to Networking session Tuesday 8-10 at the Woz.

Certificates Browser compares domain name in cert w/ URL Note: this provides an end-to-end property (as opposed to say a cert associated with an IP address) Browser accesses separate cert belonging to issuer These are hardwired into the browser and trusted! There could be a chain of these Browser applies issuer s public key to verify signature S, obtaining hash of what issuer signed Compares with its own SHA-256 hash of Amazon s cert Assuming hashes match, now have high confidence it s indeed Amazon assuming signatory is trustworthy = assuming didn t lose private key; assuming didn t sign thoughtlessly

Certificates Want to use root CA as little as possible, access to the root key should be very infrequent Certificate chain: Verisign can give a certificate to Google for google.com Google can issue a certificate for finance.google.com

End-to-End Powerful Protections Attacker runs a sniffer to capture our WiFi session? (maybe by breaking crummy WEP security) But: encrypted communication is unreadable No problem! DNS cache poisoning gives client wrong IP address Client goes to wrong server But: detects impersonation No problem! Attacker hijacks our connection, injects new traffic But: data receiver rejects it due to failed integrity check No problem!

Powerful Protections, cont. Attacker manipulates routing to run us by an eavesdropper or take us to the wrong server? But: they can t read; we detect impersonation No problem! Attacker slips in as a Man In The Middle? But: they can t read, they can t inject They can t even replay previous encrypted traffic No problem!

Validating Amazon s Identity, cont. Browser retrieves cert belonging to the issuer These are hardwired into the browser and trusted! What if browser can t find a cert for the issuer?

Validating Amazon s Identity, cont. Browser retrieves cert belonging to the issuer These are hardwired into the browser and trusted! What if browser can t find a cert for the issuer? If it can t find the cert, then warns the user that site has not been verified Can still proceed, just without authentication Q: Which end-to-end security properties do we lose if we incorrectly trust that the site is whom we think? A: All of them! Goodbye confidentiality, integrity, authentication Man in the middle attacker can read everything, modify, impersonate

SSL / TLS Limitations Properly used, SSL / TLS provides powerful end-to-end protections So why not use it for everything?? Issues: Cost of public-key crypto (fairly minor) o Takes non-trivial CPU processing (but today a minor issue) o Note: symmetric key crypto on modern hardware is non-issue Hassle of buying/maintaining certs (fairly minor)

SSL / TLS Limitations Properly used, SSL / TLS provides powerful end-to-end protections So why not use it for everything?? Issues: Cost of public-key crypto (fairly minor) o Takes non-trivial CPU processing (but today a minor issue) o Note: symmetric key crypto on modern hardware is non-issue Hassle of buying/maintaining certs (fairly minor) Integrating with other sites that don t use HTTPS Latency: extra round trips 1st page slower to load

SSL / TLS Limitations, cont. Problems that SSL / TLS does not take care of? TCP-level denial of service SYN flooding RST injection o (but does protect against data injection!) SQL injection / XSS / server-side coding/logic flaws Vulnerabilities introduced by server inconsistencies

SSL / TLS Limitations, cont. Problems that SSL / TLS does not take care of? SQL injection / XSS / server-side coding/logic flaws Vulnerabilities introduced by server inconsistencies

Regular web surfing: http: URL So no integrity - a MITM attacker can alter pages returned by server And when we click here attacker has changed the corresponding link so that it s ordinary http rather than https! We never get a chance to use TLS s protections! :-( sslstrip attack

SSL / TLS Limitations, cont. Problems that SSL / TLS does not take care of? SQL injection / XSS / server-side coding/logic flaws Vulnerabilities introduced by server inconsistencies Browser coding/logic flaws User flaws Weak passwords Phishing Issues of trust

TLS/SSL Trust Issues User has to make correct trust decisions

The equivalent as seen by most Internet users: (note: an actual Windows error message!)

TLS/SSL Trust Issues, cont. Commercial certificate authorities protect you from anyone from whom they are unwilling to take money. Matt Blaze, circa 2001 So how many CAs do we have to worry about, anyway?

TLS/SSL Trust Issues Commercial certificate authorities protect you from anyone from whom they are unwilling to take money. Matt Blaze, circa 2001 So how many CAs do we have to worry about, anyway? Of course, it s not just their greed that matters

This appears to be a fully valid cert using normal browser validation rules. Only detected by Chrome due to its recent introduction of cert pinning requiring that certs for certain domains must be signed by specific CAs rather than any generally trusted CA

TLS/SSL Trust Issues Commercial certificate authorities protect you from anyone from whom they are unwilling to take money. Matt Blaze, circa 2001 So how many CAs do we have to worry about, anyway? Of course, it s not just their greed that matters and it s not just their diligence & security that matters A decade ago, I observed that commercial certificate authorities protect you from anyone from whom they are unwilling to take money. That turns out to be wrong; they don't even do that much. - Matt Blaze, circa 2010

Conclusion Use SSL/TLS to secure communications end-to-end Relies on trustworthiness of certificates

Network Security - intro to networking - network attacks CS 161: Computer Security Prof. Raluca Ada Popa February 27, 2018 Some slides credit David Wagner.

Networking overview Pay attention to this material (part of 168) because you will need this to understand it for the class There will be a review session too

Local-Area Networks A point-to-point C shared How does computer A send a message to computer C? 37

Local-Area Networks (LAN): Packets Source: A Destination: C Message: Hello world! A C A Hello world! C Hello world! 38

Wide-Area Networks A router How do we connect two LANs? C 39

Wide-Area Networks A A R A.com C.com Hello world! R do we connect two C LANs? How router C A.com C.com Hello world! A.com Hello world! C.com 40

Key Concept #1: Protocols A protocol is an agreement on how to communicate Includes syntax and semantics How a communication is specified & structured o Format, order messages are sent and received What a communication means o Actions taken when transmitting, receiving, or timer expires Example: making a comment in lecture? 1. 2. 3. 4. Raise your hand. Wait to be called on. Or: wait for speaker to pause and vocalize If unrecognized (after timeout): say excuse me 41

Key Concept #2: Dumb Network Original Internet design: interior nodes ( routers ) have no knowledge* of ongoing connections going through them Not how you picture the telephone system works Which internally tracks all of the active voice calls Instead: the postal system! * Each Internet message ( packet ) self-contained Interior routers look at destination address to forward If you want smarts, build it end-to-end, not hop-by-hop Buys simplicity & robustness at the cost of shifting complexity into end systems Today s Internet is full of hacks that violate this 42

Self-Contained IP Packet Format IP = Internet Protocol 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 16-bit Total Length (Bytes) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 8-bit Protocol 13-bit Fragment Offset 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Payload (remainder of message)..... Header is like a letter envelope: contains all info needed for delivery

Key Concept #2: Dumb Network Original Internet design: interior nodes ( routers ) have no knowledge* of ongoing connections going through them Not: how you picture the telephone system works Which internally tracks all of the active voice calls Instead: the postal system! * Each Internet message ( packet ) self-contained Interior routers look at destination address to forward If you want smarts, build it end-to-end, not hop-by-hop Buys simplicity & robustness at the cost of shifting complexity into end systems Today s Internet is full of hacks that violate this 44

Key Concept #3: Layering Internet design is strongly partitioned into layers Each layer relies on services provided by next layer below and provides services to layer above it Analogy: Consider structure of an application you ve written and the services each layer relies on / provides Code You Write Run-Time Library System Calls Device Drivers Voltage Levels / Magnetic Domains Fully isolated from user programs } 45

Internet Layering ( Protocol Stack ) Note on a point of potential confusion: these diagrams are always drawn with lower layers below higher layers 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical But diagrams showing the layouts of packets are often the opposite, with the lower layers at the top since their headers precede those for higher layers 46

Horizontal View of a Single Packet First bit transmitted Link Layer Header (Inter)Network Layer Header (IP) Transport Layer Header Application Data: structure depends on the application 47

Vertical View of a Single Packet Link Layer Header First bit transmitted (Inter)Network Layer Header (IP) Transport Layer Header Application Data: structure depends on the application....... 48

Internet Layering ( Protocol Stack ) 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical 49

Layer 1: Physical Layer 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Encoding bits to send them over a single physical link e.g. patterns of voltage levels / photon intensities / RF modulation 50

Layer 2: Link Layer 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Framing and transmission of a collection of bits into individual messages sent across a single subnetwork (one physical technology) Might involve multiple physical links (e.g., modern Ethernet) Often technology supports broadcast transmission (every node connected to subnet receives) 51

Layer 3: (Inter)Network Layer (IP) Bridges multiple subnets to provide end-to-end internet connectivity between nodes 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Provides global addressing Works across different link technologies } Different for each Internet hop 52

Layer 4: Transport Layer End-to-end communication between processes 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Different services provided: TCP = reliable byte stream UDP = unreliable datagrams (Datagram = single packet message) 53

Layer 7: Application Layer Communication of whatever you wish 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Can use whatever transport(s) is convenient Freely structured E.g.: Skype, SMTP (email), HTTP (Web), Halo, BitTorrent 54

Internet Layering ( Protocol Stack ) 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Implemented only at hosts, not at interior routers ( dumb network ) } 55

Internet Layering ( Protocol Stack ) 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical } Implemented everywhere 56

Internet Layering ( Protocol Stack ) 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical } ~Same for each Internet hop } Different for each Internet hop 57

Hop-By-Hop vs. End-to-End Layers Host A communicates with Host D Host C Host D Host A Router 1 Router 2 Router 3 Router 5 Host B Router 6 Router 7 Host E Router 4 58

Hop-By-Hop vs. End-to-End Layers Host A communicates with Host D Host C Host D Host A Router 1 Router 2 E.g., Ethernet Router 3 E.g., Wi-Fi Router 5 Host B Router 6 Router 7 Host E Router 4 Different Physical & Link Layers (Layers 1 & 2) 59

Hop-By-Hop vs. End-to-End Layers Host A communicates with Host D Host C Host D Host A Router 1 Router 2 Router 3 Router 5 E.g., HTTP over TCP over IP Host B Router 6 Router 7 Host E Router 4 Same Network / Transport / Application Layers (3/4/7) (Routers ignore Transport & Application layers) 60

Layer 3: (Inter)Network Layer (IP) Bridges multiple subnets to provide end-to-end internet connectivity between nodes 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Provides global addressing Works across different link technologies 61

IP Packet Structure 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

IP Packet Structure 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset Specifies the length of the entire IP packet: bytes in this header 16-bit Header Checksum plus bytes in the Payload 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

IP Packet Structure 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset Specifies how to interpret the start of the Payload, which is 16-bit the Header headerchecksum of a Transport Protocol such as TCP or UDP 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

IP Packet Structure 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

IP Packet Header (Continued) Two IP addresses Source IP address (32 bits) Destination IP address (32 bits) Destination address Unique identifier/locator for the receiving host Allows each node to make forwarding decisions Source address Unique identifier/locator for the sending host Recipient can decide whether to accept packet Enables recipient to send a reply back to source 66

Postal Envelopes: (Post office doesn t look at the letter inside the envelope) 67

Analogy of IP to Postal Envelopes: IP source address IP destination address (Routers don t look at the payload beyond the IP header) 68

IP: Best Effort Packet Delivery Routers inspect destination address, locate next hop in forwarding table Address = ~unique identifier/locator for the receiving host Only provides a I ll give it a try delivery service: Packets may be lost Packets may be corrupted Packets may be delivered out of order source destination IP network 69

Best Effort is Lame! What to do? It s the job of our Transport (layer 4) protocols to build services our apps need out of IP s modest layer-3 service 70

Layer 4: Transport Layer End-to-end communication between processes 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Different services provided: TCP = reliable byte stream UDP = unreliable datagrams (Datagram = single packet message) 71

Best Effort is Lame! What to do? It s the job of our Transport (layer 4) protocols to build services our apps need out of IP s modest layer-3 service #1 workhorse: TCP (Transmission Control Protocol) Service provided by TCP: Connection oriented (explicit set-up / tear-down) o End hosts (processes) can have multiple concurrent long-lived communication Reliable, in-order, byte-stream delivery o Robust detection & retransmission of lost data 72

TCP Bytestream Service Process A on host H1 Byte 80 Byte 3 Byte 2 Byte 1 Byte 0 Hosts don t ever see packet boundaries, lost or corrupted packets, retransmissions, etc. Byte 80 Byte 3 Byte 2 Byte 1 Byte 0 Process B on host H2 73

Bidirectional communication: Process B on host H2 Byte 73 Byte 3 Byte 2 Byte 1 Byte 0 There are two separate bytestreams, one in each direction Byte 73 Byte 3 Byte 2 Byte 1 Byte 0 Process A on host H1 74

TCP Header Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 75

TCP Header Ports are associated with OS processes Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 76

TCP Header (Link Layer Header) (IP Header) Ports are associated with OS processes Source port Destination port Sequence number Acknowledgment IP source & destination addresses plus TCP source and destination ports uniquely identifies a TCP connection HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 77

TCP Header Ports are associated with OS processes Source port Destination port Sequence number Acknowledgment IP source & destination addresses plus TCP source and destination ports uniquely identifies a TCP connection Some port numbers are well known / reserved e.g. port 80 = HTTP HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 78

TCP Header Starting sequence number (byte offset) of data carried in this packet Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 79

TCP Header Starting sequence number (byte offset) of data carried in this packet Byte streams numbered independently in each direction Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 80

TCP Header Starting sequence number (byte offset) of data carried in this packet Byte stream numbered independently in each direction Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data Sequence number assigned to start of byte stream is picked when connection begins; doesn t start at 0 81

TCP Header Source port Acknowledgment gives seq # just beyond highest seq. received in order. Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum If sender sends N bytestream bytes starting at seq S then ack for it will be S+N. Urgent pointer Options (variable) Data 82

Sequence Numbers Host A ISN (initial sequence number) Sequence number from A = 1st byte of data TCP HDR ACK sequence number from B = next expected byte TCP Data TCP HDR TCP Data Host B 83

TCP Header Source port Sequence number Uses include: acknowledging data ( ACK ) setting up ( SYN ) and closing connections ( FIN and RST ) Destination port Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 84

Establishing a TCP Connection A B SYN CK SYN+A ACK Data Data Each host tells its Initial Sequence Number (ISN) to the other host. (Spec says to pick based on local clock) Three-way handshake to establish connection Host A sends a SYN (open; synchronize sequence numbers ) to host B Host B returns a SYN acknowledgment (SYN+ACK) Host A sends an ACK to acknowledge the SYN+ACK 85

Timing Diagram: 3-Way Handshaking Passive Open Different starting initial sequence numbers (ISNs) in each direction Active Open Server listen() Client (initiator) connect() SYN, Seq Num = x ck = x A, y = m qnu +1 K, Se SYN + AC ACK, Ack =y+1 accept() 86

Layer 7: Application Layer Communication of whatever you wish 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Can use whatever transport(s) is convenient Freely structured E.g.: Skype, SMTP (email), HTTP (Web), Halo, BitTorrent 87

Web (HTTP) Request Method Resource HTTP version Headers GET /index.html HTTP/1.1 Accept: image/gif, image/x-bitmap, image/jpeg, */* Accept-Language: en Connection: Keep-Alive User-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) Host: www.example.com Referer: http://www.google.com?q=dingbats Blank line Data (if POST; none for GET) GET: download data. POST: upload data.

Web (HTTP) Response HTTP version Status code Reason phrase Headers HTTP/1.0 200 OK Date: Sun, 19 Apr 2009 02:20:42 GMT Server: Microsoft-Internet-Information-Server/5.0 Connection: keep-alive Content-Type: text/html Last-Modified: Sat, 18 Apr 2009 17:39:05 GMT Set-Cookie: session=44eb; path=/servlets Content-Length: 2543 <HTML> Some data... blah, blah, blah </HTML> Data

Host Names vs. IP addresses Host names Examples: www.cnn.com and bbc.co.uk Mnemonic name appreciated by humans Variable length, full alphabet of characters Provide little (if any) information about location IP addresses Examples: 64.236.16.20 and 212.58.224.131 Numerical address appreciated by routers Fixed length, binary number Hierarchical, related to host location 90

Networking Attacks: Link-, IP-, and TCP-layer attacks

General Communication Security Goals: CIA Confidentiality: No one can read our data / communication unless we want them to Integrity No one can manipulate our data / processing / communication unless we want them to Availability We can access our data / conduct our processing / use our communication capabilities when we want to 92

No security built in at the network level Everything you have seen in this lecture is just plaintext, to integrity attached to it so an attacker can easily spoof packets at multiple levels TLS will give application level security 93

Link-layer threats Confidentiality: eavesdropping (aka sniffing) Integrity: injection of spoofed packets Availability: delete legit packets (e.g., jamming) 94

Layers 1 & 2: General Threats? 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Framing and transmission of a collection of bits into individual messages sent across a single subnetwork (one physical technology) Encoding bits to send them over a single physical link e.g. patterns of voltage levels / photon intensities / RF modulation 95

Eavesdropping For subnets using broadcast technologies (e.g., WiFi, some types of Ethernet), eavesdropping comes for free Each attached system s NIC (= Network Interface Card) can capture any communication on the subnet Some handy tools for doing so o tcpdump / windump (low-level ASCII printout) o Wireshark (GUI for displaying 800+ protocols) 96

TCPDUMP: Packet Capture & ASCII Dumper 97

Wireshark: GUI for Packet Capture/Exam. 98

Wireshark: GUI for Packet Capture/Exam. 99

Wireshark: GUI for Packet Capture/Exam. 100

Stealing Photons 101

102

Link-Layer Threat: Disruption If attacker sees a packet he doesn t like, he can jam it (integrity) Attacker can also overwhelm link-layer signaling, e.g., jam WiFi s RF (denial-of-service) 103

Link-Layer Threat: Disruption If attacker sees a packet he doesn t like, he can jam it (integrity) Attacker can also overwhelm link-layer signaling, e.g., jam WiFi s RF (denial-of-service) There s also the heavy-handed approach 104

105

Link-Layer Threat: Spoofing Attacker can inject spoofed packets, and lie about the source address MD C Hello world! 106

Physical/Link-Layer Threats: Spoofing With physical access to a local network, attacker can create any message they like When with a bogus source address: spoofing When using a typical computer, may require root/administrator to have full freedom Particularly powerful when combined with eavesdropping Because attacker can understand exact state of victim s communication and craft their spoofed traffic to match it Spoofing w/o eavesdropping = blind spoofing 107

On-path vs Off-path Spoofing Host A communicates with Host D Host C Host D Host A Router 1 Router 2 Router 3 Router 5 On-path Host B Router 6 Router 7 Host E Router 4 Off-path 108

Spoofing on the Internet On-path attackers can see victim s traffic spoofing is easy Off-path attackers can t see victim s traffic They have to resort to blind spoofing Often must guess/infer header values to succeed o We then care about work factor: how hard is this But sometimes they can just brute force o E.g., 16-bit value: just try all 65,536 possibilities! When we say an attacker can spoof, we usually mean w/ reasonable chance of success 109

Layer 3: General Threats? 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Bridges multiple subnets to provide end-to-end internet connectivity between nodes 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address IP = Internet Protocol Payload 110

IP-Layer Threats Can set arbitrary source address Spoofing - receiver has no idea who you are Could be blind, or could be coupled w/ sniffing Note: many attacks require two-way communication o So successful off-path/blind spoofing might not suffice Can set arbitrary destination address Enables scanning brute force searching for hosts Can send like crazy (flooding) IP has no general mechanism for tracking overuse IP has no general mechanism for tracking consent Very hard to tell where a spoofed flood comes from! If attacker can manipulate routing, can bring traffic to themselves for eavesdropping (not easy) 111

DNS Service Runs Domain Name Servers Translates domain names google.com to IP addresses When user browser wants to contact google.com, it first contacts a DNS to find out the IP address for google.com and then sends a packet to that IP address More in future lectures.. 112

LAN Bootstrapping: DHCP New host doesn t have an IP address yet So, host doesn t know what source address to use Host doesn t know who to ask for an IP address So, host doesn t know what destination address to use Solution: shout to discover server that can help Broadcast a server-discovery message (layer 2) Server(s) sends a reply offering an address host host... host DHCP server 113

Dynamic Host Configuration Protocol DHC P (broa disco ver dcas new client t) P DHC offer DHC P r eque (broa dcasst t) DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these ( lease time) CK A P DHC 114

Dynamic Host Configuration Protocol DHC P (broa disco ver dcas new client Threats? t) P DHC offer DHC P r eque (broa dcasst t) DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these ( lease time) CK A P DHC 115

Dynamic Host Configuration Protocol DHC P (broa disco ver dcas new client Attacker on same subnet can hear new host s DHCP request t) P DHC offer DHC P r eque (broa dcasst t) DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these ( lease time) CK A P DHC 116

Dynamic Host Configuration Protocol DHC P (broa disco ver dcas new client t) P DHC offer DHC P r eque (broa dcasst t) CK A P DHC DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these ( lease time) Attacker can race the actual server; if they win, replace DNS server and/or gateway router 117

DHCP Threats Substitute a fake DNS server Redirect any of a host s lookups to a machine of attacker s choice Substitute a fake gateway router Intercept all of a host s off-subnet traffic o (even if not preceded by a DNS lookup) Relay contents back and forth between host and remote server and modify however attacker chooses An invisible Man In The Middle (MITM) Victim host has no way of knowing it s happening o (Can t necessarily alarm on peculiarity of receiving multiple DHCP replies, since that can happen benignly) How can we fix this? Hard 118

TCP 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 119

TCP 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical These plus IP addresses define a given connection Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 120

TCP 7 Application 4 Transport 3 (Inter)Network 2 Link 1 Physical Defines where this packet fits within the sender s bytestream Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 121

TCP Conn. Setup & Data Exchange Client (initiator) IP address 1.2.1.2, port 3344 Server IP address 9.8.7.6, port 80 SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6, DstP=80, S YN, Seq = x DstA=1 0,.6, SrcP=8.7.8 9 =, Ack = x+1 A y c = r S q e S, ACK 344, SYN+ 3 = tp s D,.2.1.2 SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6, DstP=80, A CK, Seq = x+ 1, Ack = y+1 SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6 ACK, Seq=x+, DstP=80, 1, Ack = y+1, Data= GET /login.html, DstP=3344,.2.1.2 1 = tml> 80, DstA h = < P c r S K, O.6 200 SrcA=9.8.7 16, Data= + x = k c A, = y+1 ACK, Seq 122

y Da Nast ta Nast y Da Data ACK ACK CK A SYN A SYN B ta2 TCP Threat: Data Injection time If attacker knows ports & sequence numbers (e.g., on-path attacker), attacker can inject data into any TCP connection Receiver B is none the wiser! Termed TCP connection hijacking (or session hijacking ) In general means to take over an already-established connection! We are toasted if an attacker can see our TCP traffic! Because then they immediately know the port & sequence numbers 123

TCP Data Injection Client (initiator) IP address 1.2.1.2, port 3344 Server IP address 9.8.7.6, port 80... SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6 ACK, Seq=x+, DstP=80, 1, Ack = y+1, Data= GET /login.html Attacker IP address 6.6.6.6, port N/A SrcA=9.8.7.6, SrcP=80, DstA=1.2.1.2, DstP=3344, ACK, Seq = y+1, Ack = x+16 Data= 200 OK <poison> Client dutifully processes as server s response 124

TCP Data Injection Client (initiator) IP address 1.2.1.2, port 3344 Server IP address 9.8.7.6, port 80... SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6 ACK, Seq=x+, DstP=80, 1, Ack = y+1, Data= GET /login.html Attacker IP address 6.6.6.6, port N/A Client ignores since already processed that part of bytestream SrcA=9.8.7.6, SrcP=80, DstA=1.2.1.2, DstP=3344, ACK, Seq = y+1, Ack = x+16 Data= 200 OK <poison>, DstP=3344,.2.1.2 1 = tml> 80, DstA h = < P c r S K, O.6 200 SrcA=9.8.7 16, Data= + x = k c A, = y+1 ACK, Seq 125

TCP Threat: Disruption Q: Is it possible for an on-path attacker to shut down a TCP connection if they can see our traffic? A: YES: they can infer the port and sequence numbers they can insert fake data, too! (Great Firewall of China) 126

TCP Threat: Blind Hijacking Q: Is it possible for an off-path attacker to inject into a TCP connection even if they can t see our traffic? A: YES: if somehow they can infer or guess the port and sequence numbers 127

TCP Threat: Blind Spoofing Q: Is it possible for an off-path attacker to create a fake TCP connection, even if they can t see responses? A: YES: if somehow they can infer or guess the TCP initial sequence numbers Why would an attacker want to do this? Perhaps to leverage a server s trust of a given client as identified by its IP address Perhaps to frame a given client so the attacker s actions during the connections can t be traced back to the attacker 128

Blind Spoofing on TCP Handshake Alleged Client (not actual) IP address 1.2.1.2, port N/A Blind Attacker Server IP address 9.8.7.6, port 80 SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, SYN, Seq = z 0,.6, SrcP=8.7.8 9 =, Ack = z+1 A y c = r S q e S, ACK 566, SYN+ 5 = tp s D, =1.2.1.2 DstA Attacker s goal: SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, ACK, Seq = z+1, ACK = y+1 SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, ACK, Seq = z+1, ACK = y+1, Data = GET /transfer-money.html 129

Blind Spoofing on TCP Handshake Alleged Client (not actual) IP address 1.2.1.2, port NA Blind Attacker Server IP address 9.8.7.6, port 80 SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, SYN, Seq = z 0,.6, SrcP=8.7.8 9 =, Ack = x+1 A y c = r S q e S, ACK 566, SYN+ 5 = tp s D, =1.2.1.2 DstA Small Note #1: if alleged client receives this, will be confused send a RST back to server So attacker may need to hurry! 130

Blind Spoofing on TCP Handshake Alleged Client (not actual) IP address 1.2.1.2, port NA Blind Attacker Server IP address 9.8.7.6, port 80 SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, SYN, Seq = z 0,.6, SrcP=8.7.8 9 =, Ack = z+1 A y c = r S q e S, ACK 566, SYN+ 5 = tp s D, =1.2.1.2 DstA Big Note #2: attacker doesn t get to see this packet! 131

Blind Spoofing on TCP Handshake Alleged Client (not actual) IP address 1.2.1.2, port N/A Blind Attacker Server IP address 9.8.7.6, port 80 SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, SYN, Seq = z 0,.6, SrcP=8.7.8 9 =, Ack = z+1 A y c = r S q e S, ACK 566, SYN+ 5 = tp s D, =1.2.1.2 DstA So how can the attacker figure out what value of y to use for their ACK? SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, ACK, Seq = z+1, ACK = y+1 SrcA=1.2.1.2, SrcP=5566, DstA=9.8.7.6, DstP=80, ACK, Seq = z+1, ACK = y+1, Data = GET /transfer-money.html 132

Reminder: Establishing a TCP Connection A B SYN CK SYN+A ACK Data Data Each host tells its Initial Sequence Number (ISN) to the other host. (Spec says to pick based on local clock) Hmm, any way for the attacker to know this? How Do We Fix This? Use a (Pseudo)-Random ISN Sure make a non-spoofed connection first, and see what server used for ISN y then! 133

Summary of TCP Security Issues An attacker who can observe your TCP connection can manipulate it: Forcefully terminate by forging a RST packet Inject (spoof) data into either direction by forging data packets Works because they can include in their spoofed traffic the correct sequence numbers (both directions) and TCP ports Remains a major threat today 134

Summary of TCP Security Issues An attacker who can observe your TCP connection can manipulate it: Forcefully terminate by forging a RST packet Inject (spoof) data into either direction by forging data packets Works because they can include in their spoofed traffic the correct sequence numbers (both directions) and TCP ports Remains a major threat today If attacker could predict the ISN chosen by a server, could blind spoof a connection to the server Makes it appear that host ABC has connected, and has sent data of the attacker s choosing, when in fact it hasn t Undermines any security based on trusting ABC s IP address Allows attacker to frame ABC or otherwise avoid detection Fixed (mostly) today by choosing random ISNs 135

Summary of IP security No security against on-path attackers Can sniff, inject packets, mount TCP spoofing, TCP hijacking, man-in-the-middle attacks Typical example: wireless networks, malicious network operator More security against off-path attackers TCP is more secure than UDP and IP 136

Extra Material 137

TCP Threat: Disruption Normally, TCP finishes ( closes ) a connection by each side sending a FIN control message Reliably delivered, since other side must ack But: if a TCP endpoint finds unable to continue (process dies; info from other peer is inconsistent), it abruptly terminates by sending a RST control message Unilateral Takes effect immediately (no ack needed) Only accepted by peer if has correct* sequence number 138

Source port Destination port Sequence number Acknowledgment HdrLen 0 Flags Advertised window Checksum Urgent pointer Options (variable) Data 139

Source port Destination port Sequence number Acknowledgment RS T HdrLen 0 Advertised window Checksum Urgent pointer Options (variable) Data 140

Abrupt Termination X RST Data ACK ACK CK A SYN A SYN B time A sends a TCP packet with RESET (RST) flag to B E.g., because app. process on A crashed (Could instead be that B sends a RST to A) Assuming that the sequence numbers in the RST fit with what B expects, That s It: B s user-level process receives: ECONNRESET No further communication on connection is possible 141

TCP Threat: Disruption Normally, TCP finishes ( closes ) a connection by each side sending a FIN control message Reliably delivered, since other side must ack But: if a TCP endpoint finds unable to continue (process dies; info from other peer is inconsistent), it abruptly terminates by sending a RST control message Unilateral Takes effect immediately (no ack needed) Only accepted by peer if has correct* sequence number So: if attacker knows ports & sequence numbers, 142 can disrupt any TCP connection

TCP RST Injection Client (initiator) IP address 1.2.1.2, port 3344 Server IP address 9.8.7.6, port 80... SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6 ACK, Seq=x+, DstP=80, 1, Ack = y+1, Data= GET /login.html Attacker IP address 6.6.6.6, port N/A SrcA=9.8.7.6, SrcP=80, DstA=1.2.1.2, DstP=3344, RST, Seq = y+1, Ack = x+16 Client dutifully removes connection 143

TCP RST Injection Client (initiator) IP address 1.2.1.2, port 3344 Server IP address 9.8.7.6, port 80... SrcA=1.2.1.2, SrcP=3344, DstA=9.8.7.6 ACK, Seq=x+, DstP=80, 1, Ack = y+1, Data= GET /login.html Attacker IP address 6.6.6.6, port N/A SrcA=9.8.7.6, SrcP=80, DstA=1.2.1.2, DstP=3344, RST, Seq = y+1, Ack = x+16 Client rejects since no active connection X, DstP=3344,.2.1.2 1 = tml> 80, DstA h = < P c r S K, O.6 200 SrcA=9.8.7 16, Data= + x = k c A, = y+1 ACK, Seq 144

Threats to Comm. Security Goals Attacks can subvert each type of goal Confidentiality: eavesdropping / theft of information Integrity: altering data, manipulating execution (e.g., code injection) Availability: denial-of-service Attackers can also combine different types of attacks towards an overarching goal E.g. use eavesdropping (confidentiality) to construct a spoofing attack (integrity) that tells a server to drop an important connection (denial-of-service) 145

TCP s Rate Management Unless there s loss, TCP doubles data in flight every round-trip. All TCPs expected to obey ( fairness ). Mechanism: for each arriving ack for new data, increase allowed data by 1 maximum-sized packet Src 1 D0-99 Dest 2 A100 D200-299 D100-199 3 4 A200A300 D D 8 D A D A A A Time E.g., suppose maximum-sized packet = 100 bytes 146

Protocol Cheating How can the destination (receiver) get data to come to them faster than normally allowed? ACK-Splitting: each ack, even though partial, increases allowed data by one maximum-sized packet Src 2 3 4 5 1 D100-199 D0-99 Dest A25 A50 D500-599 D200-299 A75 D400-499 D300-399 A100 Time How do we defend against this? Change rule to require full ack for all data 147 sent in a packet

Protocol Cheating How can the destination (receiver) still get data to come to them faster than normally allowed? Opportunistic ack ing: acknowledge data not yet seen! Src 2 3 4 5 1 D100-199 D0-99 Dest A100 A200 D500-599 D200-299 A300 D400-499 D300-399 A400 Time How do we defend against this? 148

Keeping Receivers Honest Approach #1: if you receive an ack for data you haven t sent, kill the connection Works only if receiver acks too far ahead Approach #2: follow the round trip time (RTT) and if ack arrives too quickly, kill the connection Flaky: RTT can vary a lot, so you might kill innocent connections Approach #3: make the receiver prove they Note: a protocol change received the data Add a nonce ( random marker) & require receiver to include it in ack. Kill connections w/ incorrect nonces o (nonce could be function computed over payload, so sender doesn t explicitly transmit, only implicitly) 149

IP Packet Structure 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

IP Packet Header Fields (Continued) Total length (16 bits) Number of bytes in the packet Maximum size is 65,535 bytes (216-1) though underlying links may impose smaller limits Fragmentation: when forwarding a packet, an Internet router can split it into multiple pieces ( fragments ) if too big for next hop link End host reassembles to recover original packet Fragmentation information (32 bits) Packet identifier, flags, and fragment offset Supports dividing a large IP packet into fragments in case a link cannot handle a large IP packet 151

Example: E-Mail Message Using MIME MIME version method used to encode data type and subtype From: jrex@cs.princeton.edu To: feamster@cc.gatech.edu Subject: picture of my cat MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg Base64 encoded data. JVBERi0xLjMNJeLjz9MNMSAwI......base64 encoded data encoded data 152

Example With Received Header Return-Path: <casado@cs.stanford.edu> Received: from ribavirin.cs.princeton.edu (ribavirin.cs.princeton.edu [128.112.136.44]) by newark.cs.princeton.edu (8.12.11/8.12.11) with SMTP id k04m5r7y023164 for <jrex@newark.cs.princeton.edu>; Wed, 4 Jan 2006 17:05:37-0500 (EST) Received: from bluebox.cs.princeton.edu ([128.112.136.38]) by ribavirin.cs.princeton.edu (SMSSMTP 4.1.0.19) with SMTP id M2006010417053607946 for <jrex@newark.cs.princeton.edu>; Wed, 04 Jan 2006 17:05:36-0500 Received: from smtp-roam.stanford.edu (smtp-roam.stanford.edu [171.64.10.152]) by bluebox.cs.princeton.edu (8.12.11/8.12.11) with ESMTP id k04m5xnq005204 for <jrex@cs.princeton.edu>; Wed, 4 Jan 2006 17:05:35-0500 (EST) Received: from [192.168.1.101] (adsl-69-107-78-147.dsl.pltn13.pacbell.net [69.107.78.147]) (authenticated bits=0) by smtp-roam.stanford.edu (8.12.11/8.12.11) with ESMTP id k04m5w92018875 (version=tlsv1/sslv3 cipher=dhe-rsa-aes256-sha bits=256 verify=not); Wed, 4 Jan 2006 14:05:32-0800 Message-ID: <43BC46AF.3030306@cs.stanford.edu> Date: Wed, 04 Jan 2006 14:05:35-0800 From: Martin Casado <casado@cs.stanford.edu> User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) MIME-Version: 1.0 To: jrex@cs.princeton.edu CC: Martin Casado <casado@cs.stanford.edu> Subject: Using VNS in Class Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 7bit 153

IP Packet Structure 4-bit 8-bit 4-bit Version Header Type of Service Length (TOS) 3-bit Flags 16-bit Identification 8-bit Time to Live (TTL) 16-bit Total Length (Bytes) 8-bit Protocol 13-bit Fragment Offset 16-bit Header Checksum 32-bit Source IP Address 32-bit Destination IP Address Options (if any) Payload

IP Packet Header Fields Version number (4 bits) Indicates the version of the IP protocol Necessary to know what other fields to expect Typically 4 (for IPv4), and sometimes 6 (for IPv6) Header length (4 bits) Number of 32-bit words in the header Typically 5 (for a 20-byte IPv4 header) Can be more when IP options are used Type-of-Service (8 bits) Allow packets to be treated differently based on needs E.g., low delay for audio, high bandwidth for bulk transfer 155

Sample Email (SMTP) interaction S: C: S: C: S: C: S: C: S: C: C: C: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <alice@crepes.fr> 250 alice@crepes.fr... Sender ok RCPT TO: <bob@hamburger.edu> 250 bob@hamburger.edu... Recipient ok DATA 354 Enter mail, end with "." on a line by itself From: alice@crepes.fr To: hamburger-list@burger-king.com Email header Subject: Do you like ketchup? How about pickles? Email body. 250 Message accepted for delivery QUIT Lone period marks end of message 221 hamburger.edu closing connection 156