我们希望设置一个 Linux 服务器(托管 Git 或更高版本的 SVN 存储库),该服务器应将所有存储的数据进行强加密,这样如果有人窃取了服务器,数据也无法读取。例如,我们的笔记本将所有重要数据存储在“真正加密”的分区上。
我们计划使用 SSH 私钥访问它,并且只有成功登录后才能读取数据。服务器将位于我们的办公室,晚上关闭,不直接连接到互联网,而只能在我们的内部网中访问。
你有什么建议?我只是偶尔使用 Linux,因此对它不是很熟练。
答案1
如果您不信任您的机器所处的位置,您就永远不能认为您的数据已完全保存。
为最大程度降低数据丢失风险,一种常见的设置是加密包含敏感数据的磁盘分区/逻辑卷。这可以保护您免受
- 有人卸下硬盘,将其放入另一台机器并读取数据
- 有人将您的机器重新启动到不同的系统并从那里访问您的数据。
但是,在运行时,当有授权的人想要读取数据时,您的系统必须知道如何解密数据。因此,在(重新)启动后,您必须输入用于加密数据的密码,之后解密/加密的私钥将保存在内存中。因此,加密
- 做不是增强安全性,防止攻击者滥用软件(svn 服务器、web 服务器等)或系统中的弱点(任何能够获得系统 root 权限的人都可以访问您的数据,还可以在内存中复制您的私钥)
- 做不是保护您免受更复杂的手段获取您的数据的侵害。例如,RAM 不会即刻计算机关闭或断电时将丢失所有数据。已证实人们可以通过冷却 RAM 来延迟该过程,以获得足够的时间来读取 RAM(从而在物理访问机器时获得对加密数据的访问权限)。
但是,我们必须评估这种情况的现实性。正如我所说,如果你不信任处理硬件的地点/人员,你总是处于危险之中。如果硬件本身是由这些人提供的(数据中心租用的硬件),甚至还有额外的风险,即你的硬件已被修改以访问你的数据 - 例如,即使没有关闭你的计算机并深度冻结 RAM,个人也可以访问你的 RAM 状态。
如果您想要提高数据安全级别,并且能够忍受上述场景的磁盘,那么您可能想要使用磁盘加密。这是对数据中心的数据进行的常见操作。要在您的 Linux 系统上实现这一点,您需要研究