Làm cách nào để biết máy của tôi có hỗ trợ phần cứng RNG không?


11

Tôi đã xem qua một blog liên quan đến vấn đề entropy pool và biết rằng có một phần cứng đặc biệt gọi là RNG. Tôi đã đọc trang RNG kernel này nhưng tôi vẫn tự hỏi liệu có cách nào để tìm hiểu xem máy chủ của tôi có hỗ trợ RNG phần cứng hay không.

Câu trả lời:


8

Có hai loại RNG phần cứng "thực" có thể là: loại dựa trên CPU và loại dựa trên chipset hoặc loại PCI. (Cũng có một vài RNG phần cứng USB, nhưng tôi nghi ngờ bạn đã nhận thấy một trong số đó ;-)

Sau đây là Linux cụ thể.

Đối với CPU dựa trên CPU, bạn có thể kiểm tra /proc/cpuinfocác đầu mối, giả sử hạt nhân của bạn đủ mới để phát hiện ra chúng. Đối với CPU Intel, cờ là rdrand, thông tin thêm ở đây: /unix/43539/what-do-the-flags-in-proc-cpuinfo-mean

Đối với các chipset, nếu bạn đã CONFIG_HW_RANDOMkích hoạt trong kernel hỗ trợ của mỗi nhà cung cấp, CONFIG_HW_RANDOM_INTEL ..._AMDv.v. thì thông báo khởi động của bạn sẽ cho biết liệu có tìm thấy không (ví dụ: "Intel 82802 RNG được phát hiện"). Nếu chúng có mặt dưới dạng các mô-đun, bạn có thể thử ( modprobe intel-rng) để xem nó có tải không, "Không có thiết bị nào như vậy" biểu thị không có phần cứng được phát hiện. Không phải tất cả các trình điều khiển đều in "RNG được phát hiện" hoặc "không được phát hiện", do đó bạn có thể sẽ đọc các nguồn ( /drivers/char/hw_random/thư mục của nguồn kernel).

Đối với những người khác, bạn có thể kiểm tra lspci -vđể xem những gì được công nhận.


1

Để tìm hiểu bạn đã RNGlàm như sau:

1) Liệt kê tất cả các mô-đun có "rng" trong tên của nó:

cat /proc/modules | grep -i rng

2) Nếu bạn có bất kỳ bạn sẽ nhận được một kết quả như thế này

tpm_rng 16384 0 - Live 0xffffff......

3) Đảm bảo bật hoặc tải nó bằng cách sử dụng modprobetại thời điểm này:

modprobe tpm_rng

CẬP NHẬT : Liên quan đến bước (1), đối với tôi modprobe -lkhông hoạt động trong Ubuntu 16 đó là lý do tại sao tôi đã cố gắng tìm kiếm bên trong "/ Proc / mô-đun" nhưng nếu nó hoạt động với bạn thì không sao .. Gần đây tôi đã tìm kiếm và tìm hiểu tất cả các mô-đun là cư dân bên trong, /lib/modules/$(uname -r)do đó bạn cũng có thể sử dụng những điều sau đây là tốt hơn:

cat /lib/modules/$(uname -r)/modules.dep | grep -i rng.*.ko

1

Trên các hạt nhân gần đây, bạn có thể kiểm tra ở đây:

$ cat /sys/devices/virtual/misc/hw_random/rng_current 
virtio_rng.0

Nếu tập tin đó tồn tại và không nói không, thì về cơ bản bạn có một món quà rng. (trong trường hợp này, nó là một máy ảo nơi máy chủ cung cấp một nguồn ngẫu nhiên)

Ngoài ra để xem những gì có sẵn (ví dụ này từ một máy intel hiện đại, cũng với rng phần cứng ChaosKey được kết nối)

$ cat /sys/devices/virtual/misc/hw_random/rng_available 
ChaosKey-hw-1.0-sw-1.9-001900375346430b20333632 tpm-rng-0 

Vì vậy, cả ChaosKey và tpm có sẵn.

Có một số nền tảng thú vị tại https://daniel-lange.com/archives/152-hello-buster.html

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.