Commit 0cc29f12 authored by Markus Esmann's avatar Markus Esmann
Browse files

Update README.md

parent 3c29cb5e
GCM Nonce Reuse
===============================
Innerhalb dieses Projektes wurden die Schwachstellen beziehungsweise Angriffspunkte des GCM in
Verbindung mit AES bei Verwendung einer doppelten Nonce untersucht. Ziel war
es dabei die Umsetzbarkeit der Angriffe lokal zu simulieren.
Proof of Concept
===============================
Um die Angriffe testen zu können, wurde im ersten Schritt ein Mock-Objekt für einen anfälligen Server
erstellt. Letzterer verschlüsselt mit AES-GCM und verwendet dabei bei jedem Datensatz eine feste Nonce,
die bei der Initialisierung zufällig gewählt wird. Aufbauend auf diesem anfälligen Server
wurden dann die folgenden Angriffe entwickelt:
1. **Entschlüsselung der beteiligten Chiffrate:**
<br> Im ersten Tool wird anhand von zwei Bildern visualisiert, wie der Angreifer Informationen
aus den bei einer doppelten Nonce beteiligten Chiffraten extrahieren kann. Hierfür werden lediglich
die zwei Chiffrate mithilfe der XOR-Operation bitweise verknüpft. Als [Ergebnis](Data/) ergibt sich dann
das gleiche Bild wie bei der XOR-Verküpfung der beiden Klartextbilder. Somit hat der Angreifer im Anschluss die Möglichkeit
die eigentlichen Informationen beziehungsweise die Texte zu extrahieren.
1. **Bestimmung des Authentisierungsschlüssels mithilfe des Forbidden Attack:**
<br> Im zweiten Tool wurde der Forbidden-Attack implementiert. Mit letzterem lassen sich aus den assoziierten Daten, den Chiffraten
und den Authentisierungstags, die bei einer doppelten Nonce beteiligt waren, die Kandidaten für den Authentisierungsschlüssel bestimmen.
(siehe [BZ16](https://www.usenix.org/system/files/conference/woot16/woot16-paper-bock.pdf)) Mithilfe dieses Schlüssels kann der Angreifer sich dann
im Folgenden gegenüber dem Client als Server ausgeben und dadurch Chiffrate fälschen. (siehe
Angriffsszenario in [BZ16](https://www.usenix.org/system/files/conference/woot16/woot16-paper-bock.pdf))
Testumgebung
===============================
Für den Test dieses Projektes wurde die Linux Distribution Kali x64 in der Version 2020.1 verwendet. Darüber hinaus müssen die folgenden
Module installiert sein, da letztere in den Scripts eingebudnen werden:
* OpenSSL
* OpenCV
* PyCrypto
* SageMath
Quellen
===============================
Zur Vorlage für die theoretischen Hintergründe und für die Implementierung der Angriffe
wurden die folgenden Quellen verwendet:
* [Nonce-Disrespecting Adversaries: Practical Forgery Attacks on GCM in TLS](https://www.usenix.org/system/files/conference/woot16/woot16-paper-bock.pdf)
* [Attack nonce reuse on AES-GCM with CTR two time pad and forbidden attack](https://meowmeowxw.gitlab.io/ctf/utctf-2020-crypto/)
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment