我有一个关于加密磁盘的问题。
我有2台服务器:1是用于web /前端的apache,它与服务器2(即mysql)进行通信。它们全部仅用于内联网;没有外部访问。我正在研究使用PGP或GnuPG来加密磁盘。但是,我不清楚这究竟是如何起作用的。
密钥存储在哪里?在客户端?在阿帕奇?如果apache上有一个密钥来访问mysql,那么每个用户是否需要一个密钥?如果是这样,如果使用密钥1来改变某些数据,那么使用密钥2的用户是否无法访问该数据?而apache密钥只有具有本地密钥的用户才能访问?
加密是否即时完成?它会降低性能吗?
加密这些服务器上的数据,但让用户可以访问这些数据的最佳方法是什么?
谢谢!
答案 0 :(得分:1)
在您描述的设置中,可以有许多地方和方式来加密数据。如果要加密服务器之间的所有传输数据,可以在它们之间设置虚拟专用网络(VPN)。 如果要加密磁盘上的实际数据,可以在Linux上使用像CFS这样的加密文件系统。如果你有点偏执,你也可能想要加密交换空间。
考虑到CPU上的加密操作非常繁重,加密所有数据可能效率不高。我猜测加密一切都没有必要,你只想加密一些敏感的数据。我认为最直接的方法是使用用户的密码加上随机salt(为每个用户生成一次)作为密钥,并使用symmetric key algorithm之类的AES。
您的Web应用程序应以加密形式存储和检索数据库中的数据,并注意不要将未加密的数据保留在内存中超过严格必要的时间。为了(尝试)确保在此之后将其发送给客户端时保密,您应该使用TLS。