Webbsäkerhet
Webbsäkerhet är ett omfattande område. Det handlar bland annat om:
- Fysisk säkerhet för webbservern
- Säker identifikation av servern
- Säker identifikation av företaget
- Kryptering av trafiken över nätverket
- Säkra applikationer på webbservern
Säker identifikation på servern
För användaren är det viktigt att veta att servern man har kontakt med är rätt server, så att inte uppkopplingen har gjorts till fel tjänst av en eller annan anledning – fel konfiguration eller lurendrejeri. SSL och TLS-protokollen ger användarna möjlighet att kontrollera att servern är rätt server. Webbläsaren kontrollerar adressen som uppgivits i webbläsaren med den serveradress som ingår i webbcertifikatet. Om dessa inte stämmer överens, får användaren en varning att säkerheten kan vara bruten.
Säker identifikation av företaget
För vissa certifikat, t.ex. Truesite Business ID, kontrollerar utfärdaren noggrant att företaget bakom webbservern existerar, äger domänen och att rätt uppgifter är registrerade i certifikatet. Vid signering intygar utfärdaren, t.ex. GeoTrust, att företaget bakom är det som uppges i certifikatet och att servern är korrekt server enligt certifikatet.
Certifikatet har en giltighetstid och uppdateras med jämna mellanrum. Vid varje förnyelse kontrolleras att uppgifterna stämmer. Användarna kan lätt kontrollera certifikat för olika tjänster genom att klicka på låset i webbläsaren. Då visas certifikatet med alla detaljer.
Kryptering av trafiken
Med hjälp av certifikatet och de tillhörande krypteringsnycklarna kan en webbläsare upprätta en säker, krypterad, session, med webbservern. Hur stark kryptering som används avgörs av webbläsaren och webbservern. Programvarorna genomför en förhandling där programvarornas möjligheter att kryptera sessionen jämförs och ett val görs av den bästa lösningen som både klient och server klarar av.
Uppkoppling av en säker session med SSL
En uppkoppling av en webbläsare mot en säker webbserver sker i korta drag (och lite förenklat) så här:
- Webbanvändaren knappar in en adress eller klickar på en länk som inleds med https://
- Webbläsaren anropar servern med en säker variant av webbprotokollet http, baserad på säkerhetsprotokollet SSL
- Webbservern identifierar sig genom att sända ett certifikat, signerat av en av webbläsaren känd utfärdare. Webbläsaren kan kontrollera giltigheten hos certifikatet on line med certifikatutfärdaren, som också kallas CA, certificate authority.
- Webbläsaren använder certifikatets öppna nyckel för att på ett säkert sätt sända över en hemlighet till servern, som sedan gemensamt kan användas för att kryptera trafiken mellan webbläsare och server
- Om webbservern kan dekryptera hemligheten, så har servern bekräftat sin identitet. Om den inte kan dekryptera hemligheten har servern inte tillgång till rätt kryptonyckel och är förmodligen fel server.
- Med hjälp av den gemensamma hemligheten, som nu blir kryptonyckel, krypteras datatrafiken mellan server och webbläsare
- Användaren kan när som helst klicka på det lilla låset i nedre delen av webbläsaren för att kontrollera serverns certifikat
Kan jag ha flera webbservrar på samma IP-adress?
På en vanlig – okrypterad – webbserver kan flera olika webbar med olika adresser (www.foretag.se, www.foretag.com) dela en IP-adress. Det går inte med SSL. Orsaken är att förhandlingen (se ovan) sker innan webbläsaren fått en chans att tala om vilken webb den vill koppla upp sig mot (host:-headern). SSL går före HTTP-protokollet, med tekniska termer.
Det gör att om du delar adress, så kommer din webbläsare att klaga att www.foretag.com använder ett certifikat som tillhör någon annan. Rekommendationen till användaren är att snarast möjligt gå någon annanstans och undvika den här skumrasktjänsten, uttryckt med något finare språk i en dialogruta.
SSL-protokollet har uppdaterats nyligen, så att en SSL-klient kan “välja” server i början av SSL-förhandlingen. Det är dock inte implementerat i alla klienter än.
Säkra programvaror på webbservern
Kryptering och identifikation skapar säkerhet för en pågående session. Webbserversäkerhet handlar också om att programvarorna på servern ska vara säkra och ge rätt användare tillgång till rätt information. Det ska inte finnas möjlighet att tillgodogöra sig annan information eller otillbörligen förändra information på servern. Det kräver att utvecklingen av programvarorna på servern sker på ett säkert sätt med säkerhet som ett av grundkraven.