【发布时间】:2015-09-01 18:10:13
【问题描述】:
我正在构建 SDK,我需要从应用程序中获取应用程序 ID 和应用程序密钥,该应用程序将集成我的 android SDK。
我看到每个 SDK 都在使用这个概念应用程序 ID 和密钥。不知道这个有什么用?这如何使系统安全?
谁能在这个话题上帮助我。
【问题讨论】:
标签: android web-services authentication sdk token
我正在构建 SDK,我需要从应用程序中获取应用程序 ID 和应用程序密钥,该应用程序将集成我的 android SDK。
我看到每个 SDK 都在使用这个概念应用程序 ID 和密钥。不知道这个有什么用?这如何使系统安全?
谁能在这个话题上帮助我。
【问题讨论】:
标签: android web-services authentication sdk token
App ID 和密钥是两个不同的东西。让我尝试分别解决这两个问题,然后将它们联系在一起。
应用 ID
应用 ID 只是应用的唯一标识标签。这是为了避免在 App Store 和您的设备上重叠。如果两个应用程序具有相同的 App ID,则可以将一个安装在另一个之上,从而有效地擦除旧的应用程序,并且可能会劫持您的数据。 App ID 只是安全的第一步。为确保绝对不会发生上述情况,我们使用密钥。
密钥
密钥是一种安全实现,通常用于非对称加密。我们来看看维基百科对非对称加密的定义:
公钥密码术,也称为非对称密码术,是一类基于算法的密码协议,需要两个单独的密钥,其中一个是秘密的(或私有的),另一个是公共的。虽然不同,但这个密钥对的两个部分在数学上是相关的。
密钥是一对密钥的一部分,另一个是公钥。顾名思义,公钥对公众是公开的。理想情况下,密钥应该仅供一个人使用。
这对钥匙用于打开锁,在您的情况下用于“解锁”应用程序。每个应用程序都有一个独特的不对称锁。非对称锁要么用密钥锁定,然后用公钥打开,反之亦然。目的是识别。只有一个人可以拥有密钥。所以这个人的任何应用程序,我们知道肯定来自那个人,而不是一些黑客/可疑的来源。这就是为什么密钥很重要。
因此,这两个概念相辅相成,可为您带来更好的安全性。当您使用 API 时,您有时不需要密钥,而只需要应用程序 ID,因此您使用 API 的主要服务知道您正在使用的确切产品。
【讨论】:
基本上它用于授权。这反过来使 SDK 创建者能够更好地控制他们的用户。我可以想到 SDK 需要授权的几个原因:
【讨论】: