답변:
데이터를 얻기 에서 의 /dev/random
또는 /dev/urandom
확실히 하지 문제가 더 악화하고, 그것을 할 것입니다 모두가 당신의 엔트로피 풀을 고갈, 도움이 될 것. 이 두 파일의 주요 차이점은 커널에 엔트로피 urandom
가 부족하더라도 품질이 낮은 임의의 데이터를 계속 생성하는 동시에 random
새로운 고품질의 임의 데이터를 수집 할 수있을 때까지 차단한다는 것입니다. PGP는 보안 키를 생성하기 위해 가능한 한 가장 높은 임의 데이터를 요구하므로 항상를 사용 /dev/random
합니다.
당신은 주변에 좋은 임의의 데이터를, 또는 다른 서버의 일부를 내보내는 경우 /dev/random
, 당신이 할 수있는 cat
그것을 로 서버의 /dev/random
수 더 많은 엔트로피. cat
같은 파일을 두 번 입력 해서는 안됩니다 /dev/random
.
엔트로피 부족이 자주 발견 되면 백그라운드에서 엔트로피를 다시 생성 하고 필요에 따라 다시 채우는 데몬 인 haveged 와 같은 것을 설치하는 것도 고려할 수 있습니다 /dev/random
.
또한 심볼릭 링크 /dev/random
를 사용하려는 유혹 /dev/urandom
이 있지만 키를 사용하여 생성 된 키는 키보다 덜 안전 할 수 있으므로 보안 위험으로 간주해야합니다. 중요하지 않은 하나의 응용 프로그램에 도움이 될 수 있지만 /dev/random
다른 사용자가 자신의 키, CSR 등을 생성하는 것을 포함하여 가능한 모든 다른 용도를 고려해야합니다 .
/dev/random
은 최신 BSD 및 Linux에서 고품질 PRNG입니다. 그러나 엔트로피가 충분하지 않으면 차단됩니다. 다른 한편으로는, /dev/urandom
이용 가능한 것이 충분하지 않으면 차단되지 않지만,이 경우 임의의 품질로 인해 어려움을 겪을 수 있습니다. 세부 사항에서 Linux와 다양한 BSD 사이의 무작위 구현과 urandom 구현 사이에는 많은 미묘함이 있지만 위의 내용은 모든 AFAIK에서 적용되어야합니다.
ping 8.8.8.8
다른 네트워크 호스트를 소유하고있는 경우 (예 : RTT가 <100ms 인 경우) 호스트를 핑 (ping)하여 더 많은 엔트로피를 생성 할 수 있습니다 . 그리고 / 또는 사용은 find
하드 디스크에있는 파일을 찾아 각 파일 검색 사이의 RAM 캐시를 플러시합니다.
/dev/random
으로 FreeBSD를 차단하지 않습니다.
dd if=/dev/random of=/tmp/rndtest bs=64M count=1
새로 부팅 한 후 실행 해 보십 시 오. 64MB 파일 증가를 생성하는 데 걸리는 시간을 확인하기 위해 2 회 연속 실행했습니다. urandom을 입력으로 사용하면이 효과를 볼 수 없다고 생각했지만 FreeBSD는 Linux와 달리 차단하고있는 것으로 보입니다.
사용할 수 있습니다 haveged
.
haveged
필요할 때 엔트로피를 생성하는 데몬입니다.
로컬 컴퓨터에서 원격 키보다 훨씬 나은 임의의 gpg 키를 생성하는 것이 좋습니다. 그런 다음 SSH를 사용하여 키를 원격 시스템으로 마이그레이션하십시오.
로컬에서 생성하는 것이 더 빠르며 (엔트로피 소스가 더 많음) 더 안전합니다 (시스템이 감염되지 않은 경우 아무도 프로세스에서 감시 할 수 없으며 무작위성이 향상됩니다).
여전히 원격으로 생성하려는 경우 : Linux에서 ping 8.8.8.8
다른 네트워크 호스트를 소유 한 경우 호스트를 핑 (예 :)하여 더 많은 엔트로피를 생성 할 수 있습니다 (RTT가 100ms 미만인 경우). 그리고 / 또는 사용은 find
하드 디스크에있는 파일을 찾아 각 파일 검색 사이의 RAM 캐시를 플러시합니다.
https://wiki.archlinux.org/index.php/Haveged#Virtual_machineshaveged
: 가상 환경에서 실행하는 경우 제한 사항을 설치할 수 있지만 읽을 수도 있습니다.
데비안 기반 시스템에서는 rng-tools
atp-get을 사용 하여 패키지를 설치 한 다음 데몬을 시작하여 엔트로피를 생성 할 수 있습니다 .
echo HRNGDEVICE=/dev/urandom >> /etc/default/rng-tools && service rng-tools restart
CentOS-6 서버에서 rng
데몬은 기본 도구 중 하나로 설치되며 (적어도 내가 작업 한 대부분의 시스템에는) 다음 엔트로피를 생성하기 위해 다음 명령을 실행하여 시작할 수 있습니다.
sed -i \'s|EXTRAOPTIONS=\"\"|EXTRAOPTIONS=\"-r /dev/urandom\"|g\' /etc/sysconfig/rngd && service rngd restart
/dev/random
A는 고품질의 PRNG , 일반적 차단해서는 안된다.