Как защитить апдейтер программы от компроментации сервера? Есть типичная задача, софт получает обновления с сервера обновлений. Сейчас все сделано просто - обновления загружаются по HTTP протоколу, запакованные ZIP-ом. Некоторые апдейты содержат исполняемые EXE/DLL файлы. Сейчас задумались, что в случае компроментации сервера обновлений , можно наделать бед всем нашим клиентам. Каким образом правильно организовать работу апдейтера , чтобы он мог отличить свои апдейты от чужих? Насколько я понимаю, здесь нужно или зашифровать файлы апдейта так, чтобы апдейтер мог их расшифровать неким ключом , при помощи которого нельзя обратно зашифровать другие данные, вытащив этот ключ из программы. Или использовать какую-то цифровую подпись, встраиваемую в файлы на сервере и проверяемые апдейтером. Мне больше нравится первый вариант, но какой алгоритм выбрать. Мне нужно будет шифровать файлы открытым ключом, а закрытый вшить в апдейтер, но, насколько я понимаю, вытащив этот закрытый ключ из программы, можно сделать открытый и вся защита теряет смыл. Второй вариант можно првоернуть с использованием gpg , но нам бы хотелось обойтись без сторонних утилит. Подскажите, как правильнее организовать весь процесс? Решение должно быть встраиваемым , без использования сторонних утилит. Заранее спасибо за помощь.
Для защиты апдейтера программы от компрометации сервера можно использовать следующий подход:
Цифровая подпись: перед отправкой апдейта на сервер его следует подписать цифровой подписью, которую сможет проверить апдейтер программы при получении обновлений. Это поможет убедиться в том, что обновление было создано и подписано именно вашей компанией.
Шифрование: перед отправкой апдейтов на сервер их можно зашифровать с использованием асимметричного шифрования. Таким образом, апдейтер сможет расшифровать обновления, используя свой закрытый ключ, который находится только внутри программы. Это защитит данные от прослушивания или изменения на пути к клиенту.
Хэширование: при отправке апдейтов на сервер можно также вычислять и сохранять хеш-сумму файла. При получении апдейта, апдейтер может вычислить хеш-сумму файла и сравнить ее с сохраненной на сервере. Это поможет обнаружить любые изменения в файле, произошедшие после его отправки на сервер.
Эти методы в совокупности обеспечат надежную защиту апдейтера программы от компроментации сервера и помогут убедиться в целостности и подлинности получаемых обновлений.
Для защиты апдейтера программы от компрометации сервера можно использовать следующий подход:
Цифровая подпись: перед отправкой апдейта на сервер его следует подписать цифровой подписью, которую сможет проверить апдейтер программы при получении обновлений. Это поможет убедиться в том, что обновление было создано и подписано именно вашей компанией.
Шифрование: перед отправкой апдейтов на сервер их можно зашифровать с использованием асимметричного шифрования. Таким образом, апдейтер сможет расшифровать обновления, используя свой закрытый ключ, который находится только внутри программы. Это защитит данные от прослушивания или изменения на пути к клиенту.
Хэширование: при отправке апдейтов на сервер можно также вычислять и сохранять хеш-сумму файла. При получении апдейта, апдейтер может вычислить хеш-сумму файла и сравнить ее с сохраненной на сервере. Это поможет обнаружить любые изменения в файле, произошедшие после его отправки на сервер.
Эти методы в совокупности обеспечат надежную защиту апдейтера программы от компроментации сервера и помогут убедиться в целостности и подлинности получаемых обновлений.