写点什么

微软将在.NET 4.0 中放弃代码访问安全技术(CAS)

2009 年 11 月 17 日

CAS 因其复杂性而常常为人诟病。开发人员在误用了代码块的属性时很少,甚至几乎无法获得任何反馈。对于管理员来说情况就更糟糕了。对于每个批准的 CAS 策略都需要手动设置,但是应用程序很少把他们所需的许可列出来。更糟糕的是,对于.NET 的各个版本都必须重新创建 CAS 策略。

实践中,CAS 更关注安全威胁而非安全本身。默认情况下,执行文件共享的许可与把文件从文件共享复制到本地磁盘的许可不同。如果该执行操作未被授权,那么 CAS 是根本不会放行的。

在.NET 4.0 版本中,全局 CAS 策略默认情况下会被停用。系统管理员则被鼓励使用更有效的方式来进行替代,例如:Windows 软件限制策略。如果确实需要 CAS,就可以在每个应用程序的 app.config 文件中,将 runtime/NetFx40_LegacySecurityPolicyenabled 设置为 true 即可。

一般情况下,代码默认都在完全信任的的环境下运行。许可在应用程序域级别获取,而不是在单个应用程序域中混合安全级别的策略。使用 URL 调用 Assembly.LoadFrom 则表示该程序集完全可信。

当托管代码被寄存的时候,它会运行于宿主所指定许可的沙盒中,例如在 SQLCLR 中运行托管程序集,或者利用 ClickOnce 运行从网络中安装的应用程序。在受到沙盒保护的应用程序域中,每个程序集会以部分或完全可信的形式运行,而不需要遵循原有复杂系统中遍历堆栈和链接的要求。

在新的模型中,在创建应用程序域的时候,必须明确指定部分可信的程序集列表,同时也必须包含一个完整可信的程序集列表。

实际上,代码可以分为三个级别。最高级别,即“Critical”,是完全可信的代码,它可以执行任何操作。最低级别的代码,“Transparent”,不能直接调用 Critical 级别的代码。标识为“Safe Critical”的代码在两者间起到桥梁的作用。我们很容易理解“Transparent”和“Critical”级别的代码,“Transparent”代码由沙盒重点监控,“Critical”代码则完全不受约束。我们需要关注的代码就是“Safe Critical”代码,它们非常少,需要仔细的进行检查。它更像内核与用户之间的通道代码,即使“Safe Critical”代码的一个错误也会产生灾难性后果。

如果这些看起来都似曾相识也很正常。这种二级安全透明(Level 2 Security Transparency)模型已经在 Silverlight 平台中证实可行。您可以在 MSDN 中找到更多关于二级安全透明的资料。

查看英文原文: Microsoft is Dropping Code Access Security in .NET 4.0

2009 年 11 月 17 日 21:031056
用户头像

发布了 87 篇内容, 共 16.9 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Redis-技术专题-Jedis实战入门

李浩宇/Alex

嘘!偷窥鹅厂运维专家,让Linux内核奔跑起来不得不说的秘密

周老师

Java Linux 编程 程序员 架构

系统架构第四周总结「架构师训练营第 1 期」

天天向善

开源监控系统open-falcon搭建笔记

卓丁

监控 监控管理平台 Open-Falcon 监控告警

反射API

彭阿三

反射

一文搞懂PV、UV、VV、IP及其关系与计算

冰河

多线程 高并发 流量 并发流量

云服务时代,未来怎么样保障自己的核心竞争力?

boshi

个人成长 职业规划 云服务

MySql领域经典之作,“不敢自诩为MySql专家,岂敢错过这本神书”

Java架构之路

Java MySQL 程序员 面试 编程语言

架构师第一期作业(第四周)

Cheer

课程作业

2020国庆我花了 7 天给大家撸了一篇云南旅游攻略

石头

美食 旅行

Java并发编程-线程基础

云流

程序员 并发编程 java 14 架构师训练

诺奖以上,真相未满:追捕黑洞二百年

脑极体

延迟满足

时间是一个人最好的证明

延迟满足感 成功

TensorFlow安装

菜鸟小sailor 🐕

学习

某Java程序员在外包公司每天读写删改几年后,发现跳不出来了

Java架构之路

Java 程序员 面试 算法 编程语言

来碗小面

葱小白

美食 旅行

《我想进大厂》之Redis夺命连环11问

艾小仙

Java redis 面试 程序语言

一场哔哩哔哩Java开发面试之旅,分享面试经历及复习资料

Java成神之路

Java 程序员 面试 算法 编程语言

系统架构第四周作业「架构师训练营第 1 期」

天天向善

面朝大海,夏日的遗憾一定会被秋风温柔化解

张sir

美食 摄影 摄影征文 旅行

浅析 Java 内存模型 一

朱华

Java JMM

手写SpringIOC

彭阿三

spring源码 sping springioc

阿里巴巴内部“Java成长笔记”,看完才发现自己和阿里大牛的差距真的太远了!

Java架构之路

Java 阿里巴巴 程序员 面试 编程语言

程序员在中国是青春饭?扯!看看阿里资深架构师是怎么说的!

Java架构师迁哥

Java 程序员 面试

论软件工程师的自我修养:角色、重构与质量

华为云开发者社区

软件 开发 工程师

能够让机器狗学会灭火, ModelArts3.0让AI离我们又近一步

华为云开发者社区

人工智能 AI 机器狗

vidyo提供的云化视频会议与传统的视频会议有什么区别?

dwqcmo

音视频会议 集成架构 解决方案 智能硬件

MySQL-技术专题-连接查询和子查询

李浩宇/Alex

【硬件篇之功耗测试】

良知犹存

硬件

实用威胁建模指南(二)

亚伦碎语

敏捷 安全 系统安全架构 系统安全 威胁建模

手把手教你AspNetCore WebApi:数据验证

AI代笔

ASP.NET Core web api 数据验证

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

微软将在.NET 4.0中放弃代码访问安全技术(CAS)-InfoQ