CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 05 PROF. PHILLIPA GILL – STONY BROOK UNIVERSITY ACKS: SLIDES BASED ON MATERIAL FROM NICK WEAVER’S PRESENTATION.

Slides:



Advertisements
Similar presentations
CSE534 – Fundamentals of Computer Networks Lecture 11: HTTP/Web (The Internet’s first killer app) Based on slides from Kurose + Ross, and Carey Williamson.
Advertisements

HyperText Transfer Protocol (HTTP)
Chapter 2: Application Layer
HyperText Transfer Protocol (HTTP) Computer Networks Computer Networks Spring 2012 Spring 2012.
How the web works: HTTP and CGI explained
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
Web, HTTP and Web Caching
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Client, Server, HTTP, IP Address, Domain Name. Client-Server Model Client Bob Yahoo Server yahoo.com/finance.html A text file named finance.html.
PL-IV- Group A HTTP Request & Response Header
Web Hacking 1. Overview Why web HTTP Protocol HTTP Attacks 2.
Google App Engine Chien-Chung Shen
Course on Computer Communication and Networks Lecture 2-cont Chapter 2 (part a): applications, http EDA344/DIT 420, CTH/GU.
FTP (File Transfer Protocol) & Telnet
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
Application Layer 2 Figures from Kurose and Ross
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
2: Application Layer1 Internet apps: their protocols and transport protocols Application remote terminal access Web file transfer streaming multimedia.
Week 11: Application Layer1 Web and HTTP First some jargon r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,…
Maryam Elahi University of Calgary – CPSC 441.  HTTP stands for Hypertext Transfer Protocol.  Used to deliver virtually all files and other data (collectively.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Introduction 1 Lecture 6 Application Layer (HTTP) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering.
2: Application Layer1 Web and HTTP First some jargon Web page consists of base HTML-file which includes several referenced objects Object can be HTML file,
2: Application Layer1 Chapter 2 Application Layer Part 2: Web & HTTP These slides derived from Computer Networking: A Top Down Approach, 6 th edition.
Sistem Jaringan dan Komunikasi Data #9. DNS The Internet Directory Service  the Domain Name Service (DNS) provides mapping between host name & IP address.
CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 03 PHILLIPA GILL STONY BROOK UNIVERSITY, COMPUTER SCIENCE ACKS: SLIDES BASED ON MATERIAL FROM NICK WEAVER’S.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
HyperText Transfer Protocol (HTTP) RICHI GUPTA CISC 856: TCP/IP and Upper Layer Protocols Fall 2007 Thanks to Dr. Amer, UDEL for some of the slides used.
Application Layer 2-1 Chapter 2 Application Layer 2.2 Web and HTTP.
CIS679: Lecture 13 r Review of Last Lecture r More on HTTP.
Operating Systems Lesson 12. HTTP vs HTML HTML: hypertext markup language ◦ Definitions of tags that are added to Web documents to control their appearance.
Dr. Philip Cannata 1 The Web and HTTP. Dr. Philip Cannata 2 Application Layer 2-2 Chapter 2 Application Layer Computer Networking: A Top Down Approach.
Application Layer 2-1 Lecture 4: Web and HTTP. Web and HTTP First, a review… web page consists of objects object can be HTML file, JPEG image, Java applet,
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
CITA 310 Section 2 HTTP (Selected Topics from Textbook Chapter 6)
Advance Computer Networks Lecture#05 Instructor: Engr. Muhammad Mateen Yaqoob.
CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 22 PHILLIPA GILL - STONY BROOK U.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
EE 122: Lecture 21 (HyperText Transfer Protocol - HTTP) Ion Stoica Nov 20, 2001 (*)
Overview of Servlets and JSP
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 2: Application.
Lecture 2: Web Application Layer.
Introduction 1-1 Lecture 5 Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CS3516: These slides.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
COMP2322 Lab 2 HTTP Steven Lee Jan. 29, HTTP Hypertext Transfer Protocol Web’s application layer protocol Client/server model – Client (browser):
Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Bapi Chatterjee Prajith R G.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Web Servers & CGI. World Wide Web (www) w3 The World Wide Web (abbreviated as WWW or W3, commonly known as the web) is a system of interlinked hypertext.
Application Layer Dr. Adil Yousif Lecture 2 CS.
Block 5: An application layer protocol: HTTP
CS590B/690B Detecting network interference (Fall 2016)
CS590B/690B Detecting Network Interference (Fall 2016)
Session 4 INST 346 Technologies, Infrastructure and Architecture
Web Caching? Web Caching:.
Application HTTP.
Application Layer Part 1
Chapter 2 Application Layer
Presentation transcript:

CSE 592 INTERNET CENSORSHIP (FALL 2015) LECTURE 05 PROF. PHILLIPA GILL – STONY BROOK UNIVERSITY ACKS: SLIDES BASED ON MATERIAL FROM NICK WEAVER’S PRESENTATION AT THE CONNAUGHT SUMMER INSTITUTE 2013 ALSO FROM: KUROSE + ROSS; COMPUTER NETWORKING A TOP DOWN APPROACH FEATURING THE INTERNET (6 TH EDITION)

WHERE WE ARE Last time: On-path DNS injection Hold-on to circumvent injection Collateral damage of DNS injection Questions?

ADMINISTRAVIA Full set of projects available. Projects due Dec. 5, 2015 Manage your time throughout the term to complete the project on time. Assignment 1 is due on Friday (potential 10% of mark!) For folks doing paper presentations, try to sign up at least 3 days before the lecture so I know if I need to prepare slides on the reading.

TEST YOUR UNDERSTANDING 1.What are the three pieces of DNS resolution? 2.What optimization does DNS have to reduce load on root and TLD servers? 3.What are the downsides of this optimization? 4.Name 3 ways a DNS host name can be blocked (blocking techniques) 5.What options does a censor have when returning/injecting a DNS reply? (what type of IPs might it return?) 6.What does Hold-On use to distinguish injected from true DNS responses? (2 metrics) 7.How does it obtain these values? 8.How do HoneyQueries work? 9.How can you use the results of HoneyQueries to find collateral censorship?

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

NETWORKING 101: HTTP HTTP (Hyper Text Transfer Protocol) is what most people think of when they talk about “the web” Client-server request/response protocol Client requests “I want file X from host Y that is on this server” Server replies Content can be any filetype E.g. “HyperText Markup Language” (HTML) pages Embedded programs (JavaScript, Flash, etc) which run on the browser No cryptographic integrity

Application Layer 2-7 HTTP OVERVIEW HTTP: hypertext transfer protocol Web’s application layer protocol client/server model client: browser that requests, receives, (using HTTP protocol) and “displays” Web objects server: Web server sends (using HTTP protocol) objects in response to requests PC running Firefox browser server running Apache Web server iphone running Safari browser HTTP request HTTP response HTTP request HTTP response

HTTP REQUEST MESSAGE Application Layer 2-8 two types of HTTP messages: request, response HTTP request message: ASCII (human-readable format) request line (GET, POST, HEAD commands ) header lines carriage return, line feed at start of line indicates end of header lines GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO ,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n carriage return character line-feed character

HTTP RESPONSE MESSAGE Application Layer 2-9 status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/ OK\r\n Date: Sun, 26 Sep :09:20 GMT\r\n Server: Apache/ (CentOS)\r\n Last-Modified: Tue, 30 Oct :00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=ISO \r\n \r\n data data data data data...

HTTP RESPONSE STATUS CODES Application Layer OK request succeeded, requested object later in this msg 301 Moved Permanently requested object moved, new location specified later in this msg (Location:) 400 Bad Request request msg not understood by server 404 Not Found requested document not found on this server 505 HTTP Version Not Supported  status code appears in 1st line in server-to- client response message.  some sample codes :

Application Layer 2-11 WEB CACHES (PROXY SERVER) user sets browser: Web accesses via cache browser sends all HTTP requests to cache object in cache: cache returns object else cache requests object from origin server, then returns object to client goal: satisfy client request without involving origin server client proxy server client HTTP request HTTP response HTTP request origin server origin server HTTP response

OK … SO WHERE ARE WE NOW? We’ve so far talked about a bunch of different blocking techniques Packet filtering/BGP manipulation Injecting RSTs Injecting DNS replies Those can all be used to block HTTP (and other types of content) Today’s focus: proxies and blocking mechanisms that act specifically on HTTP traffic.

IN-PATH CENSORSHIP Rather than sitting as a wiretap, actually intercept all traffic Now the censor can remove undesired packets Two possible mechanisms: Flow Terminating Flow Rewriting Two possible targets: Partial Proxying Complete Proxying

FLOW TERMINATING PROXIES

FLOW TERMINATING Proxy External Server SYN SYNACK ACK Two separate TCP connections. Buys the censor some time to process content. No worry about having to match state because the proxy is the end point (from client’s point of view) External Server might see client IP, might see Proxy IP

FLOW REWRITING PROXIES Slide borrowed stolen from N. Weaver.

FLOW REWRITING Proxy External Server SYN SYNACK ACK

FLOW REWRITING Proxy External Server Censored keyword Block Page

PARTIAL VS. COMPLETE PROXYING

DETECTING AND USING PARTIAL PROXIES

DETECTING COMPLETE TERMINATING PROXIES

READING FROM WEBPAGE Detecting In-Flight Page Changes with Web Tripwires. C. Reis, S. Gribble, T. Kohno, and N. Weaver. Common assumption: ISPs could modify content in flight but with few exceptions this does not happen This paper shows that this assumption is false They find a diverse range of agents that modify pages ISPs insert ads to gain revenue Users block ads to prevent annoyance Malware writers insert exploits HTTPS doesn’t completely solve the problem Terminating proxy with certificate can MITM

WEB TRIP WIRES

EXAMPLE TRIP WIRE PAGE

WEB TRIP WIRES Need to deliver three items 1.The Web page 2.Trip wire script 3.Representation of what the page should be (checksum or raw content in an encoded string to prevent modifications) Challenge: Dynamic pages (need to generate the ‘known good’ page while servicing the request) One solution: send a separate static page and check that for modifications Would miss targeted alterations to pages. Comparison metrics: # of script tags Compare DOM: hard because browser dependent Compare HTML string: requires the Tripwire script re- fetch the page from the server

PERFORMANCE OVERHEAD 17% more data transferred But still small relative to other site content.

MODIFICATIONS FOUND

CHALLENGES FOR DEPLOYMENT Trip-wires requires that the server cares about modifications and implements the trip-wire What if the user wants to detect changes? Tools like Meddle (a mobile VPN service) can help:

READING 2 Here be Web proxies. Nicholas Weaver, Christian Kreibich, Martin Dam, and Vern Paxson. PAM Netalyzr includes tests for Web proxies This paper analyzes the results

NETALYZR COVERAGE CA. 2010

TESTS FOR PROXIES Non-responsive server test (116K clients) Configure their own server to send a RST If they successfully open a connection the response is from a proxy Proxy traceroute (17K clients) Connect to traceroute server which waits for SYN from proxy Once it gets the SYN send SYNACKs with incrementing TTL until ACK (not Time exceeded) received HTTP404 Fetches (448K clients) Fetch 3 different 404 pages, look for modifications HTTP Header casing Send: HoSt: see if server receives the header unmodified (vs. host or HOST). Non HTTP Fetch s/HTTP/ICSI … more in paper

NOTABLE FINDINGS … Client-side Antivirus (6% of clients) E.g., software on host modifying HTTP headers Caches (2.3% of clients) Save upstream bandwidth Security and Censor Proxies (0.55% of clients) Security products via the ‘via’ header Other products via HTTP header insertions Transcoding (0.54% of clients) Save downstream bandwidth via coding images 404 Rewriters (0.11% of clients) Error monetization

INTERESTING TYPES OF PROXIES Dark Proxies 8% of clients Proxies seen via the non-responsive server test But no other content modifications What is it doing? Country-level Proxies 95% of clients in Bahrain 85% of clients in Singapore 79% of clients in Lebanon 62% of clients in UAE 48% of clients in Thailand

HANDS ON ACTIVITY Try running Netalyzr See: “NetalyzrLinks.rtf” in this directory: -Where were these Netalyzr tests run? -Do they seem to use the same censorship product? -What can you learn about these connections from Netalyzr?