Type-Safety in .NET Security

原创 2003年03月10日 10:17:00

After taking a close look at Microsoft's embarrassingly lightweight Strategic Technology Protection Program, which, however, provides a welcome shift of emphasis for the company, it's time to return to the security features in Microsoft's upcoming .NET framework. This week, I'll take a brief look at the framework's type safety. Don't confuse this type safety with data type-verification in most programming languages. In a .NET security context, type safe means preventing programs from accessing memory outside the bounds of an object's public properties

Type-safe code accesses only the memory locations it is authorized to access. For example, type-safe code cannot directly read values from another object's private fields or code areas. It accesses types only in well-defined, allowable ways, thereby circumventing certain popular overrun security breaches.

During just-in-time compilation, an optional verification process examines the metadata and intermediate language of a method to verify that they are type-safe. If the code has permission to bypass verification, then this process is skipped. Although verification of type-safety is not mandatory for managed code, type-safety is important for assembly isolation and security enforcement. When code is type- safe, the common language runtime can completely isolate assemblies from each other. This isolation helps ensure that assemblies cannot adversely affect each other and it increases application reliability. Type-safe components can execute safely in the same process even if they are trusted at different levels.

JIT compilation performs a process called verification that examines code and attempts to determine whether the code is type-safe. Code that is proven during verification to be type-safe is called verifiably type- safe code. Code can be type-safe, yet not be verifiably type-safe, due to the limitations of the verification process or of the compiler. Not all languages are type-safe, and some language compilers cannot generate verifiably type-safe managed code. If you use a language compiler that generates verifiably type-safe code only when you avoid certain language constructs, then use the .NET Framework SDK PEVerify tool to determine whether your code is verifiably type-safe. Code that is not verifiably type-safe can attempt to execute if security policy allows the code to bypass verification. But because type-safety is an essential part of the runtime's mechanism for isolating assemblies, security cannot be reliably enforced if code violates the rules of type- safety. By default, code that is not type-safe is only allowed to run if it originates from the local machine.

When code is not type-safe, unwanted side effects can occur. For example, the runtime cannot prevent unsafe code from calling into native (unmanaged) code and performing malicious operations. When code is type-safe, the runtime's security enforcement mechanism ensures that it does not access native code unless it has permission to do so. All code that is not type-safe must have been granted SecurityPermission with the passed enum member SkipVerification to run.

ASP.NET Configuration的Security页的问题解决

在新创建的web site project上点击ASP.NET Configuration 进入Security页,进入安全管理页面。 出现了如下错误选定的数据存储区出现问题,原因可能是服务器名称或凭...
  • vivian315bj
  • vivian315bj
  • 2007年01月22日 12:09
  • 2349

spring security cas

22.3.3 Authenticating to a Stateless Service with CAS Thissection describes how to authenticate to ...
  • u013485144
  • u013485144
  • 2016年10月26日 09:12
  • 622

解决asp.net 2.0连接sql server2005数据库的难题

在Visual Studio 2005中网站->asp.net配置->安全中出现如下错误“无法连接到 SQL Server 数据库”解决方法:修改c:/WINDOWS/Microsoft.NET/Fr...
  • senbar
  • senbar
  • 2007年04月08日 19:12
  • 1075

WCF分布式开发常见错误(28):The requested upgrade is not supported by...

Posted on 2010-03-13 18:39 Frank Xu Lei 阅读(270) 评论(0)  编辑 收藏 所属分类: SOA and EAI, 开发常见错误解决 ...
  • book_frank_xl
  • book_frank_xl
  • 2010年03月13日 18:12
  • 1322

.Net客户端对WebService的调用(含WS-Security)

 (本文摘自互联网单元测试及实践)在上一节中我们介绍了测试客户端调用的方法,本章节主要讲述在.net环境下客户端调用的方法,我们将着重介绍如何生成客户端代理,如何实现WSS客户端配置。 8.6.1  ...
  • linkyou
  • linkyou
  • 2009年02月10日 12:12
  • 8415

.NET Development Security Solutions

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpThe .NET ...
  • topmvp
  • topmvp
  • 2008年09月09日 22:45
  • 211

.Net Security Blogs--------------------------

.Net Security Blogs--------------------------
  • xuplus
  • xuplus
  • 2008年05月10日 10:57
  • 355

Security policy in .Net

See details at http://blogs.vbcity.com/hotdog/archive/2006/03/20/5907.aspx
  • FrankWin
  • FrankWin
  • 2006年05月16日 18:05
  • 791

.NET Security and Cryptography

Security and cryptography, while always an essential part of the computing industry, have seen their...
  • topmvp
  • topmvp
  • 2008年08月07日 03:41
  • 237

关于简化安全更新后的说明

从2016年10月开始,操作系统安全更新发布模式有所变化(请参考之前博文)。原来针对每个受影响的操作系统组件,往往会有单独的安全更新修复。从10月开始,这些针对操作系统不同组件的修复,均集中在一个安装...
  • MSSecurity
  • MSSecurity
  • 2016年12月05日 15:14
  • 2007
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Type-Safety in .NET Security
举报原因:
原因补充:

(最多只允许输入30个字)