내 컴퓨터가 RNG 하드웨어를 지원하는지 어떻게 알 수 있습니까?


11

엔트로피 풀 문제에 관한 블로그를 방문하여 RNG라는 특수 하드웨어가 있음을 알게되었습니다. 이 커널 RNG 페이지를 읽었 지만 여전히 서버가 하드웨어 RNG를 지원하는지 여부를 알 수있는 방법이 있는지 궁금합니다.

답변:


8

"실제"하드웨어 RNG에는 CPU 기반 하드웨어와 칩셋 또는 PCI 기반 하드웨어의 두 가지 유형이 있습니다. (USB 하드웨어 RNG도 몇 개 있지만 그 중 하나를 발견 한 것 같습니다.

다음은 Linux에만 해당됩니다.

CPU 기반 /proc/cpuinfo커널의 경우 커널이 새로운 커널을 감지한다고 가정하면 단서를 확인할 수 있습니다. 인텔 CPU의 경우 플래그에 대한 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) 시도 하여로드되는지 확인할 수 있습니다. "No such device"는 감지 된 하드웨어가 없음을 나타냅니다. 모든 드라이버가 "RNG detected"또는 "detected"를 지속적으로 인쇄하는 것은 아니므로 소스 ( /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우분투 16에서 작동하지 않았기 때문에 "/ proc / modules"내부를 찾으려고했지만 그것이 당신과 함께 작동하면 괜찮습니다 .. 최근에 검색하고 알게되었습니다. 모든 모듈이 내부에 /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가있는 것입니다. (이 경우 호스트는 임의의 소스를 제공하는 가상 머신입니다)

또한 사용 가능한 기능을 확인하려면 (이 예제는 최신 인텔 컴퓨터에서 ChaosKey 하드웨어 rng가 연결되어 있음)

$ 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에 흥미로운 배경이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.