【问题标题】:Secure deployment of client secrets in python在 python 中安全部署客户端机密
【发布时间】:2017-01-24 10:14:38
【问题描述】:

我打算使用PythonSpotify 编写一个Kodi (former XBMC) 插件。前段时间,Spotify 弃用了他们的旧库libspotify,并引入了一个基于WebAPI 的新ReST。我想使用这个 api 从 Spotify 请求播放列表、关注的专辑和其他用户特定的东西等数据。这个WebAPI 使用OAUTH 机制来授权应用程序使用用户特定的数据。 因此,我需要Client IDClient Secret。虽然Client ID 是公开的,但我将其存储在源代码中没有问题。但是Client Secret 呢?应用程序需要此密钥才能在 spotify 上对自身进行身份验证。因此,它也需要部署。

我如何安全地部署这个秘密,这样插件的用户就无法读出这个秘密?

我不能使用混淆技术,因为 python 被解释了,用户可以简单地启动解释器,导入我的模块并读出重建的秘密。加密密钥也是如此。应用程序需要能够解密密钥,因此,我还需要部署加密密钥。这是先有鸡还是先有蛋的问题。

对此有什么建议吗?其他软件是如何解决这个问题的?

编辑:我刚刚发现了这个RFC6819。似乎这是oauth 中的普遍问题。

【问题讨论】:

    标签: python rest security oauth spotify


    【解决方案1】:

    在这种情况下,您可以使用Implicit Grant Flow,它专为出于安全原因而无法存储机密的客户端应用程序而设计。

    【讨论】:

      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 2012-12-01
      相关资源
      最近更新 更多