Cố gắng hiểu mã hóa LUKS


8

Tôi quyết định mã hóa phân vùng gốc của mình bằng LUKS + LVM.

Thiết lập ThinkPad của tôi:

  • Ổ SSD Samsung 830 128GB
  • Ổ cứng 750GB
  • Lõi 2 Duo 2,5 GHz P9500
  • RAM 8GB

Nhưng càng đọc, tôi càng ít hiểu về hai chủ đề sau:

1a. Mật mã

Tôi sẽ sử dụng SHA1 thay vì 2/512 (như một số gợi ý), vì trích dẫn đó từ cryptsetupFAQ:

5.20 LUKS bị hỏng! Nó sử dụng SHA-1!

Không có nó không phải là. SHA-1 bị hỏng (về mặt học thuật) khi tìm va chạm, nhưng không sử dụng nó trong chức năng phái sinh chính. Và lỗ hổng va chạm đó chỉ dành cho sử dụng không lặp. Và bạn cần giá trị băm trong nguyên văn.

Về cơ bản, điều này có nghĩa là nếu bạn đã có khóa khe cắm và bạn đã đặt số lần lặp PBKDF2 thành 1 (bình thường là> 10.000), bạn có thể (có thể) rút ra một cụm mật khẩu khác cung cấp cho bạn cùng một vị trí- Chìa khóa. Nhưng nếu bạn có khóa khe cắm, bạn đã có thể mở khóa khe khóa và lấy khóa chính, phá vỡ mọi thứ. Vì vậy, về cơ bản, lỗ hổng SHA-1 này cho phép bạn mở một thùng chứa LUKS với nỗ lực cao khi bạn đã mở nó.

Vấn đề thực sự ở đây là những người không hiểu về tiền điện tử và cho rằng mọi thứ bị phá vỡ chỉ vì một số cơ chế được sử dụng đã bị phá vỡ cho một mục đích sử dụng khác nhau. Cách cơ chế được sử dụng rất quan trọng. Một hàm băm bị hỏng cho một lần sử dụng có thể hoàn toàn an toàn cho các mục đích sử dụng khác và đây là.

Mà tôi đọc là "không có điểm nào sử dụng bất cứ thứ gì ngoài SHA-1". Nhưng sau đó một số người nói với tôi rằng nó không chính xác như thế. Vì vậy, tôi không còn biết phải nghĩ gì.

1b.

Ngoài ra, tôi không thể tìm thấy bất kỳ thông tin nào cho dù mật mã có ảnh hưởng đến hiệu suất đọc / ghi / tìm kiếm đĩa khi đĩa được mở khóa và hệ thống đăng nhập.

Vì vậy, sự phức tạp của mật mã chỉ ảnh hưởng đến "hiệu suất" trên giai đoạn nhập mật khẩu, hoặc trong quá trình sử dụng bình thường của hệ thống?

2. Thuật toán

Tôi đã đọc về điều này từ vài ngày nay, nhưng càng đọc, tôi càng bối rối. Tất cả những gì tôi đọc đều nói rằng AES là nhanh nhất và Serpent là chậm nhất. Nhưng không theo máy tính xách tay của tôi:

$ 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

Vì vậy, có vẻ như Serpent không chỉ nhanh nhất, mà trên hết, nó là nhanh nhất với khóa phức tạp nhất.

Không phải là cách khác? Tôi đang đọc nó sai, hay cái gì đó?


Vậy tại sao không sử dụng SHA512 để bảo mật hơn nếu nó băm đến 1 giây theo thời gian thực.
dùng284148

Câu trả lời:


5

1a - nó thực sự không quan trọng lắm. Bạn đã sử dụng hàm băm nào cho hàm phái sinh chính, LUKS đảm bảo rằng nó sẽ đắt tiền về mặt tính toán. Nó chỉ đơn giản là lặp nó cho đến khi thời gian thực 1 giây đã trôi qua.

1b - phương pháp phái sinh chính không ảnh hưởng đến hiệu suất. bản thân mật mã nào. cryptsetup benchmarkcho bạn thấy càng nhiều

2 - AES là nhanh nhất nếu CPU của bạn đủ hiện đại để hỗ trợ các hướng dẫn AES-NI (tăng tốc phần cứng cho AES). Nếu bạn đi với con rắn bây giờ, bạn có thể không sử dụng AES-NI của máy tính xách tay tiếp theo của bạn.

# 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

Hãy nhớ rằng điểm chuẩn này không sử dụng lưu trữ, do đó bạn nên xác minh các kết quả này với bất kỳ lưu trữ và hệ thống tệp nào bạn thực sự sẽ sử dụng.


1
1. Cảm ơn đã làm rõ. Vì vậy, tôi có thể tiếp tục và sử dụng SHA512 mà không có bất kỳ ảnh hưởng tiêu cực nào đến hiệu suất đĩa. 2. Tôi thấy lạ là theo trang web của Intel ( ark.intel.com/search/advified/?s=t&AESTech=true ) Pentium cũ đã tối ưu hóa điều này, nhưng C2D thì không. "Nếu bạn đi với con rắn bây giờ, bạn có thể không thể sử dụng AES-NI của máy tính xách tay tiếp theo của bạn." Bằng cách đó, tôi hiểu bạn có nghĩa là tôi sẽ phải mã hóa lại đĩa vào AES. Đúng? Điểm chuẩn cho tôi biết về hiệu suất CPU. SSD của tôi có tốc độ SataII 3.0 Gbps (200-280 MB / giây), vì vậy tôi đoán tôi sẽ không làm gì tốt hơn serpent-xts 512b
lockheed
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.