Kahuna API - секретный ключ / ключ API должен оставаться закрытым? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь настроить Kahuna для своего приложения для iOS, но не смог найти четкого ответа - в документах говорится, что секретный ключ предназначен для использования с API-ключом для аутентификации запросов, но я не могуне найти ничего, что четко указывает, если какой-либо из них должен храниться в секрете / вне исходного кода.Это безопасно для моего кода, или они должны храниться на стороне сервера?

Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Безопасно ли вводить их в мой код или они должны храниться на стороне сервера?

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

Почему?

Поскольку они будут статическими секретами в коде вашего мобильного приложения, то есть их легко извлечь с помощью любого инструмента обратного инженера,например, использование Mobile Security Framewrok (MSF) для декомпиляции двоичного файла приложения.

Альтернативы?

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

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

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

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

Службу аттестации мобильных приложений можно найти в Approov (я работаю здесь), который предоставляет SDK для нескольких платформ, включая iOS.Для интеграции также потребуется небольшая проверка кода сервера API для проверки токена JWT.Эта проверка необходима для того, чтобы сервер API мог решать, какие запросы обслуживать, а какие отклонять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...