Я пытаюсь понять, как выполнить аутентификацию в сети P2P без центрального сервера. Учитывая сеть без центрального доверенного устройства и PKI, как можно быть уверенным в подлинности открытых ключей?
Обычно открытые ключи подписываются каким-либо центральным доверенным органом, который гарантирует подлинность ключей. Однако в сети P2P без центрального сервера такой единицы не существует. Это поднимает вопрос о том, как доверять подлинности открытых ключей.
Можно ли использовать подход сети доверия? Сколько пиров должны подписать открытый ключ, прежде чем ему можно будет доверять?
Можно ли использовать распределенный реестр или цепочку блоков?
Есть ли альтернативы PKI в этом сценарии?
Пример проблемы:
Пользователь userA может сгенерировать свою пару ключей и распространить свой открытый ключ по сети. Затем второй пользователь, userB, может сгенерировать новую пару ключей и распространить открытый ключ по сети, утверждая, что он принадлежит пользователю A. Затем, когда я хочу отправить сообщение пользователю А, я найду два открытых ключа. Тот, который сгенерирован пользователем А, и поддельный, созданный пользователем Б. Без центрального доверенного устройства для подписи ключа у меня не будет возможности узнать, какой ключ на самом деле принадлежит пользователю А, и я могу в конечном итоге общаться с пользователем Б, полагая, что это пользователь А.
Вопрос похож на этот, но, надеюсь, за последние 7 лет была проделана некоторая работа.
Как выполнить аутентификацию без центрального сервера в P2P?