Ale*_*ung 4 c# reflection truecrypt private-methods
实际上,私有方法是在C#中实现的,仍可以使用它进行搜索Reflection.
我要做的是编写public string Encrypt(string data)和private string Decrypt(string cipher)执行加密和解密的方法.
不幸的是,如果有人知道.NET框架,他可以Reflection用来查找Decrypt方法并解密所有加密的东西.
似乎不那么安全.所以我想把Decrypt方法变成真正的私有方法.
但是怎么做呢?
更新日期:2012年1月9日下午10:52悉尼时间
bdares提供了这个问题的技术解释
Eric Lippert提供了这个问题的政治解释
谢谢两位专家!
小智 16
你不能.如果攻击者可以访问您的代码,编译或源代码,他可以跟踪您的程序并找到加密或解密的位置.
您可以通过将密钥存储在单独的位置来添加一层安全性,但通常如果攻击者正在您的服务器上执行代码,那么您已经搞砸了.
(如果攻击者在您的服务器上执行代码,您只会担心这一点,因为否则该方法是否为私有无关紧要.此外,他不能使用反射来查找方法名称,除非他正在执行代码你的服务器. 简而言之:你在这里担心错误的事情.)
Eri*_*ert 15
你的根本问题是你的信任模型错了.如果有人可以使用反射,那么他们就是用户.您是软件提供商.你为他们工作. 信任来自他们,而不是来自你.他们是谁拥有信任的人,你,而不是你他们.
如果您不信任该用户,那么首先不要将它们出售给您.不要向那些你认为打算攻击你的人出售武器.
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |