Liệt kê các phương thức mã hóa có sẵn cho LUKS


10

Tôi đã tìm kiếm một cách mã hóa hợp lệ và vẫn cập nhật. Sau một số nghiên cứu, tôi đã gặp LUKS và quyết định cho nó một shot. Vì vậy, tôi đã tìm kiếm một số ví dụ về cách mã hóa ổ cứng đúng cách với nó, như thế này:

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

Phần - mật mã--hash của nó là thú vị nhất đối với tôi, vì vậy tôi đã cố gắng thông báo cho bản thân về các mật mã và hàm băm khác nhau có thể sử dụng được cho LUKS. Tôi không thể tìm thấy bất kỳ thông tin hữu ích nào ngoài việc mở tệp hiển thị các biểu mẫu mã hóa có sẵn ở định dạng thân thiện với máy cho Linux hiện đang sử dụng. Nhưng như tôi đã nói, ngay cả tập tin này cũng có thể thiếu toàn bộ các cách mã hóa bên cạnh việc rất khó đọc đối với người không xử lý nó hàng ngày.

Câu hỏi của tôi: có một danh sách đầy đủ các mật mã / băm cho mã hóa LUKS không?

Một thứ chỉ đơn giản cho tôi thấy những gì tôi có thể chọn ... và có thể đưa ra một mô tả ngắn về chính xác sự khác biệt giữa những cách khác nhau đó là gì.


1
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì đó là về việc sử dụng và định cấu hình LUKS và nhân Linux, chứ không phải về mật mã mà các công cụ này sử dụng. Nó sẽ là chủ đề trên Unix & Linux . Tôi đã gắn cờ câu hỏi này để di chuyển, vui lòng không đăng lại trừ khi nó bị đóng mà không di chuyển.
Gilles 'SO- ngừng trở thành ác quỷ'

Tôi đặc biệt chọn khu vực Mật mã học, bởi vì câu hỏi của tôi được hướng tới một mật mã và băm. Tôi đã thực hiện "chuyến tham quan" cho khu vực này và nó thực sự có nó trong "Câu hỏi bạn nên hỏi:". Nhìn lên, nếu bạn muốn.
Akito

Đó là lý do tại sao tôi không đặt câu hỏi trong Unix & Linux vì nó sẽ lạc đề ở đó ....
Akito

đưa ra một mô tả ngắn về chính xác sự khác biệt giữa những cách khác nhau này là gì duy nhất trong câu hỏi của bạn là về chủ đề. Sự khác biệt chính giữa AES và Twofish là gì? Chà, AES sử dụng mạng hoán vị thay thế trong khi Twofish sử dụng mạng Feistel. Dựa trên thông tin này, bạn nên chọn AES rõ ràng vì về nguyên tắc không có gì sai với mạng Feistel.
Trầm

Câu trả lời:


7

Điều đó về cơ bản tùy thuộc vào hạt nhân của bạn, vì vậy " See / Proc / crypto " được coi là "câu trả lời". Trang người đàn ông cryptsetup nói điều này:

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.

Tuy nhiên, tôi /proc/cryptokhông đề cập đến bất kỳ con rắn nào, hoặc xts (aes), vì vậy thay vào đó tôi khuyên bạn nên xem những cryptsetup benchmarkbáo cáo nào (và nó cũng sẽ hiển thị tốc độ (ram)). Ví dụ:

$ 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

Các giá trị băm là một vài dòng đầu tiên (sha1, sha256, sha512, ripemd160, xoáy nước). Mật mã nằm dưới tiêu đề Thuật toán.

Nhìn vào những gì mặc định là một ý tưởng tốt về những gì được coi là "khá tốt":

$ 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

Và sử dụng kích thước khóa cao hơn (với --key-size) chỉ nên mạnh hơn, nếu chậm hơn một chút.

   --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
Đó chính xác là những gì tôi đã phàn nàn về ... / Proc / crypto rất khó đọc và do đó vô dụng. Một số mật mã thậm chí là hai lần trong danh sách và tôi không biết tại sao.
Akito

À, tôi không chắc, không có trong câu hỏi, nhưng đó chắc chắn là một mối quan tâm, ngay cả một tìm kiếm trên web về / Proc / crypto cũng không tiết lộ bất kỳ hướng dẫn rõ ràng nào. Tôi nhận thấy một số khác biệt và tôi nghĩ cryptsetup chỉ sử dụng mật mã khối, để mã hóa các khối đĩa, do đó, các loại 'type: blkcodes' có vẻ hợp lý. Nhưng tôi cũng nhận thấy tôi không đề cập đến bất kỳ con rắn nào, hay xts-aes ... nhưng tôi có một ý tưởng khác có thể tốt hơn, tôi sẽ chỉnh sửa nó thành câu trả lời
Xen2050

2

liên quan đến công việc của người dùng notdavidcronenberg: Câu trả lời duy nhất tôi tìm thấy là trong tài liệu LUKS On-Disk Format (PDF).

Tên mật mã hợp lệ

Chế độ mật mã hợp lệ

  • ecb Đầu ra mật mã được sử dụng trực tiếp.
  • cbc-plainCác mật mã được vận hành trong chế độ CBC. Chuỗi CBC được cắt mọi khu vực và được định nghĩa lại với số khu vực là vectơ ban đầu (được chuyển đổi thành 32 bit và thành endian nhỏ). Chế độ này được chỉ định trong [Fru05b], Chương 4.
  • cbc-essiv:{hash}Mật mã được vận hành ở chế độ ESSIV bằng cách sử dụng hàm băm để tạo khóa IV cho khóa gốc. Chẳng hạn, khi sử dụng sha256 làm hàm băm, thông số chế độ mật mã là Cbcessiv: sha256. ESSIV được chỉ định trong [Fru05b], Chương 4.
  • xts-plain64 plain64 là phiên bản 64 bit của vector ban đầu đơn giản

Thông số kỹ thuật băm hợp lệ


danh sách chưa hoàn thành superuser.com/a/1450671/446140
intika
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.