我计划在客户位置部署服务器,可能是基于 linux/bsd 的系统。如何确保服务器免受数据盗窃/复制的侵害,例如有人(可能是客户自己)复制磁盘。我知道磁盘加密可能会有所帮助,但任何拥有有效密钥的人都可以解密,有没有办法让用户/客户看不到,这样他们就不必在启动时输入密钥。
答案1
我知道的唯一方法是将密钥放在硬盘上未加密的分区中。不太安全——客户可以读取该分区。
唯一“安全”的方法是将加密以某种方式绑定到硬件中,这样磁盘(或磁盘映像)只能在一组硬件上使用 - 也许可以使用 BIOS ID 之类的东西作为加密密钥的一部分?不太确定你会怎么做。
答案2
您可以将敏感数据存储在加密分区上,然后要求某人通过 SSH 登录并输入密钥来解锁。显然,重新启动后,系统将无法正常工作,除非有人解锁它。
答案3
那样做根本行不通。
如果您想防止物理盗窃,则必须将密钥存储在异地。将其保存在特殊服务器中无助于防止有人欺骗您的服务器泄露密钥,就像正常启动正在进行一样,或者修改启动过程以转储密钥。(如果不泄露密钥,就无法解锁数据。)
此外,无论你使用什么软件,窃贼和客户都可能复制驱动器内容的字节精确副本。某种硬件解决方案是必要的。
但最终,无论谁拥有物理访问权限能找到绕过安全措施的方法。
答案4
看看第 7 部分:
7. Examples
7.1. Example 1 - Encrypting swap on 2.4 and newer kernels
7.2. Example 2 - Partition backed loop with gpg encrypted key file
7.3. Example 3 - Encrypted partition that multiple users can mount
7.4. Example 4 - Encrypting /tmp partition with random keys
7.5. Example 5 - Encrypting root partition
7.6. Example 6 - Boot from CD-ROM + encrypted root partition
7.7. Example 7 - Boot from USB-stick + encrypted root partition
7.8. Example 8 - Encrypted partition using serpent cipher