Вопрос

Два клиента Алиса и Боб используют сервер для входа в систему и обмена сообщениями через сервер.При входе в систему они оба отправляют свои открытые ключи для хранения на сервере.Когда Алиса хочет поговорить с Бобом, она шифрует симметричный ключ открытым ключом Боба и отправляет его Бобу через сервер.

Как я могу быть уверен, что сервер не создаст свою собственную пару открытых ключей и не отправит ее Алисе вместо открытого ключа Боба.Таким образом, сервер сначала расшифрует то, что отправила Алиса, и снова зашифрует его, используя настоящий открытый ключ Боба.

Спасибо

Это было полезно?

Решение

Поскольку Алиса и Боб не могут доверять серверу, им необходимо найти другой способ подтверждения ключей друг друга.Одна из возможностей – полагаться на другую сторону.Если Боб доверяет Кэндис (и знает открытый ключ Кэндис), которая знает Алису, Кэндис может подписать открытый ключ Алисы, а затем отправить подписанную версию Бобу.Это называется сеть доверия.

Другие советы

Подписав сертификат Боба доверенной третьей стороной (Verisign, ваша корпорация, сеть доверия и т. д.) или попросив Боба отправить свой сертификат Алисе по отдельному безопасному внешнему пути (передав ей USB-ключ лично например).

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

В криптографии вы — это то, что вы знаете.Если вы хотите избежать MITM, тогда Алиса должна иметь представление о том, кто такой «Боб», а это означает, что Боб должен знать некоторый элемент данных, которого не знает злоумышленник.Здесь вашим злоумышленником является сервер, который идеально расположен для организации атаки.

Итак, вопрос:кто такой Боб?Как сервер «не-Боб»?

Например, «Боб» можно определить как:«Боб — это человек, у которого есть водительские права с надписью «Боб».Или:«Боб — это тот парень, с которым я встретился в баре и пил пиво».

Использование асимметричной криптографии позволяет свести проблему к вопросу доверия к открытому ключу.Алиса будет использовать то, что, по ее мнению, является открытым ключом Боба.Следовательно, Алисе нужен только какой-то способ убедиться, что ее открытый ключ действительно принадлежит Бобу.Право собственности на открытый ключ определяется контролем соответствующего закрытого ключа:Открытый ключ Боба — это ключ, закрытый ключ которого находится под исключительным контролем Боба (например,только Боб знает этот ключ, или закрытый ключ находится в аппаратном токене (смарт-карте), который Боб хранит в своем кошельке).

Основное решение — прямой обмен открытым ключом.Когда Алиса встретила Боба в баре, они передали друг другу свои открытые ключи.Таким образом, Алиса может доверять открытому ключу Боба «по определению».Для облегчения обмена (особенно после нескольких кружек пива) Алиса и Боб могут обмениваться только «отпечатками пальцев», т.е.хэш-значения, вычисленные по открытым ключам.Эти значения короче открытых ключей (например,128 бит вместо более тысячи бит для типичного открытого ключа RSA) и достаточны для проверять что данный открытый ключ соответствует.В этой конфигурации на сервере есть хранилище открытых ключей, а Алиса и Боб пересчитывают отпечатки пальцев только для того, чтобы убедиться, что сервер не играет в фальшивые игры.

Более продвинутое решение, которое устраняет необходимость непосредственного употребления алкоголя, заключается в использовании сертификаты.Сертификат – это коробка, в которой находится личность (например.имя, например «Боб») и открытый ключ.Коробка подписана Центр сертификации (Калифорния):Центр сертификации утверждает, что открытый ключ действительно принадлежит Бобу, применяя его подпись.Если Алиса знает открытый ключ ЦС, она может проверить подпись на сертификате, а затем получить доверие к связи между открытым ключом и личностью, содержащейся в сертификате.

