每个SDK中app密钥和密钥的作用是什么

时间:2015-06-16 18:49:36

标签: android web-services authentication sdk token

我正在构建SDK,我需要从app中获取app id和app secret密钥,这将集成我的android SDK。

我看到每个SDK都使用此概念应用ID和密钥。我不知道这有什么用?这如何使系统安全?

任何人都可以帮助我解决这个问题。

2 个答案:

答案 0 :(得分:6)

App ID和密钥是两回事。让我尝试分别解决这两个问题,然后将它们联系在一起。

应用ID

App ID只是应用的唯一标识标签。这是为了避免在App Store和您的设备上出现重叠。如果两个应用程序具有相同的应用程序ID,则可以将其中一个安装在另一个应用程序之上,从而有效地删除旧应用程序,并可能劫持您的数据。应用ID只是安全的第一步。为了确保绝对没有办法发生上述情况,我们使用密钥。

密钥

密钥是一种安全实现,通常用于非对称加密。让我们来看看维基百科对非对称加密的定义:

  

公钥加密,也称为非对称加密,是一类基于算法的加密协议,需要两个单独的密钥,其中一个是秘密的(或私有的),其中一个是公共的。虽然不同,但这个密钥对的两个部分在数学上是相互关联的。

密钥是一对密钥的一部分,另一个是公钥。顾名思义,公钥是公开向公众开放的。理想情况下,秘密密钥只适用于一个人。

这对钥匙用于打开锁,在您的情况下可以“解锁”应用程序。每个应用程序都有一个独特的非对称锁。非对称锁要么用密钥锁定,要么用公钥打开,反之亦然。目的是 IDENTIFICATION 。只有一个人可以拥有密钥。所以这个人的任何应用程序,我们都知道肯定来自那个人,而不是一些黑客/双重来源。这就是秘密密钥很重要的原因。

因此,这两个概念携手合作,为您带来更好的安全性。当您使用API​​时,有时您不需要密钥,而只需要应用程序ID,因此您使用API​​的主要服务知道您正在使用的确切产品。

答案 1 :(得分:3)

基本上它用于授权。作为回报,SDK创建者可以更好地控制其用户。我可以想一想SDK需要授权的几个原因:

  • 防止/阻止SDK可能连接到的服务器上的垃圾邮件攻击
  • 限制使用SDK
  • 跟踪统计数据的使用情况(例如使用频率)