我看到 KeePass 不仅加密它的密码数据库文件,它还可以加密它保存在内存中的密码。这只是一个例子。我正在考虑一个处理敏感/个人数据的新项目,现在我问自己是否也应该加密内存中的数据。该项目将使用 Java SE 和一个附加的 android 应用程序来实现。在这种特殊情况下,不会有数据存储在云或服务器上。Java SE 桌面应用程序将通过电缆连接导入来自 android 的数据。
但为什么这是必要的呢?现代操作系统是否不使用虚拟内存管理,以便用户空间/用户模式进程无法访问其他进程内存?
如果存在使外部内存访问成为可能的操作系统漏洞,这是否只是另一道防线?在这种情况下,我认为窃取数据文件并使用键盘记录器来捕获用户输入的密码要比通过内存访问窃取数据要容易得多。