我*必须*在我的数据库中存储第三方凭据.最好的办法?

Dus*_*etz 7 python security authentication passwords google-app-engine

我的应用必须从第三方读取SSL网址.如何在我自己的数据库中最好地存储第三方凭据,以保护第三方凭据不被泄露?考虑绝对的安全性和实用性.单向散列凭证无用,因为我必须将凭证恢复为明文以进行SSL调用.我在谷歌应用引擎上使用python,我的应用程序使用谷歌凭据进行身份验证.

  • 使用例如AES加密凭证并将加密密钥保存在其他地方(只是移动问题),或者从凭证中获取凭证并保持算法的秘密(只是移动问题)
  • 使用同步流密码加密凭证,从凭证中导出(非)熵并保持算法的秘密(只是移动问题)
  • 在一个专门存储第三方凭据的单独的网络应用程序上,提供一个SSL网址来接收第三方凭据,这个网址是通过谷歌凭证访问(与我的应用程序相同),并可以使用authsub或其他东西将授权转移到其他网络应用程序.这听起来更安全,因为它更难以破解一个简单的简单webapp,如果我的复杂的主应用程序受到损害,第三方凭据不会暴露.

您如何看待所有方法?

Vin*_*vic 2

这是一项艰巨的任务,没有任何方法可以帮您省去确保不存在薄弱环节的麻烦。对于初学者来说,我不知道在 Google 上托管是否是最好的方法,因为您将失去控制权(我真的不知道 App Engine 的设计是否考虑到了所需的安全级别,您应该发现出)并且可能无法进行渗透测试(你应该这样做。)

拥有一个单独的小型应用程序可能是一个好主意,但这并不能避免您必须在这个较小的应用程序中以一种或另一种方式加密凭证本身。它只会让你变得简单,从而使事情更容易分析。

我个人会尝试设计该应用程序,以便每次使用后按键都会随机变化,采用一种一次性的方法。您没有足够详细地指定应用程序来查看这是否可行。