FIPS 186-1および186-2の場合、Lは512から1024までの任意の数値で、64の倍数でした。Nは160に固定されていました。
FIPS 186-3では、LとNが次の任意の組み合わせになるように変更されました。
RFC 4253(SSHトランスポート層プロトコル) は次のように述べています。
The resulting signature is encoded as follows:
string "ssh-dss"
string dss_signature_blob
The value for 'dss_signature_blob' is encoded as a string containing
r, followed by s (which are 160-bit integers, without lengths or
padding, unsigned, and in network byte order).
つまり、SSHは2048ビットDSAをサポートしていないということです。それらのサポートを追加するRFCはありませんか?ベンダー拡張はありませんか?
hashの場合:Crossdupe https://crypto.stackexchange.com/questions/15051/why-does-openssh-use-only -sha1-for-signing-and-verifying-of-digital-signatures および https://crypto.stackexchange.com/questions/39983/which-hash-function-is-used-for- signatures-ssh-rsa-and-ssh-dss ですが、おそらくこちらのほうが良いでしょう。
最近の回答 へのリンク https://www.openssh.com/txt/release-7.2 (2016-02-28の)これは現在期限切れを指します- https://tools.ietf.org/html/draft-rsa-dsa-sha2-256- 名前に関係なく、RSAをSHA2にアップグレードするだけです。セクション6では、DSAが削除されたことを説明しています。まだドラフト版の置き換え https://tools.ietf.org/html/draft-ietf-curdle-rsa-sha2-02 。
SSHのIANAレジストリ で、他のRFCがこれを変更していないことを簡単に確認できます。
また、7.0以降のOpenSSHでは、デフォルト(すべて)のDSAが非推奨になり、無効になっています。昨年後半には、ここに多数のQと関連するスタックがありました。例:
OpenSSHがDSAキーを非推奨にした理由
https://unix.stackexchange.com/questions/247612/ssh-keeps-skipping-my-pubkey
https://superuser.com/questions/962918/pubkeyacceptedkeytypes-and-ssh-dsa-key-type
したがって、彼らはDSAの改善を実装する可能性は低く、OpenSSHと互換性のない何かをプッシュする他の誰もが通常、それを未使用にしています。
「申し訳ありません、チャーリー」
FWIWはFIPS 186-3 upを推奨しますがDSAサブグループサイズ(つまりN)に一致するハッシュを使用する実際には必要ありません。OpenSSHssh-keygen
は1024より大きいDSAキーを生成生成しませんが、そのようなキーを他の方法(OpenSSL 1.0.0 up asなど)で生成した場合2010年、またはJava 2014年までに8)OpenSSH ssh
およびsshd
はuseそれ(7.0では、デフォルトの無効化を解除すると、RFCに従ってSHA1で使用されます。これは、新しい186-3サイズが提供することを意図したセキュリティ上の利点を基本的に破棄します(代替を受け入れません。 OpenSSL 0.9.8は、非標準のN = 2048または3072のDSAキーを生成できますが、L = 160のままです。