在 vb.net 代码中提供 SQLITE 加密密码的最佳方法

Best approach to provide SQLITE Encryption Password in vb.net code

原则上,可以很容易地加密 sqlite 文件,vb.net 和其他语言的代码示例在 Whosebug 和我的其他站点上提供。所有方法(至少我发现的)都将密码硬编码到源代码中,然后在查询期间提交给 sqlite 连接器。

我很好奇,这是否真的是最好的做法。我可以想象,从编译的二进制文件中提取密码是很容易的。感谢您的任何提示。

加密不解决问题,它转移问题。您有一个要保护的明文。你用一个秘密加密。现在您有了想要保护的秘密。你用它做什么?加密?你已经做过一次了。如果你再做一次,它会改变什么吗?

另一方面 - 将秘密保存在二进制文件中可能是错误的方法,因为这通常意味着您也将秘密保存在存储库的源代码中。这增加了应用程序的攻击面,通常是我们想要避免的。那么在哪里保存秘密呢?下一个最佳选择是将秘密保存在需要的地方——在执行二进制文件的服务器上(并且仅在服务器上)。此方法还遵循 Twelve-Factor App 的规则,您希望在环境中保留配置。

将应用程序 运行 设为技术用户。将所有秘密放在受文件系统访问权限保护的文件中,以便只有技术用户才能读取它们。如果没有额外的硬件令牌支持,这是二十一世纪最好的。像启动应用程序时手动秘密输入这样的魔法对任何人来说都是不切实际的。