Tekn.dr. Göran Pulkkis Överlärare i Datateknik SSL/TLS-protokollet och SSL-baserade applikationer Innehåll Secure Socket Layer (SSL) / Transport Layer Security (TLS) protokollet SSL-baserade applikationer
SSL/TLS-protokollet TLS/SSL är ett skikt ovanför TCP-skiktet och under applikationsskiktet En applikation måste omprogrammeras för att kunna använda SSL/TLS-skiktet SSL/TLS-protokollet TLS är namnet på SSL-protokollets Internet-standard Ett klient/server-protokoll Skyddar TCP-protokollets datakommunikation En SSL-server måste ha ett X.509- certifierat (publik nyckel, privat nyckel)- par En SSL-klient kan ha ett X.509-certifierat (publik nyckel, privat nyckel)-par
SSL/TLS-protokollet SSL/TLS är en protokollfamilj Med SSL-handskakningsprotokollet (SSL Handshake Protocol) kommer SSL-klienten och SSL-servern överens om en gemensam symmetrisk krypteringsnyckel (sessionsnyckel) med vilka algoritmer TCP-kommunikationen skall krypteras Med SSL-överföringsprotokollet (SSL Record Protocol) krypteras/avkrypteras TCP-kommunikationen mellan SSLklienten och SSL-serverna Med SSL Alert Protocol skickas felmeddelanden mellan SSL-klienten och SSL-servern Med SSL Change Cipher Suite Protocol uppdateras de algoritmer, som SSL Record Protocol använde Skede 1 Cipher = Krypterings- eller hash-algoritm Client ---------->TLS/SSL version nr.--------> Server Cipher settings Random data Other info
Skede 2 Servern kan begära klientens certifikat Client <------------TLS/SSL version nr. <------------ Server Cipher settings Random data Other info Server certificate ( Request for client certificate ) Skede 3 Klienten försöker autentisera servern med serverns publika nyckel i certifikatet och med signerad info skickad från servern. Handskakningen fortsätter endast efter lyckad serverautentisering
Skede 4 premaster secret är krypterad med serverns publika nyckel Klientcertifikatet och signerat data skickas endast ifall server begärde klientcertifikatet i skede 2 Client -------->Crypt(premaster secret)-------> Server (Client certificate) (Signed data sent by server) Skede 5 Servern försöker autentisera klienten med publika nyckeln i klientcertifikatet och den mottagna signerade datan ifall servern begärde klientcertifikater i skede 2. Handskakningen fortsätter endast om autentiseringen lyckas Avkryptering av premaster secret med serverns privata nyckel. Om detta lyckas blir servern autentiserad för klienten. Klient och server skapar samma master secret från premaster secret
Skede 6 Klient och server skapar samma sessionsnyckel från master secret Skede 7 Client handshake finished krypterad med överenskommen sessionsnyckel Client ----------->Agreed session key will be used---------------------> Server Crypt(Client handshake finished)
Skede 8 Server handshake finished krypterad med överenskommen sessionsnyckel Client <-----------Agreed session key will be used <-------------------- Server Crypt(Server handshake finished) Skede 9 SSL-handskakningen är avslutad Klienten och servern kan nu kommunicera med varandra med SSL Record Protocol, som använder överenskommen sessionsnyckel
Den sändande parten i SSL Record Protocol (Mottagaren börjar nerifrån) Application data (fragmentation) Data fragment (optional compression) Dt frgmnt (add MAC) Dt frgmnt MAC (encryption) &?dju(n@eje*x (append SSL record header) HSSL &?dju(n@eje*x (deliver to TCP layer) Säkra applikationsprotokoll, som programmerats att använda SSL https pop3s imaps smtps nntps ldaps SSL VPN TLS/SSL-skyddad http TLS/SSL-skyddad pop3 TLS/SSL-skyddad imap4 TLS/SSL-skyddad smtp TLS/SSL-skyddad nntp TLS/SSL-skyddad ldap TLS/SSL-baserat virtuellt privatnät TLS/SSL-skyddade protokoll använder andra portnumror än motsvarande oskyddade protokoll. Exempel: http/port 80 och https/port 443
https och SSL/TLS-protokollet SSL-uppgift Bekanta Dig med certifikatdatabasen i webbläddraren Mozilla Firefox Applikationsprotokollet https En https-sida kan programmeras att begära klientautentisering med ett certifierat (publik nyckel, privat nyckel)- par Då www-bläddraren tar kontakt, begär www-servern ett klientcertifikat i SSL Handshake Protocol Demonstration med certifierat (publik nyckel, privat nyckel)-par i elektroniskt ID-kort.