id_rsa.pubとid_dsa.pubの違いは何ですか?


回答:


64

id_rsa.pubそして、id_dsa.pubの公開鍵であるid_rsaid_dsa

に関して質問している場合SSHid_rsaRSAキーであり、SSHプロトコル1または2で使用できますid_dsaが、はDSAキーであり、SSHプロトコル2でのみ使用できます。 どちらも非常に安全ですが、DSAは最近の標準(すべてのクライアント/サーバーがSSH 2をサポートしていると想定)。

更新:これが書かれてから、DSAは安全でないことが示されています。詳細については、以下の回答をご覧ください。


私はこれに同意しなければなりません。今日(そして、程度は低いですが、2010年にもこれが投稿されたとき)、1024ビット(DSAで使用可能な最大のキーサイズ)は弱すぎると考えられています。したがって、RSAの方が適しています。SSH v1については、10年前はこれが安全であるとは考えていませんでした。
アダムKatz

3
@AdamKatz DSAは、2009年以降、2048ビットおよび3072ビットのキーをサポートしています(FIPS 186-3による)。ほとんどのsshクライアント/サーバーは、OpenSSHやPuTTYなどのより大きなDSAキーをサポートしています。ほとんどの鍵ジェネレーターはより大きなDSA鍵もサポートしますが、OpenSSHのssh-keygenはまだサポートしていません(sshとsshdの両方がサポートしている場合でも)。Linuxの場合、このブログ投稿で説明されているように、OpenSSLを使用してより大きなDSAキーを生成できます。
Mike Pelley 2015年

1
面白い!私はそれを知りませんでした、そしてそれは確かに2つの間のフィールドを平準化するのに役立ちます(OpenSSHサポートの欠如はかなりひどいですが)。それでも、DSAが標準(現在または2010年)であるとは言いませんが、RSAは絶対に標準です(そして、Ed25519のような楕円曲線システムに移行しています)。
Adam Katz

46

SSH公開鍵と秘密鍵のペアを使用するため id_rsaRSA秘密鍵(素数に基づく)も使用します。これはid_dsa DSA秘密鍵(指数に基づく)よりも安全です。秘密鍵を安全に保ち、自分の鍵id_rsa.pubid_dsa.pub公開鍵を広く共有します。

DSAは安全ではありません

コンピュータの乱数ジェネレータが標準以下の場合、DSAには推測可能なパラメータがあり、秘密鍵が明らかになります。 ECDSA(DSAの楕円曲線アップグレード)も同様に脆弱です。優れた乱数があっても、DSAには他の強みの懸念PDFあります(これらはDiffie-Hellmanにもあります)。

OpenSSHは安全でない1024ビットキーを作成し回避策デフォルトでDSAを無効にします

可能な場合はEd25519を使用してください

楕円曲線暗号は、鍵のサイズが小さいほど複雑さが増します。 Ed25519平面モデルの楕円曲線の複雑さに基づく)は、干渉が想定されていないため、推奨される実装です(漏えいした文書では、米国NSAが暗号化規格を弱めていることが示されています)。

残念ながら、Ed25519はまだかなり新しく、OpenSSH 6.5またはGnuPG 2.1が必要です(完全なリストを参照)。

Ed25519が利用できない場合は、4096ビットのRSAを使用します

4096ビットのRSA鍵サイズは、Ed25519に匹敵する複雑さを持つ必要があります。

Ed25519は、RSAへのエクスプロイトの適用がかなり困難であると予想されますが、RSAがDSAと同じ強度の懸念に対して脆弱である可能性があるという懸念のため、RSAよりも優先されます。


2
修正点は1つだけです。DSAは、2009年以降、2048ビットおよび3072ビットのキーをサポートしています(FIPS 186-3に従って)。上記の私のコメントの詳細情報。
Mike Pelley 2015年

2
Infosec SEには、この質問に対する優れた回答があります。それは、より大きな鍵サイズでさえ、DSAがもはや安全でないことを示唆するブラックハット2013の話を引用しています。
Adam Katz

2
DSAの問題についてより包括的になるように、この回答を更新しました。(同等に有効な)Infosec SEの回答よりも詳細になりました。一部のリンクの上にマウスを置くと、さらに詳細な情報が得られます。
Adam Katz 2016年

1
この投稿は私に多くのことを教えてくれました、もっと多くの賛成票が必要です。
liljoshu


1

rsaはより安全であると考えられています。

もう(2020年5月、10年後)、OpenSSH 8.2ではJulioの報告による

今後のサポート終了のお知らせ

5万米ドル未満で、SHA-1ハッシュアルゴリズムに対して選択プレフィックス攻撃を実行できるようになりました1
このため、近い将来のリリースでは、デフォルトでSHA-1に依存する「ssh-rsa」公開鍵署名アルゴリズムを無効にします

(見る " SHA-1は修羅場:SHA-1で最初に選択されたプレフィックスの衝突とPGP Web of Trustへの適用」を参照)Leurent、G and Peyrin、T(2020))

このアルゴリズムは、より良い代替手段が存在するにもかかわらず残念ながら依然として広く使用されており、元のSSH RFCで指定された唯一の公開鍵署名アルゴリズムです。

より良い代替案は次のとおりです。

  • RFC8332 RSA SHA-2署名アルゴリズムrsa-sha2-256 / 512。
    これらのアルゴリズムには、「ssh-rsa」と同じキータイプを使用するという利点がありますが、安全なSHA-2ハッシュアルゴリズムを使用します。
    これらはOpenSSH 7.2以降でサポートされており、クライアントとサーバーでサポートされている場合は、デフォルトですでに使用されています。

  • ssh-ed25519署名アルゴリズム。
    これは、リリース6.5以降のOpenSSHでサポートされています。

  • RFC5656 ECDSAアルゴリズム:ecdsa-sha2-nistp256 / 384/521。
    これらは、リリース5.7以降、OpenSSHでサポートされています。

サーバーが弱いssh-rsa公開鍵アルゴリズムをホスト認証に使用しているかどうかを確認するにはssh-rsa、ssh(1)の許可リストからアルゴリズムを削除した後、サーバーに接続してみます。

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

ホストキーの検証に失敗し、サポートされている他のホストキータイプが利用できない場合は、そのホストのサーバーソフトウェアをアップグレードする必要があります。

OpenSSHの将来のリリースではUpdateHostKeys、デフォルトでクライアントがより良いアルゴリズムに自動的に移行できるようにする予定です。
ユーザーは、このオプションを手動で有効にすることを検討できます


-8

1つはDSAを使用し、もう1つはRSAを使用します。


デフォルトの名前(論理的にはそのように見えます)を使用していると仮定すると、theatrusはそれを頭の上で直撃しました。
David Larrabee、

あなたは質問の本当の部分に答えませんでした:より安全です。これが一番の答えだったので、反対票を投じました。する必要はありません。
akauppi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.