Professional Documents
Culture Documents
05.05.2011
Zusammenfassung
Kryptograe ist ein recht komplexes Thema, verbunden mit vielen Begrien und Abkrzungen. In diesem Vortrag werden Begrie erklrt und in Zusammenhang gebracht und die praktische Anwendung von Werkzeugen insbesondere im Java-Umfeld gezeigt.
PKI Sonstiges
Begriserklrungen Allgemeines Symmetrische/Secret-Key Verschlsselung Asymmetrische/Public-Key Verschlsselung PKI-Begrie Sonstiges Dateiformate Zertikatlebenszyklus Praktisches Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code? Anhang
. . . . . .
Allgemeines
Message Digest Hashfunktion, die mglichst kollisionsfrei Nachrichten auf einen Zahlenwert abbilden, gngige Vertreter sind MD5, SHA-1 und die SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512)
Allgemeines
Message Digest Hashfunktion, die mglichst kollisionsfrei Nachrichten auf einen Zahlenwert abbilden, gngige Vertreter sind MD5, SHA-1 und die SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512) MAC, Message Authentication Code kryptograsch gesicherte Prfsumme fr eine Nachricht, mit der Integritt und Authentizitt geprft werden knnen
Allgemeines
Message Digest Hashfunktion, die mglichst kollisionsfrei Nachrichten auf einen Zahlenwert abbilden, gngige Vertreter sind MD5, SHA-1 und die SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512) MAC, Message Authentication Code kryptograsch gesicherte Prfsumme fr eine Nachricht, mit der Integritt und Authentizitt geprft werden knnen HMAC Verwendung eines mit einem symmetrischen Verschlsselungsverfahren verschlsselten Message Digests als MAC
Allgemeines
Message Digest Hashfunktion, die mglichst kollisionsfrei Nachrichten auf einen Zahlenwert abbilden, gngige Vertreter sind MD5, SHA-1 und die SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512) MAC, Message Authentication Code kryptograsch gesicherte Prfsumme fr eine Nachricht, mit der Integritt und Authentizitt geprft werden knnen HMAC Verwendung eines mit einem symmetrischen Verschlsselungsverfahren verschlsselten Message Digests als MAC Signatur mit einem asymmetrischen Verfahren verschlsselter Message Digest einer Nachricht
Symmetrische/Secret-Key Verschlsselung
alle Beteiligten haben den gleichen geheimen Schlssel
Symmetrische/Secret-Key Verschlsselung
alle Beteiligten haben den gleichen geheimen Schlssel der geheime Schlssel wird fr Ver- und Entschlsselung verwendet
Symmetrische Verschlsselung
geheimer Schlssel, secret key gemeinsamer geheimer Schlssel der Kommunikationspartner bei symmetrischen Verschlsselungsverfahren
Symmetrische Verschlsselung
geheimer Schlssel, secret key gemeinsamer geheimer Schlssel der Kommunikationspartner bei symmetrischen Verschlsselungsverfahren DES, Data Encryption Standard inzwischen als veraltet angesehenes symmetrisches Verschlsselungsverfahren mit einer Schlssellnge von 56 Bit
Symmetrische Verschlsselung
geheimer Schlssel, secret key gemeinsamer geheimer Schlssel der Kommunikationspartner bei symmetrischen Verschlsselungsverfahren DES, Data Encryption Standard inzwischen als veraltet angesehenes symmetrisches Verschlsselungsverfahren mit einer Schlssellnge von 56 Bit 3DES, Tripple DES, DESede Interimslsung vor Einfhrung von AES bei der DES-VerschlsselungEntschlsselung-Verschlsselung mit drei unterschiedlichen Schlsseln durchgefhrt wird (siehe Wikipedia [1, Triple-DES])
Symmetrische Verschlsselung
geheimer Schlssel, secret key gemeinsamer geheimer Schlssel der Kommunikationspartner bei symmetrischen Verschlsselungsverfahren DES, Data Encryption Standard inzwischen als veraltet angesehenes symmetrisches Verschlsselungsverfahren mit einer Schlssellnge von 56 Bit 3DES, Tripple DES, DESede Interimslsung vor Einfhrung von AES bei der DES-VerschlsselungEntschlsselung-Verschlsselung mit drei unterschiedlichen Schlsseln durchgefhrt wird (siehe Wikipedia [1, Triple-DES]) AES, Advanced Encryption Standard, Rijndael aktuelles symmetrisches Verschlsselungsverfahren mit Schlssellngen von 128, 192 oder 256 Bit
. . . . . .
Asymmetrische/Public-Key Verschlsselung
jeder Kommunikationspartner hat einen geheimen privaten Schlssel und verentlicht einen entlichen Schlssel
Asymmetrische/Public-Key Verschlsselung
jeder Kommunikationspartner hat einen geheimen privaten Schlssel und verentlicht einen entlichen Schlssel der private Schlssel dient dazu Signaturen anzufertigen und Nachrichten zu entschlsseln
Asymmetrische/Public-Key Verschlsselung
jeder Kommunikationspartner hat einen geheimen privaten Schlssel und verentlicht einen entlichen Schlssel der private Schlssel dient dazu Signaturen anzufertigen und Nachrichten zu entschlsseln der entliche Schlssel dient dazu Nachrichten zu verschlsseln und Signaturen zu prfen
Sonstige Begrie
PKCS, Public Key Cryptography Standard eine Serie von Dokumenten zu kryptograschen Verfahren der Firma RSA-Laboratories [7] viele davon sind in anderen Standards aufgenommen worden
Sonstige Begrie
PKCS, Public Key Cryptography Standard eine Serie von Dokumenten zu kryptograschen Verfahren der Firma RSA-Laboratories [7] viele davon sind in anderen Standards aufgenommen worden ASN.1, Abstract Syntax Notation One Standard fr Textbeschreibung von Binrcodierung mit der die Daten fast aller kryptograschen Verfahren in den jeweiligen Standards beschrieben werden (siehe Wikipedia [8])
Sonstige Begrie
PKCS, Public Key Cryptography Standard eine Serie von Dokumenten zu kryptograschen Verfahren der Firma RSA-Laboratories [7] viele davon sind in anderen Standards aufgenommen worden ASN.1, Abstract Syntax Notation One Standard fr Textbeschreibung von Binrcodierung mit der die Daten fast aller kryptograschen Verfahren in den jeweiligen Standards beschrieben werden (siehe Wikipedia [8]) CMS, Cryptographic Message Syntax Standard fr die Signierung und Verschlsselung von Nachrichten, nutzt X.509-Infrastruktur fr Schlssel (speziziert in RFC-5652 [9])
Sonstige Begrie
S/MIME Standard fr Signatur und Verschlsselung von MIME-Nachrichten auf Basis von CMS, bentigt X.509-Zertikate, wird hauptschlich fr E-Mail, kann aber auch fr Web Services und andere MIME-Anwendungen verwendet werden (speziziert in RFC-3851 [10])
Sonstige Begrie
S/MIME Standard fr Signatur und Verschlsselung von MIME-Nachrichten auf Basis von CMS, bentigt X.509-Zertikate, wird hauptschlich fr E-Mail, kann aber auch fr Web Services und andere MIME-Anwendungen verwendet werden (speziziert in RFC-3851 [10]) SSL, Secure Sockets Layer, TLS, Transport Layer Security hybride Verschlsselung fr Socket-Verbindungen. TLS ist der von der IETF standardisierte Nachfolger von SSL (TLS 1.2 speziziert in RFC-5246 [11])
Sonstige Begrie
S/MIME Standard fr Signatur und Verschlsselung von MIME-Nachrichten auf Basis von CMS, bentigt X.509-Zertikate, wird hauptschlich fr E-Mail, kann aber auch fr Web Services und andere MIME-Anwendungen verwendet werden (speziziert in RFC-3851 [10]) SSL, Secure Sockets Layer, TLS, Transport Layer Security hybride Verschlsselung fr Socket-Verbindungen. TLS ist der von der IETF standardisierte Nachfolger von SSL (TLS 1.2 speziziert in RFC-5246 [11]) TLS-Handshake Verfahren zur Aushandlung der Verbindungsparameter bei TLS (gute Beschreibung in Wikipedia [12])
Sonstige Begrie
PGP, OpenPGP Alternative fr einige Anwendungsflle von X.509 (S/MIME, CMS), bei der die Vertrauenswrdigkeit nicht durch eine Hierarchie von CAs sondern durch ein Web-Of-Trust gewhrleistet wird. PGP ist die ursprngliche Software, OpenPGP der spter entwickelte Standard dazu
Sonstige Begrie
PGP, OpenPGP Alternative fr einige Anwendungsflle von X.509 (S/MIME, CMS), bei der die Vertrauenswrdigkeit nicht durch eine Hierarchie von CAs sondern durch ein Web-Of-Trust gewhrleistet wird. PGP ist die ursprngliche Software, OpenPGP der spter entwickelte Standard dazu GNUPG, GNU Privacy Guard freie, teils vom Bundesministerium des Innern nanzierte, OpenPGP-Implementierung (in Version 2 auch mit S/MIME und X.509-Untersttzung)
Sonstige Begrie
PGP, OpenPGP Alternative fr einige Anwendungsflle von X.509 (S/MIME, CMS), bei der die Vertrauenswrdigkeit nicht durch eine Hierarchie von CAs sondern durch ein Web-Of-Trust gewhrleistet wird. PGP ist die ursprngliche Software, OpenPGP der spter entwickelte Standard dazu GNUPG, GNU Privacy Guard freie, teils vom Bundesministerium des Innern nanzierte, OpenPGP-Implementierung (in Version 2 auch mit S/MIME und X.509-Untersttzung) SSH-Keys RSA-, DSA oder ECDSA-Schlssel fr Verwendung mit Secure Shell, in der Regel ohne Signatur
Begriserklrungen Allgemeines Symmetrische/Secret-Key Verschlsselung Asymmetrische/Public-Key Verschlsselung PKI-Begrie Sonstiges Dateiformate Zertikatlebenszyklus Praktisches Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code? Anhang
. . . . . .
typische Dateiendungen .der, .crt .crt, .pem, .csr.pem, .key.pem .csr, .csr.pem .jks .pfx, .p12
DER-Format
Dateiendungen
.der, .crt
Verwendung
ASN.1 DER (distinguished encoding rules) kodierte Binrform von X.509-Zertikaten
PKI Sonstiges
PEM-Format
Dateiendungen
.crt, .pem, .csr.pem, .key.pem
Verwendung
Base64-Variante von DER kodierten Zertikaten, -Schlsseln oder Certicate Signing Requests, die Art der Information ist aus dem Dateianfang zu erkennen
Beispiel: RSA-Schlssel
-----BEGIN RSA PRIVATE KEY----MIIEowIBAAKCAQEAnV9xp3adb8vNfljrPktWXfMk kAElT1Zr7LZHWP1k1QkxPAzHa/ZBrpok9Cwxm3fh ... APoP0gAuvgvv74V34z1IdwmpAuGc894US3uu5AKF 7cTsTFU2WaQ1bSq/DlZX1X5CB59ZFCQeCrQ+u75F -----END RSA PRIVATE KEY----. . . .
PEM-Format
Dateiendungen
.crt, .pem, .csr.pem, .key.pem
Verwendung
Base64-Variante von DER kodierten Zertikaten, -Schlsseln oder Certicate Signing Requests, die Art der Information ist aus dem Dateianfang zu erkennen
PEM-Format
Dateiendungen
.crt, .pem, .csr.pem, .key.pem
Verwendung
Base64-Variante von DER kodierten Zertikaten, -Schlsseln oder Certicate Signing Requests, die Art der Information ist aus dem Dateianfang zu erkennen
Beispiel: X.509-Zertikat
-----BEGIN CERTIFICATE----MIIDXTCCAkWgAwIBAgIJAN5wwO9NJQ/MMA0GCSqG BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw ... HptNKsF1qNl0Hud//5colueA44Q4zwVdVk3tfG36 AQ== -----END CERTIFICATE----. . . .
PEM-Format
Dateiendungen
.crt, .pem, .csr.pem, .key.pem
Verwendung
Base64-Variante von DER kodierten Zertikaten, -Schlsseln oder Certicate Signing Requests, die Art der Information ist aus dem Dateianfang zu erkennen
Beispiel: DSA-Schlssel
-----BEGIN DSA PRIVATE KEY----MIIDVgIBAAKCAQEAtwA+O6KkHvhBhBvPdrNqjBUq /M3n90/KvJ2rXsyS3L43n4pwLfjzOLSC3dD9UVbS ... /uQ73RuPSaWYd2ZLp/XNdpok9FkBQEglLxKcBz7R VsEJSEKeQgIhAOyJXfhC/dR9Ze/JMkfW0tdx+PiX -----END DSA PRIVATE KEY----. . . .
PEM-Format
Dateiendungen
.crt, .pem, .csr.pem, .key.pem
Verwendung
Base64-Variante von DER kodierten Zertikaten, -Schlsseln oder Certicate Signing Requests, die Art der Information ist aus dem Dateianfang zu erkennen
Beispiel: DSA-Parameter
-----BEGIN DSA PARAMETERS----MIICLAKCAQEAtwA+O6KkHvhBhBvPdrNqjBUqE789 90/KvJ2rXsyS3L43n4pwLfjzOLSC3dD9UVbSdMsf ... vTtpWyBLmitxSbnW4v4kEbfJu2Id8xfd5kv2vmGe FCjWnHvUSG9Za2R4pJ5fF4lqu/Nwg08Ccylt+a4z -----END DSA PARAMETERS----. . . .
Verwendung
in der Regel PEM-kodierter PKCS#10 Certicate Signing Request, enthlt Parameter fr den Subject-Namen, optional mit gewnschten X.509-Erweiterungen
Verwendung
Java-Keystore, proprietres Format fr KeyStores und TrustStores im Java-Umfeld, kann als vertrauenswrdig eingestufte Zertikate und/oder Schlsselpaare mit zugehrigen Zertikaten enthalten
PKI Sonstiges
Anmerkung
Standardpasswort (leider oft ungendert) ist changeit
PKCS#12
Dateiendungen
.p12, .pfx
Verwendung
Standardformat fr mit passwortbasierten Verfahren (PBE, password based encryption) verschlsselte Container fr Schlsselpaare mit deren Zertikaten
PKI Sonstiges
Anmerkung
Die mit dem JDK mitgelieferte PKCS#12-Implementierung ist nur eingeschrnkt standardkonform (kann z.B. keine Zertikate ohne private Schlssel speichern)
Begriserklrungen Allgemeines Symmetrische/Secret-Key Verschlsselung Asymmetrische/Public-Key Verschlsselung PKI-Begrie Sonstiges Dateiformate Zertikatlebenszyklus Praktisches Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code? Anhang
. . . . . .
PKI
id
uf err
Sonstiges
Dateiformate Lebenszyklus
auf Abl
Praktisches
Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code?
Signing Request .
Fragen
ern eu n Er
Anhang Literatur
Begriserklrungen Allgemeines Symmetrische/Secret-Key Verschlsselung Asymmetrische/Public-Key Verschlsselung PKI-Begrie Sonstiges Dateiformate Zertikatlebenszyklus Praktisches Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code? Anhang
. . . . . .
keytool
Wird mit dem JDK mitgeliefert
keytool
Wird mit dem JDK mitgeliefert kann mit JKS- und rudimentr mit PKCS#12-Keystores umgehen
keytool
Wird mit dem JDK mitgeliefert kann mit JKS- und rudimentr mit PKCS#12-Keystores umgehen nutzt intern die JCE/JCA-APIs der Java-Runtime
keytool
Wird mit dem JDK mitgeliefert kann mit JKS- und rudimentr mit PKCS#12-Keystores umgehen nutzt intern die JCE/JCA-APIs der Java-Runtime rudimentr zum Erzeugen von Schlsseln und CSRs geeignet
keytool
Wird mit dem JDK mitgeliefert kann mit JKS- und rudimentr mit PKCS#12-Keystores umgehen nutzt intern die JCE/JCA-APIs der Java-Runtime rudimentr zum Erzeugen von Schlsseln und CSRs geeignet spezialisiert auf Verwaltung von Zertikaten im Java-spezischen JKS-Format
keytool
Wird mit dem JDK mitgeliefert kann mit JKS- und rudimentr mit PKCS#12-Keystores umgehen nutzt intern die JCE/JCA-APIs der Java-Runtime rudimentr zum Erzeugen von Schlsseln und CSRs geeignet spezialisiert auf Verwaltung von Zertikaten im Java-spezischen JKS-Format http://download.oracle.com/javase/6/docs/ technotes/tools/windows/keytool.html
OpenSSL
OpenSource-Crypto-Implementierung
OpenSSL
OpenSource-Crypto-Implementierung bietet Funktionen fr fast jeden Anwendungsfall im Bereich der Kryptograe
OpenSSL
OpenSource-Crypto-Implementierung bietet Funktionen fr fast jeden Anwendungsfall im Bereich der Kryptograe openssl als Kommandozeilen-Frontend einer C-Bibliothek
OpenSSL
OpenSource-Crypto-Implementierung bietet Funktionen fr fast jeden Anwendungsfall im Bereich der Kryptograe openssl als Kommandozeilen-Frontend einer C-Bibliothek http://www.openssl.org/
eigener Code
fr einige Grenzflle die OpenSSL nicht abdeckt
eigener Code
fr einige Grenzflle die OpenSSL nicht abdeckt fr dynamische Erzeugung von Keys-, CSRs- oder Zertikaten z.B. fr Tests
eigener Code
fr einige Grenzflle die OpenSSL nicht abdeckt fr dynamische Erzeugung von Keys-, CSRs- oder Zertikaten z.B. fr Tests kann z.B. mit der openssl-Library (C), m2crypto (Python) oder dem JDK in Zusammenarbeit mit BouncyCastle implementiert werden
eigener Code
fr einige Grenzflle die OpenSSL nicht abdeckt fr dynamische Erzeugung von Keys-, CSRs- oder Zertikaten z.B. fr Tests kann z.B. mit der openssl-Library (C), m2crypto (Python) oder dem JDK in Zusammenarbeit mit BouncyCastle implementiert werden Aufwand meist recht hoch, also erst prfen was openssl und keytool schon knnen
gut geeignet eingeschrnkt geeignet nicht geeignet Anwendungsfall keytool openssl eigenes RSA-Key erzeugen CSR erzeugen Zertikat (self-signed) erzeugen Zertikat aus CSR signieren Informationen aus JKS anzeigen Informationen aus PEM anzeigen
gut geeignet eingeschrnkt geeignet nicht geeignet Anwendungsfall keytool openssl eigenes KeyPair als PEM speichern KeyPair aus PEM in JKS importieren KeyPair aus PKCS#12 in JKS importieren Key und Zertikat in PKCS#12 umwandeln Zertikat in JKS importieren
gut geeignet eingeschrnkt geeignet nicht geeignet Anwendungsfall keytool openssl eigenes Verwendung als CA CRL erzeugen Zertikat gegen CRL prfen TLS-Verbindung testen OCSP-Testserver betreiben Zertikat gegen OCSP prfen
Zertikats-Lebenszyklus
Beispiele der Verwendung von OpenSSL und keytool Erzeugen von Keys, CSRs, CRLs und Zertikaten Widerrufen von Zertikaten Test-OCSP-Endpoint und OCSP-Client
PKI
id
uf err
Sonstiges
Dateiformate Lebenszyklus
auf Abl
Praktisches
Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code?
Signing Request .
Fragen
ern eu n Er
Anhang Literatur
CSR erzeugen keytool -certreq -keystore teststore1.jks -storepass secret -alias testkey3 -file csrtest3.csr.pem
Begriserklrungen Allgemeines Symmetrische/Secret-Key Verschlsselung Asymmetrische/Public-Key Verschlsselung PKI-Begrie Sonstiges Dateiformate Zertikatlebenszyklus Praktisches Werkzeuge Zertikatslebenszyklus Informationen zu Krypomaterial Zertikate konvertieren TLS-Tests mit OpenSSL eigener Code? Anhang
. . . . . .
Referenzierte Dokumente I
[1] Wikipedia. Data Encryption Standard. 2011. url: http://de.wikipedia.org/wiki/Data_ Encryption_Standard. Wikipedia. RSA-Kryptosystem. 2011. url: http: //de.wikipedia.org/wiki/RSA-Kryptosystem. Wikipedia. Elgamal-Kryptosystem. 2011. url: http://de.wikipedia.org/wiki/ElGamalKryptosystem. Wikipedia. Die-Hellman-Schlsselaustausch. 2011. url: http: //de.wikipedia.org/wiki/Diffie-Hellman.
[2] [3]
[4]
Referenzierte Dokumente II
[5] D. Cooper u. a. Internet X.509 Public Key Infrastructure Certicate and Certicate Revocation List (CRL) Prole. RFC 5280 (Proposed Standard). Internet Engineering Task Force, Mai 2008. url: http://www.ietf.org/rfc/rfc5280.txt. M. Nystrom und B. Kaliski. PKCS #10: Certication Request Syntax Specication Version 1.7. RFC 2986 (Informational). Updated by RFC 5967. Internet Engineering Task Force, Nov. 2000. url: http://www.ietf.org/rfc/rfc2986.txt. RSA Laboratories. Public-Key Cryptography Standards. 1991. url: http://rsa.com/rsalabs/node.asp?id=2124. Wikipedia. Abstract Syntax Notation One. 2011. url: http://de.wikipedia.org/wiki/ASN.1.
. . . . . .
[6]
[7]
[8]
[10]
[11]
Referenzierte Dokumente IV
[12] Wikipedia. Transport Layer Security. 2011. url: http://de.wikipedia.org/wiki/Transport_ Layer_Security. Jan Dittberner. OpenSSL Kongurationsbeispiele. 2011. url: http://git.dittberner.info/ ?p=osslconfexamples.git;a=tree. Jan Dittberner. Techblog-Post: OCSP-Endpoint mit OpenSSL. 13. Apr. 2011. url: http://www.communardo.de/home/techblog/201 1/04/13/ocsp-endpoint-mit-openssl/.
[13]
PKI Sonstiges
[14]
Kontakt
Jan Dittberner Communardo Software GmbH E-Mail: jan.dittberner@communardo.de http://www.communardo.de/ home/techblog/author/jdi