我正在使用C#编程系统.我的程序生成一个我想要存储在硬盘上的小消息(文件的哈希摘要) - 但我不希望用户能够读取它.我打算加密这条消息,但有人建议这是一个不好的想法.
所以我正在寻找替代方案 - 您如何保护完全信任的用户的一些秘密信息?
Eri*_*ert 29
退后一步; 你有一个解决方案,从根本上不适用于你所遇到的问题.而不是试图锤击它直到它工作,停止,退后一步,并解决真正的问题.
涉及真钱的安全问题是一些最难解决的问题; 坏人有一个真正的金融动机来攻击你的系统.对于这些类型的事情,多管齐下的方法通常是最好的.
首先,编写威胁模型:
一旦了解了资源,威胁和漏洞,就会开始考虑缓解这些威胁.为每个缓解措施分配成本和有效性.
例如:
好了,既然我知道攻击是什么,我就可以开始考虑缓解:
这些都在增加费用的顺序.最终,缓解的成本大于资源的损失,花钱是没有意义的.
还有一些方法可以将缓解成本外部化:
加密包含用户计算机上的用户数据的文件并不能减轻任何攻击.找出攻击的内容以及实际缓解攻击的内容,包括攻击者对攻击者的攻击,然后实施一个实际缓解漏洞并消除威胁的系统.
你提出的缓解措施是:给窃贼钥匙,并要求小偷在他试图窃取电视之前锁上窗户.这不是缓解漏洞.没有涉及将密钥交给窃贼的提议是缓解解锁窗口漏洞,因此请停止尝试查找漏洞.
有关威胁建模的更多"软件"重点示例,请参阅:
http://www.owasp.org/index.php/Threat_Risk_Modeling
http://msdn.microsoft.com/en-us/library/aa302419.aspx
等等; 你可以在网上找到很多关于我们如何在微软进行威胁建模的东西.
最后:
说真的,你正在咬掉软件实施中最困难的工作之一,其中小错误的后果会产生重大的财务影响.将您的实施预算花在具有该领域专业知识的顶尖专家顾问身上,可以帮助您找到制定安全解决方案所需的现成和定制部件.滚动自己的安全系统可能听起来既有趣又便宜; 它既不是.把这种事情留给那些在职业生涯中学习这个空间的人.
我的程序生成一个我想要存储在硬盘上的小消息(文件的哈希摘要) - 但我不希望用户能够读取它.
用户可以完全控制他们的机器.如果您的软件可以读取它,那么用户也可以通过一点点努力来阅读它.
而不是与客户打一场失败的战斗,最好接受"这是用户机器,而不是我的机器",并且不要为任何过多的事情烦恼 - 只需Base64对其进行编码即可.
为什么你需要阻止用户阅读哈希摘要呢?
这是DRM问题,无法完成.通过提出新的和新颖的方法来混淆数据,你可以使它变得非常不方便和令人沮丧,但是当加密和解密的机器都在一个系统中作为"敌人"托管时,认为可以保护数据是一个根本上有缺陷的想法. "完全控制.
归档时间: |
|
查看次数: |
1244 次 |
最近记录: |