Лучший способ сохранить секрет приложения в мобильном веб-приложении?

Я хочу разработать «адаптивное мобильное веб-приложение (iOS/Android)» с JavaScript для взаимодействия со смарт-контрактом и блокчейном.

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


person Questioner    schedule 20.06.2018    source источник


Ответы (1)


Я хочу разработать «отзывчивое мобильное веб-приложение (iOS/Android)» с JavaScript для взаимодействия со смарт-контрактом и блокчейном.

Для меня неясно, имеете ли вы в виду написать мобильное приложение как веб-сайт, который полностью реагирует на мобильные устройства, или если вы планируете написать его с использованием таких фреймворков, как Ionic, React Native или других.

Если это отзывчивый веб-сайт, пожалуйста, проигнорируйте остальную часть моего ответа, поскольку, насколько мне известно, на них нет безопасного способа защиты секретов.

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

Однако возникает вопрос, как сохранить секрет приложения в случае разработки мобильного веб-приложения с помощью JavaScript?

Все, что работает на стороне клиента, будет уязвимо для обратного проектирования с помощью таких инструментов, как Xposed или Фрида.

Поскольку мы не хотим хранить его в мобильном телефоне и блокчейне из соображений безопасности.

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

Возможное решение

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

Облачная служба при успешной аттестации целостности приложения выдает токен JWT, подписанный с помощью секрета, доступного только серверу API. и облачная служба знают, и в случае сбоя токен JWT подписывается поддельным секретом, который не известен серверу API. Этот подход позволит серверу API обслуживать запросы только тогда, когда он может проверить подпись в токене JWT, и отклонять их, если проверка не пройдена.

Как только секрет, используемый службой облачной аттестации, не известен мобильному приложению, его невозможно реконструировать во время выполнения, даже если приложение взломано, запущено на корневом устройстве или обменивается данными через соединение, которое является Цель атаки Человека посередине.

На в этой статье вы можете ознакомиться с примером того, как служба аттестации мобильных приложений в облаке используется для аутентификации приложения React Native.

Отказ от ответственности: я работаю в Approov

Xposed

Xposed — это фреймворк для модулей, которые могут изменить поведение системы и приложений, не затрагивая никаких APK. Это здорово, потому что это означает, что модули могут работать для разных версий и даже ПЗУ без каких-либо изменений (при условии, что исходный код не был слишком сильно изменен). Это также легко отменить. Поскольку все изменения выполняются в памяти, вам просто нужно деактивировать модуль и перезагрузиться, чтобы вернуть исходную систему. Есть много других преимуществ, но вот еще одно: несколько модулей могут вносить изменения в одну и ту же часть системы или приложения. С модифицированными APK вы сами решаете. Невозможно их объединить, если только автор не создаст несколько APK с разными комбинациями.

Фрида

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

Токен JWT

Аутентификация на основе токенов

Веб-токены JSON — это открытый стандартный отраслевой метод RFC 7519 для безопасного представления претензий между двумя сторонами.

person Exadra37    schedule 08.10.2018