SSL och S-HTTP säkrar webbhandeln

Om e-handel och bankaffärer ska fungera på Internet kräver det säkra transaktioner. Det kräver i sin tur kryptering av meddelanden och att parterna kan bekräfta varandra. Två verktyg för att klara detta är SSL (Secure Sockets Layer) och S-HTTP (Secure HyperText Transfer Protocol).

Säkra transaktioner är fundamentalt för kommersiella applikationer på Internet. Webbaserad handel och bankaffärer bygger i hög grad på formulär på som ska fyllas i, ofta med känslig information som kreditkortsnummer. Tyvärr sänder HTTP — standardprotokollet för webbtransaktioner — ut informationen i klartext så att den mycket enkelt kan uppsnappas av obehöriga.

Säker överföring kräver konfidentiella transaktioner som inte kan manipuleras på vägen. Vidare måste parterna kunna bekräfta varandras identitet för att undvika obehöriga transaktioner. Av de skälen krävs bland annat kryptering av meddelanden och autentisering av berörda parter. Flera verktyg har tagits fram för att uppnå detta.

De mest framstående är SSL (Secure Sockets Layer) och S-HTTP (Secure HyperText Transfer Protocol). De två protokollen har fundamentala skillnader.

S-HTTP är en implementering på applikationsnivå, en kryptografisk utbyggnad av HTTP-protokollet. SSL ligger å andra sidan som ett lager mellan applikations- och nätverksnivå. Det innebär att SSL även kan användas med andra överliggande applikationsprotokoll, till exempel FTP. Det finns heller inga hinder mot att SSL och S-HTTP används tillsammans, som ett komplement till varandra.

Idag är båda protokollen implementerade i många webbläsare, vilket gör dem tillgängliga för en bred allmänhet.

SSL från Netscape
SSL utvecklades ursprungligen av Netscape. Numera är det ett öppet protokoll, sedan det överlämnats till IETF (Internet Engineering Task Force) som en föreslagen Internetstandard.

SSL låter två applikationer att kommunicera över ett nätverk utan risk för avlyssning. Dessutom autentiseras servern och som option även klienten. SSL placeras som ett oberoende lager mellan underliggande nätverksprotokoll och överliggande applikation. Därmed kan SSL användas i olika typer av nätverk under förutsättning att det tillhandhåller ett felkorrigerande transportprotokoll som TCP/IP.

Säker kommunikation mellan klient och server uppnås genom autentisering, kryptering, fingeravtryck och digitala signaturer. Ett flertal algoritmer för dessa funktioner stöds, vilket gör att val kan ske utifrån gällande lagstiftning, exportrestriktioner, etcetera.

SSL arbetar med en kombination av symmetriska och asymmetriska krypteringsmetoder (DES, RC4 med flera). Den asymmetriska krypteringen med publika nycklar kräver att alla webbservrar som använder SSL måste ha ett certifikat från en oberoende certifikatutgivare.

I samband med etableringen av en SSL-session förhandlar klienten och servern om val av krypteringsmetod och utbyte av sessionsnycklar. Klienten informerar servern om vilka krypteringsmetoder den hanterar. De flesta webbläsare klarar DES, RC4 och IDEA. Servern väljer en av dessa typer och meddelar klienten sitt val. Samtidigt levererar servern ett certifikat med sin publika nyckel.

Asymmetrisk kryptering används endast för utväxling av de symmetriska nycklar som klienten genererar för användning under den följande sessionen. Symmetrisk kryptering är nämligen mindre beräkningsintensiv än asymmetrisk. För att öka säkerheten används två nycklar, en för vardera trafikriktningen. Klienten krypterar sessionsnycklarna med serverns publika nyckel. Servern dekrypterar med sin hemliga nyckel och sedan kan informationsutbytet börja.

Data som transporteras under sessionen kappslas in i en SSL Record med en två till tre bytes lång header. Vid längre tids inaktivitet byts sessionsnycklarna ut för att minska eventuella angreppsrisker.

S-HTTP flexiblare
S-HTTP utvecklades 1994 av företaget Enterprise Integration Technologies (EIT) som en utbyggnad av HTTP. Kort därefter överlämnades det till IETF som en föreslagen standard.

S-HTTP ger en god flexibilitet i val av mekanismer för nyckelhantering och krypteringsalgoritmer. Det uppnås genom att parterna förhandlar om optioner inför varje transaktion.

S-HTTP stöder både symmetrisk och asymmetrisk nyckelhantering. Möjligheten att uteslutande använda symmetriska nycklar gör protokollet oberoende av publika nycklar och certifikat. Istället kan klienten och servern på egen hand komma överens om vilken nyckel som ska användas. Exempel på metoder för att utväxling av nycklar är RSA enveloping och Kerberos.

En viktig egenskap hos S-HTTP är dess förmåga att urskilja ett dokuments ursprung oavsett på vilken server det ligger, vilket ger ett visst upphovsrättsligt skydd.

 

Kryptering nyckeln till säker överföring

Antag att du via Internet sänder ett meddelande till din bank om att föra över pengar. Eftersom meddelandet innehåller kontonummer och annan känslig information krävs privacitet, att ingen annan än du och banken kan tyda meddelandet. Det uppnås genom kryptering, där det finns två huvudsakliga metoder.

Symmetrisk kryptering baseras på en hemlig nyckel som avsändare och mottagare gemensamt känner till. Nyckeln måste på ett säkert sätt utväxlas mellan parterna, antingen i förväg eller under själva transaktionen.

Asymmetrisk kryptering bygger på att varje användare har en privat (hemlig) och en publik nyckel. Ett meddelande som krypterats med den ena nyckeln kan endast dekrypteras med den andra.

Krypterar avsändaren ett meddelande med sin privata nyckel kan alla dekryptera meddelandet med den publika nyckeln. Meddelandet blir alltså inte hemligt, men mottagaren kan vara säker på att avsändaren är den han utger sig för att vara. Krypterar man med mottagarens publika nyckel kan endast denne dekryptera meddelandet med hjälp av sin privata nyckel.

Skicka ett fingeravtryck
Även om ett meddelande är krypterat bör man tillförsäkra dess integritet, att det inte manipuleras på vägen till mottagaren. Ett sätt är att sända banken en summering — så kallade fingeravtryck — av meddelandet. Sedan kan banken göra en motsvarande beräkning av meddelandets fingeravtryck för att verifiera att det är intakt.

Algoritmer som producerar sådana fingeravtryck är utvecklade för att ge varje meddelande ett unikt fingeravtryck, och för att meddelandet inte ska kunna återskapas med utgångspunkt från dess fingeravtryck.

Banken måste även kunna autentisera meddelandet, säkerställa att det kommer från dig och inte någon annan. Genom att kryptera meddelandets fingeravtryck med avsändarens privata nyckel skapas en digital signatur.

Även om vem som helst kan dekryptera signaturen med avsändarens publika nyckel, är det bara avsändaren som känner till sin privata nyckel. Det innebär att endast avsändaren kan ha skapat den digitala signaturen.

Det kan tänkas att signaturen snappas upp av någon obehörig för senare återanvändning. Därför inkluderas ett unikt sekvensnummer som skyddar banken mot tillbakavisande (non-repudiation), påståendet att du inte har sänt meddelandet.

Michael Seemann
Fler artiklar