makepasswd
VM에서 임의의 비밀번호를 생성하는 데 사용하고 있습니다 .
Stretch/Debian 9로 업그레이드한 후 스크립트는 하나 또는 두 개의 암호를 생성하고 중지하거나 전혀 생성하지 않습니다.
다른 비밀번호를 다시 생성하는 데 꽤 (좋은) 시간이 걸리는 것 같습니다.
처음으로 호출:
makepasswd
ndmBXpfp3
예상대로 즉시 임의의 문자열을 생성합니다.
두번째:
makepasswd
그리고 계속해서 기다리고 있습니다.
답변1
(의사) 난수를 생성하기 위해 openssl API를 사용하는 것에서 요즘 makepasswd
에는 /dev/random
.
문제는 VM과 iOT의 활동이 낮고 스크립트/ makepasswd
마시기를 만족시킬 만큼 충분한 엔트로피를 생성하지 않는다는 것 입니다./dev/random
에서 임의의 숫자를 마시는 옵션을 찾으려고 했지만 /dev/urandom
아무 것도 없습니다.
그래서 나는 makepasswd
Perl 스크립트인 의 이전 버전을 얻었고 스크립트가 /opt/bin/makepasswd
내 시스템에서 을 가리켰습니다. 이제 스크립트는 평소처럼 작동하여 필요한 +100개의 비밀번호를 몇 초 만에 생성합니다.
소스에서 볼 수 있듯이:
새로운 makepasswd
:
my $buf = $RNG->bytes($bytes);
오래된 makepasswd
:
my $buf = Crypt::OpenSSL::Random::random_pseudo_bytes($bytes);
흥미롭게도 저작권에 가까운 데이터와 버전은 변경되지 않아 한동안 혼란스러웠습니다.
둘 다에서:
$Program = 'makepasswd';
$Version = '1.10';
$Author = 'Rob Levin <[email protected]>';
$Date = "Monday, 7 April 1999 at 22:56 (UCT)";
$Copyright = '1997-1999';
그러나,changelog.Debian.gz
Convert from Crypt::OpenSSL::Random to Bytes::Random::Secure (closes:
#792535).
-- Colin Watson <[email protected]> Thu, 16 Jul 2015 11:45:20 +0100
답변2
makepasswd 소스를 수정하는 대신 또 다른 대체 솔루션은 haveged
키 생성 프로세스 속도를 높이기 위해 데몬을 설치하는 것입니다. 설치하려면:
sudo apt-get install haveged
설치한 후에도 makepasswd
정상적으로 작동합니다.
haveged
이제 엔트로피가 다음과 같은 VM 및 iOT(예: 라즈베리)에 데몬이 필요합니다 .보통낮은.
데비안에서 man haveged
:
NAME
haveged
- 난수를 생성하고 Linux의 임의 장치에 공급합니다.DESCRIPTION은
haveged
HAVEGE(HArdware Volatile Entropy Gathering and Expansion) 알고리즘을 사용하여 숨겨진 프로세서 상태(캐시, 분기 예측자, 메모리 변환 테이블 등)에 대한 하드웨어 이벤트의 간접적인 영향으로부터 수집된 예측할 수 없는 난수 스트림을 생성합니다. 알고리즘은 사용자 공간에서 작동하며 출력 스트림에 대한 파일 시스템 액세스에 특별한 권한이 필요하지 않습니다.
/dev/random
Linux는 및 장치 인터페이스 에 의한 배포를 위해 임의성을 풀링합니다/dev/urandom
. 풀 을 채우는 표준 메커니즘은/dev/random
요구 사항이 높거나 사용자 상호 작용이 제한된 시스템의 수요를 충족하기에 충분하지 않을 수 있습니다. 이러한 상황에서는 무작위 비트 공급이 장치의 최저 워터마크 아래로 떨어질 때마다 풀을haveged
채우는 권한 있는 데몬으로 실행될 수 있습니다 ./dev/random
/dev/random