- 加密(可选)应使用用户的密码口令进行。
- 用户登录(可选)应使用用户的登录密码进行。
备注:
明文密码不会存储在服务器上或通过网络传输。
我的选项及其缺点:
1. 无身份验证,客户端授权:
服务器向所有人提供数据,但只有原始用户才能解码。
数据可以被任何人用来尝试破解加密 - 并不是最好的保护方式。
2. 服务器端身份验证,无授权:
服务器存储用户密码以访问数据,并仅向提供正确密码的用户提供数据。
用户不相信没有加密的网络传输他们的数据。
3. 身份验证和授权:
服务器存储用户密码以访问加密数据,加密使用与用户密码不同的密码口令。
安全性较高,但用户不想记住两个密码。
4. 身份验证 vs. 授权:
服务器存储用户密码以访问加密数据,加密使用相同的密码。
用户很满意。存在一些安全问题。
我更喜欢第四个选项,但我的担忧是:
如果服务器被攻击,我怎么能确保加密密码和加密数据不能一起使用来破解加密?
如何使破解加密更困难?
一些想法:
- 为密码和数据使用不同的加密算法。
- 在加密之前向用户的密码添加固定字符串。
- 将用户的密码填充到一定长度。
编辑:
该系统应与备份系统非常相似,应从各个方面保护安全性:服务器不应能够读取数据,只有原始客户端才能访问数据,并且应防止中间人攻击。因此,如果有人入侵了服务器身份验证或客户端加密,则不应泄露数据。
它应该是基于Web的,因此可以通过HTTPS防止中间人攻击。
为了防止服务器入侵揭示数据,数据在客户端进行加密。
为了防止客户端加密被篡改,应在服务器端使用某些登录和密码或令牌(可能是唯一的URL)来保护对数据的访问。