Как можно добавить certificate_authorities в сообщение CertificateRequest в TLSv1.3 - PullRequest
1 голос
/ 17 февраля 2020

Я настраиваю взаимную аутентификацию с использованием TLS 1.3 с использованием сервера начальной загрузки и клиента curl для тестирования. В моем хранилище доверенных сертификатов содержатся две цепочки сертификатов, которые загружаются правильно - фактически в этой настройке теста работает взаимная проверка подлинности.

Однако на основе RFC8446 spe c Я пытаюсь получить сообщение CertificateRequest в рукопожатии SSL, содержащее расширение certificate_authorities.

В журнале (-Djavax.net.debug=all) отображается сообщение запроса сертификата от сервера, без certificate_authorities.

javax.net.ssl|DEBUG|13|https-jsse-nio-8443-exec-2|2020-02-17 14:24:15.419 CET|CertificateRequest.java:864|Produced CertificateRequest message (
"CertificateRequest": {
  "certificate_request_context": "",
  "extensions": [
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha1, rsa_pkcs1_sha1]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha1, rsa_pkcs1_sha1]
    }
  ]
}
)

Это расширение необязательно для отправки в CertificateRequest, но я хотел бы включить его в это сообщение, чтобы реальное клиентское устройство могло отправлять правильный сертификат на сервер на основании этого.

1 Ответ

0 голосов
/ 17 февраля 2020

Во время исследования этой проблемы я столкнулся с JDK-8206925 , в котором говорится, что

Текущая реализация TLS 1.3 не поддерживает эту функцию [...]

Так что, по-видимому, это просто открытый вопрос для java (или, по крайней мере, для openJDK java, который я использую).

Хотя я счастлив, что оказался неправ ..

...