HTTPS: Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
Rad 78: | Rad 78: | ||
=== 5. Krypterad kommunikation === | === 5. Krypterad kommunikation === | ||
All ytterligare kommunikation är nu krypterad och sker genom att använda sessionnyckeln. | All ytterligare kommunikation är nu krypterad och sker genom att använda sessionnyckeln. | ||
Serverns svar på GET-förfrågan: | Exempelvis, en HTTP GET-förfrågan: | ||
< | |||
Server: HTTP/1.1 200 OK | <code>Client: GET /index.html HTTP/1.1</code> | ||
Server: (webbsidans innehåll) | |||
</ | <code>Serverns svar på GET-förfrågan:</code> | ||
<code>Server: HTTP/1.1 200 OKClient: GET /index.html HTTP/1.1↵</code> | |||
<code>Serverns svar på GET-förfrågan:</code> | |||
<code>Server: HTTP/1.1 200 OK</code> | |||
<code>Server: (webbsidans innehåll)</code> | |||
<code>Server: (webbsidans innehåll)</code> |
Nuvarande version från 19 maj 2024 kl. 07.56
HTTPS
HTTPS (HyperText Transfer Protocol Secure) är en säker version av HTTP, det protokoll som används för att överföra webbsidor på internet. HTTPS använder sig av TLS (Transport Layer Security) eller SSL (Secure Sockets Layer) för att kryptera dataöverföringen mellan klienten (webbläsaren) och servern. Detta säkerställer att data förblir konfidentiell och integriteten bibehålls under överföringen.
Historia
HTTPS introducerades av Netscape Communications Corporation i 1994 för deras webbläsare Netscape Navigator. Syftet var att skapa en säker kanal för att överföra känslig information såsom betalningsdetaljer. Sedan dess har HTTPS blivit standard för säkra webbplatser och används i stor utsträckning för att skydda användardata och kommunikation.
Funktioner
HTTPS tillhandahåller flera säkerhetsfunktioner:
- Kryptering: All data som överförs mellan klienten och servern krypteras, vilket förhindrar att obehöriga kan läsa eller manipulera informationen.
- Autentisering: Serverns identitet verifieras med hjälp av digitala certifikat, vilket försäkrar klienten om att den kommunicerar med rätt server.
- Integritet: Data som skickas över HTTPS kan inte ändras eller förvrängas utan att detta upptäcks.
Teknisk Översikt
För att förstå hur HTTPS fungerar på en teknisk nivå är det viktigt att gå igenom de steg som sker när en HTTPS-anslutning etableras:
1. Klientförfrågan
När en användare besöker en HTTPS-webbplats, skickar webbläsaren en förfrågan till servern för att etablera en säker anslutning. Detta görs via port 443, vilket är standardporten för HTTPS-trafik.
2. Serverns certifikat
Servern svarar med att skicka sitt digitala certifikat till klienten. Certifikatet innehåller serverns publika nyckel och information om certifikatutfärdaren (CA - Certificate Authority).
3. Certifikatvalidering
Klienten validerar certifikatet genom att kontrollera att det är utfärdat av en betrodd CA och att det inte har gått ut eller blivit återkallat. Om certifikatet är giltigt, använder klienten den publika nyckeln för att kryptera en slumpmässig sessionnyckel.
4. Nyckelutbyte
Den krypterade sessionnyckeln skickas tillbaka till servern, som dekrypterar den med sin privata nyckel. Både klienten och servern har nu en gemensam sessionnyckel som kommer att användas för att kryptera den fortsatta kommunikationen.
5. Krypterad kommunikation
Alla efterföljande dataöverföringar mellan klienten och servern krypteras med sessionnyckeln. Detta säkerställer att datan förblir privat och säker från avlyssning och manipulation.
Exempel på HTTPS i Användning
Låt oss illustrera detta med ett exempel på hur HTTPS fungerar i praktiken:
1. Användaren skriver in "https://www.example.com" i webbläsarens adressfält. 2. Webbläsaren skickar en förfrågan till "www.example.com" över port 443. 3. Servern på "www.example.com" skickar tillbaka sitt digitala certifikat. 4. Webbläsaren validerar certifikatet och använder den publika nyckeln för att kryptera en slumpmässig sessionnyckel. 5. Servern dekrypterar sessionnyckeln med sin privata nyckel. 6. Nu är en säker kommunikationskanal etablerad och all vidare dataöverföring är krypterad.
Exempel på Protokollflöde
Här följer ett exempel på hur HTTPS-protokollet fungerar på en teknisk nivå, inklusive några av de faktiska kommandona som skickas:
Exempel på Protokollflöde
Här följer ett exempel på hur HTTPS-protokollet fungerar på en teknisk nivå, inklusive några av de faktiska kommandona som skickas:
1. Klientförfrågan
Klienten skickar en förfrågan om att starta en säker anslutning: <syntaxhighlight lang="plaintext"> Client: ClientHello </syntaxhighlight>
2. Serverns svar
Servern svarar med sitt certifikat och kryptografiska parametrar: <syntaxhighlight lang="plaintext"> Server: ServerHello Server: Certificate Server: ServerKeyExchange Server: ServerHelloDone </syntaxhighlight>
3. Klientens svar
Klienten validerar certifikatet och skickar tillbaka en krypterad sessionnyckel: <syntaxhighlight lang="plaintext"> Client: ClientKeyExchange Client: ChangeCipherSpec Client: Finished </syntaxhighlight>
4. Serverns bekräftelse
Servern dekrypterar sessionnyckeln och bekräftar att den säkra anslutningen är etablerad: <syntaxhighlight lang="plaintext"> Server: ChangeCipherSpec Server: Finished </syntaxhighlight>
5. Krypterad kommunikation
All ytterligare kommunikation är nu krypterad och sker genom att använda sessionnyckeln.
Exempelvis, en HTTP GET-förfrågan:
Client: GET /index.html HTTP/1.1
Serverns svar på GET-förfrågan:
Server: HTTP/1.1 200 OKClient: GET /index.html HTTP/1.1↵
Serverns svar på GET-förfrågan:
Server: HTTP/1.1 200 OK
Server: (webbsidans innehåll)
Server: (webbsidans innehåll)