Laut RFC 4880 ,
String-to-Key (S2K) -Spezifizierer werden zum Konvertieren von Passphrasen in symmetrische Verschlüsselungs- / Entschlüsselungsschlüssel verwendet. Sie werden derzeit an zwei Stellen verwendet: zum Verschlüsseln des geheimen Teils privater Schlüssel im privaten Schlüsselbund und zum Konvertieren von Passwörtern in Verschlüsselungsschlüssel für symmetrisch verschlüsselte Nachrichten.
Letzteres funktioniert:
Ersteres für den geheimen Teil privater Schlüssel bedeutet nicht:
gpg2 --s2k-cipher-algo AES256 --s2k-digest-algo SHA512 --s2k-mode 3 --s2k-count 65000000 --export-secret-keys | gpg2 --list-packets
Welches zeigt ein Ergebnis, das enthält:
iter+salt S2K, **algo: 7**, **SHA1 protection**, **hash: 2**,
**protect count: 13107200**.
Es ist also eine diskrete, de facto Herabstufung auf AES128 und GPU-freundliches SHA-1 von dem, was erwartet wurde. Dieses Problem wurde hier angesprochen (vor ungefähr 42 Monaten) und nach zwei Jahren Untätigkeit als Frage weniger dringend.
Gpg-Agent hat einen Standard, der die Zeit begrenzt, die das KDF dauern kann.
Was kann man tun , um die s2k-Spezifizierer zum Laufen zu bringen?
(Oder zumindest den gleichen Effekt erzielen, indem die Anzahl der Iterationen signifikant erhöht wird, was das Knacken von Passwörtern für den Angreifer schwierig macht. )