sshが使用するRSA、DSA、およびECDSAキーの違いは何ですか?


13

私の/etc/ssh/ディレクトリには、3つの異なるタイプのsshキーがあることがわかります。

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

sshのRSA、DSA、およびECDSAキーの違いは何ですか?3つすべてが必要ですか?

回答:


9

それらは、異なる暗号化アルゴリズムを使用して生成されたキーです。SSHを使用する場合、WiFiのさまざまな暗号化方法(WPA2、WPA、WEPなど)を選択する機能にいくらか似た、さまざまな形式の暗号化を使用することを選択できます。

SSHは公開鍵暗号化を使用します。つまり、SSHサーバーに接続すると、公開鍵がブロードキャストされ、そのサーバーに送信されるトラフィックをさらに暗号化できます。サーバーがRSAを使用するように構成されている場合、RSAアルゴリズムによって生成されたキーになります。

コンピュータは、質問にリストしたキーファイルから独自のRSA公開キーを送り返します。サーバーは、あなたに接続して返信するためにこのキーを必要とします。

接続する特定のSSHサーバーは、これらのアルゴリズムのいずれかを使用するように構成されている可能性があるため、3つのキーはすべてコンピューターに存在します。コンピューターは、サーバーが使用するタイプと一致する一意のキーを送り返します。キーは同じアルゴリズムによってコンピューターで生成されています。

その他のリソースは次のとおりです。

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/RSA_(algorithm)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA


2
3つすべてが存在する理由、sshキーの目的、およびキーの共通点について簡単に説明しました。キーは暗号化アルゴリズムを使用します。RSA、DSA、およびECDSAキーの違いは何であるかについてお話ししなかったこと。
Enkouyami

6

それらすべてが必要ですか?
いいえ、sshサーバーに必要なのは1つだけで、クライアントはssh接続用にその1種類のキーのみをサポートする必要があります。


RSA、DSA、ECDSA、EdDSA、およびEd25519はすべてデジタル署名に使用されますが、暗号化に使用できるのはRSAのみです。

RSARivest–Shamir–Adleman)は、最初の公開鍵暗号システムの1つであり、安全なデータ伝送に広く使用されています。セキュリティは整数の因数分解に依存しているため、安全なRNG(Random Number Generator)は必要ありません。DSAと比較して、RSAは署名の検証は高速ですが、生成は低速です。

DSAデジタル署名アルゴリズム)は、デジタル署名用の連邦情報処理標準です。セキュリティは、離散対数問題に依存しています。RSAと比較して、DSAは署名の生成は高速ですが、検証は低速です。不正な番号ジェネレータを使用すると、セキュリティが破られる可能性があります。

ECDSA楕円曲線デジタル署名アルゴリズム)は、DSA(デジタル署名アルゴリズム)の楕円曲線実装です。楕円曲線暗号化は、より小さな鍵でRSAと比較的同じレベルのセキュリティレベルを提供できます。また、悪いRNGに敏感であるというDSAの欠点も共有しています。

EdDSAエドワーズ曲線デジタル署名アルゴリズム)は、ツイストエドワーズ曲線に基づいたSchnorr署名のバリアントを使用したデジタル署名スキームです。署名の作成はEdDSAでは決定論的であり、そのセキュリティは特定の離散対数問題の難治性に基づいているため、すべての署名に高品質のランダム性を必要とするDSA&ECDSAよりも安全です。

Ed25519EdDSA 署名スキームですがSHA-512 / 256Curve25519を使用しています。これは、DSA、ECDSA、およびEdDSAよりも優れたセキュリティ提供する安全な楕円曲線であり、さらに優れたパフォーマンスを備えています(人間には認識できません)。


その他の注意事項
RSAキーは最も広く使用されているため、最もよくサポートされているようです。

ECDSA(OpenSSH v5.7で導入)は、DSAよりも計算上軽いですが、処理能力が非常に低いマシンを使用しない限り、違いは目立ちません。

のとしてのOpenSSH 7.0、SSHは、もはやデフォルトでDSA鍵(SSH-DSS)をサポートしていません。SSH規格(RFC 4251以降)に従って、どこでも機能するために使用されるDSAキー。

Ed25519はopenSSH 6.5で導入されました


1
それはEdDSAまたはECDSAですか?
ムル

@muruそれはECDSAです。ただし、両方の情報で回答を更新し、リンクを修正します。
Enkouyami

私が見つけられなかったのは、EdDSAがOpenSSHで導入されたときでした。
Enkouyami

量子コンピューターはそれらすべてを破壊することができますか?
Kjeld Flarup

@KjeldFlarup、はい; security.stackexchange.com/questions/211587/…に対する回答とコメントに基づいて、量子コンピューターはそれらすべてを破壊する可能性があります。
エンコウヤミ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.