Рейтинг:1

Делегирование подписи без секретных ключей

флаг ky

Сценарий: есть объект A, который не может содержать никаких секретных ключей. Конкретным примером может быть: приложение, которое должно иметь открытый исходный код и не может быть изменено. Для отправки любых подписанных сообщений он использует прокси-подписавшего P. P содержит секретный ключ и подписывает от имени A.

Проблема: как получатель сообщения проверяет, что A действительно инициировал сообщение через P, и P не сгенерировал/отправил сообщение без ведома A?

Я наткнулся на некоторые документы, в которых обсуждается отклонение подписавшего доверенного лица, но не смог найти ничего конкретного. Можно ли как-то использовать доказательства zk для решения этой проблемы?

Спасибо.

JAAAY avatar
флаг us
Чтобы получить полный ответ на ваш вопрос, я думаю, вы должны сначала определить свою модель связи и потока. Некоторые вопросы, которые помогут вам ответить на ваш вопрос: Давайте рассмотрим $C$ в качестве клиента, $A$ в качестве приложения и $S$ в качестве подписавшего (в вашем случае это $P$).
JAAAY avatar
флаг us
1. Есть ли у $S$ прямой канал связи с $C$ или он просто отвечает $A$ подписанным сообщением, а $A$ пересылает его $C$? 2. Доверена ли сторона $S$? 3. Существуют ли заранее установленные (двунаправленные?) защищенные каналы связи, если да, то какие из следующих $\{A,S\}$, $\{A, C\}$, $\{C, P\}$? 4. Есть ли у $S$ доступ к $A$ через «белый ящик»? Будет ли поврежденный $S$ иметь полный контроль над $A$ и $S$? Если последний вопрос верен, то, конечно, эта проблема не может быть решена.
rusty avatar
флаг ky
1. S можно рассматривать как почтовый ящик между A и C. A C не разговаривают друг с другом напрямую, а только через S 2. S можно доверять, но с точки зрения C мы все же хотим убедиться, что он не создает/подписывает сообщения сам по себе. Это можно рассматривать как аргумент в пользу этой схемы, где C может каким-то образом проверить, что сообщение исходит от A. 3. Нет предварительно созданных каналов 4. S не имеет никакого контроля над A и C.
poncho avatar
флаг my
Как отличить A от A' (идентичное приложение, работающее на машине злоумышленника, или, возможно, модифицированную версию приложения)? Если у вас нет способа сделать это, я не верю, что это возможно...
JAAAY avatar
флаг us
Полностью согласен с @poncho.
rusty avatar
флаг ky
Учитывая ограничение, что A не может хранить какие-либо секреты, сохранение чего-либо, например ключа/сертификата TLS и т. д., невозможно. Честно говоря, я не могу придумать, как отличить А от А'.

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

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