Как защитить ПО от подделки ответа http?
Вашу программу взломали при помощи атаки mitm с подменой сертификатов. Это значит что программа не валидирует сертификат сервера (образно говоря, ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;), что позволяет злоумышленнику сгенерировать на ваш домен самоподписанный сертификат, перенаправить трафик на свой локальный сервер и программа будет доверять этому серверу как своему. Либо валидирует с использованием корневых сертификатов из trust store операционной системы. В этом случае злоумышленник просто добавит свой сгенерированный сертификат в trust store ОС и ваша программа будет доверять поддельным сертификатам злоумышленников.

Решением этой проблемы является использование техники certificate pinning или public key pinning. То есть вам нужно зашить в программу корневой сертификат того CA, у которого вы приобретаете сертификаты (lets encrypt?) и валидировать ответы только с его использованием. Никакого доверия trust store ОС и никогда не игнорируйте ошибки валидации.
Захотят - взломают что угодно.
Добавляйте в запрос и в ответ шум +подпись. ПОдпись считайте по не самому тривиальному алгоритму (не простой проход мд5!). На сервере проверяйте подпись (ну и на клиенте тоже). 
Шифруйте сами тела запросов-ответов. 
Меняйте ключи-подписи с апдейтом.