将字符串保存在没有用户可以访问的安全存储中[关闭]
Posted
技术标签:
【中文标题】将字符串保存在没有用户可以访问的安全存储中[关闭]【英文标题】:Save string in a secure store where no user has access to [closed] 【发布时间】:2019-08-06 12:34:53 【问题描述】:我想将普通文本字符串保存到安全存储中,没有用户可以访问,因此无法更改字符串的任何文本。
是否有可能将字符串保存在一种“安全存储”中,可能会加密该字符串,该字符串目前在 Windows 下使用 CSP 容器与 RSA/AES 一起使用。但我不想将加密的字符串直接保存到文件中,因为用户应该无法更改字符串。
没有互联网或网络连接。因此,保存在服务器上不是一种选择。我需要保存在本地!
是否有可能安全地存储字符串(在 Windows 下)?
【问题讨论】:
用户(或者更确切地说是您的进程)是否需要再次读取该值?如果是这样,对您的问题的技术回答显然是“不”——根据定义,您的应用程序可以做什么,用户可以做什么,其余的只是混淆。如果您的进程永远不会再次读回该值,那么它是可行的,但只能将其交给另一个更具特权的进程。如果您只想防止幼稚的篡改,则可以选择加密签名(当然,用户仍然可以获得密钥)。 是否有可能安全地存储字符串? 问题太宽泛了...但答案是 否 ... 拥有管理员权限的用户权利和足够的编程技能会找到方法 【参考方案1】:答案是否定的。任何可以物理访问机器的用户都可以更改硬盘。例如,他可以在硬盘控制器和操作系统之间安装代理,而您永远不会注意到。
更简单:如果用户对机器具有管理员访问权限,他可以更改系统上的每个文件,而无需执行任何硬件技巧。
您还应该澄清用户是否应该能够阅读或不能改变字符串。另外:您的应用程序(在用户的访问权限下运行...)应该能够读取字符串吗?
【讨论】:
以上是关于将字符串保存在没有用户可以访问的安全存储中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章