Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在应用程序中保存/防篡改敏感数据的推荐方法';生命周期_C#_.net_Security_C# 4.0_Hash - Fatal编程技术网

C# 在应用程序中保存/防篡改敏感数据的推荐方法';生命周期

C# 在应用程序中保存/防篡改敏感数据的推荐方法';生命周期,c#,.net,security,c#-4.0,hash,C#,.net,Security,C# 4.0,Hash,我的应用程序将用户交互存储在一个加密文件中,该文件在会话期间收集。会话就像离线考试,因此我们不仅存储答案,还存储鼠标单击、屏幕截图等 会话必须保持原子状态,因此我会不断保存增量文件,并在会话结束时将它们修补在一起。如果应用程序发现篡改文件的痕迹,它会将会话标记为不合格 我想要达到的目标: 创建的增量文件只能由应用程序访问。换句话说,即使拥有更高权限的人也不能修改或删除它们 应用程序的一种非Windows依赖方式,用于确保在打包会话时没有人篡改增量文件 内存篡改校对。换句话说,如果内存数据被强制

我的应用程序将用户交互存储在一个加密文件中,该文件在
会话期间收集。会话就像离线考试,因此我们不仅存储答案,还存储鼠标单击、屏幕截图等

会话必须保持原子状态,因此我会不断保存增量文件,并在会话结束时将它们修补在一起。如果应用程序发现篡改文件的痕迹,它会将会话标记为不合格

我想要达到的目标:

  • 创建的增量文件只能由应用程序访问。换句话说,即使拥有更高权限的人也不能修改或删除它们
  • 应用程序的一种非Windows依赖方式,用于确保在打包会话时没有人篡改增量文件
  • 内存篡改校对。换句话说,如果内存数据被强制修改,我的应用程序应该会了解它。这可能吗

我曾考虑过隔离存储、散列等,但想从做过这类事情的其他人那里得到建议。

特别是在.NET(和Java)这样的托管环境中,当用户在同一台机器上运行并完全控制其系统时,无法安全地执行此操作。尝试将应用程序中需要安全的部分移动到中央计算机(例如web服务)。这样,没有人可以将调试工具附加到该逻辑或进行内存转储。这是保护应用程序安全的唯一方法。

您可以使用它存储敏感信息,但只能存储在内存中。并避免内存转储

您可以对文件进行加密,以避免在文件系统中看到敏感信息

您无法避免文件删除,您可以在应用程序的生命周期内锁定文件,但这并不是防弹的