Symmetrische Verschlüsselung

Posted on Posted in Hacker News

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 empfohleneCamellia, 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 verbreiteteRC4 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. Allerdings ist die Standardisierung für TLS 1.2 noch nicht abgeschlossen. 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 32 Byte (256 Bit) 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, kurzECB), 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.

Beim Cipher Block Chaining geht der Ciphertext eines Blocks in die Verschlüsselung des nächsten mit ein.
Beim Cipher Block Chaining geht der Ciphertext eines Blocks in die Verschlüsselung des nächsten mit ein. 

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.

Next Assymetrische Verschlüsselung  Back

Quelle: heise.de

Facebooktwittergoogle_plus