クライアントとして、会社のAPIを使用しています。接続できるようにするには、_CipherString = DEFAULT@SECLEVEL = 1
_を使用して_/etc/ssl/openssl.cnf
_のセキュリティレベルを_OpenSSL 1.1.1d
_に下げる必要があります。
次に、_openssl s_client -connect <servername>:443
_を実行すると、次のようになります。
_...
No client certificate CA names sent
Peer signing digest: SHA1
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 4499 bytes and written 443 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: XXXXXXX
Session-ID-ctx:
Master-Key: XXXXXXXX
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1579345646
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
_
Google Chromeと言う:
_Connection - obsolete connection settings
The connection to this site is encrypted and authenticated using TLS 1.2, ECDHE_RSA with P-256, and AES_256_GCM.
The server signature uses SHA-1, which is obsolete. Enable a SHA-2 signature algorithm instead. (Note this is different from the signature in the certificate.)
_
質問:
Peer signing digest
_とSignature hash algorithm (Certificate)
の関係は何ですか?追加情報:
_openssl s_client -connect <servername>:443 -sigalgs <algorithm>+<hash>
(For OpenSSL 1.1.1d: SECLEVEL=2)
ECDSA+SHA512 sslv3 alert handshake failure
ECDSA+SHA384 sslv3 alert handshake failure
ECDSA+SHA256 sslv3 alert handshake failure
ECDSA+SHA1 sslv3 alert handshake failure
RSA+SHA512 sslv3 alert handshake failure
RSA+SHA384 wrong signature type
RSA+SHA256 wrong signature type
RSA+SHA1 no suitable signature algorithm
(For OpenSSL 1.1.1d: SECLEVEL=1)
ECDSA+SHA512 sslv3 alert handshake failure
ECDSA+SHA384 sslv3 alert handshake failure
ECDSA+SHA256 sslv3 alert handshake failure
ECDSA+SHA1 sslv3 alert handshake failure
RSA+SHA512 sslv3 alert handshake failure
RSA+SHA384 connects with peer signing digest SHA1 type RSA
RSA+SHA256 connects with peer signing digest SHA1 type RSA
RSA+SHA1 connects with peer signing digest SHA1 type RSA
(For OpenSSL 1.0.2k)
ECDSA+SHA512 sslv3 alert handshake failure
ECDSA+SHA384 sslv3 alert handshake failure
ECDSA+SHA256 sslv3 alert handshake failure
ECDSA+SHA1 sslv3 alert handshake failure
RSA+SHA512 connects with peer signing digest SHA1 type RSA
RSA+SHA384 connects with peer signing digest SHA1 type RSA
RSA+SHA256 connects with peer signing digest SHA1 type RSA
RSA+SHA1 connects with peer signing digest SHA1 type RSA
_
ピア署名ダイジェストと署名ハッシュアルゴリズム(証明書)の関係は何ですか?
ピア署名ダイジェストは、TLSハンドシェイク中に署名するときにピアが使用するアルゴリズムです-参照 OpenSSLのピア署名ダイジェストとはs_client接続? 。これは証明書とは無関係です。 署名ハッシュアルゴリズム(証明書)は、代わりに、証明書の発行者が証明書に署名するために使用するダイジェストアルゴリズムです。
https://www.ssllabs.com/ssltest/ のときにSHA1に接続される理由はAになります。
両方の場合のセキュリティ要件は異なります。 ピア署名ダイジェストは、TLSハンドシェイク中に破壊されないように十分に強くなければなりません。 署名ハッシュアルゴリズム(証明書)は、発行者の証明書のキーが有効である限り壊れないようにする必要があります。つまり、現時点では、TLSハンドシェイクの保護にはSHA-1で十分ですが、証明書の署名には不十分です。
クライアントとして何かできますか?
TLS 1.2では、クライアントはハンドシェイクでサポートされているダイジェストアルゴリズムを送信できます。クライアントがSHA-1を提供しない場合、サーバーはSHA-1を使用しないでください。つまり、クライアントが提供する他のアルゴリズムを使用する可能性があるか、接続が失敗します。 -sigalgs
オプションopenssl s_client
。サーバーは、サポートされているアルゴリズムに関するクライアントからの情報を単に無視する可能性があることに注意してください。これは、セットアップではそうであるようです。この場合、クライアントとしてできることは何もありません。
サーバーで何を変更すればよいですか?
サーバーについては何もわかっていないため、ここでは推奨事項を実行できません。サーバーによっては、TLSハンドシェイクの署名アルゴリズムを設定するオプションがある場合と、そのようなオプションがない場合があります。