CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 03 PHILLIPA GILL STONY BROOK UNIVERSITY, COMPUTER SCIENCE ACKS: SLIDES BASED ON MATERIAL FROM NICK WEAVER’S.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

CSE390 Advanced Computer Networks Lecture 17: Internet Censorship (Roadblocks on the information superhighway …) Based on slides by N. Weaver. Updated.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
Intermediate TCP/IP TCP Operation.
Fundamentals of Computer Networks ECE 478/578 Lecture #20: Transmission Control Protocol Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
CS3505 The Internet and Info Hiway transport layer protocols : TCP/UDP.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Detecting Forged TCP Reset Packets Authors: Nicholas Weaver, Robin Sommer, Vern Paxon Presented by: Anuj Kalia, Shashank Gupta.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. 6 Packet Filtering By Whitman, Mattord, & Austin© 2008 Course Technology.
Chapter 4 OSI Transport Layer
Gursharan Singh Tatla Transport Layer 16-May
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
Packet Filtering. 2 Objectives Describe packets and packet filtering Explain the approaches to packet filtering Recommend specific filtering rules.
Rhys McBreen (How the internet works) X. Contents The Layers and what they do IP Addressing X.
Networking Basics TCP/IP TRANSPORT and APPLICATION LAYER Version 3.0 Cisco Regional Networking Academy.
Chapter 6: Packet Filtering
Part 2  Access Control 1 CAPTCHA Part 2  Access Control 2 Turing Test Proposed by Alan Turing in 1950 Human asks questions to another human and a computer,
1 Semester 2 Module 10 Intermediate TCP/IP Yuda college of business James Chen
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Network Services Networking for Home and Small Businesses – Chapter.
CSE534 – Fundamentals of Computer Networking Lecture 17: Internet Censorship (Roadblocks on the information superhighway …) Based on slides by N. Weaver.
Network Services Networking for Home & Small Business.
Chapter 5 Transport layer With special emphasis on Transmission Control Protocol (TCP)
1 7-Oct-15 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 26.
TCP/IP Transport and Application (Topic 6)
Packet Filtering Chapter 4. Learning Objectives Understand packets and packet filtering Understand approaches to packet filtering Set specific filtering.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transport Layer COM211 Communications and Networks CDA College Theodoros Christophides
CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 08 PHILLIPA GILL – STONY BROOK UNIVERSITY.
Networking Basics CCNA 1 Chapter 11.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network, Enhanced Chapter 3: TCP/IP Architecture.
CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 22 PHILLIPA GILL - STONY BROOK U.
Slide #1 CIT 380: Securing Computer Systems TCP/IP.
5. The Transport Layer 5.1 Role of Transport Layer It bridge the gab between applications and the network layer. Provides reliable cost-effective data.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
Computer Network Architecture Lecture 6: OSI Model Layers Examples 1 20/12/2012.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 14-Jun-16 S Ward Abingdon and Witney College CCNA Exploration Semester 1 OSI transport layer CCNA Exploration Semester 1 Chapter 4.
COMP2322 Lab 6 TCP Steven Lee April 1, TCP Transmission Control Protocol Transport layer protocol User Datagram Protocol (UDP) is another one 2.
Process-to-Process Delivery:
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 OSI transport layer CCNA Exploration Semester 1 – Chapter 4.
The Great Firewall of China What is it and how does it work?
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
COMP2322 Lab 6 TCP Steven Lee Mar 29, 2017.
CS590B/690B Detecting network interference (Fall 2016)
CS590B/690B Detecting Network Interference (Fall 2016)
CS590B/690B Detecting Network Interference (Fall 2016)
TCP.
Networking for Home and Small Businesses – Chapter 6
Networking for Home and Small Businesses – Chapter 6
TCP - Part I Karim El Defrawy
Lecture 2: Overview of TCP/IP protocol
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Networking for Home and Small Businesses – Chapter 6
Computer Networks Protocols
Transport Layer 9/22/2019.
Presentation transcript:

CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 03 PHILLIPA GILL STONY BROOK UNIVERSITY, COMPUTER SCIENCE ACKS: SLIDES BASED ON MATERIAL FROM NICK WEAVER’S PRESENTATION AT THE CONNAUGHT SUMMER INSTITUTE 2013

ADMINISTRAVIA Presentations: Given enrollment + number of presentations folks will need to present 2-3 papers a piece You can use existing slide decks for the papers if you can locate them. You should still have the knowledge to present the material and lead the discussion! You do not have to complete a paper summary on the day you present. Assignment 1 is posted on the Piazza forum. Set of projects will be complete by end of this week. 4 of 5 are currently there.

WHERE WE ARE Last time: Background on Internet protocols/routing Censorship at the network layer. Questions?

TEST YOUR UNDERSTANDING 1.What is a network censor? 2.How might a censor identify content to block? 3.Name an interior domain protocol 4.Name an inter-domain protocol 5.Name two ways to filter based on IP address 6.What are pros (for the censor) of each approach? 7.Cons? 8.What do we mean by “collateral damage” of censorship? 9.How did the Egyptian government take down the Internet? 10.How did the Libyan government take down the Internet? 11.What data can we use to understand this sort of event?

OVERVIEW Block IP addresses IP layer Disrupt TCP flows TCP (transport layer) Many possible triggers Block hostnames DNS (application layer) Disrupt HTTP transfers HTTP (application layer) Today

