Wie bestimme ich, welche Chiffren und Chiffriermodi ich in dm-crypt / LUKS verwenden kann?

7875

Ich verwende ein Ubuntu-basiertes System und habe Schwierigkeiten zu bestimmen, welche Chiffren und Chiffriermodi mir zur Verfügung stehen.

Die Manpage zu cryptsetup sagt:

"Eine Liste der verfügbaren Optionen finden Sie in / proc / crypto. Möglicherweise müssen Sie zusätzliche Kernel-Kryptomodule laden, um weitere Optionen zu erhalten."

Mein / proc / crypto hat sehr wenig drin. Wie erfahre ich, welche zusätzlichen Kernel-Kryptomodule zum Laden zur Verfügung stehen?

11
`/ lib / modules / * / kernel / crypto /` ist ein wahrscheinlicher Ort zum Suchen, aber Module können sich irgendwo im Dateisystem befinden. Mark vor 9 Jahren 0
Ich denke, das ist eine gute Frage. Ich habe selbst nach diesen Informationen gesucht. `/ proc / crypto` ist großartig, listet aber nicht die gültigen Zeichenketten auf; Dinge wie "aes-xts-plain64" oder "aes-cbc-essiv: sha256". Eine gute Antwort würde diese Informationen liefern und zeigen, welche Module aus `/ lib / modules ...` geladen werden müssen, um sie verwenden zu können. starfry vor 9 Jahren 2
@starfry Das interessiert mich auch. Es gibt keine Namenskorrespondenz zwischen dem, was der Chiffrierstring sein soll, und dem, was sich in meinem `/ proc / crypto` befindet. Es macht keinen Sinn. CMCDragonkai vor 8 Jahren 0

1 Antwort auf die Frage

8
notdavidcronenberg

Es gibt viele, viele Dokumente und Manpages, die Sie durchlesen können, aber ein Dokument, das Sie besonders interessieren könnte, ist die LUKS-Spezifikation für On-Disk-Formate (PDF).

Anhang B (der sich natürlich dem Ende nähert) sagt:

Cipher- und Hash-Spezifikationsregister

Auch wenn der Chiffre-Name und Chiffre-Modus Strings nicht durch einen LUKS Betrieb ausgelegt ist, müssen sie die gleiche Bedeutung für alle Implementierungen müssen erreichen Kompatibilität zwischen verschiedenen LUKS-basierten Implementierungen. LUKS muss sicherstellen, dass das darunterliegende Chiffriersystem den Chiffrennamen und die Chiffre-Modus-Zeichenfolgen verwenden kann. Da diese Zeichenfolgen möglicherweise nicht immer systemeigen sind, muss das LUKS diese möglicherweise in einer geeigneten Weise abbilden.

Gültige Verschlüsselungsnamen sind in Tabelle 1 aufgeführt.

Gültige Verschlüsselungsmodi sind in Tabelle 2 aufgeführt. Laut Vertrag müssen Verschlüsselungsmodi, die IVs und Tweaks verwenden, mit dem All-Zero-IV / Tweak beginnen. Dies gilt für alle Aufrufe an die Verschlüsselungs- / Entschlüsselungsprimitive, insbesondere beim Umgang mit Schlüsselmaterial. Ferner schneiden diese IVs / Tweaks-Chiffre-Modi den Chiffrenstrom normalerweise in unabhängige Blöcke, indem Tweaks / IVs an den Sektorengrenzen neu gesetzt werden. Die IV / Tweak-Anforderung für alle Nullen für den ersten verschlüsselten / entschlüsselten Block entspricht der Anforderung, dass der erste Block auf Sektor 0 festgelegt ist.

Tabelle 3 listet gültige Hash-Spezifikationen für das Hash-Spezifikationsfeld auf. Eine kompatible Implementierung muss nicht alle Verschlüsselungs-, Verschlüsselungsmodus- oder Hash-Spezifikationen unterstützen.

Tabelle 1: Gültige Verschlüsselungsnamen

  • aes - Advanced Encryption Standard - FIPS PUB 197
  • twofish - Twofish: Eine 128-Bit-Blockchiffre - http://www.schneier.com/paper-twofish-paper.html (siehe unten)
  • Schlange - http://www.cl.cam.ac.uk/~rja14/serpent.html
  • cast5 - RFC 2144
  • cast6 - RFC 2612

Tabelle 2: Gültige Verschlüsselungsmodi

  • ecb - Die Verschlüsselungsausgabe wird direkt verwendet
  • cbc-plain - Die Chiffre wird im CBC-Modus betrieben. Die CBC-Verkettung wird in jedem Sektor geschnitten und mit der Sektornummer als Anfangsvektor neu initialisiert (in 32-Bit und in Little-Endian konvertiert). Dieser Modus ist in [Fru05b], Kapitel 4 angegeben.
  • cbc-essiv: hash - Die Chiffre wird im ESSIV-Modus mit Hash zum Generieren des IV-Schlüssels für den Originalschlüssel betrieben. Wenn Sie beispielsweise sha256 als Hash verwenden, lautet der Chiffre-Modus "cbcessiv: sha256". ESSIV ist in [Fru05b], Kapitel 4 angegeben.
  • xts-plain64 - http://grouper.ieee.org/groups/1619/email/pdf00086.pdf, plain64 ist eine 64-Bit-Version des einfachen Anfangsvektors

Tabelle 3: Gültige Hash-Spezifikationen

  • sha1 - RFC 3174 - US-Secure-Hash-Algorithmus 1 (SHA1)
  • sha256 - SHA-Variante gemäß FIPS 180-2
  • sha512 - SHA-Variante gemäß FIPS 180-2
  • ripemd160 - http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html (siehe unten)

Anmerkung des Herausgebers: Das obige wurde aus der Spezifikation übernommen. Nach dem Schreiben haben sich die URLs dieser Dokumente geändert: