gpt4 book ai didi

c# - 我可以对具有物理访问权限的管理用户隐藏 .NET 内存变量吗?

转载 作者:行者123 更新时间:2023-11-30 14:27:31 26 4
gpt4 key购买 nike

假设有一条敏感信息存储在内存中,它的定义如下:

private readonly String Key;

Key 变量使用传递给所属类的构造函数的参数赋值。该值是通过辅助应用程序调用 Console.ReadLine() 获得的。在将值传播到它应该去的地方后,该控制台应用程序将关闭。该值永远不会写入或读取到文件或注册表。这纯粹是一种内存中的交易。

不让任何人知道此 key 非常重要,包括可能拥有域管理员访问权限的各种顾问,更不用说对计算机的物理访问权限了。

我一直在尝试想出一些万无一失的方法来保护这个 Key 值,但我真的想不出任何办法。我假设任何具有管理访问权限的人都可以简单地启动 Visual Studio,附加到进程,然后追踪 Key 的值,这是否正确?

再次强调一下。我们可以容忍物理机器的破坏或驻留在该机器上的任何数据被盗。我们唯一不能容忍的是应用程序运行时内存中的 Key 丢失或被盗。

(此应用程序在 .NET 4.5、Windows 2008 Server 上运行)

有什么想法吗?

最佳答案

不,您不能阻止具有物理访问权限的人读取内存;他们总是能够探测物理内存总线。而在用户模式下,你甚至不能阻止其他管理程序读取内存;正如您所说,它们可以作为调试器附加。

有些系统旨在让获取存储在物理设备(例如可信平台模块、智能卡、现代视频游戏机、蓝光播放器等)上的 key 变得困难,但这些东西使它变得困难,而不是不可能,并且不适用于 Joe .NET App。

关于c# - 我可以对具有物理访问权限的管理用户隐藏 .NET 内存变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32468985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com