在应用的生存期内保存/防篡改敏感数据的推荐方法
本文关键字:敏感数据 方法 生存期 应用 保存 | 更新日期: 2023-09-27 18:33:27
我的应用程序将用户交互存储在一个加密文件中,该文件在我可以Session
期间收集。会话就像离线考试,因此我们不仅存储答案,还存储鼠标单击,屏幕截图等。
必须保持原子状态,因此我继续保存增量文件并在会话结束时将它们修补在一起。如果应用发现篡改文件的痕迹,则会将会话标记为不合格。
我想要实现的目标:
- 创建的增量文件只能由应用程序访问。换句话说,任何具有提升权限的人都不应该能够修改或删除它们。
- 一种不依赖于 Windows 的应用程序的方法,用于确保在打包会话时没有人篡改增量文件。
- 内存防篡改。换句话说,如果内存数据已被强制修改,我的应用程序应该了解它。这可能吗?
我考虑过隔离存储,哈希等,但希望从做过这种事情的其他人那里得到建议。
特别是对于 .NET(和 Java(等托管环境,在与完全控制其系统的用户在同一台计算机上运行时,无法安全地执行此操作。尝试将需要保护的应用程序部分移动到中央计算机(例如 Web 服务(。这样,没有人可以将调试工具附加到该逻辑或进行内存转储。这是保护应用程序的唯一方法。
您可以使用安全字符串来存储敏感信息,但只能在内存中存储。并避免内存转储。
您可以加密文件以避免在文件系统中看到敏感信息。
您无法避免文件删除,您可以在应用程序的生命周期内锁定文件,但这并非万无一失。