2009-02-23 2 views
5

Есть несколько вопросов (C#, Java), которые охватывают как можно реализовать автоматические обновления. Кажется, изначально легко обеспечить автоматическое обновление, и, по-видимому, нет веских причин не предоставлять автоматические обновления для большинства программ.Автоматические обновления - что такое «адекватная» безопасность?

Однако ни один из них не охватывает аспекты безопасности автоматических обновлений.

  • Насколько безопасны автоматические обновления сейчас?
  • Насколько они безопасны?
  • Насколько они безопасны?

Моя основная проблема заключается в том, что Интернет является, во всех смыслах и целях, диким Западом, где никто не может предположить ничего о каких-либо данных, которые они получают. Автоматические обновления по Интернету кажутся рискованными.

Компьютер компании заражается, подталкивает DNS (только небольшой процент выигрыша) и заставляет другие компьютеры компании полагать, что сервер обновлений для общего приложения находится в другом месте, они загружают «новое» приложение и становятся инфицированный.

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

-Adam

ответ

6

При правильном использовании криптографии ваши обновления могут быть очень безопасными. Защитите сайт, на котором вы распространяете свои обновления, с помощью SSL. Подпишите все свои обновления с помощью GPG/PGP или что-то еще, чтобы ваши клиенты проверяли подпись перед применением обновления. Принимает меры для обеспечения безопасности вашего сервера и ключей.

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

2

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

Для обеспечения безопасности, очевидно, вам следует избегать распространения ключа для подписи. Поэтому вы можете осуществить вариацию RSA message signing

1

Подключение к вашему серверу обновлений через SSL может быть достаточным, если ваш клиент откажется подключиться, если он получит недействительный сертификат, и ваш сервер требует согласования разумного уровня безопасности соединения (и клиент также поддерживает это).

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

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

1

, по-видимому, нет веских причин не предоставлять автоматические обновления для большинства программ.

Есть веские причины не форсировать обновление.

  1. исправление ошибки может нарушить код
  2. пользователей могут не захотеть сломают производственные системы, которые полагаются на старых функциях
+0

Это хорошая точка - причины для избежания автоматических обновлений покрыты довольно хорошо здесь: http://escrow.aliexpress.com : //stackoverflow.com/questions/558535/should-a-web-app-have-automatic-updates –

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