TCP: TRANSMISSION CONTROL PROTOCOL TCP is used for reliable, in-order communication Connection established using a “three-way handshake” All data is ACKnowledged If no ACK is received packets will be resent Connection normally closed with a FIN (finish) packet Indicates that this side has no more information to send Connections can also be closed with a RST (reset) packet Indicates a problem: both sides should stop communicating Some software makes liberal use of RSTs.

WHY INJECT TCP RESET PACKETS? A TCP Reset (RST) tells the other side of the connection: There will be no more data from this source on this connection This source will not accept any more data, so no more data should be sent Once a side has decided to abort the connection, the only subsequent packets sent on this connection may be RSTs in response to data. Once a side accepts a RST it will treat the connection as aborted … but RSTs are quite common, 10-15% of ALL flows are terminated by a RST rather than a FIN For HTTP, it can be over 20%: Web servers/browsers often time out with RST instead of FIN Thus we cannot treat RSTs as “adversarial”

TYPES OF CENSORS Last time we discussed IP blocking via ACLs which is an example of an in-path censor. Censors can also operate on-path: a wiretap, (intrusion detection system (IDS), deep packet inspection (DPI)) + attached network connection Censor can see all the packets Censor can add their own packets through packet injection Censor cannot remove packets Can censor: DNS requests (by injecting bogus replies) Web requests to given hosts (including HTTPS) Web requests over HTTP for forbidden content Latter two possible via injecting TCP RST packets!

LIMITATIONS OF ON-PATH CENSORS On-path censorship can’t censor the last message in the flow (if the censorship trigger is contained in the last message) Since by the time the censor decides to block it, the message has passed Thus can’t censor DNS replies, only requests And many Web replies as well But can block HTTPS sites based on certificates The certificate handshake process gives enough time to block actual data Often limited to simple blocking, not a notice page/image replacement Often the censor want’s the user to know (s)he was censored And if it can’t keep up, censored material can get through Which may be unacceptable

WHY ON-PATH CENSORS? In-path device must process the traffic If they fail, they fail closed (connection gone!) On-path devices are safer Tapping a link is “safe” (in network operator terms) Easy to parallelize (just mirror traffic to more filters) Less disruptive to install and use Limitations: Can’t censor single replies Censorship is always detectable Censor cannot perfectly mimic the other endpoint.

ON PATH CENSOR EXAMPLE

DETECTING ON-PATH CENSORSHIP Not only is the act of censorship detectable, the mechanism, is detectable Since censor creates new packets but can’t remove existing packets Since the injected packets can be identified, fingerprinting is also possible. Using packets which trigger censorship but with a short TTL can localize the censor in the network Leads to tricky cross-layer network measurements (easier with DNS) Detection limitation: Can only detect an on-path censor when it is active A censor which doesn’t create an effect on measured traffic is not detectable E.g., DPI used for surveillance

RACE CONDITIONS: DATA AFTER RESET TCP packets are tracked by sequence numbers The next packet’s sequence number should be the previous packet’s sequence number plus the packet length What is a sender is still sending data when the RST is injected? The receiver will see both a reset and a subsequent data packet, where the packet’s sequence number + length > the reset packet’s sequence number

RACE CONDITIONS: DATA AFTER RESET Web Server ( ) Data seq = 32 ack = 1 RST seq = 2 ack = 32 Data seq = 238 ack = 32 Data after RST? Doesn’t make sense! Such a packet arrangement is out of specification No TCP stack should generate such a sequence! It would imply that the stack decided to abort the connection yet keep sending anyway Such a packet arrangement is out of specification No TCP stack should generate such a sequence! It would imply that the stack decided to abort the connection yet keep sending anyway

RACE CONDITIONS: RESET AFTER DATA What if the reset injector is just slow? It takes time to determine that a flow should be blocked… … in the mean time traffic is flying by! Result is a reset after data race condition Reset packet appears after the data packet Reset’s sequence number is less than the data packet’s sequence number plus its length

RACE CONDITIONS: RESET AFTER DATA Web Server ( ) Data seq = 32 ack = 1 RST seq = 2 ack = 32 Data seq = 238 ack = 32 RST after data? Huh? This is also out of specification Why would a TCP stack do a retroactive abort? Worse, such resets should be ignored by the receiver: The received reset is “out-of-window” This is also out of specification Why would a TCP stack do a retroactive abort? Worse, such resets should be ignored by the receiver: The received reset is “out-of-window”

BUILDING A RELIABLE RST INJECTOR ENABLES DETECTION Thus a reliable packet injector must anticipate the reset after data condition Instead of sending one reset it needs to send multiple resets with increasing sequence number This is detectable as a “reset sequence change condition” An end host should never generate such resets as the host can always generate an in-sequence reset An unreliable injector can only be detected when a race condition occurs A reliable injector always can be detected.

FINGERPRINTING RST INJECTORS

CAN WE JUST IGNORE THESE RSTS? As of 2006, yes but both ends of the connection need to ignore the RSTs. Reading on Web page: Ignoring the Great Firewall of China. Clayton et al. Workshop on Privacy Enhancing Technologies (PETS). Client cannot do it unilaterally. Injectors will just send RSTs to the server and the client These experiments are also not very recent. Potential project: Repeat these experiments using new measurement platforms like SEATTLE or Dasu.

PAPER PRESENTATION Detecting Forged TCP Reset Packets. Weaver et al. NDSS 2009.

REMEMBER … RSTS ARE A MECHANISM They don’t tell us anything about what triggers the mechanism Some clues.. When the RST is sent Before the HTTP GET After the HTTP GET Still not definitive Need purpose build experiments Run tests towards your own server Put blocked keyword in host name … in HTML body content

WRAP UP Next time, DNS.