堆栈net

net  时间:2021-03-02  阅读:()
.
NET安全分析——基础架构与安全框架卢小海第2页.
NET基础架构CommonLanguageRuntimeJITSecurityExecutionEngineGC,stackwalk,codemanagerClassloaderandlayoutFrameworksBaseClasses第3页讨论议程静态结构–通过CTS提供语言无关类型支持;将类型定义存储在文件Metadata中;以IL指令描述行为.
动态执行–将类型定义和代码载入并组织到内存;JIT编译并执行代码;通过堆栈帧提供遍历堆栈支持.
安全框架–基于凭证的代码访问安全策略执行框架;基于角色的功能执行安全授权检查框架.
第4页1.
静态结构通用类型系统(CTS-CommonTypeSystem)托管可执行文件结构(Metadata)IL指令集(IL-IntermediateLanguage)第5页1.
1通用类型系统目标–定义类型如何声明、使用和管理–CLR跨语言集成的基础特性–可验证的强类型安全–高性能的代码执行能力–提供面向对象模型,以完整实现多种语言–定义语言的元规则,以支持跨语言互操作第6页1.
1.
2.
命名层次配件(Assembly)模块(Module)类型(Type)成员(Member)–方法(Method)参数和局部变量–字段(Field)–内嵌类型(NestedType)–属性(Property)–事件(Event)第7页1.
1.
3.
类型分类第8页1.
2.
托管可执行文件结构第9页1.
2.
2Metadata的定位MetadataMetadata(andcode)(andcode)DebuggerDebuggerSchemaSchemaGeneratorGeneratorProfilerProfilerOtherOtherCompilerCompilerProxyGeneratorProxyGeneratorTypeBrowserTypeBrowserCompilerCompilerSourceSourceCodeCodeXMLencodingXMLencoding(SDL)(SDL)SerializationSerialization(e.
g.
SOAP)(e.
g.
SOAP)DesignersDesignersReflectionReflection第10页1.
2.
3Metadata的结构第11页1.
2.
4.
Metadata流的互相引用#Strings–元数据中数据项名称#Blob–元数据中二进制对象#GUID–各种GUID#US–用户自定义字符串#~或#-–元数据表系统第12页1.
2.
5.
Metadata数据表GenericParamManifestResourceExportedTypeMethodSpecGenericParamConstraintFileAssemblyRefAssemblyTypeSpecModuleRefPropertyEventSignaturePermissionCustomAttributeMemberRefInterfaceImplParamDefMethodDefFieldDefTypeDefTypeRefModule第13页1.
3.
IL指令集完全基于堆栈的模型可静态验证有效性使用1-2字节操作码0xFE为2字节操作码的前导标记字节内建面向对象指令使用Token来替代对指针或偏移量的使用第14页1.
3.
2.
IL指令分类流程控制,br,brtrue,beq,leave,endfinally,ret运算指令,add,shl,ldc.
i4,conv.
i8,add.
ovf参数和局部变量,ldarg.
0,starg,ldloc,stloc字段访问,ldfld,ldsfld,stfld方法调用,call,callvirt,ldftn,ldvirtftn,calli,jmp引用和值类型,newobj,ldobj,ldstr,isinst,box数组操作,newarr,ldlen,ldelem.
r4,stelem.
ref第15页1.
3.
3.
使用Token定位ldc.
i4.
s9callPrint(Int32)ILAssembler0x1f0x090x280x06000006MethodtokenTokenTableNumberRowIndexUpper8bitsLower24bits第16页1.
3.
4.
函数调用堆栈1Stacktopthispointer2ldc.
i4.
1ldc.
i4.
2callClassType::func(Int32,Int32)ClassTypea;a.
func(1,2)第17页2.
动态执行CLR加载器(fusion)类型与对象的内存布局JIT编译与方法调用堆栈、帧与堆栈遍历非托管代码互操作第18页2.
1.
CLR加载器JITCompilerJITCompiler&Verification&VerificationAssemblyAssemblyLoaderLoaderPolicyPolicyManagerManagerClassClassLoaderLoaderCodeCodeManagerManagerGarbageCollectionGarbageCollectionExceptionManagerExceptionManagerThreadSupportThreadSupportSecurityPermissionSecurityPermissionEnforcementEnforcementPolicydllMSCorEE.
dllNativecodeNativecodeGCInfoEHInfo第19页2.
2.
类型与对象的内存布局第20页2.
2.
2.
类型运行时层次结构第21页2.
3.
JIT编译与方法调用2.
3.
1.
JIT编译与方法表2.
3.
2.
基于类引用的虚函数调用2.
3.
3.
基于接口引用的虚函数调用2.
3.
4.
异步方法调用2.
3.
5.
内部方法调用第22页2.
3.
1.
JIT编译与方法表第23页2.
3.
2.
基于类引用的虚函数调用第24页2.
3.
3.
基于接口引用的虚函数调用第25页2.
3.
4.
异步方法调用第26页2.
3.
5.
内部方法调用第27页2.
4.
堆栈、帧与堆栈遍历2.
4.
1.
基于帧的信息堆栈2.
4.
2.
常用帧的继承结构2.
4.
3.
堆栈遍历原理与引用2.
4.
4.
堆栈遍历的实现流程第28页2.
4.
1.
基于帧的信息堆栈(1/2)第29页2.
4.
1.
基于帧的信息堆栈(2/2)第30页2.
4.
2.
常用帧的继承结构第31页2.
4.
3.
堆栈遍历原理与引用基于帧的逆向堆栈遍历算法主要用于安全框架实现和GC操作通过Unmanaged代码实现堆栈遍历AppDomainBAppDomainAmain.
exeSDbar.
dllSDbaz.
dllSDMain(){…bar.
y();…}bar.
y(){…baz.
z();…}baz.
z(){SomePerm.
Demand();}SDSD第32页2.
4.
4.
堆栈遍历的实现流程xxxPermission::DemandStackWalkFramesExCodeAccessCheckStackWalkCB*TakescalllbackfuncasparameterCodeAccessSecurityEngine::CheckManaged~managedCASE::CheckHelperComparepermissionsforframe第33页2.
5.
非托管代码互操作第34页3.
安全框架代码访问安全(Code-AccessSecurity)角色安全检查(Role-BasedSecurity)独立存储区(IsolatedStorage)密码学服务(CryptographicServices)第35页3.
1.
代码访问安全安全策略(SecurityPolicy)代码凭据(CodeEvidence)权限(Permission)第36页3.
1.
2.
控制代码访问资源的机制定义权限安全策略管理允许代码要求拥有权限授予代码权限允许代码请求其调用者具备特定权限动态限制代码安全(Stackwalking)第37页3.
1.
3.
验证过程安全策略代码加载代码证据权限授予代码从哪里来代码是谁签的名其他….
第38页3.
1.
4.
安全策略安全策略级别–企业范围–本机范围–用户范围–ApplicationDomain范围(不可配置)通过caspol.
exe或mscorcfg.
msc配置有效的安全策略是所有级别的交集第39页3.
1.
5.
代码凭据预定义代码凭据–Zone–Site–Url–Publisher–StrongName–…代码凭据可扩展第40页3.
1.
6.
安全权限.
NET安全权限类定义–CodeAccessPermission–DBDataPermission–PrintingPermission–DnsPermission–WebPermission–EnvironmentPermission–FileIOPermission–RegistryPermission–UIPermission–…自定义安全权限第41页3.
1.
7.
安全权限验证过程第42页3.
1.
8.
安全权限授予过程证据组件3DLL程序域程序域(AppDomain)(AppDomain)已信任宿主代码权限请求安全策略+最大授予=组件1组件2G1G2策略管理G3组件3InheritanceDemand,LinkDemandJIT/验证类型安全第43页3.
2.
角色安全检查基于角色的预定义类–GenericPrincipal–GenericIdentity–WindowsPrincipal–WindowsIdentity–自定义类–PrincipalPermission第44页3.
2.
1.
相关接口IPrincipalinterfacenamespaceSystem.
Security.
Principal{publicinterfaceIPrincipal{IIdentityIdentity{get;}boolIsInRole(Stringrole);}}IIdentityinterfacenamespaceSystem.
Security.
Principal{publicinterfaceIIdentity{StringAuthenticationType{get;}boolIsAuthenticated{get;}StringName{get;}}}第45页3.
2.
2.
静态安全检查[PrincipalPermissionAttribute(SecurityAction.
Demand,Name="MyUser",Role="User")]publicstaticvoidPrivateInfo(){//打印保密数据Console.
WriteLine("\n\nYouhaveaccesstotheprivatedata!
");}第46页3.
2.
3.
动态安全检查Stringid1="Bob";Stringrole1="Manager";PrincipalPermissionPrincipalPerm1=newPrincipalPermission(id1,role1);Stringid2="Louise";Stringrole2="Supervisor";PrincipalPermissionPrincipalPerm2=newPrincipalPermission(id2,role2);(PrincipalPerm1.
Union(PrincipalPerm2)).
Demand();第47页3.
3.
独立存储区第48页3.
4.
密码学服务第49页4.
相关资源第50页Thanks!

A400互联(49元/月)洛杉矶CN2 GIA+BGP、1Gbps带宽,全场独服永久5折优惠

a400互联是一家成立于2020年商家,主营美国机房的产品,包括BGP线路、CN2 GIA线路的云服务器、独立服务器、高防服务器,接入线路优质,延迟低,稳定性高,额外也还有香港云服务器业务。当前,全场服务器5折,香港VPS7折,洛杉矶VPS5折,限时促销!A400互联官网:https://a400.net/优惠活动全场独服永久5折优惠(续费同价):0722香港VPS七折优惠:0711洛杉矶VPS五...

BuyVM新设立的迈阿密机房速度怎么样?简单的测评速度性能

BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...

恒创新客(317元)香港云服务器 2M带宽 三网CN2线路直连

恒创科技也有暑期的活动,其中香港服务器也有一定折扣,当然是针对新用户的,如果我们还没有注册过或者可以有办法注册到新用户的,可以买他们家的香港服务器活动价格,2M带宽香港云服务器317元。对于一般用途还是够用的。 活动链接:恒创暑期活动爆款活动均是针对新用户的。1、云服务器仅限首次购买恒创科技产品的新用户。1 核 1G 实例规格,单个账户限购 1台;其他活动机型,单个账户限购 3 台(必须在一个订单...

net为你推荐
arm开发板arm开发板是干什么用的,是用在什么领域方面的vbscript教程vbs 学习方法以及 vbs 实例 有编程基础xv播放器下载除了迅雷看看播放器还有什么播放器支持xv格式的视频?qq空间打扮QQ空间怎么打扮如何打扮linux虚拟机怎么样在Linux下安装虚拟机bluestackbluestacks下载的东西在哪网站优化方案一个网站进行优化的流程及步骤blogcn南京明城墙(太平门一带某些地区)的城砖上为什么会有一些小洞(每块砖两个洞洞……)?微信电话本怎么用微信电话本短信管理功能怎么用?聚美优品红包聚美优品怎么给别人发红包
四川虚拟主机 怎样注册域名 大庆服务器租用 php空间租用 windows主机 bash漏洞 512av mobaxterm 云图标 699美元 免费phpmysql空间 万网空间购买 shopex主机 移动服务器托管 主机管理系统 个人免费邮箱 googlevoice 酷锐 winserver2008下载 饭桶 更多