Автообновление Dot Net
Я чувствовал, что в .net не хватает простой безопасной библиотеки автоматического обновления, поэтому я кое-что реализовал и установил здесь. Прежде чем кто-либо подумает об использовании библиотеки, я хотел, чтобы процесс обновления получил небольшую экспертную оценку.
Вот шаги:
- Клиентское программное обеспечение заполняется открытым ключом и URI для опроса.
- Клиент опрашивает URI для файла манифеста.
- Манифест загружается, и подпись (в отдельном .signature) используется для проверки правильности манифеста.
- Список ожидающих обновлений анализируется из манифеста (чтобы показать пользователю).
- Файл установщика загружается и снова сверяется с соответствующим файлом .signature. (загруженный файл будет защищен списками контроля доступа)
- Установщик запущен.
Сниженные угрозы:
- Подпись манифеста должна предотвращать любые вредоносные загрузки (ковровая бомбардировка).
- Подпись установщика должна предотвращать любые атаки MITM от отправки вредоносных установщиков.
- Защита загруженного установщика с помощью ACL должна предотвратить любые локальные эскалационные атаки.
Неустранимые угрозы:
- Атака MITM, при которой злоумышленник всегда сообщает об отсутствии доступных обновлений. (Может оставить клиент в уязвимой версии)
Использованная литература:
- Безопасные обновления программного обеспечения: разочарования и новые вызовы
- Black Ops 2008: это конец тайника, каким мы его знаем
- Evilgrade уничтожит нас всех