2009-10-12 2 views
2

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

ответ

5

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

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

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

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

+0

+1 для ClickOnce. Обеспечивает отличное решение для веб-развертывания, которое буферизует вас из всех необходимых им червей, обеспечивая чрезвычайно простой пакет и процесс развертывания. Обновленный для клиентов довольно бесшовный и безболезненный. – jrista

0

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

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

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

Клиент может затем дешифровать и разархивировать его, а затем установить.

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

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

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

1

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

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

0

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

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

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

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

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

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

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

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

Смежные вопросы