
저는 이를 makepasswd
가상 머신에서 무작위로 여러 개의 비밀번호를 생성하는 데 사용합니다.
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
haveged
또 다른 대안 솔루션은 makepasswd 소스를 수정하는 대신 데몬을 설치하여 키 생성 프로세스 속도를 높이는 것입니다. 설치하려면:
sudo apt-get install haveged
설치 후에도 makepasswd
정상적으로 작동됩니다.
haveged
이제 엔트로피가 다음과 같은 VM 및 iOT(예: Raspberry Pi)에 데몬이 필요합니다.대개낮은.
데비안에서 man haveged
:
NAME
haveged
- 난수를 생성하여 Linux 임의 장치에 제공합니다.
haveged
HAVEGE(Hardware Volatile Entropy Gathering and Expansion) 알고리즘을 사용하여 숨겨진 프로세서 상태(캐시, 분기 예측자, 메모리 변환 테이블 등)에 대한 하드웨어 이벤트의 간접적인 영향에서 파생된 예측할 수 없는 난수 스트림을 생성하는 방법을 설명합니다 . 알고리즘은 사용자 공간에서 실행되며 출력 스트림에 대한 파일 시스템 액세스에 특별한 권한이 필요하지 않습니다.
/dev/random
Linux는 및 장치 인터페이스를 통한/dev/urandom
배포를 위해 무작위성을 집계합니다. 풀 채우기를 위한 표준 메커니즘은/dev/random
수요가 높거나 사용자 상호 작용이 제한된 시스템에는 충분하지 않을 수 있습니다. 이러한 경우haveged
임의 비트 공급이 장치의 최저 워터마크 아래로 떨어질 때마다 권한 있는 데몬으로 실행하여 풀을 채울 수 있습니다./dev/random
/dev/random