应用MicrosoftNetFramework编写安全的应用程序7教学案例

上传人:yulij****0329 文档编号:271410052 上传时间:2022-03-29 格式:PPT 页数:41 大小:580.50KB
返回 下载 相关 举报
应用MicrosoftNetFramework编写安全的应用程序7教学案例_第1页
第1页 / 共41页
应用MicrosoftNetFramework编写安全的应用程序7教学案例_第2页
第2页 / 共41页
应用MicrosoftNetFramework编写安全的应用程序7教学案例_第3页
第3页 / 共41页
应用MicrosoftNetFramework编写安全的应用程序7教学案例_第4页
第4页 / 共41页
应用MicrosoftNetFramework编写安全的应用程序7教学案例_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《应用MicrosoftNetFramework编写安全的应用程序7教学案例》由会员分享,可在线阅读,更多相关《应用MicrosoftNetFramework编写安全的应用程序7教学案例(41页珍藏版)》请在金锄头文库上搜索。

1、应用Microsoft .NET Framework编写安全的应用程序钟卫DPE微软公司Session PrerequisitesDevelopment experience with Microsoft Visual Basic, Microsoft Visual C+, or C#Experience building Microsoft Windows or Web applications using the .NET FrameworkLevel 200.NET Framework 安全特性.NET Framework 安全特性代码访问安全角色访问安全构建安全的ASP.NET Web

2、 应用构建安全的ASP.NET Web Services应用.NET 托管代码的执行安全.NET Framework 安全特性帮助您开发更加安全的应用内置很多的安全组件类型察看异常管理安全引擎与Windows 的安全性相互补充具备很高的灵活性和扩展性类型安全的系统类型安全代码防范缓冲区溢出授权方式限制访问内存允许相同进程运行多程序集应用程序域提供:性能增强代码安全性的增强代码访问安全.NET Framework 安全特性代码访问安全角色访问安全构建安全的ASP.NET Web 应用构建安全的ASP.NET Web Services应用应用类型检验防范内存改写在.NET 中System.Stri

3、ng的声明和调用没发生改变的声明和调用没发生改变.NET 中的System.Text.StringBuilder提供了缓冲区边界检查提供了缓冲区边界检查缓冲区溢出保护 void CopyString (string src)stringDest = src;算法错误检查对算法的错误检查通过:关键字检查项目设定byte b=0;while (true)Console.WriteLine (b);checkedb+;强命名具有唯一的标识符被用于对程序集的数字签名经过强命名的程序集防止被篡改确认程序集原有者的身份允许组件并行调用强命名保护sn k MyFullKey.snk独立存储IsolatedS

4、torageFile isoStore = IsolatedStorageFile.GetUserStoreForAssembly();提供了一个虚拟的文件系统允许设置配额文件的独立存储通过应用身份确认用户身份确认Internet Zone apps get 10MB by default Internet 域给应用程序默认分配域给应用程序默认分配10MB的空的空间间基于证据的安全机制证据:当程序集被访问时评估证据被用于确定程序集所具有的权限包含了程序集的:强命名信息URL(可信,非可信)Zone(安全区域)可信的代码签名用户自定义信息安全策略Security entityDescriptio

5、nPolicy由管理员进行设定由管理员进行设定运行时强制检查运行时强制检查管理简单管理简单包含包含permissions包含包含code groupsCode group一类相似的程序集一类相似的程序集基于证据基于证据与一个与一个permission集合相联系集合相联系Permission set包含一组经过授权的包含一组经过授权的permission步入调用堆栈的安全机制Call stackSecurity systemYourAssemblySomeAssembly.NET framework assemblyCall to ReadFileCall to ReadFileGrant: E

6、xecute1. An assembly requests access to a method in your assembly 2. Your assembly passes the request to a .NET Framework assembly3. The security system ensures that all callers in the stack have the required permissions4. The security system grants access or throws an exception Grant: ReadFileGrant

7、: ReadFilePermission demandSecurity exception Access deniedGrant access?访问许可请求开发者通过许可请求获取必须的权限属性引用实现除非具备了运行程序的最小权限,否则不能运行/I will only run if I can call unmanaged codeassembly:SecurityPermission (SecurityAction.RequestMinimum, UnmanagedCode=true)Demonstration 1: Code Access SecurityUsing the .NET Fra

