Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kryptographie für Einsteiger

Kryptographie für Einsteiger

Wissen über die Grundlagen der Kryptographie werden immer wichtiger. Kaum ein Projekt, in dem nicht Verschlüsselungstechniken eingesetzt werden. Durch die Nutzung verteilter Architekturen wie z.B. Microservices wird die Absicherung der Kommunikation immer wichtiger. Neben der Absicherung der Kommunikation zwischen Systemen werden damit unter anderem Kennwörter sicher gespeichert. Immer wichtiger wird die Nutzung von Kryptographie zur Authentifizierung der Kommunikationspartner. Die meisten Konfiguration und Abläufe benötigen kaum detailliertes Wissen. Kommt es jedoch zu Problemen hilft einem grundlegendes Wissen der zugrundeliegenden Technik bei der Lösung. Der Vortrag führt praxisorientiert in die Grundlagen der Verschlüsselung ein. - Was ist symmetrische / asymmetrische Verschlüsselung? - Welche Verschlüsselungsverfahren gibt es? - Was ist eine Cipher Suite? - Was sind Hashes? - Private Key, Public Key und Zertifikat - Was ist eine CA?

Sebastian Hempel

October 05, 2021
Tweet

More Decks by Sebastian Hempel

Other Decks in Programming

Transcript

  1. KRYPTOGRAPHIE
    FÜR EINSTEIGER
    Sebastian Hempel
    1

    View Slide

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

    View Slide

  3. WARUM KRYPTOGRAFIE?
    3 . 1

    View Slide

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

    View Slide

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

    View Slide

  6. BEGRIFFE
    4

    View Slide

  7. GESCHICHTE DER
    KRYPTOGRAPHIE
    5 . 1

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. BAUSTEINE DER MODERNE
    KRYPTOGRAFIEN
    6 . 1

    View Slide

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

    View Slide

  14. ,
    ( )
    Bananenfalter Orange_blue_public_private_keygeneration_de
    CC0
    6 . 3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. 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

    View Slide

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

    View Slide

  21. EINSATZ DER BAUSTEINE
    7 . 1

    View Slide

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

    View Slide

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

    View Slide

  24. 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

    View Slide

  25. 7 . 5

    View Slide

  26. KRYPTOGRAFIE IN DER PRAXIS
    8 . 1

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. , (
    )
    Santeri Viinamäki HTTPS and Padlock in Website Address Bar CC
    BY-SA 4.0
    9 . 1

    View Slide

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

    View Slide

  32. PRIVATE KEY
    ( )
    key-2114293 CC0 Creative Commons
    9 . 3

    View Slide

  33. ZERTIFIKAT
    ( )
    key-2114047 CC0 Creative Commons
    9 . 4

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  38. VALIDIERUNG - SUBJECT
    Certificate:
    Data:
    Version: 3 (0x2)
    Serial Number:
    04:67:72:5c:40:75:72:c0:44:03:03:7b:a1:2c:ff:f8:70
    Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=US, O=Let's Encrypt, CN=R3
    Validity
    Not Before: Jul 26 14:34:16 2021 GMT
    Not After : Oct 24 14:34:14 2021 GMT
    Subject: CN=jcon.one
    X509v3 extensions:
    X509v3 Subject Alternative Name:
    DNS:jcon.one, DNS:www.jcon.one
    9 . 9

    View Slide

  39. VALIDIERUNG - GÜLTIGKEIT
    Certificate:
    Data:
    Version: 3 (0x2)
    Serial Number:
    04:67:72:5c:40:75:72:c0:44:03:03:7b:a1:2c:ff:f8:70
    Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=US, O=Let's Encrypt, CN=R3
    Validity
    Not Before: Jul 26 14:34:16 2021 GMT
    Not After : Oct 24 14:34:14 2021 GMT
    Subject: CN=jcon.one
    9 . 10

    View Slide

  40. 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 = R3
    verify return:1
    depth=0 CN = jcon.one
    verify return:1
    ---
    Certificate chain
    0 s:/CN=jcon.one
    i:/C=US/O=Let's Encrypt/CN=R3
    1 s:/C=US/O=Let's Encrypt/CN=R3
    i:/C=US/O=Internet Security Research Group/CN=ISRG Root X1
    2 s:/C=US/O=Internet Security Research Group/CN=ISRG Root X1
    i:/C=US/O=Internet Security Research Group/CN=ISRG Root X1
    9 . 11

    View Slide

  41. 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

    View Slide

  42. DATEIFORMATE
    PEM (OpenSSL)
    PKCS12
    Java Keystore
    9 . 13

    View Slide

  43. FEHLERQUELLEN
    10 . 1

    View Slide

  44. Subject passt nicht zum Server
    , (
    )
    Bruno Pedro Facebook invalid SSL certificate error message CC
    BY-SA 2.0
    10 . 2

    View Slide

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

    View Slide

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

    View Slide

  47. FEHLERHAFTES ZERTIFIKAT
    Certificate:
    Data:
    Version: 3 (0x2)
    Serial Number:
    04:67:72:5c:40:75:72:c0:44:03:03:7b:a1:2c:ff:f8:70
    Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=US, O=Let's Encrypt, CN=R3
    Validity
    Not Before: Jul 26 14:34:16 2021 GMT
    Not After : Oct 24 14:34:14 2021 GMT
    Subject: CN=jcon.one
    10 . 5

    View Slide

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

    View Slide

  49. 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 = R3
    verify return:1
    depth=0 CN = jcon.one
    verify return:1
    ---
    Certificate chain
    0 s:/CN=jcon.one
    i:/C=US/O=Let's Encrypt/CN=R3
    1 s:/C=US/O=Let's Encrypt/CN=R3
    i:/C=US/O=Internet Security Research Group/CN=ISRG Root X1
    2 s:/C=US/O=Internet Security Research Group/CN=ISRG Root X1
    i:/C=US/O=Internet Security Research Group/CN=ISRG Root X1
    10 . 7

    View Slide

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

    View Slide

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

    View Slide