Безопасный и безопасный способ обновления через Интернет в C #

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

12.10.2009 23:45:10
4 ОТВЕТА
РЕШЕНИЕ

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

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

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

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

5
12.10.2009 23:56:19
+1 для ClickOnce. Обеспечивает отличное решение для веб-развертывания, которое защищает вас от всего этого, обеспечивая чрезвычайно простой пакет и процесс развертывания. Обновленные для клиентов довольно плавные и безболезненные.
jrista 13.10.2009 00:01:06

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

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

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

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

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

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

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

0
12.10.2009 23:56:00

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

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

1
13.10.2009 10:35:15

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

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

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

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

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

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

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

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

0
14.10.2009 13:38:11