저는 가상 머신으로 작업을 많이 하는데 일반적으로 엔트로피가 낮은 것 같습니다(마우스나 기타 엔트로피 생성 입력이 없음). 내 소프트웨어에 오류가 있었고 나는생각하다엔트로피가 고갈되었기 때문이다. 이것을 테스트하고 싶지만 이 현상은 가끔 발생하며 재현하기 어렵습니다.
소프트웨어가 고갈되었을 때 어떻게 작동하는지 테스트하기 위해 엔트로피 풀을 비우려면 어떻게 해야 합니까?
(참고: 다른 사람이 사용하는 코드를 호출하고 dev/random
있으므로 dev/urandom
차단을 방지하기 위해 사용하는 것은 옵션이 아닙니다.)
답변1
먼저, 소프트웨어의 버그를 일으키는 원인이 실제로 랜덤 풀의 고갈인지 확인해야 합니다. 실행하여 cat /proc/sys/kernel/random/entropy_avail
시스템에서 사용 가능한 엔트로피를 테스트하고 0인지 확인할 수 있습니다.
둘째, 내가 아는 한(아직 이 명령을 테스트하지 않음) /proc에 적절한 변수를 설정하여 엔트로피 풀을 줄일 수 있습니다. 32비트로 설정하려면:
echo 32 > /proc/sys/kernel/random/poolsize
또는
sysctl -w kernel.random.poolsize=32
답변2
cat /dev/random
엔트로피는 사용 가능해짐에 따라 지속적으로 소비되어 엔트로피를 0 또는 0에 가깝게 유지합니다. 완벽하지는 않지만 간단합니다.