Безопасный и безопасный способ обновления через Интернет в C # - PullRequest
2 голосов
/ 13 октября 2009

Какой самый безопасный и безопасный способ разрешить автоматическое обновление программного обеспечения, не открывая слишком много дыр, чтобы позволить хакеру легкий доступ к системе?

Ответы [ 4 ]

5 голосов
/ 13 октября 2009

Вы изучили развертывание ClickOnce?

http://msdn.microsoft.com/en-us/library/t71a733d(VS.80).aspx

Краткий обзор здесь:

http://msdn.microsoft.com/en-us/library/142dbbz4(VS.80).aspx

1 голос
/ 13 октября 2009

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

Если вы хотите увидеть, что именно происходит, я написал серию статей о написании компонента автообновления в своем блоге некоторое время назад, последний пост со ссылками на все посты в серии: http://www.nbdtech.com/blog/archive/2007/08/07/How-To-Write-an-Automatic-Update-System-Part-8.aspx

0 голосов
/ 14 октября 2009

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

  1. Добавьте проект установки в решение, чтобы проект можно было аккуратно обернуть в установочный пакет .exe или .msi.

  2. Далее необходимо настроить FTP-сервер с нужными учетными данными пользователя, которые знает только ваше приложение. На ftp-сервере установите каталог по умолчанию, в который вы будете помещать любые новые обновления.

  3. Ваше приложение будет проверять подключение к Интернету при запуске, входить в удаленный FTP-сервер и проверять наличие новых файлов для загрузки.

  4. Загрузите новые обновления в ваше клиентское приложение и поместите их в папку с указанием даты и времени для дальнейшего использования. Необходимо выполнить некоторые проверки, чтобы убедиться, что вы не загружаете те же самые старые файлы.

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

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

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

0 голосов
/ 13 октября 2009

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

Итак, вы бы заархивировали обновление.

Затем зашифруйте секретным ключом на сервере.

Затем клиент может расшифровать и распаковать его, а затем установить.

Таким образом, если ваш закрытый ключ защищен, вы можете гарантировать, что обновление является законным.

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

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

...