gpt4 book ai didi

security - 如何通过 OAuth2 身份验证保护私有(private)数据?

转载 作者:行者123 更新时间:2023-12-02 21:31:32 25 4
gpt4 key购买 nike

我正在设置一个网站以使用 Google 的 OAuth2 界面进行用户身份验证。该网站将存储与每个用户相关的私有(private)数据 - 我计划对其进行加密。

如果我为网站实现了自己的身份验证方法,我可以轻松地从用户的凭据(包括用户的密码)中获取 key ,从而使每个用户的数据都得到强有力的保护。但使用 OAuth2,我相信我只能接收一个访问 token ,授予该用户一段时间的权限 - 问题是访问 token 值会随着时间的推移而改变。

OAuth2 有没有一种方法可以为我提供与用户绑定(bind)的不可变 secret ,我可以用它来派生安全 key ?或者是否有其他方法使用 OAuth2 创建安全持久 secret ?

--- 编辑 ---

为了回答问题和评论,以下是一些需要考虑的想法:

  • 所有用户信息都应始终受到强大的加密和用户身份验证的保护 - 我们阅读如此多有关网站和数据库黑客的新闻文章的原因是因为开发人员说“我们真的需要保护这一点”,然后回答“不 -因为除了我们之外没有人能够访问数据库,安全性很困难等等”。黑客下载数据库et violá。信用卡、电子邮件地址、电话号码、密码,只要你能想到的,都会被泄露。
  • 只有两个真正的 secret - 一个是存储在某人头脑中的密码,另一个是只有授权用户才能访问的强随机值(如物理 token )。如果您认为安全 key 可以仅从电子邮件地址派生,或者 secret 需要存储在数据库中,那么您就没有真正了解安全性。

我想我试图发现的是 OAuth 提供者是否可以向 OAuth 客户端提供安全链接到用户和客户端的不可变值 - 实际上,这将是只能由 OAuth 提供者使用来解锁的 key 用户的 secret (其身份验证密码)和客户端的 secret (在 OAuth 协议(protocol)中使用)的组合。然后,客户端可以使用该值为用户数据提供合理的安全级别。

当然,由于滥用,此实现并不完美,但正确实现可以提供合理的方法来保护数据,同时仍然使用 OAuth 方案的良好实践。

最佳答案

token 的意义在于,您可以使用该 token 从 Google 获取有关用户的信息。在初始身份验证期间,您将告诉用户和 Google 您想要访问有关用户的某些信息:

https://developers.google.com/+/api/oauth

假设用户允许您访问他们的信息(例如他们的电子邮件地址),您就可以从 Google 获取他们的电子邮件地址。一旦您获得了他们的电子邮件地址,您就可以为其用户生成一个 key ,将其存储在您的用户表中,并使用它来加密他们的数据。然后,当他们再次登录时,您可以查找他们的电子邮件地址并找到他们的 key 。

是否有特定需要将不可变信息“保密”?或者它只是识别用户的 key ?

如果您存储的信息确实是私有(private)的,并且您希望使其无法访问用户的数据,那么您所要做的就是为您的用户存储加密的 blob。用户下载数据后,他们可以使用 key 在客户端解密数据。

关于security - 如何通过 OAuth2 身份验证保护私有(private)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com