Способ отправить ключ шифрования через незащищенное соединение? - PullRequest
1 голос
/ 21 ноября 2010

Я использую утилиту Botan для шифрования. Когда я инициализирую свое соединение с удаленным компьютером, используя SSH, я могу обмениваться ключами через безопасное соединение SSH. Однако иногда я использую inetd для установления соединения, и в этом случае безопасность соединения inetd отсутствует, но мне нужно использовать его для обмена ключами с удаленным компьютером.

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

Что может быть примером такого протокола, который поддерживает Botan?

Ответы [ 2 ]

3 голосов
/ 21 ноября 2010

Без предыдущего доверия или связи через побочный канал, это невозможно сделать.Diffie-Hellman kex позволяет вам установить безопасный канал от других, которые не участвуют в соединении, но вы не можете проверить, что вы общаетесь с предполагаемым получателем.

Классический MITM пример: вы подключаетесь к некоторой удаленной конечной точке, она получает ваш открытый ключ и отправляет вам что-то подписанное этим ключом.Однако у вас нет возможности проверить, отправили ли вы свой ключ в реальный пункт назначения или ответ пришел от злоумышленника - следовательно, у вас есть безопасный туннель, но у вас нет информации, с которой вы безопасно общаетесь (злоумышленник может даже подключиться к вашему предполагаемому месту назначения и проксировать трафик, который проходит через него в незашифрованном виде.хост заранее или через безопасный канал.SSH делает это, используя «отпечатки пальцев» - при первом подключении он спрашивает вас, доверяете ли вы этому хосту, и вы должны проверять отпечатки пальцев по независимому каналу.

2 голосов
/ 21 ноября 2010

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

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

Но для этого нужно было сделать что-то заранее.

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

Одна статья, которую я нашел оченьполезными в таких вопросах были * Программирование компьютера сатаны ", http://www.cl.cam.ac.uk/~rja14/Papers/satan.pdf,, где вы пытаетесь установить безопасную связь с ненадежным системным администратором.

...