Назад | Перейти на главную страницу

Если я получу сертификат, подписанный для ECDSA, смогут ли старые браузеры использовать RSA?

Я собираюсь использовать ECDHE-ECDSA, и есть много отличных статей о том, почему (https://hynek.me/articles/harpting-your-web-servers-ssl-ciphers/) и (http://blog.cloudflare.com/ecdsa-the-digital-signature-algorithm-of-a-better-internet), например.

Очевидно, поддержка браузером невелика, но Chrome 30, Internet Explorer 11 в Windows 8, Safari 7 в OS X 10.9 и Firefox 26 поддерживают TLS 1.2.

Я изучил несколько центров сертификации и только несколько подписывающих сертификатов для ECDSA (Verisign / Symantec делает). У меня вопрос: если я получу сертификат, подписанный для ECDSA, и в моей цепочке шифров я вернусь правильно, смогут ли старые браузеры использовать RSA?

У меня такое ощущение, что ответ отрицательный, потому что, если вы подписываете сертификат RSA, вы не можете использовать ECDSA, но я хотел убедиться, прежде чем исключить ECDHE-ECDSA.

Павел

Взгляните на этот вопрос / ответ по Information Security SE:

Возможно ли, что сервер TLS отправит клиенту более одного сертификата для одного и того же сайта?

Собственно говоря, сервер жестяная банка отправить произвольное количество сертификатов клиенту, как часть его Certificate сообщение. Однако, как стандарт говорит:

Сертификат отправителя ДОЛЖЕН быть первым в списке. Каждый последующий сертификат ДОЛЖЕН напрямую удостоверять предыдущий.

Следовательно, действительно совместимый сервер не может отправить выбор сертификатов клиенту и не может ожидать, что клиенты будут использовать какой-либо другой сертификат, кроме первого, который они отправили.

Для поддержка алгоритма подписи, есть стандарт Расширение TLS указано в раздел 7.4.1.4.1, с помощью которого клиент может сообщить серверу в начале рукопожатия (в ClientHello, которое является самым первым сообщением процедуры), какие хэш-функции и алгоритмы подписи она поддерживает. Это позволяет серверу, который владеет, например, сертификатом, подписанным RSA, и сертификатом, подписанным ECDSA, отправлять один или другой, в зависимости от того, что поддерживает клиент. Это типично для TLS: клиент предлагает, сервер выбирает.

(На практике поддержка этого расширения еще не получила широкого распространения. Но на практике все используют RSA и поддерживают RSA.)