【问题标题】:Mobile device: How to secure API credentials? [duplicate]移动设备:如何保护 API 凭证? [复制]
【发布时间】:2013-08-21 04:48:24
【问题描述】:

我有一个 APi,它需要一组开发人员凭据(消费者密钥/消费者密码)才能调用注册用户 Web 服务来注册用户。

我想通过移动设备调用注册用户网络服务方法,但不想存储开发者凭据(太危险了,即使它是加密的)

你会如何解决这个问题?

【问题讨论】:

  • @ShashankKulshrestha NSUserDefaults 以纯文本形式存储在 iOS 设备的文件系统中。您应该始终使用钥匙串作为密码或令牌。
  • @rckoenes 将开发人员凭据存储在设备本身上并不安全。至于令牌,我们将其存储在加密设备的本地数据库中;如果它被泄露,那就是 1 个用户帐户。如果开发人员的凭据被泄露,它就可以访问平台上的所有用户!
  • @001 我正在对 ShashankKulshrestha 的评论做出反应。我同意将您的开发人员令牌存储在应用程序中不会保存。但是,即使您不这样做,当您连接到服务器并将令牌发送到服务器时,用户仍然可以捕获令牌。因此,除非 API 有一些解决方案,否则您将无法解决您的问题。

标签: android iphone security mobile oauth


【解决方案1】:

在 iOS 上,使用“钥匙串”http://developer.apple.com/library/ios/DOCUMENTATION/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

在 Android 上,目前没有加密的钥匙串,请参阅相关问题 Android Keychain for user credentials。通过使用文件系统并以纯文本形式存储您的凭据,您将依赖底层应用程序沙盒,它在一定程度上保护您的文件(仅由您的应用程序读取),但肯定不会在有根手机上......所以您需要权衡这里的风险并做出相应的选择。

【讨论】:

  • 问题不在于在设备上存储任何数据,而是在应用程序代码中提供 API 的 key.secret。
猜你喜欢
  • 2011-07-31
  • 1970-01-01
  • 2014-08-26
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2023-03-05
相关资源
最近更新 更多