用CAS加强.NET智能客户端程序的安全性

ZDNet软件频道 时间:2003-04-30 作者:BUILDER.COM |  我要评论(1)
本文关键词:
在CLR引入了处理程序安全性的新方法,即安全代码访问(CAS),在这篇文章中,我会讲述CAS的基础以便为你开发智能客户端程序作准备。
本文译自Builder.com,未经许可请勿转载微软的.NET Framework使我们能够开发智能客户端和XML Web服务应用程序。通过通用语言运行时(CLR)这个健壮的面向对象的引擎,再加上全面的类库,程序员可以很轻松创建可以被用户的PC下载并本地执行的智能客户端程序,而它们在配置、安装和更新的过程中都不用用户介入。很多这样的概念最近被包含到一个名为TaskVision的示例程序中,可以在Windows Forms Web站点上找到它。

对于程序员和用户来说,这种面向连接的软件开发引入了一套新的安全机制,因为代码是下载到各种不同的PC上运行的。幸运的是,CLR也引入了处理程序安全性的新方法,即安全代码访问(CAS)。在这篇文章中,我会讲述CAS的基础以便为你开发智能客户端程序作准备。

一个新方法

在Windows环境下,一台PC上执行代码的权限通常是由运行代码的用户帐户决定的。例如,我正在运行一个CRM程序,它要想一个特定目录写一个文件,那么操作系统在允许程序进行这个操作前会先检查我的用户帐户是否拥有对那个目录的权限。对于机器的其他资源和权限也是这样,比如访问系统注册表、创建日志事件、改变系统时间以及关闭计算机等等。

问题是系统是一个整体,它不允许为代码属性本身设置任何权限。如果一个黑客能够说服或者诱使你下载一段代码,而你在很高的权限账户下运行它,那操作系统就对各种危害门户打开。这种情形就是导致著名的宣言“在最小权限下运行”的原因,每个人都应该注意这一点。

但是,.NET Framework提供了比这种单纯的基于身份的安全性更高级的功能。由CLR强制执行的CAS机制允许为代码(实际上是assembliy,.NET Framework中调度和保护的单位)指定基于属性的不同的可信度等级,例如数字证书或源站点或URL。在这种方式下,.NET Framework只允许已知的或受信的源代码执行。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134