Какой заказ правильный? ECDSA работает до ECDH или после ECDH?
Меня смущает порядок выполнения ECDSA и ECDH, который запускается первым?
Поскольку ECDH не может избежать присоединения MITM, ECDSA используется для проверки сущности. Так ECDSA должен работать до ECDH?
Или это не имеет значения вообще?
1 ответ
Поскольку ECDH не может избежать атаки MITM
Во-первых, вот один из многих способов решения этой проблемы с использованием RSA вместо DSA (или ECDSA): клиент перед отправкой своего открытого ключа ECDH (или DH) по проводам может зашифровать этот открытый ECDH (или DH) ключ с открытым ключом RSA сервера. И таким образом, сервер является единственным узлом, который знает ключ ECDH клиента. Поэтому обе стороны защищены от человека в середине атаки. Конечно, использование RSA для шифрования другого ключа может потребовать OAEP.
Или это не имеет значения вообще?
В вашем случае, используя ECDSA вместо RSA, вы не сможете ничего зашифровать. Таким образом, вы должны иметь взаимную аутентификацию в протоколе, который вы разработаете: ваш сервер и ваш клиент должны были предварительно обменять свои открытые ключи ECDSA или иметь какую-то PKI с каким-то корневым сертификатом для аутентификации удаленного открытого ключа ECDSA. Наконец, клиент и сервер просто должны выполнить эти шаги в следующем порядке:
- подписать свой открытый ключ ECDH своим закрытым ключом ECDSA,
- отправить эту информацию другому хосту,
- получить эту информацию от другого хоста,
- проверить подпись,
- если проверка не удалась, перестань говорить,
- если подпись проверена правильно, выполните завершение алгоритма DH.