ade*_*hus 10 security authentication encryption oauth-2.0
我正在建立一个网站,使用Google的OAuth2界面进行用户身份验证.该网站将存储与每个用户相关的私人数据 - 我计划对其进行加密.
如果我为网站实现了自己的身份验证方法,我可以很容易地从用户的凭据(包括用户的密码)中获取密钥,从而允许每个用户的数据受到强烈保护.但是使用OAuth2,我相信我只能接收一个访问令牌,在一段时间内授予该用户权限 - 问题是访问令牌值会随着时间的推移而改变.
有没有一种方法可以让OAuth2为我提供一个与用户绑定的不可变秘密,我可以使用它来从中获取安全密钥?或者是否有其他方法使用OAuth2创建安全持久密钥?
---编辑---
在回答问题和评论时,需要考虑以下几点:
我想我想要发现的是OAuth提供商是否可以向OAuth客户端提供与用户和客户端安全链接的不可变值 - 实际上,这将是一个只能由OAuth提供商使用组合解锁的密钥.用户的秘密(他们的身份验证密码)和客户端的秘密(在OAuth协议中使用).然后,客户端可以使用此值为用户的数据提供合理的安全级别.
当然,这种实现并不完美,因为滥用,但正确实施,可以提供一种合理的方法来保护数据,同时仍然使用OAuth方案的良好实践.
令牌的意义在于,您可以使用该令牌从 Google 获取有关用户的信息。在初始身份验证期间,您将告诉用户和谷歌您想要访问有关用户的某些信息:
https://developers.google.com/+/api/oauth
假设用户允许您访问他们的信息,例如他们的电子邮件地址,那么您可以从谷歌获取他们的电子邮件地址。一旦您获得了他们的电子邮件地址,您就可以为其用户生成一个密钥,将其存储在您的用户表中,并使用它来加密他们的数据。然后,当他们再次登录时,您可以查找他们的电子邮件地址并找到他们的密钥。
是否有特定需要将不可变信息“保密”?或者它只是识别用户的密钥?
如果您存储的信息确实是私有的,并且您希望使其无法访问用户的数据,那么您所要做的就是为用户存储加密的 blob。用户下载数据后,他们可以使用密钥在客户端解密数据。
| 归档时间: |
|
| 查看次数: |
2113 次 |
| 最近记录: |