AWS in Switzerland and Austria (Alps)
Die Post-Quanten-Kryptografie: Eine neue Ära der Sicherheit
Wenn verschlüsselte Daten zwischen zwei Parteien oder Systemen ausgetauscht werden, kommen typischerweise asymmetrische Verschlüsselungsverfahren zum Einsatz. Diese verwenden ein Schlüsselpaar, einen öffentlichen Schlüssel zur Verschlüsselung und einen privaten Schlüssel zur Entschlüsselung. Ein Beispiel dafür ist die RSA-Verschlüsselung. Die Sicherheit von RSA beruht auf der mathematischen Schwierigkeit, grosse Zahlen in ihre Primfaktoren zu zerlegen – ein Prozess, den man als Faktorisierung bezeichnet. Solange diese Faktorisierung nicht effizient möglich ist, bleibt die Verschlüsselungen mit RSA sicher. Allerdings existiert ein Algorithmus, der von dem amerikanischen Mathematiker Peter Shor entwickelt wurde und der Zahlen auf Quantencomputern deutlich schneller faktorisieren könnte, als auf herkömmlichen Computern. Dieser sogenannte Shor-Algorithmus stellt daher eine potenzielle Bedrohung für die RSA-Verschlüsselung dar. Bislang ist das jedoch noch nicht praktisch umsetzbar, da dafür Tausende von fehlerfreien Quantenbits benötigt werden – eine Hürde, die aktuell noch nicht überwunden ist. Sollte es aber in Zukunft gelingen, Experten gehen von einem Zeitraum innerhalb 10 Jahren aus, leistungsfähige Quantencomputer zu bauen, wäre die Sicherheit der RSA-Verschlüsselung gefährdet. Daher warnen Experten auch vor sogenannten “harvest now, decrypt later”-Angriffen. Dabei wird verschlüsselter Netzwerkverkehr heute schon aufgezeichnet, um ihn später, wenn leistungsfähige Quantencomputer zur Verfügung stehen, zu entschlüsseln.
Um diese Gefahr zu adressieren, arbeiten Forschungseinrichtungen, Behörden und Unternehmen wie AWS an der Entwicklung von Post-Quanten-Kryptographie. Das amerikanische National Institute of Standards and Technology (NIST) führte seit 2016 einen Standardisierungsprozess durch und hat nun neue Standards für den Austausch von Schlüsseln und Signaturverfahren herausgegeben. Dieser Artikel erklärt das bestehende Problem genauer, beleuchtet die Arbeit von AWS und gibt praktische Lösungsansätze, um die Daten unserer Kunden zu schützen.
Problem und Lösung
Die Verschlüsselung von gespeicherten Daten (data at rest) verwendet hauptsächlich symmetrische Verschlüsselung – also denselben Schlüssel für die Ver- und Entschlüsselung. Das bei AWS eingesetzte AES-GCM Verfahren mit 256-bit Schlüssellänge ist ein weltweit angerkannter Standard und gilt aktuell als sicher gegen Angriffe durch Quantencomputer. AES selbst gilt aktuell als sicher, da die beste bekannte Attacke das Durchprobieren aller möglichen Schlüssel (Brute-Force) ist. Um die Schlüssel für mit AES-256 (2256 Möglichkeiten) verschlüsselte Daten mit heutiger Technologie erraten zu können, würde es eine astronomische Zeit dauern. Beispielsweise würde es mit der kombinierten Rechenleistung der Bitcoin-Mining-Netzwerke etwa 70 Trillionen Jahre dauern, um einen halb so langen AES-128-Schlüssel zu knacken.
Für die sichere Übertragung von Daten (data in transit) werden Protokolle wie TLS oder SSH verwendet, dabei wird der eigentliche Datenverkehr mit symmetrischen Algorithmen verschlüsselt. Die anfängliche Vereinbarung über einen Schlüssel erfolgt jedoch mittels asymmetrischer Verschlüsselung (oder Public-Key-Verschlüsselung). Aufgrund der anfänglich beschriebenen Gefahr, benötigen wir hier neue quantensichere Algorithmen zum Schutz dieser Schlüssel. Zusätzlich müssen wir prüfen, ob die Schlüsselverwaltung oder Zugriffskontrollmechanismen, die das Schlüsselmaterial schützen und auf asymmetrische Kryptografie angewiesen sind, ebenfalls aktualisiert werden müssen.
Um dieser potenziellen Bedrohung zu begegnen, arbeitet AWS seit mehreren Jahren zusammen mit der Kryptografiegemeinschaft an der Entwicklung neuer quantenresistenter Algorithmen. Diese sogenannten “Post-Quanten-Kryptografie” (PQC) Algorithmen basieren auf mathematischen Problemen, die auch für Quantencomputer schwer lösbar sind. Das sorgfältige Auswahlverfahren von NIST hat nun neue Standards für PQ-Verschlüsselung (post-quantum) und digitale Signaturen hervorgebracht, die am 13. August 2024 bekannt gegeben wurden.
Der Beitrag von Amazon
Amazon brachte sich aktiv am Standardisierungsprozess von NIST ein. Darüber hinaus ist das Unternehmen an Projekten und Arbeitsgruppen wie der Internet Engineering Task Force (IETF), dem ETSI Quantum Safe Cryptography Technical Committee und der Open Quantum Safe Initiative beteiligt. Amazon-Mitarbeiter haben zudem zum SPHINCS+-Algorithmus (SLH-DSA) beigetragen, der von NIST als einer der finalen digitalen Signaturalgorithmen ausgewählt wurde.
2014 wurde ein schwerwiegender Fehler (bekannt unter Heartbleed) in einer älteren OpenSSL-Bibliothek bekannt, durch den verschlüsselte TLS-Verbindungen geknackt werden konnten. Die Referenzimplementierung von OpenSSL wurde mit 500’000 Codezeilen immer komplexer und fehleranfälliger. Dies bewog Amazon 2015 ihre eigene TLS-Implementierung namens s2n-tls (signal to noise) zu lancieren. s2n-tls hat nur 6’000 Codezeilen und wurde bereits dreifach extern geprüft und mehrfach getestet. 2017 gab AWS bekannt, dass der gesamte Netzwerkverkehr für Amazon S3 von s2n-tls verschlüsselt wird. Das AWS Kryptographie-Team unterhält auch eine eigene kryptographische Bibliothek (AWS-LC) mit Implementierungen von Algorithmen für TLS. Die Amazon libcrypto ist auch FIPS140-3 Level1 (der aktuellste Standard für kryptographische Module von NIST) zertifiziert. Die AWS-LC beinhaltet bereits die vom NIST ausgewählten quanten-sicheren Algorithmen für den Schlüsselaustausch (Kyber resp. ML-KEM) und für digitale Signaturen (Dilithium resp. ML-DSA). Zuletzt ergänzte s2n-quic die Sammlung von Open-Source-Verschlüsselungsbibliotheken von AWS. QUIC ist ein verschlüsseltes Transportprotokoll, das die Grundlage von HTTP/3 bildet.
Alternative AWS open source Bibliotheken
Quanten-sicherer Schlüsselaustausch in AWS Services
Wie zuvor beschrieben, werden die eigentlichen Daten mittels symmetrischer Verschlüsselung verschlüsselt sind und da gelten die aktuellen Verfahren als quanten-sicher. Der Austausch der Schlüssel wird jedoch durch asymmetrische Verschlüsselung gesichert, die eine Aktualisierung benötigt, um Sicherheit in der Zukunft zu gewährleisten. Um Verschlüsselungsschlüssel und deren Austausch quanten-sicher zu gestalten, hat AWS bereits heute die Service-Endpunkte von kritischen Sicherheitsdiensten wie AWS Key Management Service (AWS KMS), AWS Certificate Manager (ACM) und AWS Secrets Manager auf quanten-sichere Schlüsselaustauschverfahren aktualisiert. Bei TLS- und QUIC-Verschlüsselung bestimmt der Client die verwendeten Verschlüsselungsalgorithmen. Deshalb müssen Programme angepasst werden, um die gewünschten quanten-sicheren Algorithmen nutzen zu können. Details und Beispiele können den Blogs “How to tune TLS for hybrid post-quantum cryptography with Kyber” und “Enable post-quantum key exchange in QUIC with the s2n-quic library” entnommen werden.
Trotz des grossen Fokus auf post-quantum-hybride Schlüsselaustauschverfahren wurde relativ wenig in Bezug auf SSH (ein weit eingesetztes Protokoll für Dateiübertragung und Systemverwaltung) getan. AWS bietet jedoch bereits heute quanten-sicheren Schlüsselaustausch im SFTP-Protokoll in der AWS Transfer Family an. Details dazu finden Sie im Blog “Post-quantum hybrid SFTP file transfers using AWS Transfer Family”.
Testverbindung mit quanten-sicherem Schlüsseltausch
Der folgende Test dient dazu, die Funktionsfähigkeit und Einsatzfähigkeit von quanten-sicheren kryptografischen Verfahren in Verbindung mit den AWS Krypto-Tools (wie der libcrypto-Bibliothek) und dem AWS Key Management Service zu überprüfen.
1. Vorbereiten einer virtuellen Maschine mit Linux
- Mindestens eine t3.small Instanz mit Amazon Linux 2 (t3.micro bietet zuwenig Speicher für die Kompilierung).
- Installierte Entwicklungswerkzeuge und Kompiler:
# install build dependencies
sudo yum groupinstall "Development Tools"
sudo yum install cmake3
2. Kompilieren der AWS libcrypto
git clone https://github.com/aws/aws-lc
cd aws-lc
mkdir build
cd build
cmake -G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/lc-install ..
cmake --build .
sudo cmake --install .
3. Kompilieren von s2n-tls mit AWS libcrypto Integration
git clone https://github.com/aws/s2n-tls.git
cd s2n-tls
cmake . -Bbuild \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=./s2n-tls-install \
-DCMAKE_PREFIX_PATH=/lc-install \
cmake --build build -j $(nproc)
CTEST_PARALLEL_LEVEL=$(nproc) ctest --test-dir build
cmake --install build
4. Testen der Verbindung zu AWS Key Management Service
[ec2-user@ip-172-31-0-117 bin]$ cd /home/ec2-user/s2n-tls/build/bin
[ec2-user@ip-172-31-0-117 bin]$ ./s2nc -c PQ-TLS-1-0-2021-05-23 kms.eu-central-2.amazonaws.com
libcrypto: AWS-LC 1.33.0
CONNECTED:
Handshake: NEGOTIATED|FULL_HANDSHAKE|MIDDLEBOX_COMPAT
Client hello version: 33
Client protocol version: 34
Server protocol version: 34
Actual protocol version: 34
Server name: kms.eu-central-2.amazonaws.com
KEM Group: x25519_kyber-512-r3 (PQ key exchange enabled)
Cipher negotiated: TLS_AES_256_GCM_SHA384
Server signature negotiated: RSA-PSS-RSAE+SHA256
Early Data status: NOT REQUESTED
Wire bytes in: 6586
Wire bytes out: 1224
s2n is ready
Connected to kms.eu-central-2.amazonaws.com:443
Der neue TLS1.3 Mechanismus beinhaltet wie oben dargestellt eine KEM group (key encapsulation mechanism). Dabei verlaufen der Schlüsselaustausch und der Verschlüsselungsalgorithmus unabhänig von einander.
Zusammenfassung
Die Post-Quanten-Kryptographie stellt eine neue Ära der Sicherheit dar, da die gängigen asymmetrischen Verschlüsselungsverfahren durch leistungsfähige Quantencomputer gefährdet sein könnten. AWS arbeitet aktiv an der Entwicklung von quantenresistenten Algorithmen und hat sicherheitskritische Services bereits auf quantensichere Schlüsselaustauschverfahren umgestellt. AWS stellt zudem Open-Source-Bibliotheken wie AWS-LC und s2n-tls zur Verfügung, die diese neuen Algorithmen implementieren.
Informieren Sie sich ausführlicher über die Aktivitäten von AWS im Bereich Post-Quanten-Kryptographie und finden Sie weiterführende Ressourcen auf folgenden Links:
Hands-on Workshop:
https://catalog.workshops.aws/using-pq-crypto-on-aws/
Preparing today for a post-quantum cryptographic future:
https://www.amazon.science/blog/preparing-today-for-a-post-quantum-cryptographic-future
AWS cryptographic services and tools:
https://docs.aws.amazon.com/crypto/latest/userguide/awscryp-overview.html