web-dev-qa-db-ja.com

ssh-keygen:シードはどのように生成されますか?

_ssh-keygen_のシードはどのように生成されますか?ランダムなビットが不十分な場合、_/dev/random_から情報を取得し、システムアクティビティによる補完を要求します。

インストラクターは私が疑うこれらの主張をしました。ドキュメントをリンクして、それらを正しいか誤っているかを示すのを手伝っていただけますか?

「ローカル鍵がrsa/dsa/ecdsa暗号化タイプ用にユーザーによって構築される場合、システムからプライベートにいくつかの鍵情報を使用して埋め込み、それを構築します。したがって、rsaの秘密鍵を構築する場合、_ssh_Host_rsa_key_、ユーザー名、MACアドレス、およびユーザーのローカル秘密鍵のシードとしての_/dev/random_。」

=====

_ssh-keygen_のマニュアルページを読んでも、この詳細には触れません。

いくつかの奇妙なものがキー生成のシードに使用されます。たとえば、プロセスIDは Debianかろうじてランダムなキー生成スキャンダル で唯一ランダムな要素であることが示されました。プロセスIDが使用されているのは奇妙です。

LPICレベル1 Exam2
講義:システムRSA/DSAキー

2

そのため、rsaの秘密鍵を作成する際には、ssh_Host_rsa_key、ユーザー名、MACアドレス、および/ dev/randomをユーザーのローカル秘密鍵のシードとして使用します。

いいえ、そうではありません。秘密鍵は、/dev/random。OpenSSL内で秘密鍵に形成されます。

鍵を生成する通常のユーザーはそれらにアクセスできないため、ホスト鍵は使用されません。ユーザー名とホスト名は公開鍵のコメントにのみ保存され(デフォルトの動作ですが、変更可能です)、MACアドレスは使用されていません(少なくともOpenSSHでは使用されていません)。 OpenSSHソースで確認できます)コード

「Debianかろうじてランダムなキー生成スキャンダル」がこれとどのように関連しているかはわかりません。これはOpenSSLのバグであり、可能なキーが制限されていました。暗号操作とランダムデータソースにOpenSSLを使用しているため、OpenSSHに影響しました。

1
Jakuje