Slide 1

Slide 1 text

KRYPTOGRAFIE FÜR (JAVA-)ENTWICKLER Grundlagen der Verschlüsselung Sebastian Hempel 1

Slide 2

Slide 2 text

Sebastian Hempel IT-Consulting Hempel @ithempel [email protected] 2

Slide 3

Slide 3 text

WARUM KRYPTOGRAFIE? 3 . 1

Slide 4

Slide 4 text

- ( ) Max Braun Whisper CC BY-SA 2.0 3 . 2

Slide 5

Slide 5 text

- ( ) _dChris Imitation Game CC BY 2.0 3 . 3

Slide 6

Slide 6 text

BEGRIFFE 4

Slide 7

Slide 7 text

GESCHICHTE DER KRYPTOGRAPHIE 5 . 1

Slide 8

Slide 8 text

HANDVERSCHLÜSSELUNG 3. Jahrtausend vor Christus in Ägypten Skytale Verschlüsselungsstab der Griechen 5 . 2

Slide 9

Slide 9 text

- ( ) Wikimedia Commons Skytale CC BY-SA 3.0 5 . 3

Slide 10

Slide 10 text

MASCHINEN Sebastian Hempel - Enigma ( ) CC BY-SA 4.0 5 . 4

Slide 11

Slide 11 text

COMPUTER Pretty Good Privacy - ( ) Matt Crypto PRZ closeup CC BY-SA 3.0 5 . 5

Slide 12

Slide 12 text

BAUSTEINE DER MODERNE KRYPTOGRAFIEN 6 . 1

Slide 13

Slide 13 text

ZUFALL Wichtiges Element der Kryptografie Schlüssel basieren auf Zufallszahlen 6 . 2

Slide 14

Slide 14 text

, ( ) Bananenfalter Orange_blue_public_private_keygeneration_de CC0 6 . 3

Slide 15

Slide 15 text

SYMMETRISCHE VERSCHLÜSSELUNG , , ( ) Bananenfalter Eigenes Werk CC0 6 . 4

Slide 16

Slide 16 text

SYMMETRISCHE VERFAHREN DES (1977) AES (2000) 6 . 5

Slide 17

Slide 17 text

ASYMMETRISCHE VERSCHLÜSSELUNG , ( ) Bananenfalter Eigenes Werk CC0 6 . 6

Slide 18

Slide 18 text

ASYMMETRISCHE VERFAHREN RSA (1977) Elliptische Kurven / ECC (Mitte der 1980er) 6 . 7

Slide 19

Slide 19 text

HASHFUNKTIONEN hash function keys John Smith Lisa Smith Sam Doe Sandra Dee hashes 00 01 02 03 04 05 : 15 , ( ) Jorge Stolfi Eigenes Werk Gemeinfrei 6 . 8

Slide 20

Slide 20 text

KRYPTOGRAPHISCHE HASHFUNKTION MD5 (1992) SHA (1993) 6 . 9

Slide 21

Slide 21 text

EINSATZ DER BAUSTEINE 7 . 1

Slide 22

Slide 22 text

ALICE UND BOB , ( ) Didia Own work CC BY-SA 4.0 http://cryptocouple.com/ 7 . 2

Slide 23

Slide 23 text

VERSCHLÜSSELN , ( ) Bananenfalter Eigenes Werk CC0 7 . 3

Slide 24

Slide 24 text

SIGNIEREN Alice (Absender) Dokument Hashwert priv. Schlüssel von Alice verschlüsselter Hashwert Hashwert verschlüsselter Hashwert öffentl. Schlüssel von Alice entschlüsselter Hashwert Vergleich der Hashwerte Dokument Bob (Empfänger) , ( ) Priwo Schemaskizze Elektronische Signatur CC BY-SA 3.0 7 . 4

Slide 25

Slide 25 text

KRYPTOGRAFIE IN DER PRAXIS 8 . 1

Slide 26

Slide 26 text

UMFANG Transport Verschlüsselung Ende-zu-Ende Verschlüsselung 8 . 2

Slide 27

Slide 27 text

TRANSPORT VERSCHLÜSSELUNG Schutz der Daten bei der Übetragung HTTPS TLS SSH 8 . 3

Slide 28

Slide 28 text

ENDE-ZU-ENDE VERSCHLÜSSELUNG Schutz bis zur endgültigen Verarbeitung S/MIME GnuPG WS-Security 8 . 4

Slide 29

Slide 29 text

9 . 1

Slide 30

Slide 30 text

SCHLÜSSEL-MATERIAL ( ) keys-2114366 CC0 Creative Commons 9 . 2

Slide 31

Slide 31 text

( ) key-2114293 CC0 Creative Commons 9 . 3

