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

标签 python security google-app-engine authentication passwords

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

  • 使用例如加密凭据AES 并将加密 key 保存在其他地方(只是移动问题),或 derive it from the credentials and keep the algorithm secret (只是移动问题)
  • 使用 synchronous stream cipher 加密凭据,从凭证和 keep the algorithm secret 中导出(非)熵(只是移动问题)
  • 在专门用于存储第三方凭据的单独网络应用程序上,提供一个 SSL url 以接收第三方凭据,该 url 使用 google 凭据访问(与我的应用程序相同)并且可以使用 authsub 或其他方式将授权转移到其他网络应用程序。这听起来更安全,因为它更难破解一个非常简单的网络应用程序,而且如果我复杂的主应用程序遭到破坏,第三方凭据也不会暴露。

您如何看待所有方法?

最佳答案

如何使用凭据?如果他们的使用仅由原始所有者触发(例如,您正在存储银行卡号并且他们正在进行第二次购买),那么他们可以在此时提供密码作为您的加密 key 。然后,您将永远不需要在本地存储该 key ,而且数据库内容本身对攻击者来说毫无用处。

关于python - 我*必须*在我的数据库中存储第三方凭证。最好的办法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1994112/

相关文章:

python - Scrapy-类型错误: 'Request' object is not iterable

android - 如何在 Kivy Launcher 中运行 OpenCV?

python - 找到矩阵中元素的最长对角线-python

php - 在 PHP 共享主机上保护数据库和 session 数据

python - GoogleAppEngineLauncher 在哪里保存本地日志文件?

node.js - 尝试将 Node.js 项目部署到 Google 应用引擎时出错

python - 调用 MySQL cursor.execute()(Python 驱动程序)挂起

c# - 未调用从 AuthorizeAttribute 覆盖 AuthorizeCore

security - Hadoop:用户到组映射的OpenLDAP设置因DN无效而失败

java - 如果您安装了 Google Plugin for Eclipse,是否还需要下载 App Engine Java SDK?