Как защитить Air-приложение от подмены API сервера?

Есть клиент на Air, который выполняет нехитрые запросы к api нашего сервера. Клиент распостраняется бесплатно всем желающим. Сервис имеет бесплатный режим, и доп. платные опции.


Функционал сервера легко копируется, если «послушать» трафик. И cчитается, что декомпилировать Air приложение — пара пустяков.


Коммуникации — по https, но как верифицировать в Air, что коммуникации происходят именно с единственным допустимым сервером, я пока не разобрался.

Как защитить бизнес от того, что злодеи поднимут «китайский» аналог нашего сервера, и будут использовать с ним наш классный клиент, прописав, например, в hosts ip своего клона?


Может, есть какой-то более общий «правильный» подход, чтобы засекьюрить связку полуоткрытого клиента с закрытым сервисом?
  • Вопрос задан
  • 2768 просмотров
Пригласить эксперта
Ответы на вопрос 3
@egorinsk
В чем тогда ценность вашего сервера (и нафиг он вообще нужен), если перехватывая трафик, можно легко сделать аналогичный?

Способ примитивной проверки — использовать https и проверять отпечатки и путь сертифката, но даже в этом случае клиента можно декомпилировать и убрать проверку.
Ответ написан
plr
@plr
Например, QIWI в своём терминальном софте проверяет localhost и пробует резолвить IP адреса хостов через свой DNS. Проверка сертификата https. Плюс все запросы/ответы подписываются MD5. Но в открываемом исходными кодами клиенте это невозможно сделать эффективно.

Значит надо переносить максимум ценности на сервер, а клиента использовать как smart-браузер для вашего Интернет-сервиса.
Ответ написан
@s0rr0w
Перенесите часть логики на серверную сторону. Например, интерфейс строится на основании кода, который присылается с сервера. Это сильно упрощенный пример, но, думаю, вы сможете развить мысль дальше. Пока часть функционала клиента будет для воров черным ящиком, вы в относительной безопасности.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы