Slide 1

Slide 1 text

@OliverMilke @cloudogu

Slide 2

Slide 2 text

2 @omilke | Crypto 101 meta 1 Überblick | Abgrenzung 2 Key Pair vs. Signature 3 Cipher Suite 4

Slide 3

Slide 3 text

3 @omilke | Crypto 101 Entwickler? 1 Dev Ops? 2

Slide 4

Slide 4 text

4 @omilke | Crypto 101 Begriffe / Konzepte • Dinge, über die ich gestolpert bin • praxisrelevant, nicht from Scratch  Crypto is hard to get right • Dutch Election Security Talk 

Slide 5

Slide 5 text

• making software since 2001 • Crypto und Security im Bereich Mobile Online Dienste • Product Owner für Schulungsportfolio @cloudogu • JUG Ostfalen | IT Hub BS | Kids4IT • Fitness / Freeletics • Obstacle Races – join us About me Oliver Milke Software Craftsman https://twitter.com/cloudogu https://twitter.com/OliverMilke http://oliver-milke.de https://github.com/omilke/ https://github.com/cloudogu/

Slide 6

Slide 6 text

6 @omilke | Crypto 101 meta 1 Überblick | Abgrenzung 2 Key Pair vs. Signature 3 Cipher Suite 4

Slide 7

Slide 7 text

https://www.xkcd.com/538/

Slide 8

Slide 8 text

8 @omilke | Crypto 101 Kryptologie Security Kryptographie Kryptoanalyse … Awareness Prozesse

Slide 9

Slide 9 text

9 @omilke | Crypto 101 Ziele Vertraulichkeit Integrität Authentizität

Slide 10

Slide 10 text

10 @omilke | Crypto 101 SQL verschlüsselt?  Authorization: Basic d2lraTpwZWRpYQ==  Sicherheit durch Geheimhaltung des Schlüssels • nicht des Algorithmus • Gegenteil: Security By Obscurity 

Slide 11

Slide 11 text

11 @omilke | Crypto 101 Symmetrische Verschlüsselung • 1 Schlüssel für Ver- und Entschlüsselung • Schnell • Stream Cipher • Block Cipher • Verschiedene Modi • AES − Rijndael Cipher Kryptographischer Hash • Einwegfunktion • Kollisionsresistent • MD*, SHA-*, bCyrpt

Slide 12

Slide 12 text

12 @omilke | Crypto 101 Digitale Signatur • Asymmetrisch verschlüsselter Hash Asymmetrische Verschlüsselung • 2 inverse Schlüssel (Key Pair) • Operationen können mit jeweils anderem Schlüssel umgekehrt werden • langsam

Slide 13

Slide 13 text

13 @omilke | Crypto 101 Kryptografisch sichere Zufallszahlengenerierung • Zufall durch eine Maschine? • Seeds für Stream Cipher • Salts • Noncen • Schutz vor Replay

Slide 14

Slide 14 text

14 @omilke | Crypto 101 Einwegfunktionen • „vorwärts“ ist einfach • „rückwärts“ ist schwer / unmöglich  Problemklassen • Integerfaktorisierung − RSA • Diskreter Logarithmus − Diffie-Hellman, ElGamal − endliche Körper / Elliptische Kurven über endlichen Körpern • AES 

Slide 15

Slide 15 text

15 @omilke | Crypto 101 Spezifikation  Implementierung Side Channel Attack 

Slide 16

Slide 16 text

https://www.xkcd.com/936/

Slide 17

Slide 17 text

17 @omilke | Crypto 101 Speicherung für Anmeldung ? User Password User 1 123456 User 2 123456789 User 3 qwerty User 4 password User 5 1234567 User 6 12345678 User 7 12345 User 8 iloveyou User 9 123456

Slide 18

Slide 18 text

18 @omilke | Crypto 101 Hash Password hash-1 123456 hash-2 123456789 hash-3 qwerty … … Speicherung für Anmeldung • als Hash ? User Password User 1 hash-1 User 2 hash-2 User 3 hash-3 User 4 hash-4 User 5 hash-5 User 6 hash-6 User 7 hash-7 User 8 hash-8 User 9 hash-1 Hash-Tables !

Slide 19

Slide 19 text

19 @omilke | Crypto 101 Speicherung für Anmeldung • als Hash ? Salt • zufällig für jedes Passwort  Pepper • Gleich für alle Passwort ! User Salt Password User 1 rnd-1 hash-1 User 2 rnd-2 hash-2 User 3 rnd-3 hash-3 User 4 rnd-4 hash-4 User 5 rnd-5 hash-5 User 6 rnd-6 hash-6 User 7 rnd-7 hash-7 User 8 rnd-8 hash-8 User 9 rnd-9 hash-9

Slide 20

Slide 20 text

20 @omilke | Crypto 101 langsam speicher-intensiv  bCrypt  Argon2id  PBKDF2  

Slide 21

Slide 21 text

21 @omilke | Crypto 101 Einwegfunktion  Integrität kann überprüft werden  Unsicherer Transportweg • Austausch von Original & Neuberechnung Hash ! 1010001 Text Hash

Slide 22

Slide 22 text

22 @omilke | Crypto 101 Unsicherer Transportweg • Austausch nicht möglich  + Secret Integrität und Authentizität  1010001 0110000 Text HMAC

Slide 23

Slide 23 text

23 @omilke | Crypto 101 meta 1 Überblick | Abgrenzung 2 Key Pair vs. Signature …oder: was ist ein Trust Anchor? 3 Cipher Suite 4

Slide 24

Slide 24 text

24 @omilke | Crypto 101 Server Client

Slide 25

Slide 25 text

25 @omilke | Crypto 101 Intermediate Certificate Server Certificate Certificate Authority (CA) Root Certificate Client Server

Slide 26

Slide 26 text

26 @omilke | Crypto 101 meta 1 Überblick | Abgrenzung 2 Key Pair vs. Signature …oder: was ist ein Trust Anchor? 3 ECDHE-ECDSA-AES256-GCM-SHA384 …oder: Was ist eine Cipher Suite? 4

Slide 27

Slide 27 text

27 @omilke | Crypto 101 Verbindung ist verschlüsselt  Wie, d. h. mit welchem Algorithmus? • it depends ? Cipher Suite • große Vielzahl an Möglichkeiten • Angebote in der Server-Konfiguration • Nachfrage durch die Clients • Schnittmenge ausgehandelt im TLS Handshake !

Slide 28

Slide 28 text

28 @omilke | Crypto 101 ausgehandelt im Handshake • ECDHE-ECDSA-AES256-GCM-SHA384  Transportverschlüsselung • ECDHE-ECDSA-AES256-GCM-SHA384 

Slide 29

Slide 29 text

29 @omilke | Crypto 101 Verbindung ist verschlüsselt • AES256-GCM-SHA384  Woher kommt der Schlüssel? • ECDHE-ECDSA-AES256-GCM-SHA384 ?

Slide 30

Slide 30 text

30 @omilke | Crypto 101 Verbindung ist verschlüsselt • AES256-GCM-SHA384 • Key Exchange mit ECDHE  Richtiger Host (meine Bank)? • ECDHE-ECDSA-AES256-GCM-SHA384 ?

Slide 31

Slide 31 text

31 @omilke | Crypto 101 Crypto-System • Beteiligte Primitiven  Abhängig vom Protokoll • Beispiel TLS 1.2 − Andere Protokolle mit anderen Primitiven 

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

33 @omilke | Crypto 101 bcrypt(pwSaltPepper, 16++) ! Zertifikat = signierter Public Key + meta ! Abgehangene Krypto ♥ ! Was liegt meinem Vertrauen zugrunde? ?

Slide 34

Slide 34 text

34 @omilke | Crypto 101 Passwort-Speicherung in DB ? Online Dienste in Fahrzeugen ? eigene Passwörter speichern ? per Email versenden ?

Slide 35

Slide 35 text

35 @omilke | Crypto 101 Crypto Lib (bCrypt) http://www.bouncycastle.org/java.html Vergleich von Crypto-Libs  Password Policy http://www.passay.org/ (ehemals vt-password) 

Slide 36

Slide 36 text

36 @omilke | Crypto 101 Password Hashing security.stackexchange.com Thread  OWASP Password Storage Cheat Sheet https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet  OWASP Forgot Password Cheat Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet 

Slide 37

Slide 37 text

37 @omilke | Crypto 101 Qualys SSL Lab Server Test https://www.ssllabs.com/ssltest/ ! Mozilla Config Generator https://ssl-config.mozilla.org/ ! Bruce Schneier https://www.schneier.com/  Security Bewertungen https://www.keylength.com/ 

Slide 38

Slide 38 text

feedback plz Thank you get in touch • https://twitter.com/OliverMilke • [email protected] • Vortrag als Blog-Artikel