如果我向 .net 框架提供我的程序集所属代码组的证据,我不能提供虚假证据表明我属于受信任区域代码组吗?
我知道什么是安全策略、权限集,但我不明白框架如何检查证据,然后根据该证据确定代码组。
任何解释将不胜感激。
谢谢 :)
允许调用者提供证据的各种 BCL 方法本身受权限要求的保护。调用者通常至少需要 SecurityPermission\ControlEvidence,但通常需要无限制的权限授予(也称为“完全信任”)。(由于 SecurityPermission\ControlEvidence 仅在默认 CAS 策略下授予本地安装的代码,因此在大多数情况下几乎没有实际区别。)最终结果是,只有高度受信任的代码才能通过控制其证据来影响任何给定程序集的权限授予。
如果您认为您发现了此一般规则的例外情况,您能否提供详细信息?
证据可以是汇编强名称、代码库和其他东西。它当然可以验证这些东西。您根据证据手动信任程序集。基本上,您告诉框架程序集是否具有以下属性,授予它该权限集。我看不出有什么办法可以提供虚假证据。你能举个例子吗?
PS。是的,例如,您可以窃取某人的密钥对并用它签署您的程序集。与任何其他安全系统一样,它依赖于信任链。如果你打破了链条的一部分,你就搞砸了。没有真正的方法可以在安全系统中规避这些东西。毕竟,您可能会因缓冲区溢出或其他原因破坏系统,并将您的程序集添加到完整信任列表中。