architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing,...

51
Internet e architetture di rete Antonio Prado https://www.prado.it Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Transcript of architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing,...

Page 1: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Internet e architetture di

reteAntonio Prado

https://www.prado.it

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 2: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Internet: Sistemi autonomi e Governance08 Novembre 2017

Addio IPv422 novembre 2017

Benvenuto IPv629 novembre 2017

Architetture di instradamento a Internet: BGP06 dicembre 2017

Numeri e Nomi: DNS13 dicembre 2017

36 anni di e-mail: SMTP14 marzo 2018

La ragazza della porta ottanta: HTTP21 marzo 2018

Tutti sulle nuvole: servizi in CLOUD28 marzo 2018

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 3: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

La ragazza della porta ottanta: HTTP

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 4: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TCP/UDP 80[Tim_Berners_Lee]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 5: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Tim Berners-Lee, inventore del World Wide Web[RFC 1630, 1738, 1866, 1945, 2068, 2396, 2616, 3986 ]

URI

URLHTML

HTTP

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 6: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Hypertext Transfer Protocol -- HTTP/1.0[RFC 1945]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 7: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

RFC 1945HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification reflects common usage of the protocol referred to as "HTTP/1.0".

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 8: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Hypertext Transfer Protocol -- HTTP/1.1[RFC 2616]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 9: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Universal Resource IdentifierURI ASSOLUTOscheme://hostname[:port]/pathhttp://www.paperino.it:80/qui/quo/qua

URI RELATIVO/qui/qui/quo/qui/quo/qua

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 10: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Uniform Resource Locatorhttp_URL="http:""//"host[":"port][abs_path]

HTTP message typesHTTP messages consist of requests from client to server and responses from server to client.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 11: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Il WEB server è un HTTP server

Protocollo a livello applicativo

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 12: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Domanda e Risposta1. Il client fa una domanda2. Il server risponde

Il protocollo HTTP supporta più scambi domanda/risposta su una singola sessione TCP

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 13: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Domanda e RispostaDomanda HTTP 1.0

Righe di testo (ASCII)

Fine riga con CRLF \r\n

Prima riga: Request-Line

Request-LineIntestazioniRiga vuotaContenuto

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 14: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Metodi nella domandaGET recupera informazioni indicate dalla URIHEAD recupera meta-informazioni sulla URIPOST invia informazioni alla URI e recupera il risultatoPUT Archivia informazioni nel posto nominato dalla URIDELETE rimuove l’entità indicata dalla URITRACE traccia HTTP inoltrato attraverso proxy, tunnel eccOPTIONS determina le capacità del server o le caratteristiche di una risorsa

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 15: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Telnet LAB

telnet as59715.net 80Trying 2a02:cdc5:9715:1:250:56ff:fe97:2298...Connected to as59715.net.Escape character is '^]'.GET / HTTP/1.1Host: as59715.net[CRLF]HTTP/1.1 302 FoundDate: Sat, 17 Mar 2018 14:53:16 GMTServer: Apache/2.4.23 (FreeBSD) OpenSSL/1.0.1e-freebsd PHP/5.4.45Location: https://as59715.net/Content-Length: 204Content-Type: text/html; charset=iso-8859-1

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>302 Found</title></head><body><h1>Found</h1><p>The document has moved <a href="https://as59715.net/">here</a>.</p></body></html>

Page 16: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP serverAntonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 17: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP server LABInstalla lighttpd

Redhat [e derivati] yum install lighttpdDebian [e derivati] apt-get install lighttpdFreeBSD pkg install lighttpd

Localizza e modifica il file lighttpd.conf

Redhat e Debian /etc/lighttpd/lighttpd.confFreeBSD /usr/local/etc/lighttpd/lighttpd.conf

Avvia il demone lighttpd

Redhat e Debian systemctl start lighttpd.serviceFreeBSD echo ‘lighttpd_enable=YES’ >> /etc/rc.conf && /usr/local/etc/rc.d/lighttpd start

A

B

CAntonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 18: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Installa lighttpd

Redhat [e derivati] yum install lighttpdDebian [e derivati] apt-get install lighttpdFreeBSD pkg install lighttpd

HTTP server LAB

Aapt-get install lighttpdReading package lists... DoneBuilding dependency tree Reading state information... DoneSuggested packages: rrdtool apache2-utilsThe following NEW packages will be installed: lighttpd0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.Need to get 0 B/227 kB of archives.After this operation, 915 kB of additional disk space will be used.Selecting previously unselected package lighttpd.(Reading database ... 203113 files and directories currently installed.)Preparing to unpack .../lighttpd_1.4.33-1+nmu2ubuntu2_amd64.deb ...Unpacking lighttpd (1.4.33-1+nmu2ubuntu2) ...Processing triggers for ufw (0.34~rc-0ubuntu2) ...Processing triggers for ureadahead (0.100.0-16) ...ureadahead will be reprofiled on next rebootProcessing triggers for man-db (2.6.7.1-1ubuntu1) ...Setting up lighttpd (1.4.33-1+nmu2ubuntu2) ... * Starting web server lighttpd

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 19: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP server LAB

