m_v*_*aly 4 security authentication encryption passwords authorization
假设我必须存储用户的敏感数据,这些数据可选择在客户端加密.
注意:
明文密码不存储在服务器上或通过网络传输.
我的选择和缺点:
1.无身份验证,客户端授权:
服务器将数据提供给每个人,但只有原始用户才有解码的方法.任何人
都可以使用数据来破解加密 - 而不是保护加密的最佳方法.
2.服务器端身份验证,无授权:
服务器存储用户密码以访问数据,并仅向可提供正确密码的用户提供数据.
用户不信任网络在没有加密的情况下传输数据.
3.身份验证和授权:
服务器存储用户密码以访问加密数据,加密使用与用户密码不同的密码完成.
安全性很好,但用户不想记住两个密码.
4.身份验证与授权:
服务器存储用户密码以访问加密数据,加密使用相同的密码完成.
用户很高兴.一些安全问题.
我更喜欢最新的第四个选项,但我担心的是:
如果服务器受到损害怎么办?如何确保加密密码和加密数据不能一起用来打破加密呢?如何才能更难打破加密?
一些想法:
编辑:
系统应该非常类似于应该从各方面保护的备份系统:服务器不应该能够读取数据,只有原始客户端应该能够访问数据,并且应该防止中间人攻击.因此,如果有人破解服务器身份验证或客户端加密,则不应泄露数据.
它应该是基于Web的,因此应该使用HTTPS阻止中间人攻击.
为防止服务器黑客泄露数据,数据在客户端加密.
为防止客户端加密篡改,应在服务器端使用一些登录和密码或令牌(可能是唯一的URL)来保护对数据的访问.
@Vitaly,允许我在回答之前澄清一些术语,因为你似乎对某些术语使用了与常用术语不同的含义.
Authentication - 证明你是谁的过程(更准确地说,你拥有你声称的身份).
Authorization - 用于限制,控制和授予访问权限的机制.
Encryption - 一种保护数据的机制,即使是有权访问数据的人也是如此.
现在,请允许我重新定义您的选项,然后我会建议其他内容:
现在,我认为每个人站在哪里都可以更清楚.
一般来说,你真的想遵循"最佳实践"(不要让我开始那些)"深度防御"的原则,即不要只使用加密,或只使用访问控制,而是使用两者!但是,正如您所指出的,这可以与另一个原则"保持安全性简单" 相反(如果用户需要记住两个密码).
在没有尝试太烦人的情况下,您没有提供有关环境的大量信息.例如,这是一个Web应用程序吗?如果是这样,为什么SSL/TLS不足以为您加密?或者这是用户上传您(和您的系统)不应该看到的个人数据的问题(例如备份类型的服务)?在这种情况下,客户端加密是必要的......
所以,(最后)我建议的选项,取决于您的环境/要求:
| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |