Рейтинг:1

X3DH и обмен ключами между идентификационным ключом Алисы и предварительно подписанным ключом Боба (DH1)

флаг in

Я знакомлюсь с фазой обмена ключами Signal и, насколько я понимаю, все 3 обмена между эфемерным ключом Алисы и всеми ключами Боба из пакета, у меня есть некоторые мысли об обмене ключами между Идентификационный ключ Алисы и Ключ с предварительной подписью Боба.

Я знаю, что это нужно для аутентификации Алисы и подтверждения того, что у нее есть закрытый ключ личности, но можно ли заменить этот обмен одним из:

  1. Идентификационный ключ Алисы <-> Идентификационный ключ Боба
  2. Идентификационный ключ Алисы <-> Одноразовый ключ Боба
fgrieu avatar
флаг ng
Обсуждаемый протокол не получил широкой известности. Таким образом, ссылка на описание, используемое в качестве ссылки, может помочь.
Рейтинг:2
флаг us

Если что-то в протоколе Signal выглядит удивительным, то причина этого, вероятно, связана с компрометацией ключа. Главное, о чем следует помнить, это тот факт, что «идентификационные ключи» являются долговременными секретами.

Предположим, что у Алисы есть долгосрочный ключ $а^*$ а у Боба долгосрочный ключ $б^*$, с соответствующими открытыми ключами $г^{а^*}$ и $г^{б^*}$. Они могут выполнить обычное соглашение о ключе Диффи-Хелмана с этими долгосрочными ключами и согласиться с секретом. $г^{а^*б^*}$ и приступайте к обмену зашифрованными сообщениями. Но мы заботимся о компрометация долговременных ключей. Если долгосрочный ключ Алисы $а^*$ скомпрометирован в более позднее время, злоумышленник может вычислить $г^{а^*б^*}$ и нарушать конфиденциальность зашифрованных сообщений (в все связей Алисы!).

Если вы знакомы с Signal, то, вероятно, знаете, как Signal восстанавливается после компрометации ключа в обычных ситуациях. Мы используем «непрерывный асимметричный храповик». Алиса отправляет новый/свежий $г^{а_я}$ с каждым сообщением, и Боб отправляет новое $г^{b_j}$ с каждым сообщением. В любое время они могут использовать самые последние $г^{а_я}$ и $г^{b_j}$ для получения текущего общего ключа $g^{a_i b_j}$.

Важным моментом здесь является то, что $a_i$ и $b_j$ ключи временный. Алиса может выбросить $a_i$ после того, как Боб признает, что он перешел к использованию $г^{ а_{я+1}}$. Если злоумышленник вовремя скомпрометирует Алису $t$, этот злоумышленник узнает только $a_t$. Через некоторое время Алиса и Боб перестанут использовать $a_t$ и начать использовать $а_{т+1}$, и злоумышленник перестанет читать свои сообщения.

Таким образом, если непрерывный асимметричный храповик — это способ восстановления после компрометации ключей, а нас беспокоит долгосрочный (идентификационные) ключи скомпрометированы, то естественным решением является сделать асимметричный храповик, как только соединение будет установлено (используя идентификационные ключи).

Вот как мне нравится думать о X3DH. Думайте о долгосрочных идентификационных ключах как о $a_0$ и $b_0$. Стороны могут согласовать ключ $г^{а_0 б_0}$. Они также немедленно отправляют следующие сообщения в своем асимметричном храповике: Алиса отправляет $г^{а_1}$ и Боб отправляет $г^{b_1}$. Затем будут заключены ключевые договоренности, которые дают $г^{а_1 б_0}$ и $г^{а_0 б_1}$. X3DH объединяет все 3 этих ключевых соглашения. Важно, $a_1$ и $b_1$ находятся кратковременно секреты - уникальные для этого сеанса и сбрасываются после того, как храповик проходит мимо них. Если долгосрочный ключ, как $a_0$ происходит утечка, даже первые сообщения в соединении защищены, потому что стороны упреждающе продвинули храповик на один шаг, включив свежие значения $а_1, б_1$.

В этом суть X3DH. Спецификация Signal выглядит немного иначе, чем то, что я описал, потому что одна из целей — позволить сторонам устанавливать соединение асинхронно. Таким образом, мы позволим Алисе (например) предварительно вычислить и опубликовать $г^{а_1}$ заранее, как «подписанный предварительный ключ». Когда Боб хочет установить связь с Алисой в первый раз, он получает $г^{а_1}$ а затем отправляет свой $г^{b_1}$ ей. На мой взгляд, X3DH $г^{а_1}$ и $г^{b_1}$ имеют симметричные роли, но в Signal их роли не совсем одинаковы — одна из них вычисляется заранее («подписанный предварительный ключ Алисы»), а другая вычисляется в момент подключения («эфемерный ключ» Боба). В спецификации сигнала вы увидите, что другая терминология нарушает то, что в противном случае является симметрией в протоколе.

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

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