Có sai khi liên kết / dev / ngẫu nhiên đến / dev / urandom trên Linux không?


13

Tôi hiện đang thử nghiệm gpg --genkeytrên máy ảo Linux. Thật không may, phần mềm này dường như dựa vào /dev/randomviệc thu thập entropy và lịch sự yêu cầu người dùng nhập màn hình theo cách thủ công sau màn hình nhập mã hóa ngẫu nhiên để cuối cùng có thể tạo ra khóa và tôi không tìm thấy thông số dòng lệnh nào để nói nó sử dụng một tệp khác làm nguồn entropy (anh chàng trong video này gặp phải vấn đề tương tự ...).

Tuy nhiên, người dùng nên tự do lựa chọn sử dụng /dev/urandomthay vì không có gì sai với nó . Nó chủ yếu là một sự hồi tưởng của các thuật toán PRNG cũ, yếu hơn từ quan điểm mật mã học. Ví dụ, trong khi trang của NetBSD cho rằng sự khác biệt có thể vẫn hữu ích ở giai đoạn khởi động rất sớm, nó mô tả sự khác biệt như "văn hóa dân gian""lý thuyết tưởng tượng chỉ bảo vệ chống lại các mô hình mối đe dọa tưởng tượng" . Không phải ai cũng đồng ý với số lượng entropy được yêu cầu bởi lệnh này cũng như thực tế rằng entropy là thứ thực sự được tiêu thụ như đã nêu trong manpage GPG ("XIN, đừng sử dụng lệnh này trừ khi bạn biết bạn đang làm gì, nó có thể loại bỏ entropy quý giá khỏi hệ thống!").

Tôi đã đọc về những người cài đặt rngddaemon và định cấu hình nó để sử dụng /dev/urandomlàm nguồn entropy để cung cấp/dev/random , nhưng tôi thấy thực tế như vậy rất bẩn.

Tôi đã cố gắng giải quyết vấn đề theo cách FreeBSD bằng cách loại bỏ /dev/randomvà liên kết nó với /dev/urandom:

rm /dev/random
ln -s /dev/urandom /dev/random

Tôi thấy đây là một thiết lập cho biết "Tôi tin tưởng /dev/urandomlà nguồn entropy" .

Tôi sợ rằng tôi sẽ gặp một số lỗi của một số loại, nhưng điều này dường như cung cấp kết quả mong đợi vì lệnh bây giờ trở lại thành công ngay lập tức.

Câu hỏi của tôi là: có bất kỳ tác dụng phụ nào được biết đến, thực tế và sai lầm khi liên kết /dev/randomđến /dev/urandomcác hệ thống Linux như được thực hiện theo mặc định trên các hệ thống FreeBSD không? Hoặc người ta có thể dự tính để thiết lập điều này vĩnh viễn (trong một tập lệnh ở cuối quá trình khởi động chẳng hạn) trong trường hợp các vấn đề lặp đi lặp lại do /dev/randomkhóa một số dịch vụ?

Câu trả lời:


2

Xem Huyền thoại về urandom , không có cuộc tấn công nào được biết đến / dev / urandom mà cũng không phải là một cuộc tấn công vào / dev / ngẫu nhiên. Vấn đề chính mà một hệ thống Linux gặp phải là khi nó nhân bản và chạy như một số máy ảo mà không đặt lại nhóm entropy đã lưu sau khi nhân bản. Đó là một trường hợp góc tiếp tuyến với những gì bạn muốn.


0

Một điều khác biệt /dev/randomlà nó dừng đầu ra sau khi sử dụng nhóm entropy. thử đi:

$ cat /dev/random
(a few short lines of gibberish)^C
$ 

/dev/urandomtuy nhiên sẽ sử dụng lại cùng một nhóm để tiếp tục đầu ra. như được hiển thị ở đây:

$ cat /dev/urandom
(tons of gibberish fills the screen)^C
$

(Khi bạn cố gắng sử dụng các thiết bị đặc biệt này, lời nhắc của bạn có thể bị rối. Chỉ cần gõ reset và nhập, thiết bị đầu cuối của bạn sẽ trở lại bình thường)

Sử dụng /dev/urandomkhi bạn chỉ cần điền vào một cái gì đó với một dòng bit "ngẫu nhiên" liên tục. Sử dụng /dev/randomcho các khóa mà bạn cần phải hoàn toàn ngẫu nhiên.


3
Câu hỏi của OP là: có bất kỳ tác dụng phụ đã biết, thực tế và sai nào của việc liên kết / dev / ngẫu nhiên với / dev / urandom trên các hệ thống Linux như được thực hiện theo mặc định trên các hệ thống FreeBSD không?
phản hồi

Thật thú vị, nếu sự khác biệt này được phát âm thì chúng không nên được liên kết. Hầu hết các cuộc thảo luận khác cuối cùng đạt được sự đồng thuận không có sự khác biệt sau khi khởi động nhưng hành vi này có thể cho thấy sự khác biệt lâu dài hơn.
KalleMP

-2

Trong Linux, /dev/randomcung cấp các bit ngẫu nhiên chất lượng cao. Chúng có nguồn gốc từ các nguồn không thể dự đoán và không thể lặp lại, bên ngoài máy. Ngược lại, /dev/urandomsử dụng cùng một dữ liệu ngẫu nhiên như /dev/random(nếu có), nếu không có, nó sử dụng một trình tạo số giả ngẫu nhiên, có tính xác định . Đối với hầu hết các mục đích, nó không đủ dự đoán, nhưng không dành cho các ứng dụng đòi hỏi khắt khe như mật mã, và ít hơn nhiều để tạo các khóa tồn tại lâu như cho GPG.



@Gilles mà phụ thuộc vào mức độ hoang tưởng của bạn. Đối với GPG, mọi người đều bị ảnh hưởng bởi khóa của bạn (gián tiếp).
vonbrand

5
Nếu bạn không tin tưởng /dev/urandom, bạn cũng không có lý do để tin tưởng GPG.
Gilles 'SO- ngừng trở nên xấu xa'

3
@vonbrand: Tùy thuộc vào mức độ hoang tưởng của tôi, nếu tôi phải chọn giữa PRNG được kiểm tra toán học để tạo ngẫu nhiên hoặc người dùng buộc phải nhập toàn bộ màn hình rác "asdfghasdfghasdfgh", tôi sẽ chọn PRNG phần mềm. Tôi hiểu quan điểm của bạn rằng một máy tính không tốt trong việc tạo ra sự ngẫu nhiên, nhưng con người thậm chí còn tệ hơn về nó. Tuy nhiên, để trở lại câu hỏi của tôi, ngoại trừ cuộc tranh luận urandomso với randomtranh luận, bạn có xác nhận rằng việc thay thế /dev/randomtệp bằng một liên kết sẽ không có tác dụng phụ nào khác và có thể thay thế cho rngdthủ thuật mà tôi đã đề cập không?
WhiteWinterWolf

2
Cái này sai. Họ sử dụng SAME RNG, nhưng các khối ngẫu nhiên nếu nó đoán rằng không có đủ entropy.
Duncan X Simpson
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.