Безопасная передача данных по HTTP, когда HTTPS не вариант - PullRequest
9 голосов
/ 22 ноября 2011

Я хотел бы написать приложение для управления файлами, каталогами и процессами на сотнях удаленных ПК . На этих машинах выполняются программы измерений, которые в настоящее время управляются вручную с помощью TightVNC / RealVNC. Поскольку количество машин велико (и увеличивается), необходимо автоматическое управление. Планируется, что наши операторы получат клиентское приложение с поддержкой сценариев, из которого они смогут отправлять запросы и команды серверным приложениям, работающим на каждом удаленном ПК.

Для связи я хотел бы использовать настраиваемый протокол на основе TCP, но он сложен в административном отношении и очень долго может вскрыть пробоины в каждом брандмауэре. К счастью, есть программа со встроенным пользовательским веб-сервером на базе TinyWeb , работающим на каждом удаленном ПК , и порт 80 открывается в каждом брандмауэре. Эти веб-серверы обслуживают запросы, поступающие с центрального сервера, путем запуска программы CGI, которая загружает и отправляет части файлов журналов программ измерений.

Таким образом, планируется написать CGI-программу и обмениваться данными с клиентами через HTTP (используя GET и POST). Хотя (большинство) удаленных ПК находятся внутри корпоративной интрасети, они разбросаны по всей стране, Я хотел бы защитить связь . Было бы неразумно отправлять команды, которые управляют файлами и процессами, в виде простого текста. К сожалению, к программе, которая содержит веб-сервер, нельзя прикоснуться, поэтому я не могу просто подготовить ее для HTTPS. Я могу реализовать только уровень безопасности на клиенте и в программе CGI. Что мне делать?

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

Ответы [ 2 ]

7 голосов
/ 25 ноября 2011

Существует несколько веб-оболочек, но, насколько я вижу (http://www -personal.umich.edu / ~ mressl / webshell / features.html ), они работают поверх существующего SSL / Слой TLS.

Существует также S-HTTP .

Существует несколько способов аутентификации на сервере (имя пользователя / пароль) защищенным способом без SSL. http://www.switchonthecode.com/tutorials/secure-authentication-without-ssl-using-javascript. Но эти решения ориентированы только на отправку имени пользователя / пароля на сервер.

1 голос
/ 02 декабря 2011

Можно ли реализовать что-то вроде защиты на уровне сообщений в SOAP / WS-Security? Я понимаю, что это может быть немного тяжелым и сложным для реализации, но по крайней мере это

  • стандартизированы
  • определенно безопасный
  • возможно поддерживается некоторыми библиотеками или фреймворками, которые вы можете использовать
  • подходит для HTTP
...