我有一个加密数据库和解密密钥。如何防止解密密钥被黑客攻击(包括数据库攻击和未经授权访问PC)?
- 硬编码在汇编中。
- 保存在注册表中。
- 保存在RAM中。
- RSA
- AES
- Twofish
它永远不会完全安全,特别是在物理访问机器的情况下,但你可以使其变得困难。
使用3DES加密要保护的数据库字段。请注意,您不需要加密每个字段,也不应该这样做(因为速度和如果丢失密钥,您至少会知道需要做什么)。
不要将密钥存储在数据库服务器上。如果必须这样做,请将其存储在与数据库或Web应用程序不同的驱动器上。
在拇指驱动器或其他设备上备份密钥。不要跳过此步骤。
将密钥文件分成几个不同的文件,散布在不同的文件夹和不同的驱动器中。不要使用指示文件目的的名称。将位置存储在注册表中。
使用代码读取注册表,获取密钥的各个部分并组装它们。自己编写此代码,并不要使用指示程序目的的名称。
我理解您的描述是需要在数据库机器上某处保存解密密钥以完成工作。
如果拥有足够的专业知识和硬件访问权限,您无法保护数据库,因为无法突破加密。
对于所有其他情况,如果没有物理访问权限,您应该参考加密指南,这些指南适用于使用大多数平台特定技术的所有主要数据库。