Хранение ключей OAuth в коде для приложений iPhone - PullRequest
3 голосов
/ 27 октября 2010

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

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

Ответы [ 3 ]

3 голосов
/ 27 октября 2010

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

2 голосов
/ 28 июня 2013

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

Encryption flow

  1. Поместить информацию о ключе oAuth в PLIST
  2. Вручную я шифрую этот PLIST, используя ключ AES, и я получил зашифрованный "CIPHER TEXT"
  3. Измените ключ AES, добавив символы между ними с вашей собственной логикой. Так как во время выполнения требуется расшифровать plist
  4. Добавьте этот модифицированный ключ со списком "CIPHER TEXT" и сохраните это значение в New plist.
  5. Удалить старый plist с информацией об oAuth

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

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

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

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

  3. Вы нашли Модифицированный ключ AES, они не имеют никакого представления о алгоритме добавления, здесь я просто использовал ДАЖЕ позицию персонажа, но вы не можете изменить это, и вы можете занять 3 или 4 позицию персонажа. Что на самом деле будет отличаться для каждого разработчика

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

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

0 голосов
/ 27 октября 2010

Я бы посоветовал изучить услуги Keychain, предоставляемые Apple

http://developer.apple.com/library/ios/#documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html

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