LUKS için mevcut şifreleme yöntemlerini listeleyin


10

Sabit diskleri şifrelemenin geçerli ve güncel bir yolunu arıyordum. Biraz araştırma yaptıktan sonra LUKS ile karşılaştım ve denemeye karar verdim. Bu yüzden bir HDD'yi onunla düzgün bir şekilde nasıl şifreleyeceğine dair bazı örneklere baktım, şöyle:

cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3

--Cipher ve --hash ben LÜKS için özel olarak kullanılabilen farklı şifrelere ve hash değerleri ile ilgili olarak kendimi uyarmaya çalıştık yüzden bunun bir parçası, benim için en ilginç oldu. Mevcut şifreleme formlarını, şu anda kullanılan Linux için makine dostu bir formatta gösteren bir dosyayı açmanın yanı sıra kullanışlı bir bilgi bulamadım. Ama söylendiğim gibi, bu dosya bile muhtemelen tüm şifreleme yollarının tamamını kaçırıyor, bunun yanında günlük olarak ilgilenmeyen biri için okumak çok zor.

Benim sorum: LUKS şifreleme için şifrelerin / karmaların tam listesi var mı?

Bana sadece neyi seçebileceğimi gösterir ... ve belki de bu farklı yollar arasındaki farkların tam olarak ne olduğu hakkında kısa bir açıklama yapar.


1
Bu soruyu konu dışı olarak kapatmak için oy kullanıyorum çünkü bu araçların kullandığı şifreleme hakkında değil, LUKS ve Linux çekirdeğini kullanmak ve yapılandırmakla ilgili. Unix ve Linux'ta konu üzerinde olacaktı . Bu soruyu göç için işaretledim, lütfen göç etmeden kapatılmadığı sürece yeniden yayınlamayın.
Gilles 'SO

Özellikle Kriptografi alanını seçtim, çünkü sorum şu şifreli şifreleri ve karmaları ele alıyor. Bu alan için "tur" aldı ve tam anlamıyla "Sormanız gereken sorular:" yuvasına sahiptir. İstersen bak.
Akito

Bu yüzden soruyu Unix & Linux'a sormadım çünkü konu dışı olacak ....
Akito

bu farklı yollar arasındaki farkların tam olarak ne olduğu hakkında kısa bir açıklama verir. Bu, sorunuzun konuyla ilgili tek bölümüdür. AES ve Twofish arasındaki temel fark nedir? AES bir ikame permütasyon ağı kullanırken Twofish bir Feistel ağı kullanır. Bu bilgilere dayanarak, prensip olarak bir Feistel ağında yanlış bir şey olmadığı için AES'yi açıkça seçmelisiniz.
DepressedDaniel

Yanıtlar:


7

Bu temel olarak çekirdeğinize bağlıdır, bu nedenle " See / proc / kripto " nun "yanıt" olması gerekiyordu. Cryptsetup man sayfası şunu söylüyor:

NOTES ON SUPPORTED CIPHERS, MODES, HASHES AND KEY SIZES

   The available combinations of ciphers, modes, hashes and key  sizes  depend
   on  kernel  support.  See /proc/crypto for a list of available options. You
   might need to load additional kernel crypto modules in order  to  get  more
   options.

   For  the  --hash option, if the crypto backend is libgcrypt, then all algo‐
   rithms supported by the gcrypt library are  available.   For  other  crypto
   backends some algorithms may be missing.

Ancak, benim /proc/cryptoherhangi bir yılan veya xts (aes) bahsetmiyor, bu yüzden bunun yerine hangi cryptsetup benchmarkraporları (ve ram hızlarını göstereceğini) görmenizi tavsiye ederim . Örneğin:

$ cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       292752 iterations per second
PBKDF2-sha256     221362 iterations per second
PBKDF2-sha512     142010 iterations per second
PBKDF2-ripemd160  277124 iterations per second
PBKDF2-whirlpool  155727 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   164.7 MiB/s   164.5 MiB/s
 serpent-cbc   128b   119.5 MiB/s   205.0 MiB/s
 twofish-cbc   128b   163.5 MiB/s   208.6 MiB/s
     aes-cbc   256b   148.4 MiB/s   147.9 MiB/s
 serpent-cbc   256b   128.1 MiB/s   205.3 MiB/s
 twofish-cbc   256b   202.3 MiB/s   213.1 MiB/s
     aes-xts   256b   165.4 MiB/s   145.3 MiB/s
 serpent-xts   256b   150.0 MiB/s   194.5 MiB/s
 twofish-xts   256b   206.4 MiB/s   206.9 MiB/s
     aes-xts   512b   149.4 MiB/s   147.5 MiB/s
 serpent-xts   512b   181.7 MiB/s   195.0 MiB/s
 twofish-xts   512b   207.1 MiB/s   208.6 MiB/s

Hashler ilk birkaç satırdır (sha1, sha256, sha512, ripemd160, girdap). Şifreler Algoritma başlığı altındadır.

Varsayılanların ne olduğuna bakmak, neyin "oldukça iyi" olduğu hakkında iyi bir fikir verir:

$ cryptsetup --help|tail -n 8
Default compiled-in key and passphrase parameters:
    Maximum keyfile size: 8192kB, Maximum interactive passphrase length 512 (characters)
Default PBKDF2 iteration time for LUKS: 1000 (ms)

Default compiled-in device cipher parameters:
    loop-AES: aes, Key 256 bits
    plain: aes-cbc-essiv:sha256, Key: 256 bits, Password hashing: ripemd160
    LUKS1: aes-xts-plain64, Key: 256 bits, LUKS header hashing: sha1, RNG: /dev/urandom

Ve daha yüksek bir anahtar boyutu (ile --key-size) kullanmak sadece biraz daha yavaşsa daha güçlü olmalıdır.

   --key-size, -s <bits>
          Sets  key  size in bits. The argument has to be a multiple of 8.
          The possible key-sizes are limited by the cipher and mode used.

          See /proc/crypto for more information.  Note  that  key-size  in
          /proc/crypto is stated in bytes.

2
Bu tam olarak şikayet ettiğim şey ... / proc / kripto son derece okunaksız ve bu nedenle işe yaramaz. Bazı şifreler listede iki kez bile var ve nedenini bilmiyorum.
Akito

Ah, emin değildim, söz konusu değildi, ama bu kesinlikle bir endişe, / proc / kripto ile ilgili bir web araması bile belirgin bir kılavuz göstermiyor. Bazı farkları fark ediyorum ve cryptsetup disk bloklarını şifrelemek için sadece blok şifrelerini kullanıyor, bu yüzden 'type: blkcipher' olanlar mantıklı görünüyor. Ama benimkinin herhangi bir yılan veya xts-aes'den bahsetmediğini de fark ediyorum ... ama daha iyi olabilecek başka bir fikrim var, cevabı düzenleyeceğim
Xen2050

2

notdavidcronenberg kullanıcısının çalışmasına atfen: Bulduğum tek cevap LUKS On-Disk Format Specification (PDF) belgesinde .

Geçerli şifre adları

Geçerli şifre modları

  • ecb Şifre çıkışı doğrudan kullanılır.
  • cbc-plainŞifre CBC modunda çalıştırılır. CBC zinciri her sektörü keser ve ilk vektör olarak (32 bit ve küçük endian'a dönüştürülür) sektör numarasıyla yeniden başlatılır. Bu mod [Fru05b], Bölüm 4'te belirtilmiştir.
  • cbc-essiv:{hash}Şifre, orijinal anahtarın IV anahtarını oluşturmak için karma kullanılarak ESSIV modunda çalıştırılır. Örneğin, sha256'yı karma olarak kullanırken, şifre modu özelliği “cbcessiv: sha256” dır. ESSIV, [Fru05b], Bölüm 4'te belirtilmiştir.
  • xts-plain64 plain64, düz başlangıç ​​vektörünün 64 bit sürümüdür

Geçerli karma özellikler


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.