mod3 hat geschrieben:Denn ein zu langes wird ja schlicht von cryptsetup gekürzt?
Nein.
Direkt Passwörter als Schlüssel zu verwenden wäre sowieso ein starker Angriffspunkt den man auf keinen Fall machen sollte.
Für solche Aktionen gibt es hash-Verfahren. Leider gibt mal wieder nur die englische eine vernünftige Definition ab:
Wikipedia hat geschrieben:A hash function is any function that can be used to map data of arbitrary size to data of fixed size.
Wichtig ist, ein gut hashfunktion macht aus einem beliebigen input (passwort) einen Output (key) der feste Länge hat. Dabei sollen gleiche passwörter immer zu gleichen Keys führen und unterschiedliche möglichst
gleichverteilt Outputs führen. (Genaueres siehe Wikipediaartikel.)
Sprich auch von einem 100-stelligen Passwort wird jede stelle genutzt nur der key wird nicht länger.
Sobald es schwieriger wird das passwort zu raten als den key kann ein Angreifer auch schlicht den Key raten das passwort ist für ihn dann uninteressant.
(Auch wenn er das Passwort nicht so einfach rausbekommt. Mit dem Key kann er entschlüsseln.)
Es wird also irgend wann sinnlos das Passwort zu knacken.
Welche Hashfunktion genutzt wird, kannst du beim formatieren aussuchen. (Option -h)
Damit das auprobieren erschwert wird macht LUKS das auch gleich mehrfach hintereinander.
Dein Key berechnest du also so (im Fall von sha1):
Code: Alles auswählen
echo -n passowrt | sha1sum | sha1sum | sha1sum | sha1sum … | sha1sum
cryptsetup create dagegen nur ein mal:
Außerdem nutzt LUKS den Key noch nicht direkt sondern verschlüsselt damit lediglich den zufälligen MasterKey.
breakthewall hat geschrieben:Generell wird der Masterkey für die Verschlüsselung aus hexadezimalen Zeichen zufallsgeneriert,
Nein. Da ist nichts Hex. Das sind einfach zufällige Bytes. Die Umrechnung nach Hex wird lediglich häufig genutzt um das am Bildschirm anzeigen zu können. Man kann aber auch base64 nehmen.
Code: Alles auswählen
echo passwd | openssl dgst -ripemd160 -binary | base64
oder
Bleibt der gleiche Key. Nur eine andere Darstellung.
breakthewall hat geschrieben:Geht man nun von einem Passwort aus, dass lediglich aus Kleinbuchstaben besteht mit 20 Stellen an Länge, dann ergibt sich eine Komplexität von 26^20, bzw. 19928148895209409152340197376 mögliche Kombinationen.
Diese Rechnungen geht wie alle vorherigen von Gleichverteilung und Unabhängigkeit aus. Beides ist in typischen Passwörtern nicht der Fall.
Typischerweise ist e seltener als q usw. (keine gleichverteilung) Im schnitt braucht mann dann nur noch etwa ⅘ der Versuche pro Zeichen (Bei groß und klein Schreibung die Hälfte).
Hinter einem q meistens ein u folgt Großbuchstaben am Anfang… (keine unabhängigkeit) braucht man ca. ¼ der Versuche bzw. 1/7 gegen ASCII oder Alle tippbaren Zeichen.
Das Potenziert sich dann mit der Anzahl der Zeichen:
Statt 26^20 braucht man bei üblichen passwörtern nur ~2^20 (Wörter, Sätze) bis 16^20 (aussprechbare zeichenkette) versuche. Was dann auf deinem Rechner ein Bruchteil einer Sekunde bzw. 13Tage
zylinderkopfschraube hat 20 Zeichen ist aber eben KEIN gutes Passwort.