文档详情

Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt

发布:2018-06-05约3.45千字共27页下载文档
文本预览下载声明
如何使用Microsoft .NET保护应用程序和数据的安全 Live Meeting 2005新特性 清晰音质——与微软资深讲师的零距离接触 实时讲义下载——轻松获得第一手资料 中文交互——强大的中文提问平台,想问就问, 没有困扰 内容更精彩——开发,集成,架构设计, 项目管理,应有尽有 课程介绍 这次Webcast会给大家介绍如何应用.NET Framework中的特性来保护代码的安全 基础内容 熟悉.NET开发 LEVEL 300 课程安排 身份验证 授权 加密 强命名程序集 代码访问安全 中间层安全 如何避免SQL注入 身份验证 使用Credential来唯一标明一个用户 可以使用Microsoft Windows的集成身份验证,使用用户登录Windows时的用户凭证 编写自己的用户身份验证的程序,应用程序来管理用户凭证。 System.Security.IIdentity接口和 System.Secutity.GenericIdentity类 System.Security.Principal.WindowsIdentity. GetCurrent().Name 演示一 Authentication Authorization 使用基于角色的安全 可以通过编程实现基于角色的授权 角色可以代表商业流程中的工作职责,例如:秘书、经理、管理员、总监等 用角色的方式来管理用户会更加简便 如何使用基于角色的安全 PrincipalPermissionAttrivute和SecurityAction.Demand PrincipalPermission(SecurityAction.Demand, Authenticated:=True, _ Name:=Nothing, Role:=“Administrator”) _ Public Class AdminClass … IPrincipal.isInRole() lblBossMan.Visible = _ Context.User.IsInRole(“BossMan”) tbToBeChangedOnlyByQueenBee.ReadOnly = Not _ Context.User.IsInRole(“QueenBee”) 演示二 Authorization 加密 加密将字节打乱 对称加密与非对称加密 对称加密适用一个相同的密钥进行加密/解密 非对称加密使用一个密钥对进行加密/解密,加密与解密的密钥是不同的(公钥/私钥对) 非对称加密算法更加安全 对称加密算法更加高效 System.Security.Cryptography名称空间 如何进行密钥管理 演示三 加密 Code Access Security 最低权限的策略 Code Group——按照逻辑分类的代码组合 Code Group可以按照多种方式划分 URL,strong name,zone,etc Permission Sets——许可集,用来定义代码能够访问的资源:文件I/O,Isolated Storage独立存储,SQL客户端,等等。 Link demands Demo Four 代码访问安全 强命名应用程序集 使用sn.exe工具来创建强命名公钥/私钥对,并存储在文件当中: sn.exe –k Northwind.snk AssemblyKeyFileAttribute Assembly: AssemblyKeyFile( _ “c:\keys\Northwind.snk”) 优势 可以被装载到GAC当中 Side-by-side部署,支持多个版本的应用程序集 在编译时,.NET的客户端代码使用了强命名应用程序集,在运行时能够有效地防止装入“木马”应用程序集 Delayed Signing 私钥保密性,确保开发团队中的多个组建使用相同的强命名 只导出公钥 sn -p Northwind.snk NorthwindPublicOnly.snk Assembly: AssemblyKeyFile( _ “c:\keys\NorthwindPublicOnly.snk”) Assemble: AssemblyDelaySign(True) Sn -Vr assemblyname:关闭对只拥有公钥的强命名应用程序集进行验证 Sn -R assemblyname keyfilename:在发布之前对应用程序集进行缓签名 Link Demands 连接请求发生在外部的代码对本应用程序集进行调用的时候 System.Security.Permissions名称空间 例如:StrongNameIdentityPermission属性 从某个应用程序集中提取公钥标示(一个十六进制的字符序列) sn -Tp North
显示全部
相似文档