Сохранение ключей OAuth в коде для iPhone-приложений

Я пишу приложение для iPhone, которое интегрируется с сторонними API. Эти API используют OAuth (ключ/секрет, специфичный для моего приложения, а не для пользователя), чтобы аутентифицировать, какое приложение делает запрос от имени.

Безопасно ли (или насколько безопасно) просто поставить ключ/секрет в код? Могут ли подобные данные быть обратно спроектированы? Есть ли лучший способ включить эти данные в проект?

Ответ 1

На iPhone нет места для скрытия данных. У пользователя с взломанным iPhone больше контроля над устройством, чем у любого разработчика. Если возможно, вам необходимо настроить веб-службу, такую ​​как служба REST или SOAP, чтобы позаботиться об этих транзакциях OAuth от имени клиента.

Ответ 2

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

Encryption flow

  • Поместить информацию о ключе OAuth в PLIST
  • Я зашифровываю этот PLIST с помощью ключа AES и зашифровал "CIPHER TEXT"
  • Измените ключ AES, добавив символы между ними с вашей собственной логикой. Поскольку во время выполнения требуется расшифровать plist
  • Добавьте этот модифицированный ключ с помощью plist "CIPHER TEXT" и сохраните это значение в новом plist.
  • Удалить старый plist, который имеет информацию oAuth

Теперь у вас есть только один plist, который имеет зашифрованное значение с измененным ключом

Преимущество:

  • Взлом настолько сложный, что у хакера нет правильного шифрованного текста в plist

  • Чтобы взломать этот код, они должны знать, чтобы отделить модифицированный ключ AES от текста Cipher.

  • Вы нашли Модифицированный ключ AES, они не имеют никакого представления об алгоритме добавления, здесь я просто использовал EVEN позицию персонажа, но вы не можете изменить это, и вы можете взять 3-ю или 4-ю позицию характера. На самом деле это будет отличаться для каждого разработчика.

для получения дополнительной информации см. ниже ссылку;

https://sites.google.com/site/greateindiaclub/mobil-apps/ios/securelystoringoauthkeysiniosapplication