Mencoba memahami enkripsi LUKS

8

Saya memutuskan untuk mengenkripsi partisi root saya dengan LUKS + LVM.

Pengaturan ThinkPad saya:

  • Samsung 830 128GB SSD
  • HDD 750GB
  • Core 2 Duo 2,5 GHz P9500
  • RAM 8GB

Tetapi semakin saya membaca, semakin sedikit saya mengerti tentang dua mata pelajaran berikut:

1a. Cipher

Saya akan menggunakan SHA1 alih-alih 2/512 (karena beberapa menyarankan), karena kutipan dari cryptsetupFAQ:

5.20 LUKS rusak! Ini menggunakan SHA-1!

Tidak, bukan itu. SHA-1 (secara akademis) rusak karena menemukan tabrakan, tetapi tidak untuk menggunakannya dalam fungsi derivasi kunci. Dan kerentanan tabrakan itu hanya untuk penggunaan yang tidak diulang. Dan Anda membutuhkan nilai hash dalam kata demi kata.

Ini pada dasarnya berarti bahwa jika Anda sudah memiliki slot-key, dan Anda telah menetapkan jumlah iterasi PBKDF2 menjadi 1 (biasanya> 10'000), Anda bisa (mungkin) mendapatkan frasa sandi berbeda yang memberi Anda slot yang sama - kunci. Tetapi jika Anda memiliki kunci-slot, Anda sudah dapat membuka kunci-slot dan mendapatkan kunci utama, menghancurkan semuanya. Jadi pada dasarnya, kerentanan SHA-1 ini memungkinkan Anda untuk membuka wadah LUKS dengan susah payah saat Anda sudah membukanya.

Masalah sebenarnya di sini adalah orang-orang yang tidak mengerti crypto dan mengklaim sesuatu rusak hanya karena beberapa mekanisme digunakan yang telah rusak untuk penggunaan berbeda yang spesifik. Cara mekanisme digunakan sangat penting. Hash yang rusak untuk satu penggunaan bisa sepenuhnya aman untuk penggunaan lain dan ini dia.

Yang saya baca sebagai "tidak ada gunanya menggunakan selain SHA-1". Tetapi kemudian beberapa orang mengatakan kepada saya, bahwa itu tidak persis seperti itu. Jadi saya tidak lagi tahu harus berpikir apa.

1b.

Juga, saya tidak dapat menemukan informasi apakah sandi memiliki pengaruh pada disk baca / tulis / cari kinerja setelah disk dibuka dan sistem masuk.

Jadi apakah kompleksitas cipher hanya memengaruhi "kinerja" pada tahap memasukkan kata sandi, atau juga selama penggunaan normal sistem?

2. Algoritma

Saya telah membaca ini sejak beberapa hari, tetapi semakin saya membaca, semakin saya bingung. Semua yang saya baca mengatakan bahwa AES adalah yang tercepat, dan Serpent adalah yang paling lambat. Tapi tidak menurut laptop saya:

$ cryptsetup benchmark
Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       344926 iterations per second
PBKDF2-sha256     198593 iterations per second
PBKDF2-sha512     129007 iterations per second
PBKDF2-ripemd160  271933 iterations per second
PBKDF2-whirlpool  134295 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   149.8 MiB/s   147.9 MiB/s
 serpent-cbc   128b    51.0 MiB/s   196.4 MiB/s
 twofish-cbc   128b   127.6 MiB/s   152.5 MiB/s
     aes-cbc   256b   114.3 MiB/s   113.8 MiB/s
 serpent-cbc   256b    51.2 MiB/s   198.9 MiB/s
 twofish-cbc   256b   129.8 MiB/s   167.5 MiB/s
     aes-xts   256b   153.3 MiB/s   150.6 MiB/s
 serpent-xts   256b   176.4 MiB/s   184.1 MiB/s
 twofish-xts   256b   160.8 MiB/s   159.8 MiB/s
     aes-xts   512b   115.4 MiB/s   112.1 MiB/s
 serpent-xts   512b   178.6 MiB/s   184.2 MiB/s
 twofish-xts   512b   160.7 MiB/s   158.9 MiB/s

Jadi tampaknya Serpent bukan hanya yang tercepat, tetapi yang paling penting adalah yang tercepat dengan kunci yang paling rumit.

Bukankah seharusnya sebaliknya? Apakah saya salah membaca, atau apa?

Lockheed
sumber
Jadi mengapa tidak menggunakan SHA512 untuk keamanan lebih jika hash tetap menjadi 1 detik waktu nyata.
user284148

Jawaban:

5

1a - benar-benar tidak terlalu penting. yang pernah hash Anda gunakan untuk fungsi derivasi kunci, LUKS memastikan itu akan mahal secara komputasi. Ini hanya akan dililitkan hingga 1 detik waktu nyata berlalu.

1b - metode derivasi kunci tidak mempengaruhi kinerja. sandi itu sendiri. cryptsetup benchmarkmenunjukkan Anda sama banyaknya.

2 - AES adalah yang tercepat jika CPU Anda cukup modern untuk mendukung instruksi AES-NI (akselerasi perangkat keras untuk AES). Jika Anda menggunakan ular sekarang, Anda mungkin tidak dapat menggunakan AES-NI laptop berikutnya.

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1      1165084 iterations per second
PBKDF2-sha256     781353 iterations per second
PBKDF2-sha512     588426 iterations per second
PBKDF2-ripemd160  726160 iterations per second
PBKDF2-whirlpool  261882 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   692.9 MiB/s  3091.3 MiB/s
 serpent-cbc   128b    94.6 MiB/s   308.6 MiB/s
 twofish-cbc   128b   195.2 MiB/s   378.7 MiB/s
     aes-cbc   256b   519.5 MiB/s  2374.0 MiB/s
 serpent-cbc   256b    96.5 MiB/s   311.3 MiB/s
 twofish-cbc   256b   197.9 MiB/s   378.0 MiB/s
     aes-xts   256b  2630.6 MiB/s  2714.8 MiB/s
 serpent-xts   256b   310.4 MiB/s   303.8 MiB/s
 twofish-xts   256b   367.4 MiB/s   376.6 MiB/s
     aes-xts   512b  2048.6 MiB/s  2076.1 MiB/s
 serpent-xts   512b   317.0 MiB/s   304.2 MiB/s
 twofish-xts   512b   368.7 MiB/s   377.0 MiB/s

Ingatlah bahwa tolok ukur ini tidak menggunakan penyimpanan sehingga Anda harus memverifikasi hasil ini dengan penyimpanan apa pun dan sistem file yang akan Anda gunakan.

frostschutz
sumber
1
1. Terima kasih telah menjelaskan. Jadi saya bisa melanjutkan dan menggunakan SHA512 tanpa efek negatif pada kinerja disk. 2. Saya merasa aneh bahwa menurut situs web Intel ( ark.intel.com/search/advanced/?s=t&AESTech=true ) Pentium lama memiliki pengoptimalan ini, tetapi C2D tidak. "Jika kamu menggunakan ular sekarang, kamu mungkin tidak dapat menggunakan AES-NI laptop berikutnya." Dengan itu saya mengerti maksud Anda, saya harus menyalin ulang disk ke AES. Baik? Benchmark tersebut menunjukkan kinerja CPU. SSD saya menggunakan SataII 3.0 Gbps (200-280MB / s), jadi saya kira saya tidak akan melakukan yang lebih baik daripada ular-xts 512b
lockheed