Я собираюсь использовать 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.)