Como posso saber se minha máquina tem suporte a hardware RNG?

8

Me deparei com um blog sobre o problema do pool de entropia e descubro que há um hardware especial chamado RNG. Eu li esta página kernel RNG , mas eu ainda me pergunto se há uma maneira de descobrir se o meu servidor suporte hardware RNG ou não.

    
por allan ruin 23.02.2013 / 05:58

2 respostas

6

Existem dois tipos prováveis de RNG de hardware "real": um baseado em CPU e um baseado em chipset ou PCI. (Há também alguns RNGs de hardware USB, mas eu suspeito que você teria notado um desses ;-)

O seguinte é específico do Linux.

Para aqueles baseados em CPU, você pode verificar /proc/cpuinfo para pistas, assumindo que seu kernel é novo o suficiente para detectá-las. Para CPUs Intel, a sinalização é rdrand , mais informações aqui: link

Para os chipset, se você tiver CONFIG_HW_RANDOM habilitado em seu kernel e o suporte por fornecedor CONFIG_HW_RANDOM_INTEL ..._AMD etc., suas mensagens de inicialização deverão indicar se foram encontradas (por exemplo "Intel 82802 RNG detectado"). Se eles estiverem presentes como módulos, você pode tentar ( modprobe intel-rng ) para ver se ele carrega, "Nenhum desses dispositivos" indica nenhum hardware detectado. Nem todos os drivers imprimem consistentemente "RNG detected" ou "not detected", então você pode acabar lendo as fontes ( /drivers/char/hw_random/ directory da fonte do kernel).

Para outros, você pode verificar lspci -v para ver o que é reconhecido.

    
por 23.02.2013 / 15:56
1

Para descobrir que você tem RNG , faça o seguinte:

1) Liste todos os módulos com "rng" em seu nome:

cat /proc/modules | grep -i rng

2) Se você tiver algum, você receberá um resultado como este

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

3) Certifique-se de ativar ou carregar usando modprobe no momento:

modprobe tpm_rng

UPDATE : Em relação ao passo (1), para mim modprobe -l não estava funcionando no ubuntu 16 é por isso que tentei procurar dentro de "/ proc / modules" mas se ele funciona com você então está tudo bem .. Recentemente eu procurei e fiquei sabendo que todos os módulos são residentes dentro de /lib/modules/$(uname -r) , então você também pode usar o seguinte, que é melhor:

cat /lib/modules/$(uname -r)/modules.dep | grep -i rng.*.ko
    
por 11.01.2017 / 09:07