【问题标题】:What is the role of app key and secret key in every SDK每个SDK中app key和secret key的作用是什么
【发布时间】:2015-09-01 18:10:13
【问题描述】:

我正在构建 SDK,我需要从应用程序中获取应用程序 ID 和应用程序密钥,该应用程序将集成我的 android SDK。

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

谁能在这个话题上帮助我。

【问题讨论】:

    标签: android web-services authentication sdk token


    【解决方案1】:

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

    应用 ID

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

    密钥

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

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

    密钥是一对密钥的一部分,另一个是公钥。顾名思义,公钥对公众是公开的。理想情况下,密钥应该仅供一个人使用。

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

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

    【讨论】:

    • 但是任何人在反编译apk后都可以获得密钥(私钥),那么它如何安全?
    • @Williams 两件事。 1.您如何/使用哪个程序来反编译apk并获取密钥? 2.我先保留这一点;)
    • 人们像github.com/pxb1988/dex2jar一样使用dextojar,并且可以从源代码中看到您的密钥
    • @Williams 是由于糟糕的编程,与密钥的概念完全无关。如果您将此类信息留在应用程序中,您应该以掩盖此类信息的方式进行编码
    • @bernlim 感谢您的回答,但这仍然不是我要问的。请阅读我上面的评论,在操作满意之前,您不能强迫这里的任何人接受答案。我非常了解stackoverflow 的工作原理。我在这个网络上已经 3 年了。
    【解决方案2】:

    基本上它用于授权。这反过来使 SDK 创建者能够更好地控制他们的用户。我可以想到 SDK 需要授权的几个原因:

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

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2015-08-26
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 2016-08-08
      • 2023-03-14
      • 1970-01-01
      • 2021-02-20
      相关资源
      最近更新 更多