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

ShockHosting日本机房VPS测试点评

这个月11号ShockHosting发了个新上日本东京机房的邮件,并且表示其他机房可以申请转移到日本,刚好赵容手里有个美国的也没数据就发工单申请新开了一个,这里做个简单的测试,方便大家参考。ShockHosting成立于2013年,目前提供的VPS主机可以选择11个数据中心,包括美国洛杉矶、芝加哥、达拉斯、杰克逊维尔、新泽西、澳大利亚、新加坡、日本、荷兰和英国等。官方网站:https://shoc...

物语云-VPS-美国洛杉矶VPS无限流量云windows大带宽100M不限流量 26/月起

物语云计算怎么样?物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是特惠活动为美国洛杉矶Cera机房的不限流量大带宽VPS,去程直连回程4837,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-v,因此并不会超售超开。一、物语云官网点击此处进入物语云...

妮妮云香港CTG云服务器1核 1G 3M19元/月

香港ctg云服务器香港ctg云服务器官网链接 点击进入妮妮云官网优惠活动 香港CTG云服务器地区CPU内存硬盘带宽IP价格购买地址香港1核1G20G3M5个19元/月点击购买香港2核2G30G5M10个40元/月点击购买香港2核2G40G5M20个450元/月点击购买香港4核4G50G6M30个80元/月点击购买香...

net为你推荐
96155北京公积金96155客户服务电话,怎么一步一步进到修改还款额度的地方?湖南商标注册在湖南商标注册到底有什么用,不就是一个图标吗?湖南商标注册湖南商标注册最好的公司快速美白好方法有什么好方法能快速美白?照片转手绘有什么软件可以把相片变成手绘的,不是美图秀秀里面的中小企业信息化中小企业信息化途径有哪些godaddy美国GODADDY 域名支持域名别名解析吗?ios7固件下载ios7发布当天是否有固件下载2012年正月十五2012年正月十五上午9点27分出生的女孩儿五行缺什么,命怎么样宕机宕机 这个词是什么意思啊
in域名注册 中文域名查询 网站域名备案查询 vps侦探 鲁诺vps 万网域名解析 parseerror 大容量存储 网盘申请 太原联通测速平台 北京双线机房 工信部icp备案号 共享主机 nerds 绍兴电信 smtp服务器地址 国内域名 可外链的相册 空间申请 apnic 更多