Come posso sapere se la mia macchina ha il supporto hardware RNG?


11

Mi sono imbattuto in un blog sul problema del pool entropico e ho appreso che esiste un hardware speciale chiamato RNG. Ho letto questa pagina RNG del kernel ma mi chiedo ancora se c'è un modo per scoprire se il mio server supporta l'RNG hardware o meno.

Risposte:


8

Esistono due tipi probabili di RNG hardware "reale": uno basato sulla CPU e uno basato su chipset o PCI. (Ci sono anche alcuni RNG hardware USB, ma sospetto che avresti notato uno di quelli ;-)

Quanto segue è specifico di Linux.

Per quelli basati su CPU, è possibile verificare la presenza /proc/cpuinfodi indizi, supponendo che il kernel sia abbastanza nuovo da rilevarli. Per le CPU Intel la bandiera è rdrand, maggiori informazioni qui: /unix/43539/what-do-the-flags-in-proc-cpuinfo-mean

Per quelli chipset, se è stata CONFIG_HW_RANDOMabilitata nel kernel e il supporto per-vendor CONFIG_HW_RANDOM_INTEL ..._AMDecc poi i messaggi di boot dovrebbe indicare se del caso sono state trovate (ad esempio, "Intel 82802 RNG rilevato"). Se sono presenti come moduli, puoi provare ( modprobe intel-rng) per vedere se si carica, "Nessun dispositivo del genere" indica nessun hardware rilevato. Non tutti i driver stampano costantemente "RNG rilevato" o "non rilevato", quindi si potrebbe finire per leggere i sorgenti ( /drivers/char/hw_random/directory del sorgente del kernel).

Per altri, puoi controllare lspci -vper vedere cosa è riconosciuto.


1

Per scoprirlo devi RNGfare quanto segue:

1) Elencare tutti i moduli che hanno "rng" nel suo nome:

cat /proc/modules | grep -i rng

2) Se ne hai uno otterrai un risultato come questo

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

3) Assicurati di abilitarlo o caricarlo usando modprobein questo momento:

modprobe tpm_rng

AGGIORNAMENTO : Per quanto riguarda il passaggio (1), per me modprobe -lnon funzionava in Ubuntu 16 ecco perché ho provato a cercare dentro "/ proc / modules" ma se funziona con te, allora va bene .. Recentemente ho cercato e ho imparato tutti i moduli sono residenti all'interno, /lib/modules/$(uname -r)quindi è possibile utilizzare anche quanto segue:

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

1

Sui kernel recenti, puoi controllare qui:

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

Se quel file esiste e non dice nessuno, allora fondamentalmente hai un rng presente. (in questo caso, è una macchina virtuale in cui l'host fornisce una fonte casuale)

Anche per vedere cosa è disponibile (questo esempio da una moderna macchina Intel, anche con un hardware ChaosKey rng collegato)

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

Quindi sono disponibili sia ChaosKey che i tpm.

C'è qualche informazione interessante su https://daniel-lange.com/archives/152-hello-buster.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.