HTTP

Hur HTTPS fungerar? - Nybörjarguide

Hur HTTPS fungerar? - Nybörjarguide
Certifikatutfärdare är en av de viktigaste hörnstenarna för internetsäkerhet. En certifikatutfärdare är någon som alla litar på i början när ingen litar på någon annan. Det är då denna certifikatmyndighets uppgift (a.k.ett CA) för att säkerställa att förtroende skapas mellan servrar och klienter innan de upprättar kommunikation via Internet.En CA är viktig inte bara för HTTPS som används av webbläsare och webbappar, utan också för krypterade e-postmeddelanden, signerade programuppdateringar, VPN och mycket mycket mer. Vi tar det prototypiska exemplet på HTTPS och lär oss mer om CA, i detta specifika sammanhang. Även om du kan extrapolera resultatet till någon annan programvarupaket.

Problem med HTTP och vanlig text

Internet är en opålitlig kommunikationskanal. När du skickar eller tar emot information från en gammal HTTP-webbplats http: //www.exempel.com i din webbläsare kan många saker hända mitt i dina paket.

  1. En dålig skådespelare kan fånga upp kommunikationen, kopiera data för sig själva innan den skickas igen på kanalen mot dig eller servern du pratade med. Utan någon parts kännedom äventyras informationen. Vi måste se till att kommunikationen är privat.
  2. En dålig skådespelare kan ändra informationen när den skickas över kanalen. Bob kanske har skickat ett meddelande “X” men Alice skulle få “Y” från Bob, för att en dålig skådespelare fångade upp meddelandet och modifierade det. Med andra ord, integritet av meddelandet äventyras.
  3. Slutligen och viktigast av allt måste vi se till att personen vi pratar med verkligen är den de säger att de är. Återgår till exempel.com domän. Hur kan vi se till att servern som svarade tillbaka till oss verkligen är den rättmätiga innehavaren av www.exempel.com? När som helst i ditt nätverk kan du omdirigeras till en annan server. En DNS någonstans är ansvarig för att konvertera ett domännamn, till exempel www.exempel.com, till en IP-adress på det offentliga internet. Men din webbläsare har inget sätt att verifiera att den DNS-översatta IP-adressen.

De två första problemen kan lösas genom att kryptera meddelandet innan det skickas över Internet till servern. Det vill säga genom att byta till HTTPS. Men det sista problemet, problemet med Identity är där en certifikatutfärdare spelar in.

Initiera krypterade HTTP-sessioner

Det största problemet med krypterad kommunikation över en osäker kanal är ”Hur startar vi det?”

Det allra första steget skulle involvera de två parterna, din webbläsare och servern, för att utbyta krypteringsnycklarna som ska utbytas över den osäkra kanalen. Om du inte känner till termnycklarna, tänk på dem som ett riktigt långt slumpmässigt genererat lösenord med vilket dina data kommer att krypteras innan de skickas över den osäkra kanalen.

Om nycklarna skickas över en osäker kanal kan vem som helst lyssna på det och äventyra säkerheten för din HTTPS-session i framtiden. Dessutom, hur kan vi lita på att nyckeln skickas av en server som påstår sig vara www.exempel.com är verkligen den faktiska ägaren av det domännamnet? Vi kan ha en krypterad kommunikation med en skadlig part som maskeras som en legitim webbplats och inte vet skillnaden.

Så problemet med att säkerställa identitet är viktigt om vi vill säkerställa säker nyckelutbyte.

Certifikatmyndigheter

Du kanske har hört talas om LetsEncrypt, DigiCert, Comodo och några andra tjänster som erbjuder TLS-certifikat för ditt domännamn. Du kan välja den som passar dina behov. Nu måste personen / organisationen som äger domänen bevisa på något sätt för sin certifikatutfärdare att de verkligen har kontroll över domänen. Detta kan göras genom att antingen skapa en DNS-post med ett unikt värde, enligt certifikatutfärdarens begäran, eller så kan du lägga till en fil på din webbserver, med innehåll som anges av certifikatutfärdaren, CA kan sedan läsa den här filen och bekräfta att du är en giltig ägare av domänen.

Sedan förhandlar du om ett TLS-certifikat med CA, och det resulterar i en privat nyckel och ett offentligt TLS-certifikat utfärdat till din domän. Meddelanden krypterade av din privata nyckel kan sedan dekrypteras av det offentliga certifikatet och vice versa. Detta kallas asymmetrisk kryptering

Klientwebbläsarna, som Firefox och Chrome (ibland även operativsystemet), har kunskap från certifikatutfärdare. Denna information bakas in i webbläsaren / enheten från början (det vill säga när de är installerade) så att de vet att de kan lita på vissa CA: er. Nu när de försöker ansluta till www.exempel.com över HTTPS och se ett certifikat utfärdat av, säger DigiCert, kan webbläsaren faktiskt verifiera att med hjälp av nycklarna lagrade lokalt. Egentligen finns det några fler mellanliggande steg till det, men det här är en bra förenklad översikt över vad som händer.

Nu när certifikatet från www.exempel.com kan lita på, detta används för att förhandla fram en unik symmetrisk krypteringsnyckel som används mellan klienten och servern under återstoden av deras session. Vid symmetrisk kryptering används en nyckel för att kryptera såväl som dekryptering och är vanligtvis mycket snabbare än dess asymmetriska motsvarighet.

Nyanser

Om idén om TLS och internetsäkerhet tilltalar dig kan du titta vidare på det här ämnet genom att gräva i LetsEncrypt och deras kostnadsfria TLS CA. Det finns mycket mer detaljerad för hela denna rigmarol än vad som anges ovan.

Andra resurser som jag kan rekommendera för att lära mig mer om TLS är Troy Hunts blogg och arbete gjort av EFF som HTTPS Everywhere och Certbot. Alla resurser är gratis åtkomst och riktigt billiga att genomföra (du måste bara betala för domännamnsregistrering och VPS timavgifter) och få en praktisk upplevelse.

Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...