我一直在看attr_encrypted,但是它将密钥存储在代码中,这似乎并不那么安全。如果我的网络服务器遭到破坏,则加密将无济于事。
如果我的网络服务器遭到破坏,仍然可以保护数据的哪些选择呢?
密钥必须在内存中才能执行加密和解密。如果您的服务器遭到破坏,那么无论您如何存储密钥,您都会感到无所适从。一旦攻击者可以访问您的本地计算机,所有赌注都将关闭。如果您的应用程序可以解密数据,那么他们也将能够根据他们愿意花费多少精力来提取这些密钥。
attr_encrypted可以保护您免受SQL注入等导致敏感数据泄漏的伤害,但是,如果您的应用程序受到威胁,则攻击者可以获取应用程序可以访问的所有内容。
不过,要使其变得更困难,可以使用密码加密的密钥。您可以将加密的密钥存储在磁盘上,然后在部署应用程序(或以其他方式启动它)时,将提供密码以将密钥解密到内存中,然后将其丢弃。这仍然无法保护您免受进程内存破坏的困扰,这意味着您必须在每次启动应用程序时都要进行人为交互(这可能是自动监视的问题),但这会大大增加难度(但不能阻止)从受感染机器中提取加密密钥。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句