堆栈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!

10GBIZ(月$2.36 ), 香港和洛杉矶CN2 GIA

10GBIZ服务商经常有看到隔壁的一些博客分享内容,我翻看网站看之前有记录过一篇,只不过由于服务商是2020年新成立的所以分享内容比较谨慎。这不至今已经有将近两年的服务商而且云服务产品也比较丰富,目前有看到10GBIZ服务商有提供香港、美国洛杉矶等多机房的云服务器、独立服务器和站群服务器。其中比较吸引到我们用户的是亚洲节点的包括香港、日本等七星级网络服务。具体我们看看相关的配置和线路产品。第一、香...

ReliableSite怎么样,月付$95美国洛杉矶独立服务器

ReliableSite怎么样?ReliableSite好不好。ReliableSite是一家成立于2006年的老牌美国商家,主要经营美国独立服务器租赁,数据中心位于:洛杉矶、迈阿密、纽约,带宽1Gbps起步,花19美元/月即可升级到10Gbps带宽,月流量150T足够各种业务场景使用,且免费提供20Gbps DDoS防护。当前商家有几款大硬盘美国独服,地点位于美国洛杉矶或纽约机房,机器配置很具有...

PQ.hosting全线9折,1Gbps带宽不限流量VPS/€3/月,全球11大机房可选

Hostadvice主机目录对我们的服务进行了测试,然后给PQ.hosting颁发了十大WordPress托管奖。为此,宣布PQ.Hosting将在一周内进行折扣优惠,购买和续订虚拟服务器使用优惠码:Hostadvice ,全部优惠10%。PQ.hosting,国外商家,成天于2019年,正规公司,是全球互联网注册商协会 RIPE 的成员。主要是因为提供1Gbps带宽、不限流量的基于KVM虚拟的V...

net为你推荐
快递打印快递单可以自己打印吗天府热线天府热线怎么老是进不去?打开网页出现错误网页上有错误怎么解决?什么是电子邮件 什么是电子邮件渗透测试软件测试与渗透测试那个工作有前途在线代理网站最好的免费在线代理网站有哪些~急!godaddy美国GODADDY 域名支持域名别名解析吗?godaddyGO DADDY服务器空间域名怎么样开机滚动条电脑开机有滚动条的画面畅想中国20年后中国会变成什么样?--畅想一下未来的中国!!
子域名查询 美国和欧洲vps 如何注销域名备案 如何注册中文域名 怎么申请域名 赵容 远程登陆工具 国外免费空间 京东商城0元抢购 193邮箱 php空间购买 免费dns解析 如何注册阿里云邮箱 Updog 服务器硬件防火墙 双12 上海电信测速 测速电信 阿里云邮箱怎么注册 googlevoice 更多