Один из видов атак, которые мы здесь пытаемся предотвратить с помощью таких механизмов, называется «Ключ Компрометация Олицетворение", где вечеринка получил ваш закрытый ключ (не другой стороны) и пытается выдавать себя за других лиц.
Теперь я попытаюсь ответить на ваши вопросы в другом порядке, так как это имеет для меня больше смысла и должно помочь в глобальном понимании основных условий:
Q.3
- Мне кажется, схемы C(0e, 2s) с двусторонним подтверждением ключа также должны доказывать владение статическим приватным ключом, зачем нужен эфемерный ключ?
Нет, при использовании 2 статических ключей и 0 эфемерных ключей злоумышленник, зная только ваш закрытый ключ, но не закрытый ключ другой стороны, может вычислить тот же общий секрет, что и вы.
Проблема несколько скрыта в тексте, т.е. в 6.3.3.3 сказано:
Успешное завершение процесса подтверждения ключа дает каждой стороне уверенность в том, что другая сторона получила такое же секретное значение Z.
Итак, то, о чем вы получаете подтверждение, на самом деле просто полученный секрет такой же, как у вас, но не в том, что другая сторона действительно использовала свои знания о секретном статическом ключе, который, по ее утверждениям, у нее есть.
Таким образом, здесь вы можете гарантировать, что никто из посредников не вмешается в ваше соглашение о ключах: вы оба получили один и тот же согласованный ключ.
зачем нужен эфемерный ключ?
Поскольку это эфемерный ключ, который мы только что создали, другая сторона не будет знать соответствующий ему эфемерный секретный ключ (при условии, что противник с Только знание вашего статического секретного ключа).
Таким образом, во время согласования ключей, поскольку вы объединяете свой секретный эфемерный ключ с их (заявленным) открытым статическим ключом, если они не знают свой (заявленный) секретный статический ключ они не смогут выполнить один и тот же вывод как вы использовали эфемерный открытый ключ, который вы им отправили.
С эфемерным ключом вот что обычно происходит на вашей стороне:
- вы комбинируете свой эфемерный секретный ключ с их (заявленным) статическим открытым ключом, вы получаете секрет $Z_e$
- вы комбинируете свой статический секретный ключ с их (заявленным) статическим открытым ключом, вы получаете секрет $Z_s$
- вы используете оба $Z_e$ и $Z_s$ в процессе вывода, чтобы получить окончательный общий секрет $Z$
- вы используете процесс подтверждения ключа, чтобы убедиться, что вы оба получили один и тот же общий секрет $Z$
И другая сторона делает примерно то же самое, но вместо этого использует ваш открытый эфемерный ключ.
(Это обобщенное классическое соглашение о ключах C(1e,2s).)
Теперь противник, зная твой секретный ключ может имитировать шаг 2, но не может имитировать шаг 1, поэтому не может правильно выполнить шаг 3 и получит пойманный на шаге 4, если вы используете эфемерный ключ.
Но если у вас нет эфемерного ключа, вы полагаетесь только на шаг 2 в шаге 3, и поэтому олицетворение не обнаруживается на шаге 4.
Это действительно суть того, что говорится в первом условии 5.6.2.2.3.2 (выделено мной):
- Получатель статического открытого ключа вносит эфемерный открытый ключ в процесс согласования ключей, тот, который предназначен для арифметического объединения с заявленным владельцем (т. е.) статический закрытый ключ другой стороны в вычислениях, выполняемых заявленным владельцем. (Если используется соответствующая схема согласования ключей, заявленному владельцу будет предложено продемонстрировать текущее знание своего статического закрытого ключа, успешно выполнив эти вычисления во время транзакции..)
Это означает, что необходимо выполнить шаги 1 и 3.
И тогда у нас есть второе условие:
- Получатель статического открытого ключа также является получателем подтверждения ключа, а заявленный владелец (т. е. другая сторона) выступает в качестве поставщика подтверждения ключа. (Успешно предоставив подтверждение ключа, заявленный владелец может продемонстрировать право собственности на полученный статический открытый ключ и текущее знание соответствующего статического закрытого ключа.)
В основном это означает, что шаг 4 должен быть выполнен, что обеспечивает уверенность в том, что процесс получения ключа был проведен, как ожидалось, и, таким образом, обеспечивает уверенность в том, что шаг 1 не может быть «сфальсифицирован» кем-то, кто не знает секретный статический ключ полученного статического открытого доступа. ключ, но вместо этого ваш собственный секретный статический ключ.
Q.2
- Схемы C(2e, 2s) с двусторонним подтверждением ключа также должны удовлетворять заданным условиям, верно?
Да, обычно так и есть. На самом деле они могут соответствовать гораздо более сильной версии, где вы также получаете гарантию владения (заявленным) секретным эфемерным ключом. Если вы посмотрите на раздел 5.6.2.2.4, схемы C(2e, 2s), которые удовлетворяют условиям 2 и 3, естественным образом удовлетворяют условиям 1 и 2 из 5.6.2.2.3.2.
Обратите внимание, что здесь указаны только модели DH и One Pass Unified, потому что, как сказано в 7.1 (выделено мной):
Если схема MQV (MQV2 или Full MQV) будет использоваться во время транзакции с противником, который владеет скомпрометированным статическим закрытым ключом (или скомпрометированная неявная подпись, соответствующая этому статическому закрытому ключу), злоумышленник может маскироваться под владельца скомпрометированной пары ключей (или как владелец пары статических ключей, соответствующей скомпрометированной неявной подписи). Однако использование модели Full Unified или схемы dhHybrid1 дает противнику дополнительные возможности для маскировки.: если злоумышленник скомпрометирует статический закрытый ключ объекта, то злоумышленник может выдать себя за любой другой объект во время транзакции соглашения о ключе на основе полной унифицированной модели или dhHybrid1 с этим объектом.
Схемы MQV в их «двухпроходных» формах уже устойчивы к этим атакам Key Compromise Impersonation и не требуют дополнительного шага, который делают схемы на основе модели DH или Full Unified, которые подробно описаны в 5.6.2.2.3.2 и 5.6.2.2.4. Вероятно, поэтому они не указаны явно в 5.6.2.2.4.
В.1
И, в конце концов, я думаю, что ответ на ваш первый вопрос естественным образом вытекает из приведенных выше подробностей:
- Расчеты согласования ключей с подтверждением ключа также доказывают владение статическим закрытым ключом, поэтому нет необходимости задавать другие вопросы другой стороне, правильно ли это?
Нет, это также может доказать владение вашим статическим закрытым ключом. Вот почему нам нужны эфемерные ключевые шаги.