1つは他よりも安全ですか?
回答:
SSHは公開鍵と秘密鍵のペアを使用するため
id_rsa
、RSA秘密鍵(素数に基づく)も使用します。これは、id_dsa
DSA秘密鍵(指数に基づく)よりも安全です。秘密鍵を安全に保ち、自分の鍵id_rsa.pub
とid_dsa.pub
公開鍵を広く共有します。
コンピュータの乱数ジェネレータが標準以下の場合、DSAには推測可能なパラメータがあり、秘密鍵が明らかになります。 ECDSA(DSAの楕円曲線アップグレード)も同様に脆弱です。優れた乱数があっても、DSAには他の強みの懸念があります(これらはDiffie-Hellmanにもあります)。
OpenSSHは安全でない1024ビットキーを作成し(回避策)、デフォルトでDSAを無効にします。
楕円曲線暗号は、鍵のサイズが小さいほど複雑さが増します。 Ed25519(平面モデルの楕円曲線の複雑さに基づく)は、干渉が想定されていないため、推奨される実装です(漏えいした文書では、米国NSAが暗号化規格を弱めていることが示されています)。
残念ながら、Ed25519はまだかなり新しく、OpenSSH 6.5またはGnuPG 2.1が必要です(完全なリストを参照)。
4096ビットのRSA鍵サイズは、Ed25519に匹敵する複雑さを持つ必要があります。
Ed25519は、RSAへのエクスプロイトの適用がかなり困難であると予想されますが、RSAがDSAと同じ強度の懸念に対して脆弱である可能性があるという懸念のため、RSAよりも優先されます。
はい、rsaはより安全であると考えられています。
2014年10月、OpenSSH 7(Ubuntu 16.04LTSのデフォルト)は、DSAのデフォルトサポートを無効にしました。これは、DSAが推奨されない方法であることを強く示しています。
https://www.gentoo.org/support/news-items/2015-08-13-openssh-weak-keys.html
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
、デフォルトでクライアントがより良いアルゴリズムに自動的に移行できるようにする予定です。
ユーザーは、このオプションを手動で有効にすることを検討できます。