2011-12-16 2 views
0

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

Я предполагаю, что приложение будет называть наш API, чтобы получить последний номер версии. Если он новее, чем он есть, он будет загружать этот XML-файл с указанного URL-адреса. Однако разве это не делает его уязвимым для человека при средних атаках или подобных? Я хочу, чтобы наше приложение не отвечало за загрузку вредоносного файла (например, может быть вредоносный exe-файл).

Любая помощь/руководство будут оценены!

ответ

2

Вам необходимо подписать файл XML с помощью закрытого ключа на вашем сервере, а затем проверить его на клиенте с открытым ключом, встроенным в ваше приложение.

Это только поможет, если у вас есть безопасный механизм для доставки начального приложения с открытым ключом (например, HTTPS)

+0

Спасибо - это гарантирует, что файл не изменился. Однако это не останавливает загрузку вредоносного файла, не так ли? Будут ли загружаться через HTTPS? Тогда, я думаю, единственная уязвимость - это подделка нашего сервера с помощью атаки DNS? – Marcus

+0

@IgorK: Если хеш не соответствует, вы можете просто отклонить и удалить файл и никакого вреда не будет сделано. HTTPS (с подписанным сертификатом) предотвратит проблемы DNS и MITM, но не помешает злоумышленнику изменять файл на сервере с помощью других средств. – SLaks

+0

@SLaks Я не уверен, что согласен, не нужно ли загружать файл, чтобы проверить хэш? Я думал, что некоторые вирусы могут запускаться автоматически, как только они находятся в системе? – Marcus

1

Serve файла по протоколу HTTPS и убедитесь, что клиент проверяет сертификат. Таким образом, вы уверены, что файл исходит от правильного сервера и не изменяется где-то на линии. Предполагая, что вы держите свой сервер в безопасности, которого должно быть достаточно, чтобы убедиться, что вы получили правильный файл.

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