Localizza e modifica il file lighttpd.conf

Redhat e Debian /etc/lighttpd/lighttpd.confFreeBSD /usr/local/etc/lighttpd/lighttpd.conf

server.document-root = "/var/www"server.upload-dirs = ( "/var/cache/lighttpd/uploads" )server.errorlog = "/var/log/lighttpd/error.log"server.pid-file = "/var/run/lighttpd.pid"server.username = "www-data"server.groupname = "www-data"server.port = 80

B

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 20: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP server LABAvvia il demone lighttpd

Redhat e Debian systemctl start lighttpd.serviceFreeBSD echo ‘lighttpd_enable=YES’ >> /etc/rc.conf && /usr/local/etc/rc.d/lighttpd start

Verifica che lighttpd stia ascoltando sulla porta TCP 80

netstat -anp|grep lighttpdtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3893/lighttpd

CAntonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 21: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

telnet localhost 80Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.GET / HTTP/1.1Host: localhost

Telnet LABHTTP/1.1 200 OKVary: Accept-EncodingContent-Type: text/htmlAccept-Ranges: bytesETag: "3446712510"Last-Modified: Sat, 17 Mar 2018 17:26:31 GMTContent-Length: 3568Date: Sat, 17 Mar 2018 17:29:10 GMTServer: lighttpd/1.4.48

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 22: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

elinks http://localhost

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 23: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

100 Continue101 Switching Protocols102 Processing

200 OK201 Created202 Accepted203 Non-authoritative Information204 No Content205 Reset Content206 Partial Content207 Multi-Status208 Already Reported226 IM Used

300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified305 Use Proxy307 Temporary Redirect308 Permanent Redirect

1yz Informational

2yz Success

3yz Redirection

HTTP, codici di stato: 1yz, 2yz, 3yz

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 24: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict410 Gone411 Length Required412 Precondition Failed413 Payload Too Large414 Request-URI Too Long415 Unsupported Media Type416 Requested Range Not Satisfiable417 Expectation Failed418 I'm a teapot421 Misdirected Request422 Unprocessable Entity423 Locked424 Failed Dependency

HTTP, codici di stato: 4yz426 Upgrade Required428 Precondition Required429 Too Many Requests431 Request Header Fields Too Large444 Connection Closed Without Response451 Unavailable For Legal Reasons499 Client Closed Request

4yz Client error

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 25: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP, codici di stato: 5yz

5yz Server error

500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported506 Variant Also Negotiates507 Insufficient Storage508 Loop Detected510 Not Extended511 Network Authentication Required599 Network Connect Timeout Error

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 26: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP over TLS[RFC 2818]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 27: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TCP/UDP 443[Kipp_E_B_Hickman]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 28: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

HTTP/1.1 200 OKDate: Sat, 17 Mar 2018 14:55:35 GMTServer: Apache/2.4.23 (FreeBSD) OpenSSL/1.0.1e-freebsd PHP/5.4.45X-Powered-By: PHP/5.4.45Link: <https://as59715.net/wp-json/>; rel="https://api.w.org/"Transfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

openssl s_client -connect -crlf as59715.net:443CONNECTED(00000003)depth=1 /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3verify error:num=20:unable to get local issuer certificateverify return:0---Certificate chain 0 s:/CN=as59715.net i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 i:/O=Digital Signature Trust Co./CN=DST Root CA X3---[...]

GET / HTTP/1.1Host: as59715.net[CRLF]

Telnet LAB

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 29: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Hypertext Transfer Protocol Version 2 (HTTP/2)[RFC 7540]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 30: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

RFC 7540HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 31: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Live Testhttps://http2.akamai.com/demo

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 32: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Verificare il supporto di HTTP/2https://tools.keycdn.com/http2-test

nghttp -vn https://www.prado.it|grep protocolThe negotiated protocol: h2

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 33: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Brotli Compressed Data Format[RFC 7932]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 34: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

BROTLIThis specification defines a lossless compressed data format that compresses data using a combination of the LZ77 algorithm and Huffman coding, with efficiency comparable to the best currently available general-purpose compression methods.

Page 35: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

BROTLISupporto nei più diffusi browser

Page 36: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Applicability of the QUIC Transport Protocolhttps://datatracker.ietf.org/doc/draft-ietf-quic-applicability/

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 37: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

QUIC: Quick UDP Internet ConnectionThe QUIC working group will provide a standards-track specification for a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment experience, and generalizing the design described in draft-hamilton-quic-transport-protocol, draft-iyengar-quic-loss-recovery, draft-shade-quic-http2-mapping, and draft-thomson-quic-tls.

Page 38: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TCP/UDP 443[Kipp_E_B_Hickman]

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 39: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

