我使用java spring实现了web应用程序。基本上,应用程序中的每个用户都可以存储一些关键信息。用户输入该数据后,应该保留该数据。是否有任何标准方法来存储该安全信息。我可以想到以下地方来存储这些信息
1) In database
2) On Webserver as different files for each user. We can encrypt data in those files using some key.
我更喜欢将webserver作为每个用户的文件。但我有以下问题:
1) Where can we store those files on webserver
2) How can we restrict access to those files?
3) Is there something available in spring to achieve this?
4) What kind of encryption library I can use to achieve this. And where I can store key for each user.
5) How we can sync those files on multiple instances. Is there some standard library for this also?
答案 0 :(得分:2)
我不熟悉Spring,但我最近致力于安全文件存储,所以我可以这么说:
在数据库中存储文件的优点如下:如果攻击者到达您的服务器,那么他将无法获取文件,他将不得不找到数据库密码。
要获得足够强大的身份验证方法,您必须向用户提出以下3个问题中的2个问题:
不够安全吗?让我们快速谈谈文件加密......
对于图书馆来说,我不知道(我的道歉),但对于加密方法,请保持简单:使用众所周知的高效算法,如RSA,AES或Triple DES。
如何处理加密?
以下是我与朋友就文件加密和密钥存储进行的对话的结果:
存储:
客户端必须加密文件。然后他将密钥和文件名(或文件ID)发送到服务器(server1
),并将加密文件发送到另一台服务器(server2
)
下载:
客户端从server2
获取加密文件,读取文件名(或文件ID)并从server1
获取正确的密钥,以便他可以解密文件。
最好的办法是使用双因素身份验证(3个问题中的2个)来保护2台服务器(1
和2
),但这可能是对用户的一个突破。经验。
希望它可以提供帮助,