von Netscape entworfenes, applikationsunabhängiges Sicherheitsprotokoll
ursprüngliches Einsatzgebiet: kryptographischer Schutz von HTTP-Verbindungen (Vertraulichkeit, Integrität, Authentizität)
erlaubt unterschiedlichen Client-Server-Anwendungen eine abhör- und fälschungssichere Kommunikation
Achtung: nur Netz-Verkehr geschützt; Schutz der beteiligten Endsysteme muß separat erfolgen, sonst SSL evtl. wirkungslos
konzeptionell zwischen Transport- und Anwendungsschicht angesiedelt und prinzipiell von allen verbindungsorientierten Applikations-Protokollen (HTTP, FTP, Telnet, SMTP, IMAP, POP, ...) nutzbar
für Protokolle der höheren Schichten transparent, aber Quelltext-Modifikation erforderlich (Anpassung an SSL-API)
aktuell: SSL 3.0
z.B. von Netscape ab 3.x und MS IE 4.0 unterstützt (https://..., Port 443)
in Internet-Draft beschrieben, aber bereits im Mai 1997 "expired"
neu: TLS 1.0
Nachfolger von SSL 3.0
in Internet-Draft der Transport Layer Security Working Group beschrieben
zur Zeit: draft-ietf-tls-protocol-05.txt (Expires May 12, 1998)
Unterschiede zwischen TLS und SSL relativ klein, aber Interoperabilität nicht a priori gegeben (TLS muß speziell auf SSL 3.0 "zurückschalten")
Auswahl von SSL-Bibliotheken:
Referenz-Implementierung von Netscape (Exportbeschränkungen!)
SSLeay von Eric Young (Australien)
kostenfrei; in C geschrieben und z.T. in Assembler geschrieben
URLs: | ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL |
ftp://ftp.psy.uq.oz.au/pub/Crypto/SSLapps | |
http://www.psy.uq.oz.au/~ftp/Crypto/ | |
ftp://ftp.uni-mainz.de/pub/internet/security/ssl/ |
IAIK Java Crypto-Software Development Kit (IAIK, TU Graz)
bietet eine Implementierung des Java JCE sowie von SSL 3.0
SSL-Anwendungen:
Telnet, FTP, ...
URLs: | ftp://ftp.uni-mainz.de/pub/internet/security/ssl/SSLapps/ |
ftp://ftp.uni-mainz.de/pub/internet/security/ssl/SSL-MZapps/ |
HTTP-Server, z.B.
Apache SSL
Stronghold Secure Server
relativ komplexes Protokoll
2 Schichten:
Record Protocol als Basis
oberhalb eines zuverlässigen Transportprotokolls (TCP, ...)
Transport von Dateneinheiten eines höheren Protokolls
Aufgaben: Fragmentierung/Defragmentierung, Kompression/Dekompression, Integritätssicherung mittels MACs, Ver-/Entschlüsselung der Daten
höheres Protokoll, z.B. SSL Handshake Protocol für gegenseitige Authentifizierung und Aushandlung kryptographischer Parameter (Chiffre, Schlüssel, ...)
Schlüsselaustausch:
RSA, Diffie-Hellman, Fortezza KEA (nicht bei TLS)
Nutzung von RSA- und DSS-Zertifikaten
SSL-Verbindungen
drei grundlegende Eigenschaften:
Vertraulichkeit durch symmetrische Chiffre: DES, 3DES, IDEA, RC4, RC2, Fortezza (nicht bei TLS)
Möglichkeit der Authentifizierung der Partner auf der Basis asymmetrischer Verfahren (RSA, DSS ...).
Integritätssicherung durch MACs (bei TLS: HMAC)
Exportverboten (z.B. der USA) für starke Krytographie wird durch kryptographisch schwache Cipher Suites und zugehörige Parameter (z.B. zu kurze Schlüssel) Rechnung getragen
Werkzeug Fortify bietet Reaktivierung der starken, aber nicht legal exportierbaren Chiffren (Domestic) in Netscape 3.x und 4.x:This is a secure document that uses a high-grade encryption key for U.S. domestic use onlyURLs: