Kryptographie in der IT - Empfehlungen zu VerschlĂĽsselung und Verfahren
Seite 3: Symmetrischen VerschlĂĽsselung
Kurz: Nimm AES mit 256 Bit.
Die eigentliche Verschlüsselung von Daten erfolgt in aller Regel mit einem symmetrischen Verfahren – das ist schnell und einfach. Symmetrisch heißt es deshalb, weil zum Ver- und Entschlüsseln das gleiche Geheimnis zum Einsatz kommt. Das müssen also sowohl Absender als auch Empfänger kennen – und tunlichst nur die.
Der unangefochtene Platzhirsch in diesem Bereich ist der Advanced Encryption Standard (AES). Es sind keine nennenswerten Schwächen bekannt; so gut wie alle angesehenen Kryptologen vertrauen ihm. Als gute Alternative gilt das unter anderem von der europäischen ENISA empfohlene Camellia, das allerdings deutlich langsamer ist. Beides sind sogenannte Block-Verschlüsselungsverfahren, die immer mit Datenblöcken fester Größe arbeiten.
Stromverschlüsselung arbeitet hingegen einen kontinuierlichen Datenstrom Byte für Byte ab. Eine solche Stream Cipher bietet Vorteile, etwa wenn man einzelne Daten im verschlüsselten Datenstrom exakt lokalisieren will. Das am weitesten verbreitete RC4 gilt als gebrochen oder zumindest sehr angeschlagen; man sollte es nicht mehr einsetzen. Schlimmer noch sind die beim Mobilfunk oft eingesetzten A5/1 und A5/2 – die kann man bereits in Echtzeit knacken.
Die vielversprechendste Stream Cipher ist ChaCha von Dan J. Bernstein; sie wird vor allem von Google in der Kombination ChaCha20-Poly1305 für HTTPS verwendet. Das ist im Rahmen von RFC 7905 für TLS 1.2 standardisiert. Als Schlüssellänge reichen derzeit 128 Bit aus; für langfristige Sicherheit sollte man 256- Bit-Schlüssel einsetzen.
Fazit: Auch bei den symmetrischen Verfahren ist alles okay; Probleme sind nicht in Sicht und fĂĽr den Fall, dass doch welche auftauchen, gibt es ausreichend Reserven und Alternativen.
Betriebsmodi von CBC bis GCM
Kurz: Nimm AES-GCM.
Wenn man mit einer Block-Chiffre wie AES mehr als einen Block (bei AES 128 Bit = 16 Byte) verschlüsseln möchte, muss man sich überlegen, mit welchem Schlüssel man den zweiten und die folgenden Blocks chiffriert. Das legt der Betriebsmodus der Verschlüsselung fest, auch Cipher Mode genannt.
Immer wieder den gleichen Schlüssel zu nehmen (Electronic Codebook Modus, kurz ECB), verbietet sich, da damit gleiche Daten immer den gleichen Chiffretext erzeugen. Daraus können Angreifer oft schon sehr viel ableiten. Der am häufigsten genutzte Modus ist das Cipher Block Chaining (CBC), bei dem der Cipher-Text des jeweils vorgehenden Blocks in die Verschlüsselung mit eingeht. Dieses Verfahren weist jedoch Schwächen auf, die auch immer wieder zu realen Angriffen wie POODLE führten.
Unter anderem müssen Datensätze immer auf ein Vielfaches der vollen Blockgröße verlängert werden. Auf Grund einer schlechten Entscheidung beim Design von SSL sind diese Fülldaten nicht integritätsgeschützt und lassen sich somit zum Durchprobieren bestimmter Entschlüsselungsmöglichkeiten missbrauchen. Ein solches „Padding Oracle“ war die Basis des spektakulären POODLE-Angriffs auf HTTPS-Verschlüsselung. Darüber hinaus lässt sich die Verschlüsselung großer Datenmengen mit CBC nicht parallelisieren.
Die bekannten Angriffe auf Verschlüsselung im CBC-Modus wurden immer recht schnell gefixt, sodass man es nach wie vor benutzen kann. Doch eigentlich will man weg davon. Die beste Alternative ist der Galois Counter Mode (GCM), der mit fortlaufenden Zählern arbeitet und voll parallelisierbar ist. Die wichtigste Eigenschaft ist jedoch, dass GCM die Integritätssicherung via MAC mit der Verschlüsselung kombiniert.
Diese Authenticated Encryption (AE) beziehungsweise auch Authenticated Encryption with Associated Data (AEAD) korrigiert endlich die vor vielen Jahren fĂĽr SSL getroffene Fehlentscheidung, zuerst den MAC ĂĽber die Daten zu bilden und dann erst zu verschlĂĽsseln (MAC-then-Encrypt, siehe Padding Oracle). FĂĽr TLS 1.2 sind AES-GCM und Camellia-GCM standardisiert. Google setzt stattdessen auf die Strom-Chiffre ChaCha20 mit dem MAC Poly1305.
Speziell für die Verschlüsselung von Festplatten kommt neben CBC oft AES-XTS zum Einsatz. Das splittet den kompletten Schlüssel in zwei Hälften auf. Für eine echte AES-Verschlüsselung mit 256 Bit muss man also XTS mit 512-Bit-Schlüsseln füttern.
Fazit: Der aktuelle Stand der Dinge ist nicht wirklich schön, aber es ist Besserung in Sicht. Kein Grund zur Panik.