Slide 32

Slide 32 text

( ) key-2114047 CC0 Creative Commons 9 . 4

Slide 33

Slide 33 text

ZERTIFIKATE Beglaubigter Public-Key self-signed eigene CA öffentliche CA 9 . 5

Slide 34

Slide 34 text

Vertrauenswürdige Ausgabestelle von Zertifikaten ( ) approved-1966719 CC0 Creative Commons 9 . 6

Slide 35

Slide 35 text

TRUSTSTORE Zertifikate vertrauenswürdiger CAs ( ) key-2148476 CC0 Creative Commons 9 . 7

Slide 36

Slide 36 text

VERBINDUNGSAUFBAU Validierung des Zertifikat Aushandlung der Verschlüsselung 9 . 8

Slide 37

Slide 37 text

VALIDIERUNG - SUBJECT Certificate: Data: Version: 3 (0x2) Serial Number: 03:9a:0f:f3:96:5a:39:62:6f:7c:4e:87:ff:30:c3:42:3b:d4 Signature Algorithm: sha256WithRSAEncryption Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 Validity Not Before: Aug 29 19:14:12 2018 GMT Not After : Nov 27 19:14:12 2018 GMT Subject: CN = herbstcampus.de X509v3 extensions: X509v3 Subject Alternative Name: DNS:herbstcampus.de, DNS:www.herbstcampus.de 9 . 9

Slide 38

Slide 38 text

VALIDIERUNG - GÜLTIGKEIT Certificate: Data: Version: 3 (0x2) Serial Number: 03:9a:0f:f3:96:5a:39:62:6f:7c:4e:87:ff:30:c3:42:3b:d4 Signature Algorithm: sha256WithRSAEncryption Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 Validity Not Before: Aug 29 19:14:12 2018 GMT Not After : Nov 27 19:14:12 2018 GMT Subject: CN = herbstcampus.de 9 . 10

Slide 39

Slide 39 text

VALIDIERUNG - CHAIN CONNECTED(00000003) depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 verify return:1 depth=0 CN = herbstcampus.de verify return:1 --- Certificate chain 0 s:/CN=herbstcampus.de i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 i:/O=Digital Signature Trust Co./CN=DST Root CA X3 --- 9 . 11

Slide 40

Slide 40 text

AUSHANDLUNG DER VERSCHLÜSSELUNG Wie wird der Session-Key übertragen? - DHE Wie wird der Server Authentifiziert? - RSA Wie wird verschlüsselt? - AES256 Wie wird Integrität geprü ? - AES256 DHE-RSA-AES256-AES256 9 . 12

Slide 41

Slide 41 text

DATEIFORMATE PEM (OpenSSL) PKCS12 Java Keystore 9 . 13

Slide 42

Slide 42 text

FEHLERQUELLEN 10 . 1

Slide 43

Slide 43 text

Subject passt nicht zum Server 10 . 2

Slide 44

Slide 44 text

FEHLERHAFTES ZERTIFIKAT Certificate: Signature Algorithm: sha256WithRSAEncryption Subject: CN = herbstcampus.de X509v3 extensions: X509v3 Subject Alternative Name: DNS:herbstcampus.de, DNS:www.herbstcampus.de 10 . 3

Slide 45

Slide 45 text

Zertifikat ist abgelaufen , ( ) medithIT Telecom HTTPS insicura CC BY 2.0 10 . 4

Slide 46

Slide 46 text

FEHLERHAFTES ZERTIFIKAT Certificate: Data: Version: 3 (0x2) Serial Number: 03:9a:0f:f3:96:5a:39:62:6f:7c:4e:87:ff:30:c3:42:3b:d4 Signature Algorithm: sha256WithRSAEncryption Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 Validity Not Before: Aug 29 19:14:12 2018 GMT Not After : Sep 01 19:14:12 2018 GMT Subject: CN = herbstcampus.de 10 . 5

Slide 47

Slide 47 text

Kein Vertrauen zum Zertifikat , ( ) Joakim Jardenberg SSL Error CC BY 2.0 10 . 6

Slide 48

Slide 48 text

FEHLERHAFTE CHAIN CONNECTED(00000003) depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 verify return:1 depth=0 CN = herbstcampus.de verify return:1 --- Certificate chain 0 s:/CN=herbstcampus.de i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 i:/O=Digital Signature Trust Co./CN=DST Root CA X3 --- 10 . 7

Slide 49

Slide 49 text

Keine gemeinsamen Ciphers , ( ) Marin Gattelier FF-handshake-error CC BY-SA 2.0 10 . 8

Slide 50

Slide 50 text

FRAGEN? , ( ) Matthias Ripp any questions? CC-BY 11