Допустим, у меня есть сервер, прослушивающий порт 1234. У меня есть клиентское программное обеспечение, которое должно быть в состоянии подключиться к этому порту.Но я хочу, чтобы злоумышленники не могли обойти клиентское программное обеспечение и подключиться к порту другими способами (например, с помощью консоли или другого программного обеспечения).
Доверенное клиентское программное обеспечение и сервер могут совместно использовать секретный ключ, если это необходимо.Я бы предпочел не отправлять такой ключ в виде открытого текста, но данные после аутентификации могут быть в виде открытого текста.В частности, я пытаюсь выяснить, как победить атаку «человек посередине», когда злонамеренный пользователь использует программное обеспечение доверенного клиента для вычисления правильных ответов на вызовы сервера.
Можно ли получить отздесь?
Я мог бы привязать порт прослушивания сервера только к localhost и потребовать, чтобы клиенты сначала получили доступ к машине через ssh.Затем клиентское программное обеспечение может использовать библиотеку ssh для запуска команды на сервере, который подключается к локальному порту (в этом случае злоумышленник не сможет использовать ssh для доступа к компьютеру, поскольку у него не будет пароля).Но тогда весь мой трафик зашифрован, что является дополнительным расходом.Возможно, есть программа, похожая на ssh, которая только выполняет аутентификацию, но затем оставляет канал в незашифрованном виде?
Обновление:
Я провел тест, чтобы определить издержки, связанные с шифрованием всего трафика.
spew.rb выводит 10 миллионов строк по 100 символов.
CONTROL:
fantius@machine> time /home/fantius/spew.rb > /dev/null
real 0m35.015s
user 0m34.934s
sys 0m0.084s
top показывает 25% использования процессора (одно полное ядро из четырех ядер)
TEST:
fantius@machine> time ssh localhost /home/fantius/spew.rb > /dev/null
real 0m40.704s
user 0m19.981s
sys 0m1.400s
top показывает 45% использования процессора (почти два полных ядра)
Поэтому у меня возникают проблемы с покупкой аргумента, что стоимость шифрования всегоминималенКонечно, это очень сложный тест данных.