Должен ли я шифровать ключ / секрет приложения Dropbox?

Мы добавляем поддержку Dropbox в наше приложение, и теперь у нас есть «ключ приложения» и «секрет приложения». Я мог бы просто сохранить их в виде обычного текста в коде, как указано в учебнике по API-интерфейсу:

DBAccountManager* accountMgr = [[DBAccountManager alloc] initWithAppKey:@"hf2hf892hf9y29h" secret:@"n29fh82h4f"]; 

(Примечание: это составленный ключ и секрет, а не наш настоящий).

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

Это что-то беспокоит кого-то или это просто факт жизни, что кто-то, кто действительно хочет, может войти и узнать ключи?

Это что-то беспокоит

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

Подсказка: мое отношение – когда я загружаю приложение из AppStore, для которого требуется некоторая форма входа в [insert any webservice здесь], я обычно расшифровываю двоичный файл и запускаю otool или, по крайней мере, strings на нем. Если в нем есть незашифрованные пароли / ключи OAuth / ключи SSL и т. Д., Я обычно удаляю их немедленно.

это просто факт жизни, что тот, кто действительно хочет, может войти и узнать ключи?

Практически, да, даже брелок не безопасен 😉 . Это, однако, не оправдание за то, что вы не пытаетесь сделать все возможное, если субъект – это безопасность ваших данных и / или ваших пользователей.

Прежде всего, ваша забота действительно. Вы должны положить его в брелок.

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

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

  • Как интегрировать функции выхода из приложения iPhone в iPhone?
  • DropboxSDK: ошибка чтения сохраненного значения keychain (-34018)
  • Dropbox - папка приложения удалена - получение NSURLErrorRequestBodyStreamExhausted error - iOS
  • DBRestClient не работает при вызове из NSObject
  • Dropbox SDK для iOS - обнаружение отмены входа
  • Expo on iOS постоянно обновляет приложение React Native на MacOS, вызванное Dropbox
  • DropboxSDK: невозможно связать ошибку
  • Настройка экрана входа DropBox
  • Как остановить приложение от ввода фона до завершения асинхронной задачи
  • Давайте будем гением компьютера.