Як я можу дізнатись, чи підтримується моя апаратна підтримка RNG?


11

Я натрапив на блог, що стосується проблеми ентропійного пулу, і дізнався, що існує спеціальне обладнання під назвою RNG. Я прочитав цю сторінку RNG ядра, але мені все ще цікаво, чи є спосіб дізнатися, чи підтримує мій сервер апаратне забезпечення RNG чи ні.

Відповіді:


8

Існує два вірогідні типи "справжньої" апаратної RNG: на базі процесора та на основі чіпсетів або PCI. (Є також декілька апаратних RNG, але я підозрюю, що ви помітили один із них ;-)

Далі йдеться про Linux.

Для процесорів, які базуються на процесорі, ви можете перевірити /proc/cpuinfoнаявність підказок, припускаючи, що ваше ядро ​​є достатньо новим для їх виявлення. Для процесорів Intel це прапор rdrand, більше інформації тут: /unix/43539/what-do-the-flags-in-proc-cpuinfo-mean

Для чіпсетів, якщо ви CONFIG_HW_RANDOMввімкнули в своєму ядрі та підтримці постачальника CONFIG_HW_RANDOM_INTEL ..._AMDі т. Д., Тоді ваші повідомлення для завантаження повинні вказувати, чи були знайдені такі (наприклад, "виявлено Intel 82802 RNG"). Якщо вони присутні як модулі, ви можете спробувати ( modprobe intel-rng) перевірити, чи завантажується він, "Немає такого пристрою" вказує на відсутність виявленого обладнання. Не всі драйвери послідовно друкують "виявлений RNG" або "не виявлено", тому ви можете в кінцевому підсумку прочитати джерела ( /drivers/char/hw_random/каталог джерела ядра).

Для інших ви можете перевірити, lspci -vщо розпізнано.


1

Щоб дізнатись, ви RNGзробите наступне:

1) Перерахуйте всі модулі, що мають назви "rng":

cat /proc/modules | grep -i rng

2) Якщо у вас є такі, ви отримаєте такий результат

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

3) Переконайтеся, що ввімкніть або завантажте його, використовуючи modprobe:

modprobe tpm_rng

ОНОВЛЕННЯ : Щодо кроку (1), для мене modprobe -lне працювало в ubuntu 16, тому я намагався шукати всередині "/ proc / модулі", але якщо він працює з вами, то це нормально. Останнім часом я шукав і ознайомлюсь всі модулі знаходяться всередині, /lib/modules/$(uname -r)так що ви також можете використовувати наступне, що краще:

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

1

Про останні ядра ви можете перевірити тут:

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

Якщо цей файл існує і не говорить жодного, то в основному у вас присутній rng. (у цьому випадку це віртуальна машина, де хост надає випадкове джерело)

Також, щоб побачити, що доступно (цей приклад із сучасної машини Intel, також із підключеним програмним забезпеченням ChaosKey)

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

Таким чином, і ChaosKey, і tpm доступні.

На сайті https://daniel-lange.com/archives/152-hello-buster.html є цікава інформація.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.