Способ для отправки ключа шифрования на небезопасную связь?

StackOverflow https://stackoverflow.com/questions/4239128

Вопрос

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

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

Какой был бы пример такого протокола, который поддерживает ботан?

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

Решение

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

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

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

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

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

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

Но это требовало сделать что-то подходящее.

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

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

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