Рейтинг:0

ECDHE без начального рукопожатия

флаг tz

Можно ли заключить ключевое соглашение с эфемерно-эфемерным ECDH, не требуя сначала начального рукопожатия?

Возможно ли иметь соглашение о ключе в том же сообщении, что и зашифрованные данные с ECDHE?

Я знаю, что это возможно с эфемерно-статическим ECDH, но это не обеспечивает идеальной прямой секретности. А с ephemeral-static вам нужен безопасный способ хранения статического закрытого ключа.

kelalaka avatar
флаг in
[Алгоритм Диффи-Хеллмана и атака MITM] (https://crypto.stackexchange.com/q/72370/18298) и [Посмотрите, как это выполняется] (https://crypto.stackexchange.com/q/87532/18298). ). См. [secretbox of the libsodium](https://doc.libsodium.org/secret-key_cryptography/secretbox) для второй части.
Рейтинг:1
флаг gb

Можно ли заключить ключевое соглашение с эфемерно-эфемерным ECDH, не требуя сначала начального рукопожатия?

Да, однако это уязвимо для атак «человек посередине» (MITM).

Возможно ли иметь соглашение о ключе в том же сообщении, что и зашифрованные данные с ECDHE?

Чтобы получатель мог использовать эфемерный ключ, он должен отправить его, прежде чем вы сможете использовать его для обмена. В качестве альтернативы они могут загрузить несколько эфемерных ключей на доверенный сторонний сервер, чтобы отправители могли получить их позже (это то, что делает Signal). Но обычно вы предполагаете, что отправитель просто использует статический ключ получателя, чтобы он знал, что он отправляется нужному человеку. В этом случае вся эфемерная случайность обеспечивается отправителем, поэтому у вас действительно есть KEM (механизм инкапсуляции ключей), а не обмен ключами.

Таким образом, если вы готовы отказаться от аутентификации и рисковать олицетворением / атаками «человек посередине», вы можете достичь идеальной прямой секретности с помощью KEM, и вы можете заставить получателя регулярно менять ключ получения, чтобы им не приходилось беспокоиться о безопасном долговременном хранении (полустатический ключ).

флаг tz
Спасибо. Мы собираемся добавить ECDSA static-static для предотвращения атак MITM и обеспечения аутентификации. Наша проблема сейчас заключается в том, что на Android у нас нет безопасного способа защиты закрытых ключей ECDH (если мы станем эфемерно-статическими).
флаг tz
Не могли бы вы рассказать о хранении эфемерных ключей на сервере? Вы имеете в виду хранение эфемерных открытых ключей ECDH получателей на сервере, верно?
meshcollider avatar
флаг gb
Правильно, тогда, очевидно, получатель должен будет безопасно хранить соответствующие закрытые ключи. Как тогда вы будете управлять статическими ключами для части аутентификации на Android?
флаг tz
Это на самом деле будет работать очень хорошо для нас тогда. Спасибо. Android KeyMaster и KeyStore поддерживают безопасное хранение ключей ECDSA, но не ECDH. iOS Secure Enclave уже много лет поддерживает ECDH, так что Android действительно отстает в этом.
флаг tz
Я предполагаю, что на Android нам придется хранить закрытый ключ ECDH в памяти. Что является большим вопросом безопасности.
meshcollider avatar
флаг gb
Интересно, я не знал, что хранилище ключей Android не поддерживает ECDH. Будет ли это работать? https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec#example:ecdh
флаг tz
Похоже, он использует пару ключей EC, хранящуюся в KeyStore для ECDH. Отлично спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.