ECDH не полагается только на открытые ключи; это только единственные компоненты, которые необходимо отправить. Вместо этого он зависит от двух пар открытый/закрытый ключ, сгенерированных обеими сторонами. Хитрость в соглашении о ключах Диффи-Хеллмана (DH) заключается в том, что вычисляется общий секрет с учетом закрытого ключа и открытого ключа другой стороны. Этот общий секрет идентичен с обеих сторон, если и только если используются правильные закрытый и открытый ключи.
Открытый и закрытый ключи пары связываются во время создания пары ключей; открытый ключ DH рассчитывается из базовой точки кривой и закрытого ключа. Эта конкретная связь между ключами требуется для вычисления одного и того же общего секрета. Для успешного выполнения этого вычисления также требуется, чтобы оба ключа использовали одни и те же параметры домена; другими словами, открытые ключи должны быть на одной кривой.
Разумеется, третья сторона/противник может скопировать открытый ключ любой из сторон. Однако это не поможет злоумышленнику, поскольку у него нет доступа ни к одному из сопровождающих закрытых ключей. Таким образом, никакая другая сторона, кроме тех, кто участвует в соглашении о ключах, не сможет вычислить один и тот же общий секрет; вам нужен один из закрытых ключей, чтобы сделать это.
В дальнейшем злоумышленник может создать другую пару ключей. Если открытый ключ этой пары ключей принят другими сторонами, можно создать один или два различных общих секрета.
SSL/TLS, например, в основном использует эфемерные (временные) ключи; Принимается любой открытый ключ ECDH. Это означает, что такая форма DH не предлагает аутентификацию вовлеченных сторон. Таким образом, атака «человек посередине» (MitM) возможна, если не используются другие меры аутентификации. TLS для использования в браузерах использует для этого сертификаты сервера/подпись сервера.
Но эта часть дает ответ на вопрос, который вы (пока) не задавали.
Иногда слово «секретный ключ» неправильно заменяют на «закрытый ключ» даже в книгах по криптографии. Это очень сбивает с толку, так как очевидно невозможно иметь общий закрытый ключ: "общий" и "частный" - две противоположности. Диффи-Хеллман не вычисляет общий закрытый ключ, он создает общий секрет, который затем используется для вычисления одного или нескольких сеансовых ключей.
person
Maarten Bodewes
schedule
04.10.2018