← Område 9 Uppslag · DNS, HTTP och HTTPS Ordlista

Dator- och nätverksteknik · område 9 · lektion 48

DNS, HTTP och HTTPS

Sex pass har öppnat ett lager i taget — ramen, ARP, IP, ICMP, TCP och UDP, DHCP. Här används alla på en gång. Någon skriver en webbadress, och på en bråkdel av en sekund slås namnet upp, en anslutning öppnas och en sida hämtas. Sidan går igenom DNS, HTTP och HTTPS — inklusive vad HTTPS döljer och vad det faktiskt lämnar synligt — och följer sedan ett enda paket genom alla fyra lagren, ut och in. Det är samma sekvens som ska stå i labbrapporten.

1. DNS

DNS — Domain Name System — översätter ett namn till en IP-adress:

I parets kopia

webb.lab → 192.168.1.2

Se det i kopian:

  1. Reset Simulation, filter på DNS, TCP och HTTP
  2. PC:ns Web Browser: http://webb.lab, Go
  3. Klicka fram och titta på ordningen: först två DNS-kuvert — frågan och svaret, klara och avslutade
  4. Först därefter börjar TCP-handskakningen, mot adressen DNS svarade med
Två transaktioner, inte en

Webbläsaren kan inte öppna en anslutning mot ett namn. Den behöver adressen först, och den frågar efter den i ett eget utbyte som är över innan webbanslutningen ens börjar.

På internet är det fler steg än i kopian:

StegVem frågasSvarar
1Din resolver — ofta internetleverantörensJag vet inte, men jag frågar
2En root-serverFråga .com-servrarna
3En TLD-server för .comFråga example.com:s egen server
4Den auktoritativa servern93.184.216.34

Sedan cachen, samma idé som ARP-cachen på lektion 44: svaret sparas, och nästa gång går det på ett steg. I Packet Tracer är servern själv den auktoritativa för webb.lab.

2. HTTP

HTTP — HyperText Transfer Protocol — är webbens protokoll. Det är vanlig text, rad för rad. En förfrågan ser ut så här, och avslutas med en tom rad:

GET / HTTP/1.1
Host: webb.lab

Svaret börjar med en statuskod:

KodBetyder
200 OKHär är sidan
404 Not FoundServern fanns. Sidan fanns inte
301 Moved PermanentlySidan har flyttat — här är den nya adressen
404 är inte ett nätverksfel

Anslutningen fungerade, DNS fungerade, TCP fungerade — det var bara sökvägen som var fel. Samma tanke som med pingen på lektion 45: svaret säger vad som gick fel, och ingenting mer.

Öppna ett HTTP-kuvert i kopian. Layer 7: HTTP. Layer 4: TCP, port 80.

3. HTTPS

HTTPS är HTTP med kryptering runt — TLS, Transport Layer Security. Samma förfrågan, men ingen på vägen kan läsa den.

  1. Servern: Services → HTTP. Kontrollera att HTTPS On är på
  2. Simulation, filter på DNS, TCP, HTTP och HTTPS
  3. PC:ns Web Browser: https://webb.lab
  4. Klicka fram. Samma DNS först — okrypterat, över UDP 53. Sedan TCP-handskakningen mot port 443 i stället för 80. Sedan HTTPS-kuverten, där innehållet inte går att läsa

Det viktiga är vad HTTPS döljer — och vad det inte döljer:

HTTPS döljerHTTPS lämnar synligt
Sidans innehållKäll- och mål-IP — nätet måste veta vart paketet ska
Sökvägen — /konto/installningarPortnumret 443
Formulär och lösenordVärdnamnet — i SNI, se nästa avsnitt
KakorDNS-frågan före — den skickades okrypterad

4. Det som syns: SNI

Den tredje raden i högerkolumnen är den som brukar överraska. Så här ser handskakningens allra första meddelande ut, ClientHello:

TLS Handshake: ClientHello
  Version: TLS 1.3
  Extension: server_name
    Server Name: webb.lab          ← klartext
  Extension: key_share
    (klientens nyckeldel)

SNI — Server Name Indication — är ett fält i ClientHello. Klienten talar om vilken webbplats den vill nå, eftersom servern kan ha många och behöver välja rätt certifikat. Det skickas innan krypteringen är upprättad. Alltså i klartext.

Därför en bild och inte Packet Tracer

Packet Tracer visar HTTPS-trafiken, men öppnar inte TLS-handskakningen. Meddelandena där nycklar utbyts och där SNI-fältet står syns inte som egna kuvert. I ett verktyg som fångar riktig trafik syns fältet precis som på bilden ovan.

Slutsatsen, i en mening

Den som ser trafiken vet vilken webbplats du besökte — men inte vad du gjorde där.

En nyans på A-nivå

Om HTTPS döljer innehållet, varför skickas DNS-frågan okrypterad? Det finns nyare lösningar — DNS över HTTPS, och krypterad ClientHello, ECH — som döljer också namnet. Men de används inte överallt.

5. Kapslingen hela vägen

Områdets huvudidé, i ett enda paket. Ett meddelande som skrivs i en applikation kapslas in i ett TCP- eller UDP-segment, segmentet i ett IP-paket, paketet i en Ethernet-ram — och ramen skickas som bitar på kabeln. Hos mottagaren packas samma lager upp i omvänd ordning.

  1. Klicka fram HTTPS-sekvensen från avsnitt 3 till det första HTTPS-kuvertet efter handskakningen, från PC:n till servern
  2. Öppna det hos PC:n: Out Layers. Läs lager för lager, uppifrån
  3. Klicka fram till servern. Öppna kuvertet igen: In Layers

