Authentifikation Flashcards
Schutzziel von Hashfunktionen / MACs
Authentizität und Integrität
Hashfunktionen - Idee
- Berechne Prüfsumme einer Nachricht
- Übertrage (kurze) Prüfsumme über sicheren Kanal
- Übertrage (lange) Nachricht über unsicheren Kanal
- Empfänger prüft, ob Prüfsumme zur Nachricht passt
Hashfunktion
Verwandelt Input beliebiger Länge in ein Output fester Länge
Kryptographische Hashfunktion
Verwandelt Input beliebiger Länge in ein Output fester Länge. Unter Berücksichtigung von Sicherheitseigenschaften:
- Einwegfunktion (one-wayness)
- schwache Kollisionsresistens (2nd preimage resistance)
- starke Kollisionsresistenz (collision resistance)
Ideale Hashfunktion - Definition
Eine Hashfunktion heißt sicher, wenn sie keine Eigenscharten besitzt, die man nicht auch von einer zufällig ausgewürfelten Funktion f:{0,1}^* -> {0,1}^n erwarten würde. -> IDEALE HASHFUNKTION
Hashfunktionen - Kollisionen - Allgemein
Die Definitonsmenge der Hashfunktion ist deutlich größer als ihr Wertebereich. Für jeden Wert aus dem Wertebereich gibt es im Grunde unendliche viele Inputwerte. Es muss also Kollisionen geben. Sicherheitsrelevant ist lediglich, dass es schwer sein soll, eine Kollision zu FINDEN. Auch gegen eine ideale Hashfunktion kann man Kollisionen suchen.
schwache Kollisionsresistens (2nd preimage resistance)
gegeben: Nachricht X
Es soll unmöglich sein, ein X’ zu finden mit H(X)=H(X’)
starke Kollisionsresistenz (collision resistance)
Es soll unmöglich sein, beliebige X und X’ zu finden mit H(X)=H(X’) und X!=X
Geburtstagsparadoxon
Bei s möglichen Werten: Man kann davon ausgehen, dass nach Wurzel(s) Versuchen eine Kollision auftritt.
Wenn eine Hashfunktion eine Outputlänge von 64 Bit hat, kann man nach Wurzel(2^64) = 2^32 Versuchen eine Kollision erwarten.
Hashfunktionen - Kollisionen - Ausnutzen
Wenn eine Hashfunktion keine starke Kollisionsresistenz aufweist, kann der Angreifer die Nachricht VOR dem Versenden austauschen (Angreifer muss Alice sein)
Wenn eine Hashfunktion nicht mal schwache Kollisionsresistenz aufweist, kann der Angreifer die Nachricht NACH dem Versenden ersetzen.
Kollisionen aus Zufallsstrings sind ebenfalls relevant, da in RSA-Zertifikaten oder programmierbaren Dokumenten Schaden angerichtet werden kann.
iterative Hashfunktionen
Die Kollision eines Zwischenergebnisses kann zur Kollision des Gesamtergebnisses ausgebaut werden. LENGHT EXTENSION ATTACK
Welche Hashfunktionen sind sicher?
SHA-2
SHA-3
WHIRLPOOL
Keccak (SHA-3)
Sponge Construction
- ABSORPTION PHASE: Nachricht wird in inneren Zustand (1600 Bit) absorbiert
- SQUEEZING PHASE: Erst ganz am Ende wird der Output herausgepresst
Der innere Zustand ist größer als der eigentliche Output. Kollision nach 2⁸⁰⁰ Versuchen
Was sind Message Authentication Codes
Welche gibts es?
- MACs sind eine Hashfunktion mit Schlüssel (keyed hash)
CBC-MAC
HMAC
Unterschied Hash/MAC
Hash bietet Integrität
MAC bietet Integrität und Authentizität
MAC nutzt secret key, dh der Absender muss den key kennen. Da niemand sonst den key kennt, ist der Absender zweifelsfrei identifiziert. Außerdem kann d über unsichere Verbindung geschickt werden, da key geheim.
Hash nutzt keinen key (jeder kann hashen), daher muss d über sichere Verbindung kommuniziert werden.
Ist bei MACs ein sicherer Kanal nötig?
kein sicherer Kanal nötig
Wann heißt ein MAC sicher?
Wenn er keine Eigenschaften besitzt, die man nicht auch bei einem idealen MAC erwarten würde
Angriffe gegen idealen MAC
BruteForce
Rate Digest
Replay-Angriff
sicher gegen Kollisionsangriffe!
The Game
1) Query Phase: Angreifer wählt Nachrichten und erhält die zugehörigen Digests
2) Attack Phase: Angreifer produziert (m,d) mit m1!=m2
3) Victory Condition: Angreifer gewinnt, wenn Bob (m,d) akzeptiert, dh wenn d=MAC(m) ist.
CBC-MAC - Angriff
1) Erfrage Digests für zufällige Nachrichten m1,…mn, bis eine Kollision auftritt.
2) Erfrage Digest für (mi,a) und (mj,a) und erhalte Digest d.
3) Reiche ((mj,a)d) ein. Immer richtig, wenn
MAC(mi)=MAC(mj) dann ist auch MAC(mi,a)=MAC(mj,a).
CBC-MAC - Probleme
Die Nachricht kann erweitert werden bzw. verschiedene Digests kombiniert werden.
Kann durch Padding verhindert werden, z.B CBC-MAC(m || length(m))
Allgemein: Der letzte Schritt muss anders sein als alle vorherigen
HMAC
CBC-MAC wird aus Hashfunktion zusammengebaut.
keyed Hash verhindert Collision Attacks
Konstanten (a,b) verhindern Lenght Extension Attack
Fazit
CBC-Mac am weitesten verbreitet
Immer den Algo mit angeben, zB
CBC-MAC-AES-128
HMAC-SHA1
BruteForce, Digest raten, Replay Attacks auch gegen idealen Hash möglich
Auch Kontextinformationen authentisieren, nicht nur Nachricht!
CBC-MAC
m||k
(k||m)
(m||k): Collision Attack, kann offline nach Kollisionen durchsucht werden
(k||m): Length Extension Attack. Wenn Schlüssellänge und m bekannt sind, können beliebige Nachrichten an beliebige Schlüssel gehängt werden.