1

Мне нужно найти решение, чтобы убедиться, что мое приложение будет распространено как родное приложение на мобильных устройствах, и ТОЛЬКО мое приложение может получить доступ к моей веб-службе, размещенной где-то в другом месте. Другими словами, моя веб-служба должна принимать запрос только через законное использование моего приложения, а не другими способами.Как проверить подлинность собственного приложения на веб-службу?

Решение я подумал о том, следующий, пожалуйста, скажите мне, если вы думаете, что это лучше один, или, если это один не является адекватной:

Counter-Synchronyzed одноразовые пароли (CS-OTPs): Основная идея заключается в том, что каждая сторона (WS и приложение) содержит секретный ключ с жестким кодированием и синхронизированный счетчик. Каждый раз, когда клиентское приложение отправляет запрос на WS, он генерирует хэш с секретным ключом и значением счетчика. Внутренний WS делает то же самое и сравнивает хэши, если они идентичны, аутентификация завершается успешно, и обе стороны увеличивают свои счетчики, чтобы синхронизировать их. Поскольку счетчик увеличивается после каждой успешной попытки, хеш будет каждый раз отличаться (таким образом, имя «Одноразовый пароль»).

Почему я думаю, что мне нужен единовременный пароль? Потому что, если пароль или хеш остается идентичным, его может легко перехватить клиентский пользователь приложения, который затем может запросить сам запрос без необходимости приложения.

Сообщите мне, что вы думаете об этом решении.

ответ

0

Многие способы достижения этого, мой метод заключается в создании зашифрованного токена от клиента к серверу с использованием секретного ключа, как вы предлагаете. Я бы также включил в этот зашифрованный ключ некоторую информацию, которая поможет проверить. Включите такие вещи, как IP-адрес, дату/время истечения срока действия, текущее время и т. Д. Таким образом, кто-то, кто пытается воспроизвести трафик, должен будет поступать с одного и того же IP-адреса, в течение определенного периода времени и т. Д. Вы можете варьироваться в соответствии с вашими потребностями. Надеюсь это поможет.

0

Я считаю, что если собственное приложение находится под контролем хакера, он может отлаживать ваше приложение и ставить ваш секрет. Неважно, в чем секрет. Если вы дадите секрет, вы дадите его человеку не к заявлению.

Вы можете дать уникальный секрет каждому экземпляру приложения, а затем вы можете заблокировать sb. который ведет себя странно. Это дает вам аутентификацию.

Вы можете попытаться изменить код, чтобы сделать взлом более сложным, но это только дополнительные затраты для хакера. Однако «только» может быть достаточно.

Смежные вопросы