AES-Verschlüsselung
Wissenswertes für Azubis und Berufsanfänger
Was beinhaltet denn eigentlich so eine Ausbildung zum Fachinformatiker Systemintegration oder Fachinformatiker Anwendungsentwicklung? Kommt da auch diese “Verschlüsselung” drin vor?
Ja, mit dem Thema Verschlüsselung kommt man in der Ausbildung “zwangsweise” auch in Kontakt.
Viele Beispiele im Internet und die Top Einträge bei Google zeigen meist nur die Implementation an Hand von AES im CBC Modus.
Es gibt allerdings noch andere Modi. Einige davon sind jedoch “kaputt” und sollten längst ausgebaut sein. Leider sind diese Modi zum Teil aber immer noch per “default” eingestellt. Das sollten Entwickler bei der Programmierung entsprechend wissen und beachten. Ein sehr empfehlenswerten Vortrag zu diesem Thema ist die Keynote der ruhrsec.de/2019: How to statically detect insecure uses of cryptography – at scale and with almost perfect precision von Prof. Dr. Eric Bodden.
Was lernt man also als Azubi oder Berufsanfänger bei der x-ion? Richtig, “use your brain” und lesen, lesen, lesen. Eine Manpage oder Dokumentation liefert mit unter ein besseres Ergebnis als die Top Google Einträge!
Unsere Recherche in der Ruby Dokumentation für Authenticated Encryption and Associated Data (AEAD) liefert dann auch ein Beispiel für die Verwendung mit AES im GCM Modus mit 128bit. Ein Beispiel für AES im GCM Modus mit 256bit haben wir in unser snippets github repo gelegt. Das Beispiel ist in Ruby realisiert und nutzt die Module “openssl” sowie “securerandom”.
Der AES GCM Modus bietet gegenüber dem AES CBC Modus den Vorteil, dass der Empfänger der verschlüsselten Daten eine Integritätsprüfung an Hand des sogenannten “Tags” durchführen kann und somit eine mögliche Veränderung der Übertragung festgestellt wird.
Wichtig für das Thema Verschlüsselung sind “gute” Zufallszahlen und eine einmalige Verwendung von Nonce / Key Kombinationen, denn sonst könnten Angriffe auf die Verschlüsselung zum unberechtigten Entschlüsseln führen. Gute Zufallszahlen kann man z.B. durch den zusätzlichen Einsatz von “True Hardware Random Number Generator” wie dem ChaosKey von Altus Metrum https://altusmetrum.org/ChaosKey/ generieren, ein guter Mix von Quellen für den Entropy Pool des Betriebssystems führt dann nicht zum “Totalschaden”, wenn z.B. eine Quelle nicht ganz so “zufällige” Werte liefert.