SSL, HTTPS en SSH Johnny Schaap
Inhoud TCP en UDP Het OSI model Secure Socket Layer(SSL) Massage Authentication Code(MAC) Certificates Hyper Text Transfer Protocol Secure(HTTPS) Secure Shell (SSH)
TCP/IP model en OSI model http://www.netwerkinstellen.nl/het-osi-model/
UDP en TCP UDP is niet connectie georiënteerd. Is sneller dan TCP TCP is wel connectie georiënteerd. Heeft veel minder packet loss dan UDP Moet eerst opgezet worden. TCP-verbinding opzetten http://nl.wikipedia.org/wiki/Transmission_Control_Protocol
SSL/TLS Geschiedenis Transport Layer Security(TLS) 1993: Netscape ontwikkeld SSL 1.0 1995: Netscape publiceert SSL 2.0 1996: Netscape publiceert SSL 3.0 1999: IETF doopte SSL om tot TLS 1.0 2006: TLS 1.1 met protectie tegen CBC attacks (d.m.v. padding en initialisatie vectoren) 2008: TLS 1.2 tegen andere aanvallen. Transport Layer Security(TLS)
SSL API en Sockets SSL zit tussen de Applicatie en Transport laag Kurose J.F. & Ross K.W. (2009) “Computer Networking: A top down approach”, Addison-Wesley.
SSL verbinding 3 Fases Hand-shake fase Key derivation fase Data transfer fase
SSL Hand shake Hand-shake fase bestaat uit 3 fases Hand-shake Authenticatie Sleuteluitwisseling
SSL Key Derivation Alice(cliënt) en Bob(server) genereren beide: EA = Encryptie/Decryptie van het bericht naar Alice EB = Encryptie/Decryptie van het bericht naar Bob MA = Integriteit check op Alice’s berichten. MB = Integriteit check op Bob’s berichten. Indien Cipher Block Chaining wordt gebruikt, genereren beiden 2 initialisatie vectoren.
SSL Data Transfer Data wordt in stukjes geknipt. Data, MAC(+Nonce) worden versleuteld. Header bevat type, versie en lengte.
SSL verbinding verbreken TCPFIN is niet versleuteld. Voor TCPFIN moet er een SSL Closure komen.
Massage Authentication Code(MAC) We hebben bericht b en een sleutel MA. Hash b en MA met bijvoorbeeld SHA-1. MAC = SHA-1(b, MA) Versleutel bericht: (b, MAC) = y Ontcijfer: y = (b, MAC) Controleer integriteit: SHA-1(b, M A) == MAC
Certificaten(PKI) Naam eigenaar Public key Geldigheidsduur Uitgever (CA) Locatie van Certificate Revocation List Versleuteling met private key van Hash(bovenstaand) Ontsleutel met public key en controleer.
SSL Zwakheden Bestemming kan niet worden versleuteld. Elk domein met certificaat kan eigen certificaat uitgeven. Bool om te bepalen of dat mag. Eerdere implementaties van SSL checkte deze niet.
HTTPS HTTP met een SSL verbinding. HTTPS kan niet uit cache laden. HTTP kan dit wel en is dus sneller Alleen bij hoog risico pagina’s. 1994: Ontwikkeld door Netscape voor de Netscape Navigator web browser.
Valide HTTPS pagina’s Te herkennen aan de https:// URL. Authenticatie d.m.v. certificaten. Browser geeft waarschuwing wanneer vals certificaat af wordt gegeven. Positieve feedback door browser d.m.v. iconen en kleuren. Positieve feedback op pagina d.m.v. iconen en kleuren.
Negatieve Feedback
Positieve Browser Feedback
Positieve Pagina feedback
Zwakheden en aanvallen Bekend tussen wie en hoe lang er wordt gecommuniceerd. Een vals certificaat afgeven in de hoop dat mensen toch doorklikken. SSLStrip Homograph Attack
SSL Strip Mensen bereiken HTTPS via buttons. Na HTTPS request, HTTP versie terug sturen. Cookies na zoveel tijd verwijderen.
HTTP versus HTTPS
HTTP versus HTTPS
Homograph Attack Vraag een certificaat aan voor een domein die zelfde oogt. paypai.com => paypaI.com (hoofdletter i) Beter: vervang ‘/’ door een van de vele tekens die er hetzelfde uitzien. Voordeel: krijgt positieve feedback van browser.
Combinatie SSLStrip en Homograph Nadeel homograph: valse button op een eigen pagina. Nadeel SSLStrip: Geen positieve feedback. Combinatie: MitM attack, wanneer HTTPS request voorbij komt, door verwijzen naar eigen homograph webpagina. Bescherming?
Oscar is blij! Alle verbindingen over HTTPS. Kost te veel processing tijd dus wordt niet gedaan. Deze aanval blijft effectief. Kinderwerk met de SSLStrip applicatie. (Dit is Succes kid Oscar -------->)
SSH Commando’s over netwerk naar ander apparaat. 1995: SSH 1.0 Password sniffing tegen gaan. 2000: OpenSSH 2006: SSH 2.0 MAC en Diffie-helman om zwakheden tegen te gaan.
SSH Werking Transport Laag: User Authenticatie laag: Connectie laag: Authentiseert server d.m.v. asymmetrische crypto. Verstuurd en vernieuwd sleutels User Authenticatie laag: Authenticatie van cliënt d.m.v. wachtwoorden, sleutels, keyboard interactie etc. Connectie laag: Direct-tcpip, forwarded-tcpip en shell
Zwakheid Man-in-the-middle attack. Doet zich voor als server. Vraagt om password. Heeft password onderschept en kan inloggen op server. Werkt alleen bij servers die passwords als user authenticatie gebruikt en nooit eerder communicatie tussen server en cliënt heeft plaats gevonden.
Conclusie SSL, HTTPS en SSH worden wereldwijd gebruikt. SSL wordt als erg veilig gezien wanneer goed geïmplementeerd. HTTPS heeft een ernstige zwakheid. SSH is ook veilig wanneer user authenticatie wordt gedaan op een andere manier dan Passwords.
Nog vragen?