Opzioni raccomandate per LUKS (cryptsetup)

25

Sto cercando le opzioni raccomandate per cryptsetup per creare SSD completamente crittografato ( SanDisk SSD U100 128GB ), che achive:

Timing O_DIRECT disk reads: 1476 MB in  3.00 seconds = 491.81 MB/sec
Timing buffered disk reads: 1420 MB in  3.00 seconds = 473.01 MB/sec

Il mio benchmark mi mostra il miglior codice:

# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       103696 iterations per second
PBKDF2-sha256      59904 iterations per second
PBKDF2-sha512      38235 iterations per second
PBKDF2-ripemd160   85111 iterations per second
PBKDF2-whirlpool   47216 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   133.2 MiB/s   432.0 MiB/s
 serpent-cbc   128b    18.1 MiB/s    67.3 MiB/s
 twofish-cbc   128b    39.3 MiB/s    73.0 MiB/s
     aes-cbc   256b    99.6 MiB/s   337.7 MiB/s
 serpent-cbc   256b    18.1 MiB/s    66.9 MiB/s
 twofish-cbc   256b    39.4 MiB/s    72.6 MiB/s
     aes-xts   256b   376.6 MiB/s   375.0 MiB/s
 serpent-xts   256b    69.0 MiB/s    66.5 MiB/s
 twofish-xts   256b    71.1 MiB/s    72.2 MiB/s
     aes-xts   512b   297.0 MiB/s   300.1 MiB/s
 serpent-xts   512b    69.6 MiB/s    66.6 MiB/s
 twofish-xts   512b    71.9 MiB/s    72.7 MiB/s

Ma forse potresti suggerire alcune opzioni, che aumenterebbero le mie prestazioni e la sicurezza. La mia CPU è: Intel(R) Core(TM) i7-2677M CPU @ 1.80GHz e supporta AES-NI ( aes cpu flag).

Grazie

    
posta Artur Szymczak 07.08.2013 - 11:41
fonte

2 risposte

26

Potresti voler utilizzare PBKDF2 con SHA-512. Questo passaggio è per convertire la password in una chiave di crittografia (più o meno direttamente). Questo è intrinsecamente aperto agli attacchi dizionario offline , e si riferisce al hashing della password problematico. Per questo, si desidera massimizzare lo sforzo dell'aggressore scegliendo un algoritmo e un conteggio di iterazione che renderà il compito più difficile per l'attaccante mantenendolo tollerabile per te; "tollerabile" qui dipende dalla tua pazienza, quando digiti la password al momento dell'avvio.

Gli attaccanti vorranno utilizzare alcune GPU e / o FPGA per velocizzare il loro attacco, mentre usi un PC normale. Al giorno d'oggi, il normale PC si trova a proprio agio con le operazioni aritmetiche a 64 bit ed esegue SHA-512 con la stessa velocità di SHA-256; tuttavia, GPU preferisce molto le operazioni a 32 bit e mapparle su FPGA è anche più facile delle operazioni a 64 bit. Pertanto, usando SHA-512 invece di SHA-256, si ottiene meno un vantaggio per l'attaccante. Quindi la mia raccomandazione: su hardware moderno, per l'hashing della password, preferisco SHA-512 su SHA-256.

Ricordati di regolare il "conteggio delle iterazioni" in modo che il tempo impiegato per elaborare la tua password sia alla soglia del bearable: i conteggi di iterazione più alti significano un tempo di elaborazione più lungo, ma proporzionalmente migliori per la sicurezza.

Per la crittografia attuale, vorrai XTS , che è stato progettato per supportare la crittografia del disco in modo efficiente. Questo in effetti mostra nei benchmark; questo è per un SSD e non vuoi che la crittografia sia molto più lenta dell'hardware sottostante. Si noti che XTS divide la chiave in due metà, solo una delle quali viene utilizzata per la crittografia effettiva. In altre parole, " aes-xts " con una chiave a 256 bit utilizza effettivamente 128 bit per la parte AES. E questo è abbastanza buono . Non c'è alcuna necessità razionale di passare a chiavi a 256-bit, ovvero 512 bit nel contesto di " aes-xts ". Le chiavi a 256 bit per AES implicano un sovraccarico della CPU, che i parametri di riferimento osservano correttamente (300 MB / s contro 375 MB / s). Con un SSD sotto il cofano, vuoi veramente un sistema di crittografia veloce, quindi fallo.

    
risposta data 07.08.2013 - 15:34
fonte
7

Qualsiasi combinazione delle suddette modalità operative ti fornirà un'ampia sicurezza contro la maggior parte delle minacce. Detto questo, CBC non è più raccomandato a causa di alcuni attacchi di perdita di informazioni. E SHA1 è ammortizzato a favore della famiglia SHA2 .

Come sempre con la crittografia, attenersi a ciò che è ampiamente utilizzato e provato. Quindi la mia raccomandazione generale sarebbe: PBKDF2-sha256 aes-xts

    
risposta data 07.08.2013 - 12:27
fonte

Leggi altre domande sui tag