Как ECDSA используется для обмена ключами? - PullRequest
0 голосов
/ 07 октября 2018

Когда вы переходите на google.com, сертификат в разделе «Алгоритм открытого ключа субъекта» показывает:

 Elliptic Curve Public Key
 ANSI X9.62 elliptic curve prime256v1 (aka secp256r1, NIST P-256)
 Key size: 256 bits

, что, по-видимому, является ECDSA.Я думал, что ECDSA используется только для подписи / подписей, а не для обмена ключами.Чего мне не хватает?

1 Ответ

0 голосов
/ 07 октября 2018

Ключ не ограничивает это. Большинство ключей эллиптической кривой (за исключением Бернштейна), включая этот, технически можно использовать для подписания ECDSA, соглашения о ключе ECDH или ECMQV или шифрования ECIES.Кодировка была установлена ​​X9.62, потому что она была выпущена первой, но те же кривые, значения ключей и кодировка используются другими операциями.(Многие приложения также используют точечное кодирование, впервые созданное X9.62, но здесь есть некоторые различия.)

Но сертификат имеет. Сертификат (также) имеет Расширение KeyUsage установлено на digitalSignature (а расширение ExtendedKeyUsage установлено на id-kp-serverAuth).Это означает, что при использовании в TLS он может использоваться только для подписи ECDSA для аутентификации сервера.

TLS / SSL часто использует сертификаты только для подписи. В настоящее время большинство соединений TLS используют «эфемерные» ключи(не в сертификате) для соглашения о ключах в сочетании с подписью ключом сертификата (или, точнее, частным ключом, совпадающим с сертификатом publickey) для аутентификации сервера и, возможно, но редко, аутентификации клиента. Это обеспечивает (Совершенную) прямую секретность , что означает, что даже если приватный ключ сервера будет впоследствии скомпрометирован, записи предыдущих сеансов не могут быть расшифрованы, поэтому их содержимое остается безопасным (по крайней мере, от этой атаки;SSL / TLS охватывает только транспорт и никогда не защищает от компрометации ни в конечной точке, ни во время, ни после сеанса).В первые дни использования SSL люди часто не беспокоились о PFS, но после того, как Сноуден сделал множество людей осведомленными о программах массового наблюдения - особенно неопытных людей, таких как менеджеры и начальники, а также пользователи и клиенты, - эти возможности стали намного ширетребуется или рекомендуется, и используется.

Для TLS1.0-1.2 (и SSL3, но вы больше не должны использовать его, потому что он не работает) Соглашение о ключе и подпись (аутентификация на сервере) связаны в наборе шифров: всекомплекты шифров, которые используют сертификат ECDSA для аутентификации сервера, используют соглашение о ключе ECDHE, а все комплекты шифров, которые используют сертификат DSA * для соглашения об использовании ключа (целое число) DHE;E в DHE и последний E в ECDHE для эфемерного.Поскольку RSA поддерживает как подписывание, так и шифрование, ключ сертификации RSA можно использовать для передачи ключей (шифрование), но это больше не рекомендуется, или его можно использовать для подписания любого типа соглашения о эфемерном ключе.(* Для истерического изюма Стандарты SSL / TLS используют DSS для обозначения DSA.) Для TLS 1.3 эти алгоритмы теперь выбираются отдельно, но использование некоторого соглашения о эфемерном ключе практически требуется в общедоступной сети, а использование некоторого сертификата подписи требуется почтивсегда, поэтому они, вероятно, будут использоваться в тех же комбинациях, что и сейчас, за исключением того, что шифрование только по RSA больше не разрешено.

См .:
https://security.stackexchange.com/questions/20803/how-does-ssl-work (Великая эпопея на Урсине)
https://security.stackexchange.com/questions/3638/security-of-pki-certificates-certificate-authorities-forward-secrecy
https://security.stackexchange.com/questions/8343/what-key-exchange-mechanism-should-be-used-in-tls
https://security.stackexchange.com/questions/35471/is-there-any-particular-reason-to-use-diffie-hellman-over-rsa-for-key-exchange

...