21
KITCTF KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de Kryptographie für CTFs Eine Einführung

Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTF

KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de

Kryptographie für CTFsEine Einführung

Page 2: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Nicht WissenschaftlichDafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“

Die Grundlagen für CTF-Anfänger

11/13/20182

Einführung

“Cryptography is the practice and study of techniques for secure communication in the presence of third parties.” Wikipedia

Page 3: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie11/13/20183

Übersicht — Erste Dimension

Symmetrisch

Asymmetrisch

Pseudozufalls- generator

Feistel-netzwerk,Permutation / Substitution,

Page 4: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

VerschlüsselungAuthentifizierung („Echtheit“)

Hash-FunktionenPseudozufallsgeneratorenProof-of-KnowledgeCommitments…

11/13/20184

Übersicht — Zweite Dimension

Page 5: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Caesar-ChiffreJeder Buchstabe wird um festen Werk k verschoben

11/13/20185

Klassiker

Brechen durch ausprobieren oder durch Häufigkeitsanalysen einfach möglichWird heutzutage immer noch verwendet (spiegel.de Paywall)Beispiel für Substitution

k = 3

Page 6: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie11/13/20186

Page 7: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Vigenère-ChiffreWähle Schlüsselwort und verschiebe jeden Buchstaben entsprechend dem Schlüsselbuchstaben

11/13/20187

Klassiker

Schlüssellänge bestimmen und dann Caesar-Chiffre für jede Schlüsselposition einzeln brechenNoch ein Beispiel für Substitution

Page 8: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

BlockchiffrenVerschlüsselt Blöcke fester LängeBetriebsmodus wird zur Verschlüsselung längerer Daten verwendet

StromchiffrenPseudozufälliger Schlüsselstrom wird aus Schlüssel abgeleitet Schlüsselstrom wird mit Klartext kombiniert

11/13/20188

Symmetrische Verschlüsselungen

Page 9: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie11/13/20189

Stromchiffren

Page 10: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

RC4, SEAL, Salsa20, CryptMT, …

Mögliche Angriffe:Bekannter Klartext:Aus einem bekannten Klartext m mit passendem Chiffrat c kann der Schlüsselstrom K rekonstruiert werden

K = m ⊕ c

Key-Reuse:Sind c1 und c2 mit dem gleichen Schlüssel verschlüsselt worden, dann kann man m1 ⊕ m2 wie folgt berechnen.

c1 ⊕ c2 = m1 ⊕ m2

11/13/201810

Stromchiffren

Page 11: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

DES, IDEA, RC5, AES, Blowfish, …

Block- und Schlüssellänge

Padding: Erweitern der Nachricht auf Blocklänge

BetriebsmodiElectronic Code Book (ECB)Cipher Block Chaining (CBC)Counter Mode (CTR)…

11/13/201811

Blockchiffren

Page 12: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Verschlüssle jeden Block einzelnProbleme:

Dateneinfügen möglichDeterministisch

11/13/201812

Electronic Code Book

Page 13: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Verschlüsseln: Enc(Block XOR dem vorigen Chiffrat-Block)Entschlüsseln: Dec(Chiffrat-Block) XOR vorigem Chiffrat-BlockInitialisierungsvektor zufälligProbleme:

Verlust eines Chiffrat-Blocks führt zu Verlust 2er Klartextblöcke

11/13/201813

Cipher Block Chaining

Page 14: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Padding: Klartext wird auf Blocklänge aufgefüllt.Bsp.: PKCS#7 x Byte fehlen zum vollen Block. Fülle jedes der Bytes mit dem Wert x.

11/13/201814

CBC Padding Oracle

Page 15: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie11/13/201815

CBC Padding Oracle

Über Änderung am vorletzten Block lässt sich über das Paddingorakel der letzte Block komplett bestimmen

Page 16: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Verschlüsselung:

11/13/201816

Asymmetrische Kryptosysteme

Signatur:

RSAElgamalMcEliece…

RSAElgamalDSA…

Page 17: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

11/13/201817

RSA

Page 18: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

11/13/201818

RSA

Page 19: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Bedingung Angriff KomplexitätKeine Faktorisierung exp(log(N)^(1/3)loglog(N)^(2/3))

Kleines d Wiener‘s Attack Polynomiell m < N^(1/4) Wurzel ziehen PolynomiellSenden der gleichen Nachricht an viele Empfänger mit selben

Håstad's broadcast attack

Polynomiell

11/13/201819

Angriffe auf RSA

Und viele mehr!

Page 20: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

Leonard Schönborn für die FolienStefan fürs Organisieren der Folien

11/13/201820

Danke

Page 21: Kryptographie für CTFs · 2020. 7. 2. · Ferdinand Sauer - Kryptographie KITCTF Nicht Wissenschaftlich Dafür Vorlesungen und Praktika aus „Kryptographie und Sicherheit“ Die

KITCTFFerdinand Sauer - Kryptographie

ctf.bplaced.net (Crypto 20 + Crypto 30)Picoctf.comcryptopals.comoverthewire.org/wargames/krypton

11/13/201821

Aufgaben