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

上传人:上海哈登 文档编号:2820387 上传时间:2019-05-22 格式:PPT 页数:27 大小:7.74MB
返回 下载 相关 举报
2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt_第1页
第1页 / 共27页
2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt_第2页
第2页 / 共27页
2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt_第3页
第3页 / 共27页
2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt_第4页
第4页 / 共27页
2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt》由会员分享,可在线阅读,更多相关《2019年Windows应用程序开发入门到精通十二:将安全隐患扼杀在摇篮之中——用Microsoft.NET来保护数据和应用程序的安全-0322.ppt(27页珍藏版)》请在三一文库上搜索。

1、如何使用Microsoft .NET保护应用程序和数据的安全,讲师:欧岩亮 微软MSDN特约讲师,Live Meeting 2005新特性,清晰音质与微软资深讲师的零距离接触 实时讲义下载轻松获得第一手资料 中文交互强大的中文提问平台,想问就问, 没有困扰 内容更精彩开发,集成,架构设计, 项目管理,应有尽有,课程介绍,这次Webcast会给大家介绍如何应用.NET Framework中的特性来保护代码的安全,基础内容,熟悉.NET开发 LEVEL 300,课程安排,身份验证 授权 加密 强命名程序集 代码访问安全 中间层安全 如何避免SQL注入,身份验证,使用Credential来唯一标明一

2、个用户 可以使用Microsoft Windows的集成身份验证,使用用户登录Windows时的用户凭证 编写自己的用户身份验证的程序,应用程序来管理用户凭证。 System.Security.IIdentity接口和 System.Secutity.GenericIdentity类 System.Security.Principal.WindowsIdentity. GetCurrent().Name,演示一,Authentication,Authorization,使用基于角色的安全 可以通过编程实现基于角色的授权 角色可以代表商业流程中的工作职责,例如:秘书、经理、管理员、总监等 用角色

3、的方式来管理用户会更加简便,如何使用基于角色的安全,PrincipalPermissionAttrivute和SecurityAction.Demand _ Public Class AdminClass IPrincipal.isInRole() lblBossMan.Visible = _ Context.User.IsInRole(“BossMan”) tbToBeChangedOnlyByQueenBee.ReadOnly = Not _ Context.User.IsInRole(“QueenBee”),演示二,Authorization,加密,加密将字节打乱 对称加密与非对称加密

4、对称加密适用一个相同的密钥进行加密/解密 非对称加密使用一个密钥对进行加密/解密,加密与解密的密钥是不同的(公钥/私钥对) 非对称加密算法更加安全 对称加密算法更加高效 System.Security.Cryptography名称空间 如何进行密钥管理,演示三,加密,Code Access Security,最低权限的策略 Code Group按照逻辑分类的代码组合 Code Group可以按照多种方式划分 URL,strong name,zone,etc Permission Sets许可集,用来定义代码能够访问的资源:文件I/O,Isolated Storage独立存储,SQL客户端,等等

5、。 Link demands,Demo Four,代码访问安全,强命名应用程序集,使用sn.exe工具来创建强命名公钥/私钥对,并存储在文件当中: sn.exe k Northwind.snk AssemblyKeyFileAttribute 优势 可以被装载到GAC当中 Side-by-side部署,支持多个版本的应用程序集 在编译时,.NET的客户端代码使用了强命名应用程序集,在运行时能够有效地防止装入“木马”应用程序集,Delayed Signing,私钥保密性,确保开发团队中的多个组建使用相同的强命名 只导出公钥 sn -p Northwind.snk NorthwindPublicO

6、nly.snk Sn -Vr :关闭对只拥有公钥的强命名应用程序集进行验证 Sn -R :在发布之前对应用程序集进行缓签名,Link Demands,连接请求发生在外部的代码对本应用程序集进行调用的时候 System.Security.Permissions名称空间 例如:StrongNameIdentityPermission属性 从某个应用程序集中提取公钥标示(一个十六进制的字符序列) sn -Tp NorthwindModel.dll 例如: StrongNameIdentityPermission( _ SecurityAction.LinkDemand, _ PublicKey:=“

7、002400000d6”, _ Version:=“1.0.0.0”),Middle Tier安全,最现成的方法,COM+是最安全的解决方案与Windows整合并支持配置 Web Service的安全可以通过HTTPS和IIS安全来控制 当不能使用IIS安全的时候,可以使用WS-Security(Web Service Enhancements的一部分)来保证平台之间的Web Service安全 Remoting安全 IIS宿主和TCP,使用IIS安全和HTTPS 其他宿主,需要实现定制的Channel或Sink,演示五,中间层安全,SQL注入,SQL注入这种威胁发生在动态生成SQL查询语句的

8、时候,动态生成的SQL语句可能会被篡改 例如: string sql = “select * from users where UserID = ” + UserID + “ and password=” + Password + “” 如果在上面的SQL语句中加入OR 1 = 1这个条件,users表中的所有数据将最为结果返回 所有使用动态SQL查询的应用程序都有可能受到这种威胁 为了防御这种攻击,去掉所有的动态SQL查询: 使用ADO.NET中的SqlParameters,演示六,防止SQL注入攻击,安全设计目标,最小化攻击范围 分析具体的攻击并阻止它们: 拒绝服务攻击 基于文件或目录的攻击 SQL注入 引诱攻击(Luring) 防患于未然,提早预知新的攻击 使用经过验证的安全技术:身份验证,给予角色的授权,HTTPS,加密,总结,.NET包括了强大的内建的安全特性 具体问题具体分析,根据情况来选择安全技术,编写安全的基于Windows Forms的代码 不需要绞尽脑汁去发明新的安全代码,更多信息,安全开发中心 http:/ .NET相关的安全书籍 WS-Security http:/ http:/ & A 正在进行中,听众通过点击“Ask a question” 提出本次讲座技术问题: 输入的文字最好用中文,方便老师阅读。 虽然您提交后,显示的是乱吗,但老师可以正常阅读。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1