QUIC: Quick UDP Internet ConnectionKey goals for QUIC are:- Minimizing connection establishment and overall transport latency for applications, starting with HTTP/2;- Providing multiplexing without head-of-line blocking;- Requiring only changes to path endpoints to enable deployment;- Enabling multipath and forward error correction extensions; and- Providing always-secure transport, using TLS 1.3 by default.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 40: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

QUIC: Quick UDP Internet ConnectionQUIC tenta di ricostruire la semantica del TCP, come pure un po’ del modello di flusso di HTTP/2, sulla base di UDP.

Il progetto, come HTTP/2, è iniziato a Google (gQUIC) per poi essere recepito da IETF (iQUIC)

Google ha già implementato QUIC nel browser Chrome per i propri siti così che oggi rappresenta già il 7% circa dell’intero traffico Internet.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 41: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

DNS Over HTTPShttps://datatracker.ietf.org/doc/draft-ietf-doh-dns-over-https/

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 42: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

DNS over HTTPSRendere standard le richieste e le risposte DNS che sono adatte per essere usate in HTTPS: questo consentirà l’uso del DNS in quelle circostanze dove altri metodi falliscono. Occorre ri-usare il più possibile i metodi HTTPS, i codici di errore e altra semantica.

L’obiettivo primario del lavoro su DoH è quello di sviluppare un meccanismo in grado di garantire riservatezza e connettività tra i client DNS e i risolutori ricorsivi dei nomi.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 43: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

DNS over HTTPS

https://dns.google.comAntonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 44: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

The Transport Layer Security (TLS) Protocol Version 1.3https://datatracker.ietf.org/doc/draft-ietf-tls-tls13/

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 45: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TLS 1.3Tra gli scopi principali del progetto:

- Sviluppare un modo per criptare il più possibile la fase di handshake così da ridurre la quanità di dati osservabile da eventuali malintenzionati.

- Sviluppare modalità per ridurre la latenza della fase di handshake che principalmente supporta le applicazioni basate su HTTP, tentando di limitare a uno il roundtrip necessario per un handshake completo e a zero i roundtrip necessari per gli handshake successivi.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 46: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TLS 1.3 e 0-RTT (zero round trip time resumption)Circa il 60% delle connessioni su Internet è generato da naviganti che visitano un sito per la prima volta o che lo rivisitano dopo un lungo periodo di tempo. TLS 1.3 accelera di molto queste connessioni.

Il rimanente 40% è di naviganti che hanno da poco visitato un sito e riattivano una connessione precedente. Per queste connessioni riattivate, lo standard TLS 1.3 è più sicuro ma non più veloce rispetto alle versioni precedenti.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 47: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TLS 1.3 e 0-RTT (zero round trip time resumption)Ecco che interviene 0-RTT, una tecnica che rende drasticamente più veloci le connessioni riattivate.

In questo modo l’esperienza di navigazione, soprattutto dalle reti mobili, diventa più veloce e scorrevole per quei siti che vengono visitati regolarmente.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 48: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TLS 1.3 e 0-RTT (zero round trip time resumption)Quando un browser scarica una pagina web in HTTPS per la prima volta, dietro le quinte si possono individuare 4 fasi:

1 Risoluzione del nome

2 Handshake TCP (1 roundtrip): il client invia un pacchetto SYN al server il quale risponde con un pacchetto ACK, dunque una

andata e un ritorno.

3 Handshake TLS (2 roundtrip): client e server si scambiano le chiavi di crittografia e stabiliscono una connessione criptata.

Con TLS 1.2 o precedenti ci sono due andata-e-ritorno.

4 HTTP (1 roundtrip): una volta stabilita la connessione TLS, il browser invia una richiesta HTTP criptata, per esempio un GET

per una URL. Il server procederà con una risposta HTTP contenente il codice HTML della pagina. A quel punto il browser

comincerà a visualizzarne il contenuto.

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 49: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

TLS 1.3 e 0-RTT (zero round trip time resumption)Dato che la fase del DNS può considerarsi istantanea, possiamo contare 4 andata-e-ritorno prima di poter visualizzare la pagina web.

Quando visitiamo una pagina già aperta recentemente, l’handshake TLS può accorciarsi da due andata-e-ritorno a una con la tecnica del ripristino della sessione TLS. Invece, con la tecnica 0-RTT, si può eliminare una ulteriore andata-e-ritorno nel 40% dei casi.

Page 50: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

TLS 1.3 e 0-RTT (zero round trip time resumption)Ecco un riepilogo:

TLS 1.2 (e precedenti)Nuova connessione: 4 RTT + DNS Connessione ripresa: 3 RTT + DNS

TLS 1.3Nuova connessione: 3 RTT + DNS Connessione ripresa: 3 RTT + DNS

TLS 1.3 + 0-RTTNuova connessione: 3 RTT + DNS Connessione ripresa: 2 RTT + DNS

Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018

Page 51: architetture di rete Internet e - Prado.it · 2018-03-21 · a UDP-based, stream-multiplexing, encrypted transport protocol, based on pre-standardization implementation and deployment

Questions?Antonio Prado - Internet e architetture di rete @ Università di Pescara, 21 marzo 2018