Không hoàn toàn nắm bắt / dev / ngẫu nhiên và / dev / urandom


0

Tôi không hiểu lắm về sự khác biệt giữa /dev/random/dev/urandom trên các hệ thống Linux.

Việc chạy ra khỏi entropy có nghĩa là gì và làm thế nào để hệ thống nhận được nhiều hơn?

Nó có nghĩa là gì khi mọi người nói /dev/random Nếu không có đủ entropy?

Tôi nên sử dụng cái nào cho kịch bản nào?


Bạn đã đọc chưa?
JakeGould

Câu trả lời:


3

Tính ngẫu nhiên có nghĩa là giá trị tiếp theo bạn nhận được không phụ thuộc vào giá trị trước đó và không có cách nào để bạn dự đoán nó.

Điều này thực sự khó đối với một máy tính, vì máy tính gần như chỉ là một máy tính thực sự nhanh - vì vậy nó có thể làm toán, nhưng sẽ luôn nhận được câu trả lời chính xác mỗi lần. Bạn có thể làm một cái gì đó gần với sự ngẫu nhiên với toán học gọi là "giả ngẫu nhiên" - nhưng nó không đủ chất lượng để sử dụng cho mật mã.

Vì vậy, Linux thu thập "tính ngẫu nhiên" trong các nhóm từ nhiều nguồn khác nhau (chẳng hạn như thời gian giữa các sự kiện đầu vào). "Số lượng" ngẫu nhiên trong nhóm này là entropy. Ít entropy = ít thường xuyên hơn, lặp đi lặp lại, các mẫu có thể dự đoán được - bạn muốn có nhiều entropy nhất có thể. Nhân Linux sẽ "lấp đầy" nhóm của nó bằng entropy khi nó ở mức thấp, nhưng nó phụ thuộc vào những gì xảy ra trên hệ thống vì nó sử dụng thời gian giữa các sự kiện phần cứng không thể đoán trước để tạo ra nó.

Nếu hồ bơi trống, /dev/random sẽ khối hoặc ngừng cung cấp dữ liệu cho đến khi kernel nhận được đủ entropy.

/dev/urandom sẽ tiếp tục - sử dụng các kỹ thuật giả ngẫu nhiên để tạo số ngẫu nhiên.

Bây giờ bạn đã có những điều cơ bản, bạn luôn có thể sử dụng urandom và Đây là lý do tại sao .

Đây là một đoạn trích từ bài viết đó giải thích lý do tại sao nó không quan trọng:

Nhưng hãy giả sử rằng bạn đã có được những con số ngẫu nhiên thật sự. Là gì   bạn sẽ làm gì với họ?

Bạn in chúng ra, đóng khung chúng và treo chúng trên tường phòng khách của bạn,   để khám phá vẻ đẹp của vũ trụ lượng tử? Điều đó thật tuyệt, và tôi   chắc chắn hiểu.

Đợi đã, cái gì? Bạn đang sử dụng chúng? Vì mục đích mật mã? À, cái đó   Làm hỏng mọi thứ, bởi vì bây giờ mọi thứ trở nên hơi xấu xí.

Bạn thấy đấy, số lượng ngẫu nhiên thực sự ngẫu nhiên, hiệu ứng lượng tử của bạn là   đưa vào một số thuật toán mờ nhạt trong thế giới thực.

Bởi vì hầu hết tất cả các thuật toán mã hóa mà chúng tôi sử dụng không giữ   lên đến an ninh lý thuyết thông tin. Họ chỉ có thể cung cấp   bảo mật tính toán. Hai ngoại lệ xuất hiện trong tâm trí tôi là   Chia sẻ bí mật của Shamir và pad Một lần. Và trong khi cái đầu tiên   có thể là một đối trọng hợp lệ (nếu bạn thực sự có ý định sử dụng nó),   sau này là hoàn toàn không thực tế.

Nhưng tất cả những thuật toán mà bạn biết, aes, rsa, Diffie-Hellman,   Đường cong elip và tất cả các gói tiền điện tử mà bạn đang sử dụng, OpenSSL,   GnuTLS, Keyczar, API mật mã của hệ điều hành của bạn, đây chỉ là những   tính toán an toàn.

Có gì khác biệt? Trong khi an toàn về mặt lý thuyết   Các thuật toán được bảo mật, thời gian, các thuật toán khác không thể đảm bảo   bảo mật chống lại một kẻ thù với sức mạnh tính toán không giới hạn   thử tất cả các khả năng cho các phím. Chúng tôi vẫn sử dụng chúng vì nó sẽ   mang tất cả các máy tính trên thế giới cùng nhau lâu hơn   vũ trụ đã tồn tại, cho đến nay. Đó là mức độ không an toàn của chúng tôi   nói về đây

Trừ khi một số kẻ thông minh phá vỡ thuật toán, sử dụng ít hơn nhiều   khả năng tính toán. Ngay cả sức mạnh tính toán có thể đạt được ngày hôm nay. Đó là   giải thưởng lớn mà mọi nhà mật mã đều mơ ước: phá vỡ chính nó,   phá vỡ rsa chính nó và như vậy.

Vì vậy, bây giờ chúng tôi đang ở điểm mà bạn không tin tưởng vào tòa nhà bên trong   các khối của trình tạo số ngẫu nhiên, nhấn mạnh vào sự ngẫu nhiên thực sự   thay vì giả ngẫu nhiên. Nhưng sau đó bạn đang sử dụng chúng   Số thật ngẫu nhiên trong số các thuật toán mà bạn rất coi thường bạn   không muốn họ ở gần trình tạo số ngẫu nhiên của bạn ở nơi đầu tiên!

Sự thật là, khi các thuật toán băm hiện đại bị phá vỡ, hoặc khi   Mật mã khối hiện đại bị hỏng, không thành vấn đề với bạn   nhận được những số ngẫu nhiên về triết học của người Viking vì chúng. Bạn đã   không còn gì để sử dụng chúng một cách an toàn cho dù sao đi nữa.

Vì vậy, chỉ cần sử dụng những số ngẫu nhiên an toàn tính toán cho bạn   thuật toán tính toán an toàn. Nói cách khác: sử dụng / dev / urandom.


+1 để làm rõ tuyệt vời. Ngoài ra, liên kết bạn đã chia sẻ là tuyệt vời.
steady rain
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.