Những gì bạn đang nói là tại chỗ, có lý thuyết nó có thể nạp entropy vào /dev/random
, nhưng bạn cần phải kiểm soát rất nhiều nguồn "nhiễu" hạt nhân cho nó là đáng kể. Bạn có thể xem nguồn cho random.c, để xem nơi /dev/random
chọn tiếng ồn từ. Về cơ bản, nếu bạn kiểm soát một số lượng đáng kể các nguồn tiếng ồn, thì bạn có thể đoán những gì mà những người khác đang đóng góp vào nhóm entropy.
Vì /dev/urandom
là Hash chain được gieo từ /dev/random
, sau đó bạn thực sự có thể dự đoán các số tiếp theo, nếu bạn biết hạt giống. Nếu bạn có đủ quyền kiểm soát hồ bơi entropy, sau đó từ đầu ra của /dev/urandom
bạn có thể đoán hạt giống này, cho phép bạn dự đoán tất cả các số tiếp theo từ /dev/urandom
, nhưng chỉ khi bạn giữ /dev/random
cạn kiệt, nếu không /dev/urandom
sẽ là reseeded.
Điều đó đang được nói, tôi chưa từng thấy bất kỳ ai thực sự làm điều đó, ngay cả trong môi trường được kiểm soát. Tất nhiên đây không phải là một sự đảm bảo, nhưng tôi sẽ không lo lắng.
Vì vậy, tôi muốn sử dụng /dev/urandom
và đảm bảo rằng chương trình của tôi không chặn trong khi đợi entropy, thay vì sử dụng /dev/random
và yêu cầu người dùng làm những việc ngớ ngẩn, như di chuyển chuột hoặc đập trên bàn phím.
Tôi nghĩ bạn nên đọc On entropy and randomness từ LWN, hy vọng nó sẽ làm dịu nỗi lo của bạn :-).
Nếu bạn vẫn còn lo lắng, hãy tự mình có một HRNG.
Sửa Đây là một lưu ý nhỏ trên entropy:
Tôi nghĩ rằng khái niệm entropy thường khó nắm bắt. Có một bài báo có thêm thông tin về số Wikipedia. Nhưng về cơ bản, trong trường hợp này, bạn có thể đọc entropy là ngẫu nhiên.
Vì vậy, làm thế nào tôi nhìn thấy nó, là bạn có một túi lớn của quả bóng màu, entropy cao hơn trong túi này càng khó để dự đoán màu sắc tiếp theo được rút ra từ túi.
Trong ngữ cảnh này, nhóm entropy của bạn chỉ là một chuỗi các byte ngẫu nhiên, trong đó không thể bắt nguồn từ các byte trước đó hoặc bất kỳ từ nào khác. Có nghĩa là bạn có entropy cao.
Imho bạn nên thay thế một trong các thẻ để đề cập đến câu hỏi này là cụ thể cho linux; dù sao, về phần 2 - không, chỉ có root mới có thể làm điều đó, người dùng bình thường chỉ có thể kết hợp dữ liệu mới, điều đó vô hại. – loreb