我们正在设置一个虚拟专用服务器(不由我们托管),我们将在该服务器上测试基于 Django 的 Web 应用程序。这些测试中产生的用户生成内容将非常敏感。我们希望对这些内容进行加密,例如以防备份媒体丢失。内容将存储在 MySQL 或 SQLite 数据库中。
据我了解,我们无法加密 VPS 的文件系统。如果我们使用 SQLcipher 之类的工具加密数据库(http://sqlcipher.net/),有没有办法将密钥传递给 Django 而不将其存储在服务器上?我们将在每次测试时启动服务器,因此这部分不是问题。
答案1
正如您所说,您无法加密 VPS 的文件系统。我不知道您的 VPS 提供了哪些功能,但您可以尝试创建挂载在 /var/lib/mysql 上的第二个文件系统(对于 mysql 服务器而言)并对其进行加密(例如,使用软件 LUKS)。
另一种选择是使用 VPS 的文件创建加密的循环设备文件系统并将其挂载在 /var/lib/mysql 上;这里有一些关于此解决方案的参考资料https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_a_non-root_file_system