Hos PC:n, på väg ut:

TCP/IP-lagerLayerVad lagret tillfördeEnheten heter
Applikation7Förfrågan, krypterad av TLSdata
Transport4TCP: källport, målport 443, sekvensnummersegment
Internet3IP: käll-IP, mål-IP 192.168.<grupp>.2paket
Nätverksåtkomst2, 1Ethernet: käll-MAC, mål-MAC. Sedan bitar på portenram, bitar

Hos servern, på väg in — samma rader, nerifrån och upp. Varje lager tar bort sitt eget kuvert och lämnar resten uppåt:

  1. Layer 1–2: ramen tas emot. Mål-MAC:en är serverns, FCS stämmer. Ethernet-kuvertet av
  2. Layer 3: mål-IP:n är serverns. IP-kuvertet av
  3. Layer 4: port 443 — det är webbservern. TCP-kuvertet av
  4. Layer 7: TLS dekrypterar. Förfrågan är framme
Det här är labbrapportens resultatdel

Exakt den här sekvensen — ut hos sändaren, in hos mottagaren, vad varje lager tillförde — ska stå i rapporten, för det paket du själv väljer på lektion 49. Skriv av tabellen eller fotografera den.

Vill du ha mer

Följ DNS-frågan genom lagren på samma sätt och jämför: vad skiljer Layer 4? Öppna Outbound PDU Details i HTTPS-kuvertet och se vad som står i TCP-headern. Är sekvensnumret samma som i handskakningen?

6. Noderna

DNS-uppslaget

Pröva det själv

ComputerExplorer → networking → dns — nodens titel är DNS.

Tryck ▸ Slå upp www.example.com. Följ den kalla uppslagningen — root, TLD, auktoritativ — och titta i Resolverns cache. Tryck igen: nu står det Cacheträff. Samma idé som ARP-cachen. Tryck Töm cache och se kedjan komma tillbaka.

Förfrågan och svaret

ComputerExplorer → networking → http — nodens titel är HTTP-förfrågan. Kör scenariot GET → 200 och sedan GET → 404. Läs förfrågan rad för rad. Vad skiljer svaren?

Kör också GET → 301 och leta upp Location-huvudet. Det är så http:// blir https:// när du skriver en adress utan att tänka på det.

Handskakningen

ComputerExplorer → networking → tls-handshake — nodens titel är TLS-handskakning. Stega igenom handskakningen. Första steget är ClientHello — meddelandet som bär SNI-fältet från bilden i avsnitt 4. Noden nämner inte SNI själv; den visar var i handskakningen meddelandet hör hemma.

Kontrollfrågan

Vid vilket steg blir kanalen krypterad? ClientHello skickas före det steget. Vad betyder det för SNI?

7. Paketets resa

ComputerExplorer → networking → packet-journey — nodens titel är Paketets resa. Tryck Spela ⏵ och låt den gå igenom nio steg:

Stegen

Tolka URL:en → DNS-uppslagning → ARP → Routa över internet → TCP-handskakning → TLS-handskakning → HTTP-förfrågan → HTTP-svar → Rendera sidan

Nästan varje steg har du sett i området. Det fjärde, Routa över internet, är område 10 — en förhandstitt på hur routern väljer väg.

8. Inför labben

På lektion 49 väljer du det paket du följer genom lagren i rapporten. Hela genomgången av valet, kraven och bedömningen står på labbsidan. Det korta:

ICMP räcker för E

Men ett paket med alla fyra lager fyllda ger mer att förklara, och det är där C och A skrivs. A-nivån förklarar sambandet mellan lagren: varför ARP måste komma före ICMP, varför DHCP går över UDP, vad HTTPS inte döljer — och varför det inte kan dölja det.

9. Vanliga missuppfattningar

7 rader

Man tror oftaMen
HTTPS döljer vilken sida jag besökerInnehållet och sökvägen, ja. Värdnamnet och IP-adressen, nej
404 är ett nätverksfelNätet fungerade. Sökvägen var fel. Svaret säger bara det
DNS och HTTP är samma anslutningTvå transaktioner. DNS är klar innan TCP börjar
SNI går att hitta i Packet TracerSimulatorn öppnar inte TLS-handskakningen. Därför bilden i avsnitt 4
DNS-kuverten kommer alltid före TCPBara om namnet skrevs och inte låg i cachen. Reset Simulation, och skriv namnet
https://webb.lab borde fungera direktHTTPS kan vara av på servern: Services → HTTP → HTTPS On
Det lättaste paketet är det bästa att följaICMP räcker för E. Fyra lager ger mer att förklara

10. Ordlista

Ordträning

OrdBetyder
DNSDomain Name System — översätter ett namn till en IP-adress, i en egen transaktion
ResolverDen DNS-server du frågar först, ofta internetleverantörens. Frågar vidare åt dig
Root-serverToppen av DNS-hierarkin. Svarar med vilka servrar som har hand om till exempel .com
TLDTop-level domain — sista delen av namnet, som .com
Auktoritativ serverDen server som har det riktiga svaret för ett visst namn
HTTPHyperText Transfer Protocol — webbens protokoll. Vanlig text, rad för rad. Port 80
StatuskodTalet först i HTTP-svaret: 200, 404, 301
HTTPSHTTP med TLS-kryptering runt. Port 443
TLSTransport Layer Security — krypteringen i HTTPS
ClientHelloFörsta meddelandet i TLS-handskakningen, skickat innan krypteringen är upprättad
SNIServer Name Indication — värdnamnet i ClientHello. Syns i klartext
KapslingVarje lager lägger sitt kuvert runt lagret ovanför på väg ut, och tar bort sitt på väg in