04 - Kryptografie Flashcards
Definition: Symmetrische Kryptographie
Hier benutzen der Absender und der Empfänger den gleichen Schlüssel K der zum Ver- und Entschlüsseln verwendet wird.
Anforderungen an Verschlüsselungsverfahren (3)
1) Sicherheit des Verfahrens hängt nur von der Geheimhaltung des Schlüssels ab und nicht vom Verschlüsselungsalgorithmus
2) Gültige Schlüssel lassen sich halbwegs einfach erzeugen
3) Ver- und Entschlüsselungsoperationen sind für alle Schlüssel effizient durchführbar.
Definition: “Perfect secrecy”
Wenn bei egal wie viel bekanntem Chiffretext vorliegt nicht genügend Informationen aus dem Chiffretext abgeleitet werden kann, um den Klartext zu bestimmen.
Diese Definition gilt nur unter der Voraussetzung: Anzahl der Möglichen Schlüssel muss mindestens so groß sein, wie die Anzahl der möglichen Klartexte.
Definition: One-Time-Pad
Hier wird der Klartext und der Key mit einem XOR-Operator verschlüsselt. Dieser Schlüssel muss aber bei jedem Mal neu sein (deswegen der Name: One-Time), weil man sonst den Text einfach selbst verschlüsseln kann, solange der schlüssel bekannt ist.
Definition: Transpositionsschiffren
Hier wird nur die Reihenfolge der Zeichen geändert und somit der Klartext verschlüsselt.
Definition: Substitutionschiffren
Hier werden die Zeichen nach einem gewissen Schema ersetzt (z.B. Cäsar Chiffre).
Definition: Permutations-Chiffren
Hier wird nur die Reihenfolge der Zeichen geändert um den Klartext zu verschlüsseln.
Definition: Vignere Verschlüsselung
Zwar eine Substitutionschiffre, aber hier wird ein Running Key hinzugefügt, der die Häufigkeitsanalyse beim Knacken sinnlos macht.
Was macht eine Chiffre sicher? (2)
1) Verwirrung (Confusion) - Komplexer Zusammenhang zw. Schlüssel und Chiffretext
2) Zerstreuung (Diffusion) - Komplexer Zusammenhang zw. Klartext und Chiffretext
Nachteile: Symmetrische Chiffren (2)
1) Schlüsselaustausch
2) Speicherung von vielen Schlüsseln erforderlich
Definition: Blockchiffren
Hier wird Klartext in Blöcken mit fester Länge verschlüsselt (normalerweise 2^x).
Definition: Stromchiffren
Hier wird der Klartext bit für bit verschlüsselt. Hierbei wird jeder Bit XORed mit dem Schlüsselstrom.
Charakteristiken: DES (2)
1) Blockchiffre in 64-Bit Blöcken und 56-Bit-Schlüssel
2) Leicht durch Hardware zu realisieren
Vorteile: DES
In der Feistel-Funktion findet eine nicht-lineare Transformation statt, die das brechen von DES schwerer macht.
Nachteil: DES
Der Schlüsselraum ist hier zu klein und konnte in tagen bzw. stunden per Brute-Force geknackt werden.
Sichere DES Variante
Triple DES wurde entwickelt und löst das Problem des kleinen Schlüsselraums, indem DES mit 2 oder 3 Schlüsseln verwendet wird. Dies ergibt jetzt eine Schlüssellänge von 112 Bit.
Charakteristiken AES (3)
1) Blöckgröße von 128-Bit
2) Bis heute ungebrochen
3) Schlüssellängen von 128, 192 oder 256-Bit (verschiedene Varianten)
Definition: ECB (Electronic Code Book)
ECB ist ein Betriebsmodus für Blockchiffren, der jeden Klartextblock separat verschlüsselt.
Nachteil: ECB
Gleiche Klartextblöcke liefern die gleichen Chiffretexte
Vorteil: ECB
Paralleles Berechnen der Chiffretextblöcken möglich.
Definition: CBC (Cipher Block Chaining)
Hier wird der Klartextblock mit dem vorhergehenden Chiffretextblock XORed.
Vorteil: CBC
Gleiche Klartextblöcke liefern nicht die gleichen Chiffretexte
Nachteil: ECB
Paralleles Berechnen der Chiffretextblöcken nicht möglich.
Definition: Synchrone Stromschiffren
Hier ist die Schlüsselstromgenerierung vom Nachrichtenstrom unabhängig.
Vorteil: Synchrone Stromschiffren
Schlüsselstromberechnung kann im Voraus erledigt werden.
Nachteil: Synchrone Stromchiffren
Bei Bitverlust (z.B. bei UDP) ist der gesamte folgende Chiffretext Strom unbrauchbar (da beide Ströme nicht mehr Synchronisiert sind).
Definition: Selbstsynchronisierende Stromchiffren
Jedes Schlüsselstrom-Bit ist eine Funktion einer festen Anzahl (𝑛) vorhergehender Chiffrebits.
Vorteil: Selbstsynchronisierende Stromchiffren
Jetzt erzeugen Fehlerhaft übertragene Bits n falsche Schlüsselstrom-Bits anstatt den restlichen Strom unbrauchbar zu machen. Dies ist da der Chiffretext auch als Schlüsselstromgenerator verwendet wird.
Nachteil: Selbstsynchronisierende Stromchiffren
Anfällig für Wiedereinspielungen
Definition: Asymetrische Chiffren
Jetzt werden verschiedene Schlüssel zum Ver- und Entschlüsseln benutzt. Public key für Verschlüsseln und Private key für das Entschlüsseln. Der Wunsch hierbei ist das es unmöglich sein soll, unter Kenntnis eines Schlüssels, den anderen zu berechnen.
Vorgehensweise: Diffie-Hellman (4)
1) Schlüssel werden mit X^e mod n verschlüsselt.
2) Alle Teilnehmenden eignen sich auf einen Wert für X und n. Diese 2 Variablen formen somit einen Public Key
3) Ein beliebiger Wert für e wird ausgesucht, aber er bleibt geheim (Private Key)
4) Die Public und Private Keys werden in der Funktion multipliziert und somit erhalten beide Parteien einen gemeinsamen Schlüssel, ohne ihn explizit austauschen zu müssen.
Vorteil: Diffie-Hellman
Diese Funktion ist unfassbar schwer für e zu lösen und beansprucht sehr viel Rechenaufwand, der momentan einfach nicht geboten werden kann. Aus diesem Grund wird es als sicheres Verfahren bezeichnet.
Definition: RSA
Dieses Verfahren besitzt sehr lange Schlüssel (2048-Bit sind z.B. üblich). RSA ermöglicht sowohl Verschlüsselung wie auch Digitale Signatur
Vorteil: RSA
Brute-Force-Attacken sind extrem Rechenaufwendig, da p und q Faktoren vom Geheimschlüssel sind und bei hohen Primzahlen schwerer als andere Rechenoperationen durchzuführen sind. Hierfür müssten sogar Spezialrechner gebaut werden, die sich auf Faktorisieren spezialisieren müssten.
Vorteil: Symmetrische Chiffren
Vergleichbar geringe Komplexität und dadurch schneller.
Vorteile: Asymmetrische Chiffren (2)
1) Einfachere Handhabung der Schlüssel
2) Kein sicherer Kanal zum Schlüsselaustausch nötig
Nachteile: Asymmetrische Chiffren (2)
1) Höhere Komplexität und Größere Schlüssellänge
2) Problem der Authentizität der öffentlichen Schlüssel
Eigenschaften: Hashfunktionen (5)
1) Nachricht wird Komprimiert
2) Einfach zu berechnen
3) Zufällige Natur
4) Lawineneffekt (Kleine änderungen im Klartext wirken große Änderungen auf den Hashwert aus).
5) Stellen Authentizität und Integrität sicher
Anforderungen: Digitale Signaturen (5)
1) Authentizität
2) Fälschungssicherheit
3) Überprüfbarkeit
4) Keine Wiederverwendbarkeit
5) Keine Veränderbarkeit
Digitale Signatur mit Asymmetrischer Verschlüsselung
Vertauscht einfach die Rollen von dem Private und Public Key, sodass der Private Key jetzt entschlüsselt und er Public Key verschlüsselt. Somit wird ein impliziter Nachweis über die Identität des Verschlüsselnden sichergestellt.
Vorgehensweise: Hashfunktionen in digitalen Signaturen
Hier wird ein Hashwert für den Klartext generiert und mithilfe einen Signaturalgorithmus und dem privaten Schlüssel des Absenders signiert. Danach wird sie so natürlich abgesendet.
Nachteil: Digitale Signaturen
Man kann nicht sicherstellen, von wem der Public Key eigentlich stammt. Dieses Problem kann eine Trusted-Third-Party (TTP) lösen
Definition: Schlüssel Fingerprint
Ein Kryptografischer Hashwert des Schlüssels, der hexadezimal notiert ist und somit das Problem des merken eines 2048-Byte Schlüssels löst.
Definition: Trusted-Third-Party (TTP)
Jetzt wird eine 3. Partei (Oft ein Zertifikat) in den Signaturprozess mit eingebunden, die Aussagen zum jeweiligen öffentlichen Schlüssel treffen kann. Beide Parteien müssen dieser Person aber trauen.
Definition: PKI Zertifikat
Hier wird ein Zertifikat mit dem Public Key des Verschlüsselers zusammengebunden, sodass eine Identität mithilfe diesem Zertifikat authentifiziert werden kann. Dieses Zertifikat wird anhand einer hierarchischen Struktur an die einzelnen Identitäten runtergereicht.
Rolle der Certificate Authorities
Sie teilen Root Certificates (also die höchste Ebene der Hierarchie) aus. Ihre Zertifikate werden dann über vertrauenswürdige Kanäle (Browser oder Betriebssystem) an die einzelnen User ausgeteilt.
Alternative zu Certificate Authorities
Web of trust: hier signieren User sich ihre Schlüssel gegenseitig (Vertrauensbasis). Hierdurch kann der User selbst entscheiden wen er wie weit vertraut.
Definition: TLS (Transport Layer Security)
Dieser Layer erweitert TCP um Sicherheit, für den Payload im Application Layer. Integrität wird sichergestellt, indem für jede Message ein Keyed-Hash Message Authentication Code ausgeteilt wird. Diese Message bleibt auch durch symmetrische Verschlüsselung Vertraulich und zu guter letzt wird Authentifizierung durch public key Verschlüsselung sichergestellt.
Schritte: TLS Handshake (4)
1) ClientHello
2) ServerHello
3) ServerCertificate
4) ServerKeyExchange
5) ServerHelloDone
6) ClientKeyExchange
Bestandteile: Server Certificate (TLS) (6)
1) Subject’s Name
2) Subject’s Public Key
3) Issuer’s Name
4) Validity Period
5) Technical Information
6) Issuer’s Signature (mit private key vom Issuer erstellt)
Definition: ServerKeyExchange (TLS)
In diesem Schritt vom TLS Handshake, schickt der Server die Parameter (aus der Formel) für den DH-Schlüsselaustausch.
Definition: ClientKeyExchange (TLS)
In diesem Schritt vom TLS Handshake schickt der Client dem Server seinen public key für den DH Schlüsselaustausch, als antwort auf die Parameter, die beim ServerKeyExchange an ihn geschickt wurden.
Definition: Perfect Forward Secrecy
Ein protokoll wird mit perfect forward secrecy gekennzeichnet, wenn es die verwendeten Sitzungsschlüssel nach Beendigung der Sitzung nicht mehr aus den geheimen Langzeigschlüsseln rekonstruieren kann. Dies hat die positive Folge, dass eine verschlüsselte Kommunikation auch bei Kenntnis des Langzeitschlüssels nicht nachträglich entschlüsselt werden kann.
TLS Client Authentifizierung
Gegenseitige Authentifizierung kann erfolgen indem:
- Nach dem senden des Zertifikats von Seite des Servers und die zu nutzende Cipher Suite mitgeteilt hat kann der Server vom Client ein Zertifikat anfordern.
- Danach sender der Client entweder sein Zertifkat oder einen “no_certificate” alert.
TLS 1.3 Verbesserungen (3)
1) Reduktion der Gefahr von Fehlkonfigurationen
2) Widerstandsfähigeres Design bzgl. bekannter Angriffe
3) Verbesserung der Performance