Децентрализованная аутентификация пользователя - возможно? - PullRequest
3 голосов
/ 21 июня 2011

Я разрабатываю полностью распределенное приложение для обмена сообщениями P2P.

Редактировать: Не просто любое приложение для обмена сообщениями - особенно публичный форум. Сообщения передаются от соседа к соседу, поэтому сообщения могут поступать от другого участника, кроме первоначального автора. Тайна общения не важна. Однако проверка автора сообщения имеет жизненно важное значение.

Проблема нуждается в представлении:

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

Вопрос: Может ли это быть реализовано в чистом P2P?

Предположим, что каждый клиент хранит полный набор учетных данных пользователя. Разница, конечно, в том, что клиентам нельзя разрешить их просматривать - следовательно, они будут храниться в зашифрованном формате. Зашифрованные учетные данные должны быть проверены на равенство с другим набором зашифрованных учетных данных без полной расшифровки любого набора .

Можно ли это сделать? Есть ли лучший способ?
(Помните: 100% P2P. Нет серверов.)

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Вам нужно взглянуть на PKI . По сути, пользователям назначается пара ключей, открытых и закрытых. Чтобы подписать сообщение, просто зашифруйте его своим закрытым ключом. Каждый может расшифровать его с помощью вашего открытого ключа, и поэтому, если это работает, он ДОЛЖЕН быть подписан вами.

Есть целый ряд вопросов, которые нужно понять (в первую очередь, обмен ключами), и именно здесь возникает ответ «паутина доверия» ...

Проблема, которую он решает, по сути - «Откуда мы знаем, что открытые ключи, которые мы получаем, действительно принадлежат тому, кому мы считаем, что они принадлежат?»

1 голос
/ 21 июня 2011

Я предлагаю вам взглянуть на модель под названием Сеть доверия .Он используется, например, PGP для децентрализации аутентификации.

Эта цитата обобщает это довольно хорошо:

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

...