2011-01-24 1 views
3

Я пишу клиент автоматического обновления. Это очень простое приложение, которое:
1) Проверяет центральный сервер, существует ли обновление для некоторых приложений
2) загружает программу установки с сервера, если новая версия существует
3) Запуск программы установки
Какие проблемы с безопасностью следует беспокоиться при написании клиента автоматического обновления?

Помимо проблем с серверами (например, кто-то взломал наш сайт и разместил там «более новое» вредоносное приложение), какие проблемы безопасности на стороне клиента я должен учитывать при реализации этого?

Мои текущие идеи:
1) Контрольная сумма. Включите контрольную сумму в файл .xml и проверьте ее на загруженный файл. (Предварительное или пост шифрование?)
2) Шифровать файл. Зашифруйте файл с помощью частного ключа, и пусть эта программа расшифровывает его с помощью открытого ключа.

Эти или любые из этих необходимых и достаточных? Есть ли что-нибудь еще, что мне нужно рассмотреть?

Пожалуйста, помните, что это только для проблем на КЛИЕНТ-СТОРОНЕ. Я почти не контролирую сам сервер.

+2

Я настоятельно рекомендую перебирать https (с действующим сертификатом) вместе с тем, что вы собираетесь делать. Вы могли бы подумать, что можете обойтись без него, но в значительной степени все его подправляют. –

+0

Вы шифруете что-то с помощью открытого ключа и дешифруете его с помощью закрытого ключа. Люди часто получают это назад. –

+0

@Tom: Да, похоже, это главный аргумент! Спасибо за комментарий. – DanTheMan

ответ

2

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

+1

Добавление контрольной суммы все равно будет хорошей идеей, а еще одним уровнем безопасности. –

+0

https + контрольная сумма - это то, что я собираюсь. Я не буду шифровать файлы на стороне сервера. – DanTheMan

1

Если я могу скомпрометировать сервер, предоставляющий исправление, и контрольная сумма находится на том же сервере, то я могу скомпрометировать контрольную сумму.

Шифрование патча в основном полезно, если вы не используете SSL для доставки файла.

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

1

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

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

  • Нет связанных вопросов^_^