8、mework Configuration ToolPerforming Security ChecksRequesting Permissions部分信任的程序集.NET Framework 1.1之前的web应用都是full trust运行.NET Framework 1.1提供下面几种信任级别:FullHighMediumLowMinimal角色访问安全.NET Framework 安全特性代码访问安全角色访问安全加密构建安全的ASP.NET Web 应用构建安全的ASP.NET Web Services应用认证和授权认证需要解决Who are you?Am I sure you are

9、who you say you are?授权需要解决Are you allowed to ?Identities and Principalsidentity 包含了一个用户的信息,比如用户的登陆名称principal 包含了一种角色的信息,比如角色包含的用户和计算机.NET Framework 提供了:WindowsIdentity and WindowsPrincipal objectsGenericIdentity and GenericPrincipal objects使用WindowsIdentity和WindowsPrincipal 对象WindowsIdentity myIden

10、t = WindowsIdentity.GetCurrent();WindowsPrincipal myPrin = new WindowsPrincipal(myIdent);AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);WindowsPrincipal myPrin = (Thread.CurrentPrincipal as WindowsPrincipal);Single validationRepeated validation创建Windows Identities and P

11、rincipals创建 Generic Identities and PrincipalsGenericIdentity myIdent = new GenericIdentity(User1);string roles = Manager, Teller;GenericPrincipal myPrin = new GenericPrincipal(myIdent, roles);System.Threading.Thread.CurrentPrincipal = myPrin;创建一个创建一个 GenericIdentity 和和 GenericPrincipal将创建的将创建的Generi

12、cPrincipal加载到当前的策略上加载到当前的策略上执行安全检查if (String.Compare(myPrin.Identity.Name, DOMAINFred, true)=0) / Perform some actionif (myPrin.IsInRole(BUILTINAdministrators) / Perform some action在代码中使用Identity and Principal members 比如,使用Identity.Name属性校验用户的登陆名称比如,使用类Principal的IsInRole方法检验角色 成员PrincipalPermission

13、prinPerm = new PrincipalPermission(Teller, “Manager”, true);try prinPerm.Demand(); /Does the above match the active principal?PrincipalPermission(SecurityAction.Demand, Role=Teller, Authenticated=true)Use permissions to perform role-based security checks命令式声明式 (通过属性调用实现)命令与声明式的安全检查Demonstration 2: R

14、ole-Based SecurityUsing Windows Role-Based Security Using Generic Role-Based Security构建安全的ASP.NET Web 应用.NET Framework 安全特性代码访问安全角色访问安全加密构建安全的ASP.NET Web 应用构建安全的ASP.NET Web Services应用ASP.NET认证方式认证方式优点缺点Windows使用现有使用现有windows的架构的架构控制对于敏感数据的访问权控制对于敏感数据的访问权不支持所有的客户端类型不支持所有的客户端类型每个用户都必须有一个每个用户都必须有一个wind

15、ows账户账户Forms支持任意客户端支持任意客户端需要需要cookies支持支持Microsoft Passport提供对于多个提供对于多个Internet Web 站站点的点的 一次性登陆验证一次性登陆验证允许开发人员定制注册叶面允许开发人员定制注册叶面需要需要cookies的支持的支持涉及费用问题涉及费用问题 基于Forms认证方式的设置设置IIS Anonymous authentication通过设置Web.config 建立Form认证方式 建立授权创建一个登陆叶面开发人员可以通过设置确保cookies安全forms loginUrl=login.aspxprotection=Al

16、l requireSSL=truetimeout=10name=AppNameCookie path=/FormsAuth slidingExpiration=true开发人员可以创建 application-specific keys来加解密cookies窗体认证方式的增强校验控件Web applicationprocessedUser enters dataValid?Valid?Error MessageClientServerYesNoYesNo客户端校验提供即时反馈减少postback 服务器校验重复了客户端的校验可以结合存储的数据进行验证校验控件的类型Demonstration 4: ASP.NET Web Application SecurityConfiguring Forms AuthenticationUsing Validation Controls构建安全的ASP.NET Web Services应用.NET Framework 安全特性代码访问安全角色访问安全加密构建安全的ASP.NET Web 应用构建安全的ASP.NET Web Services应用消息级

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号