私はそれをmakepasswd
仮想マシンからランダムに複数のパスワードを生成するために使用します。
Stretch / Debian 9にアップグレードした後、スクリプトは1つまたは2つのパスワードを生成し、停止またはまったく生成しません。
別のパスワードを生成するのにかなり時間がかかるようです。
初めて呼び出します。
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
もう1つの代替ソリューションは、makepasswdソースを変更するのではなく、デーモンをインストールしてキー生成プロセスを高速化することです。インストールするには:
sudo apt-get install haveged
インストール後もmakepasswd
正常に動作します。
haveged
これで、エントロピーが次のようなVMやRospberry PiなどのiOTにデーモンが必要です。通常低い。
Debian からman haveged
:
NAME
haveged
- 乱数を生成してLinuxの任意のデバイスに提供します。
haveged
Hardware Volatile Entropy Gathering and Expansion (HAVEGE) アルゴリズムを使用して、非表示のプロセッサ状態 (キャッシュ、分岐予測子、メモリ変換テーブルなど) に対するハードウェア イベントの間接的な影響から派生した予測不能な乱数ストリームを生成する方法を説明します.します。アルゴリズムはユーザー空間で実行され、出力ストリームへのファイルシステムアクセスに特別な権限は必要ありません。
/dev/random
Linuxは、デバイスインタフェースを介した/dev/urandom
展開のためにランダム性を集約します。フルフィルのための標準的なメカニズムは、/dev/random
需要が高かったり、ユーザーの対話が制限されているシステムには不十分な場合があります。この場合、haveged
任意のビット供給がデバイスの最低透かしを下回るたびに特権デーモンを実行してプールを埋めることができます。/dev/random
/dev/random