Сертификация – это делегирование доверия.Алиса делегаты ее доверие к СА;предположительно, ЦА (назовем его Чарли) пошел в бар, чтобы встретиться с Бобом;через сертификат Чарли говорит Алисе:«да, это действительно ключ Боба, он показал его мне после третьей пинты».Здесь все становится немного неясно, потому что делегировать доверие непросто (особенно если Чарли имеет привычку пьянствовать).Делегирование может пойти дальше, когда центр сертификации подписывает сертификат для другого центра сертификации.Здесь Чарли говорит Алисе:«Я не встречался с Бобом, но я встретил Дафну, которая, возможно, встречалась с Бобом и действовала как CA».Алиса, используя как сертификат, выданный Чарли Дафне, так и сертификат, выданный Дафной Бобу, может проверить, что цепь подписей.

Сложный момент здесь в том, что, хотя Алиса может знать Чарли и доверять ему в его способности правильно идентифицировать Боба при встрече, даже под воздействием галлона Гиннесса, Алиса не знает Дафну.В цепочке Алиса-Чарли-Дафна-Боб Алиса должна не только верить, что Чарли надежен (он делал правильно опознать Дафну), но также и то, что Чарли не был легковерным, т.е.что Чарли отказался бы подписать сертификат для Дафны, если бы Дафна сама не заслуживала доверия.В практических ситуациях доверие быстро ухудшается, когда его делегируют.

При использовании сертификатов в основном возможны две структуры:

  • Иерархический ЦС:существует один или несколько «корневых центров сертификации», которые по своей конструкции известны всем.Центр сертификации делегирует полномочия другому центру сертификации (т.он подписывает сертификат с удостоверяющим личность условным флагом, который гласит:«данному открытому ключу можно доверять с целью проверки подписей на сертификатах») только в рамках договорного соглашения, которое устанавливает юридическую ответственность обоих центров сертификации в отношении сертификации.Это означает, что делегирование формально определено, а это так бывает непросто.Сертификационный контракт, совместимый с требованиями юриста, обычно называемый «Заявлением о политике сертификации» (CPS), представляет собой документ объемом 200 страниц.

  • Сеть доверия:все действуют как CA.В отсутствие «формальной надежности» каждая отдельная цепочка вызывает лишь очень небольшое доверие.Это должно быть компенсировано огромными цифрами.Алиса примет ключ Боба, только если сможет проверить несколько (много) различных цепочек, которые ведут к Бобу, проходя через разных участников.Например, Алисе потребуется цепочка Чарли-Дафна-Боб, а также цепочки Элайджа-Фиона-Боб и Джеральд-Хиллари-Иван-Боб.Они все пьяницы, но они могут быть коллективно надежный, поскольку фальшивому Бобу придется заплатить много раундов, чтобы развратить одного участника каждой из цепочек, которые использует Алиса (если Алисе потребуется н цепочки с разными сертификатами, то злоумышленник должен повредить как минимум н участники).

Таким образом, сертификация – это в основном вопрос процедуры:кто такой ЦС, что проверяет ЦС перед выдачей (подписью) сертификата, как все это обстоит с юридической точки зрения и так далее.Эти процедуры по своей сути сложны и должны поддерживаться деталями формата сертификата (например, флагом «этот открытый ключ является ключом CA»).В настоящее время определены два основных стандартных формата: Х.509 и ПГП.X.509 имеет большую поддержку иерархического центра сертификации и представляет собой очень запутанную путаницу стандартов, форматов, практик и комитетов.PGP (стандартизованный под названием «OpenPGP») не имеет реальной поддержки иерархического CA;он предназначен для использования с сетью доверия.OpenPGP проще, чем X.509, но более ограничен, особенно если вы хотите, чтобы сертификаты имели сильное юридическое значение.

Для IM-сервера все это, скорее всего, будет излишним.Понятие идентичности, которого на самом деле хочет Алиса, вероятно, является понятием повторение:«Этот Боб — тот же Боб, с которым я вчера болтал».Алиса не знает Боба заранее, но разговор с ним однажды устанавливает его личность в глазах Алисы.Она просто не хочет, чтобы ее обманул очередной Боб.Для этого подойдет простой процесс, такой как «Программное обеспечение Алисы сохраняет объявленный открытый ключ любого нового обмена сообщениями и использует его впоследствии».Помните, что ключевым моментом является правильное определять какое понятие идентичности вы ищете.

Если вы не контролируете сервер, вы не сможете.Если, конечно, вы уже не знаете открытый ключ Боба, но тогда….Я думаю, что у вас здесь проблема курицы и яйца.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top