Обычно два направления атак, от которых нужно защищаться:
1. защита от кражи передаваемых данных провайдером (любым, на пути следования пакетов, например публичный wifi)
2. защита от подмены передаваемых данных, так же провайдером
Для первой задачи нужно шифрование HTTPS, для второй хватит цифровой подписи но при использовании HTTPS это не актуально, так как подменить зашифрованные данные не получится
Клиент должен не игнорировать предупреждения о невалидности цифровой подписи (любят тут люди вместо корректной настройки последних версий openssl отключать контроль curl --insecure).
Есть еще защита от фальсификаций истории действий клиентом и сервисом (как доказать что ты отправил сервису сигнал на покупку и он его принял, а серверу доказать что ты отправлял этот сигнал), это реализуется цифровой подписью, сервер и клиент сначала обмениваются ключами шифрования (или просто солью для хешей) и каждое свое сообщение подписывают, если клиент будет хранить всю коммуникацию, эти цифровые подписи будут доказательством.