Debian Stretch で makepasswd が正しく動作しません。

Debian Stretch で makepasswd が正しく動作しません。

私はそれを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/randomLinuxは、デバイスインタフェースを介した /dev/urandom 展開のためにランダム性を集約します。フルフィルのための標準的なメカニズムは、 /dev/random需要が高かったり、ユーザーの対話が制限されているシステムには不十分な場合があります。この場合、haveged 任意のビット供給がデバイスの最低透かしを下回るたびに特権デーモンを実行してプールを埋めることができます。/dev/random/dev/random

関連情報