




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学硕士学位论文 曼曼曼皇鼍i i ! i , 一一一i 量曼鼍皇罾舅曼葛曼皇鼍 摘要 随着计算机网络技术的飞速发展,以及电子商务和电子政务应用的普及,w e b 应用程序开发已经成为了软件系统开发的主要部分。目前针对网络安全技术的研 究发展非常迅速,各种安全技术的应用也比较广泛。然而,针对软件设计者在设 计w e b 应用程序过程中如何提高w e b 应用程序安全性的研究相对较少,在网络日 益普及的今天对w e b 应用程序安全设计的研究对网络的安全运行有着重要的意 义。 本文主要进行了以下工作:以微软的a s p n e t 开发平台为例讨论了在w e b 应用程序设计各个阶段所面临的各种风险和威胁以及解决办法。首先介绍了作为 软件设计者设计出安全的w e b 应用程序所需要了解网络安全相关知识;探讨w e b 应用程序所面i 瞄的安全挑战,给出了w e b 应用程序设计应当遵循的原则和设计步 骤;然后分析了身份验证对w e b 应用程序安全性的影响,研究了在w e b 应用程序 设计的不同阶段对身份验证所采用的不同技术及这些技术的优缺点;介绍了w e b 应用程序运行过程中所使用的主要资源,以及在何保护w e b 应用程序所使用的资 源方面采用的主要安全技术;探讨了如何在w e b 应用程序通信过程中保证信息的 机密性和完整性,并对n e t 平台下的加密和安全通信协议进行了介绍。最后本 文构建了一个简单的w e b 应用程序,通过对该系统的实际运行测试,从应用角度 出发,阐述了在w e b 应用程序安全设计方面的指导意见。 本文的主要意义在于以一个软件设计者的思路探讨了在w e b 开发过程中应 该关注的安全问题,针对影响呃b 应用程序安全性的主要问题进行了探讨,提出 了在w e b 应用程序设计过程中应当遵循的安全设计原则和可以采用的安全技术, 并通过一个具体开发平台对安全技术的应用进行了实践,为软件设计者开发出安 全的w e b 应用程序提供了研究基础。 关键词:安全性;w e b 应用程序;a s p n e t ;加密;协议;数据库 7 山东大学硕士学位论文 w i t ht h ea d v a n c e d d e v e l o p m e n to fc o m p u t e ri n t e r n e tt e c h n o l o g y , w i t ht h e w i d e l ys p e e do fe - c o m m e r c ea n de - p o l i t i c s ,w e ba p p l i c a t i o np r o g r a md e v e l o p m e n t h a sb e e nav i t a lp a r ti nt h es o f t w a r ed e v e l o p m e n tc u r r e n t l y , r e s e a r c ho ni n t e m e t s a f e t yt e c h n o l o g yg r o w s 内s t t h ea p p l i c a t i o nt h ev a r i o u ss a f e t yt e c h n o l o g yi sm o 佗 p o p u l a rh o w e v e r , r e s e a r c ho nh o wt oi m p r o v ew e ba p p l i c a t i o np r o g r a ms a f e t yi n d e s i g nw e ba p p l i c a t i o np r o g r a m 鹤s o f t w a r ed e s i g n e ri ss t i l lw e a k , t h er e s e a r c hi s s i g n i f i c a n tt os a f eo p e r a t i o no ft o d a y si n t e m e t t h ee x p e r i m e n tc a r r i e do u tt h ef o l l o w i n gt s s k s b a s e do nt h et o o lo fm i c r o s o f t s a s p n e td e v e l o p i n g , t h ee x p e r h n e n td e t e c t e dt h er i s k s , t h r e a t sa n df o u n ds o l u t i o n si n d i f f e r e n ts t a g e s t h et h e s i sf i r s t l yi n t r o d u c e dt h er e q u i r e dr e l a t e di n t e r n e ts a f e t y k n o w l e d g ef o rs o l , w a r ep r o g r a m m e r t od e s i g ns a f ew e b a p p l i c a t i o np r o g r a m ,p r o b e d t h es a f e t yc h a l l e n g e sw e b a p p l i c a t i o np r o g r a mf a c e d , w o r k e do u tt h ep r i n c i p l e sa n d f o r m u l a t e dt h e 螂o fd e s i g n i n g , t h e na n a l y z e dt h ei m p a c to fi d e n t i f i c a t i o nt o s e c u r i t yo fw e ba p p l i c a t i o np r o g r a m ,t h ea d v a n t a g e sa n dd i s a d v a n t a g e so ft h e t e c h n i q u e su s e di nd i f f e r e n ts t a g e s , l i s t e dt h em a i ni w a o u i v 冶si na p p l i c a t i o n , a n dc h i e f s a f et e c h n i q u e so nh o wt op r o t e c tr e s o u r c 鹤u s e di nt h ew e ba p p l i c a t i o np r o g r a m ,o n h o wt og u a r a n t e et h es e c r e ta n di n t e g r i t y , i l l u s t r a t e dt h ep r o t o c o lo fs e c r e c ya n ds a f e c o m m u n i c a t i o n , f i n a l l y , c o n s t r u c t e das i m p l ew e ba p p l i c a t i o np r o g r a m ,o f f e r e ds o m e i n s t r u c t i o n sa n d 跚g g e 瓯i 伽st h r o u g ht h ep r a c t i c a lo p e r a t i o nt e s tf r o mt h ea n g l eo f a p p l i c a t i o n t h es i g n i f i c a n c eo ft h et h e s i sl i e si nt h ef a c tt h a tt h ei s s u eo fs a f e t ys h o u l db e c o n c e r n e di nt h ep r o c e s so fw e bd e v e l o p m e n ta sas o f t w a r ed e s i g n e r , a sw e l l 舔t h e m a j o rp r o b l e m so fs a f e t yo fw e ba p p l i c a t i o np r o g r a m c o n s e q u e n t l y , t h et h e s i sp u t f o r w a r dt h ep r i n c i p l eo fs a f ed e s i g n i n gt ob eo b s e r v e di nt h ep r o c e s so fw e b a p p l i c a t i o np r o g r a m ,a n dt h et e c h n i q u e st ob eu s e di np r a c t i c e f i n a l l y , t h es t u d yw a s p u ti n t op r a c t i c eb a s e do nac o n c r e t ed e v e l o p i n gp l a t f o r m ,l a i daf o u n d a t i o nf o r s o l c h v a r cd e s i g n e rt od e v e l o pt h es a f ew e ba p p l i c a t i o np r o g r a m s k e yw o r d s :s e c u r i t y , w e ba p p l i c a t i o np r o g r a m ,a s p n e t , e n c r y p t , p r o t o c o l , d a t ab a s e 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:雏 日期:坐 关于学位论文使用授权的声明 本人同意学校保留或向国家有关部门或机构送交论文的印刷件 和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或其他复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:到珲 导师签名:! 圣叁童日期:2 丝墨丝:塑 山东大学硕士学位论文 1 1 研究背景 第一章前言 随着计算机通讯技术的发展,网络办公、网络购物、网上支付等业务被广泛 的应用,以b i s 结构为基础的项目正逐渐取代传统c s 结构项目成为软件项目的 主流应用。尽管e t 使得许多事情变成了可能,但是对于企业来说,i n t e m e t 又是一个非常危险的环境。邮件病毒、金融欺诈、网络破坏等对网站安全漏洞的 攻击,已经使绝大多数商业w e b 站点成为了安全问题不同程度的受害者。为了 在危险的环境中保护企业w e b 应用程序,我们应该采取一些措施,虽然这些过 程中的一些内容通常不是w e b 开发人员的职责,但了解w e b 应用程序安全性 相关的知识,如何制定出安全性设计决策,以及这些安全性设计决策如何指导你 选择安全技术和选择需要添加到你所设计的w e b 应用程序中的服务,这些对 w e b 应用程序开发者来说都是非常重要的。 1 2 研究现状及存在问题 为了确保w e b 应用程序所有入口都是安全的,安全性成为了一个复杂的课 题。保证系统安全要求的同时要考虑到环境、风险、商业利益以及影响到系统的 具有最新技术发展水平的安全攻击。缺乏安全性知识会导致w e b 应用程序容易 受到攻击。 w e b 应用程序安全性通常包括以下几方面特性嘲: 完整性:数据未经授权不能进行改变的特性。即信息在存储或传输过程 中保持不被修改、不被破坏和丢失的特性。 保密性:信息不泄露给非授权用户、实体或过程,或供其利用的特性。 可用性:保护可被授权实体访问并按需求使用的特性。即当需要时能否 存取所需的信息。例如阿络环境下拒绝服务、破坏网络和干扰系统正常 运行等都属于对可用性的攻击。 9 山东大学硕士学位论文 可控性:对信息的传播及内容具有控制能力。 可靠性:指信息以用户认可的质量连续服务于用户的特性( 包括信息的 迅速、准确、连续的转移等) 1 2 1w e b 应用程序安全研究现状 目前在软件开发实践中更多的侧重对软件质量、功能等方面的控制,对软件 开发的安全问题却较少问津。对于面对成千上万不确定用户的w e b 应用程序而 言,进行必要的软件安全控制是非常重要的。 若要获得最安全的解决方案,那么在w e b 应用程序设计的过程中自始至终 都应当考虑安全性问题。事后才考虑到安全性问题,常常使的开发成本更加昂贵, 也使w e b 应用程序更容易受到攻击。 在w e b 应用程序安全体系中,我们说攻击者总比防御者有优势,这是因为: 防御者必须防御所有漏洞,而攻击者只需要选择最脆弱的环节 防御者只能防御已知的攻击,而攻击者可以对未知的漏洞进行探测 防御者必须随时保持警惕,而攻击者可以在任意时刻发起攻击 防御者必须遵守规则而攻击者可以随心所欲。 可用性与安全性选择也是困扰w e b 应用程序设计者的一个问题,一个系统 越安全则使用起来越困难。为了保证w e b 应用程序的安全需要对系统进行各种 安全控制,在如此复杂的安全控制面前很多用户选择了放弃。因此,w e b 设计 者不得不降低系统安全性以提高用户可用性,权衡安全性和安全性是比较困难 的。 1 2 2w e b 应用程序安全面临的问题 随着w e b 应用程序开发门槛的不断降低互联网上网站的数量以惊人的速 度成爆炸式增长。w e b 应用程序由于其开放性的特点,使其更容易受到攻击, w e b 应用程序常见的安全隐患有【1 明: 非授权访问攻击者没有预先经过同意,就使用网络或计算机资源。针 对这类安全隐患常见的攻击手段有:s q l 注入攻击、u r l 字符串攻击 和利用消息协议自身的漏洞发起攻击等。这些方法共同的特点是利用 w e b 服务的漏洞,盗用合法用户的身份,或者设法提升用户的权限, l o 山东大学硕士学位论文 达到假冒、身份攻击和非法入侵等目的,危害了w e b 应用程序的正常 运作。 窃取用户信息。用户信息是敏感数据,它在有意或无意中被泄漏或丢失 会给w e b 应用程序带来巨大的安全隐患。攻击者利用w e b 应用程序 数据库的漏洞,入侵数据库,从而获取权限范围以外的信息。 数据完整性的破坏。攻击者以非法手段窃取对数据的使用权,删除、修 改、插入或重发某些重要信息,以取得有益于自己的响应;或者恶意添 加、修改消息数据,以干扰用户的正常使用。 拒绝服务攻击。这是一种比较简单,但又日益流行的攻击和禁用企业信 息资源的方法。在拒绝服务攻击中,攻击者发送大量的信息。使w e b 服务器、主机、路由器和其它网络设备负担过重阑。通过这种方式发送 的信息流量非常之大,常致使企业的用户、客户和合作伙伴都在很长一 段时间内无法访问网络。 1 3 主要工作和论文结构 本文主要工作内容如下: ( 1 ) 结合w e b 应用程序特点,分析了w e b 应用程序安全现状,针对w e b 应用程序的安全威胁提出了程序设计者应该考虑的安全性问题。 ( 2 ) 根据、e b 应用程序特性,从用户验证、w e b 应用程序资源、w e b 应用程序通讯安全三个方面分析讨论了提高w e b 应用程序安全性的技术,对这 些技术作出了详细分析,比较了每种安全技术的优缺点。 ( 3 ) 构造了一个实验环境进行实验,验证并分析了实验结果。 本文其它章节的内容安排如下: 第二章w e b 应用程序安全概述:首先介绍w e b 应用程序安全的概念、特点 以及w e b 应用程序安全性涉及的主要方面的知识;针对w e b 应用程序的安全性特 点给出了安全设计w e b 应用程序的一般过程,并对每个过程的任务目标进行了分 析。 第三章w e b 应用程序的身份验证:身份验证是与w e b 应用程序安全性最 紧密的知识,本章首先介绍了身份验证的定义;接着分析了w e b 应用程序中用 山东大学硕士学位论文 户输入验证的相关技术以及在i n t e r a c t 信息服务对身份验证技术;通过对这两种 身份验证方式的结合提高w e b 应用程序的安全设计。 第四章w e b 应用程序资源安全性:首先介绍了w e b 应用程序在运行过程中 所需要的各种资源,接着对这些资源所面临的威胁进行了分析,针对可能的威胁 提出了相应的安全预防技术的实现。 第五章保证通信中信息的机密性和数据完整性:首选介绍了w e b 应用程序 通信过程中可能面临的威胁,介绍了密码学的相关知识;对如何保证通信中数据 的机密性和完整性给出了可采用的安全技术手段。 第六章实验部署、测试及分析:通过一个简单的w e b 应用程序,介绍了提 高安全性的相关设置,并讨论了安全性与可用性和性能之间的关系,对i r e b 应用 程序安全设计方面提出了指导意见。 总结和展望:总结本文的工作,并给出将来需要进一步做的研究。 1 2 山东大学硕士学位论文 2 1 安全性概述 第二章w e b 应用程序安全性规划 w e b 应用程序的安全性不仅针对w e b 应用程序,而且针对运行w e b 应用 程序的整个系统,这个系统包括所有共同完成用户对w e b 应用程序请求的组件, 即操作系统、w e b 服务器、数据库、以及c o m + 组件等。为了保护w e b 应用 程序免遭不同类型威胁的攻击,必须有恰当的安全措施和控制手段。w e b 应用 程序的安全性可以分为6 个主要技术领域:身份验证、授权、审核、保密、完整 性和认可。 2 1 1 身份验证 身份验证是一个主体确认另一个主体是否确实是其声称的实体的过程。主体 可以是一个用户。一些可执行的代码或者一台计算机。身份验证要求证据必须是 可信任的。 证据可能是以下的一种或多种形式: 已知的事物( 如口令或密码) 加工后的事物( 如智能卡或数字证书) 主体唯一的事物( 如人的签名) 身份验证可以在w e b 应用程序中的许多地方出现,当用户连接到w e b 应 用程序时,w e b 服务器就能对用户进行验证。如果w e b 应用程序中的w e b 页 调用了c o m + 组件,这个组件也可以对用户进行身份验证。同样的,如果w e b 页或c o m + 组件访问了数据库,数据库服务器还能对用户进行身份验证。通过身 份验证放入w e b 应用程序中的许多位置,就能将安全威胁的风险降低至最低 2 1 2 授权 主体通过身份验证后,它将需要访问一些资源,例如,文件、注册表、活动 目录和数据库。通过检查已通过身份验证的主体是否有权访问它所请求的资源来 决定该主体的访问权限,这个过程叫做授权。 访问权限通过比较主体信息和资源访问控制信息来决定。 1 3 山东大学硕士学位论文 常见的授权机制包括: w i n d o w s2 0 0 3 访问控制列表( a c l ,a c c e s sc o n t r o ll i s t ) a c l 描述了对于特定资源的实体允许执行的操作( 如:读取、写入、运行) 。 w i n d o w s2 0 0 3 用户帐户访问权限 w i n d o w s2 0 0 3 用户帐户访问权限是诸如调试或登录网络一类的权限。 许可 许可时指允许某种行为的发生,比如在数据库中读取、修改、删除记录。 基于角色的安全 基于角色的安全模式是指使用已通过身份验证的用户身份信息来决定安全 授权。 2 1 3 审核 审核( 也称作日志) 的目的是收集各种信息,包括访问对象的尝试( 无论成 功或失败) 、访问特权的使用以及其他重要的安全性操作信息。审核信息被写入 日志文件,供以后分析。日志还可以辅助调试w e b 应用程序,因为如果没有日志, 就只能猜测为什么某些人被拒绝访问了某个资源。 2 1 4 保密 保密有时候也称为机密性,它意味着对未授权用户隐藏信息,并且通常是通 过使用加密技术实现的。通过使用加密技术,一个用户可以发送秘密消息给另一 个用户,其他用户看不到这些消息,即便使用了网络协议分析器这样的工具也看 不到这些消息。 保密技术包括: 安全套接字( s s l ,s e c u r es o c k e t sl a y e r ) 当数据在不安全的网络( 如i n t e m e t ) 中传输时,s s l 使用加密算法来加密 数据。 i n t c m c t 协议安全性( i p s e c ,i n t e m e tp r o t o c o ls e c u r i t y ) i p s e c 是w i n d o w s2 0 0 3 中的i n t c m c t 工程任务组( i e t f ,h n t c m c te n g i n e e r i n g t a s kf o r c e ) 标准和安全特性,它对底层i p 包提供数据加密。 加密技术 通过使用加密技术,可以以编程的方式加密数据或用哈希算法加密数据,然 后再将其发送给用户,或者存储到w e b 服务器或数据库中。 1 4 山东大学硕士学位论文 2 1 5 完整性 完整性指防止数据被恶意或无意地删除或更改的能力。完整性保证了数据在 传输过程不被更改,确保收到的消息与发送的原始数据一致。完整性技术的典型 应用是可编程签名数据。数据的创建者以编程的方式创建数据的哈希值,然后将 它与原始数据一同发送。如果接受到的数据与这个哈希值匹配,接收者就知道数 据没有改变。 2 1 6 认可 认可是一种技术,使用这种技术可以证明某些操作已经发生,这样就可以防 止在操作过程中被无理拒绝。完整的认可计划需要提供身份验证、授权、审核和 数据完整性。认可对于电子商务来说非常重要。 2 1 7 - i n d o 髂系统下的安全技术实现 在以w m d w o s2 0 0 3 + a s p n e t 为基础的w e b 应用程序中,安全性主要体现 在身份验证、授权和安全通讯三个方面,下表是w i n d w o s2 0 0 3 + a s e n e t 基础下 对上述三个方面所使用的方法。 霎荔薹技拳j : ”身份验证一。一。曩二授权,焉。安全通讯 匿名身份验证 基本身份验证 i p 域名系统地址限制 摘要式身份验证 w e b 权限 i i s n t f s 文件系统权限 s s l 集成身份验证 在请求文件上的w i n d o w s 证书 证书身份验证 访问控制列表( a c l ) n e tp a s s p o r t 身份验证 自定义身份验证文件授权 w i n d o w s 身份验证u r l 授权 a s e n e t 窗体身份验证用户权限 n e tp a s s p o r t 身份验证 n e t 角色 自定义身份验证 文件授权 w e b 服务w i n d o w s 身份验证 u r l 授权s s l 和消息级加 用户权限密 消息级身份验证 n e t 角色 企业级服务 远程过程调用 远程处理w i n d o w s 身份验证c o m + 角色 ( r p c ) 加密 n t f s 文件系统权限 数据库登录 s o l s e r v e rw i n d o w s 身份验证 固定数据库角色 用户定义角色s s l 2 0 0 5 s q l 身份验证 应用程序角色 对象权限 k e r b e r o s 身份验证在请求文件上的w i n d o w s w i n d o w s 2 0 0 3 i p s e c h t l m 身份验证 访问控制列表( a c l ) 山东大学硕士学位论文 2 2 安全w e b 应用程序的设计过程 若要获得最安全的解决方案,那么在w e b 应用程序设计的过程中自始至终 都应当考虑安全性的问题。了解构建安全的w e b 应用程序的结构化程序设计过 程,对如何制订出安全性设计决策,以及如何选择安全技术和选择需要添加到你 的w e b 应用程序中的服务,是非常重要的。 2 2 1 确定威胁 收集w e b 应用程序的业务、产品和信息的需求并制成结构关系图和设计规 格说明书。收集工作完成后,设计过程的下一步就是为w e b 应用成学确定安全 性的威胁。 威胁就是给商业资源造成危险的一种可能性。所有的威胁都根据商业风险而 定。商业风险越大也就是说,已经被认识到威胁给业务带来的负面影响越大 威胁就越大。 每个组织都面临着自身独特的一系列威胁。例如: 银行希望保护它们的金钱 医院希望保护患者记录 软件开发公司希望保护它们的源代码 增加w e b 资源,比如w e b 站点,会使这些组织面临更多的威胁和风险。 例如,w e b 页可能被泄露和修改;w e b 站点访问的数据库可能被修改或破坏; 未经授权的用户可能访问文件系统;w e b 站点用户间交换的数据可能被截取和 利用。 一般情况下,确定威胁分三步: 1 ) 识别你想保护的资源。 2 ) 确定你想保护什么样的或谁的资源: 3 ) 计算机资源的风险并根据它来区分威胁优先次序。 2 2 2 识别受保护的资源 分析w e b 应用程序威胁的第一步就是识别设计规格和说明书中容易受到攻 击的资源。每一个组织都有许多必须受到保护以免遭受潜在攻击的资源。默认情 1 6 山东大学硕士学位论文 况下,i n t e r n 盯上的每个人都可以访问w e b 站点,所以i n t e r n e t 站点上 的资源容易受到特殊威胁的影响。存在风险的资源包括: 数据库表中的数据 w e b 站点文件,包括超文本标记语言文件,动态服务器网页文件、。a s p 文件、g i f 文件和j p e g 文件等。 网络文件,包括w e b 服务器上所有的文件或连接到该服务器的网络共 享资源上的文件。 在w e b 服务器上注册的c o m 和c o m + 组件。 传输给用户或者来自拥护的机密数据,如用户名、密码、信用卡号、个 人信息和订单信息。 2 2 3 计算风险和区分威胁优先次序 识别对w e b 应用程序的所有的威胁后,必须确定避免每一种威胁的成本并 比较该成本与受保护资源的价值,以区分威胁的优先次序。 确定威胁的影响 把某个威胁发生的概率和该威胁可能造成的影响相乘,你就可以确定该威胁 对组织可能造成的影响有多大。使用如下的公式:所面临的影响= 发生的概率木 造成的影响,其中: 所面临的影响是指损失发生的可能性。威胁发生的概率与该威胁可能造 成的影响相乘便得到组织所面临的影响。 发生的概率是指安全性威胁发生的可能性。其值的大小代表了可能性的 大小。 造成的影响是指一种潜在的损失,它与被威胁资源的价值和恢复或者重 建这些资源的代价密切相关。对于知识产权,这个价值可能是失去收入 或业务的机会 考虑价值时,不要局限于平谷显示的金钱。当资源被成功地攻击,公众信任 就可能丧失,而且很难恢复。 如果很难将潜在的损失用一个值来衡量,那么可以使用某个度量单位来描述 后果,就跟描述概率时使用的度量单位相似。 计算出已识别的所有威胁对组织的影响之后,就可以根据影响值的大小来为 1 7 山东大学硕士学位论文 风险划分等级。风险划分等级可以帮助你区分威胁优先次序。 2 2 4 使用安全性策略评估威胁 安全性策略定义了组织对保护计算机网络的需求,并且它保护信息的有效 性、完整性和机密性。安全性策略包括对安全性事故进行侦测、预防和响应的过 程,并且为w e b 应用程序实现安全性设计和规划提供了框架结构。 安全性策略的目标包括: 所有在i n t e r n e t 上与客户交互的信息都要被保护 客户信息将被保密,只能被该客户或组织所使用。客户禁止访问任何其 他人的私人信息。 数据库不能通过i n t e r n e t 直接访问,与w e b 应用程序交互的所有数 据的更新操作都要通过安全性的中间层执行。 2 2 5 选择安全性技术 通常,防御某一特殊的威胁,有多个可用的技术。有时候,一种技术的应用 可能导致其他威胁的安全性漏洞,因此,技术的选择和恰当的使用是非常重要的。 为了从多种可用的技术中进行选择,首先,必须确定可以用来防御威胁的一般对 策,然后,必须为一般策略指定特殊的安全性技术。其安全性技术的选择如下图 所示。 l s 山东大学硕士学位论文 2 2 6 设计安全服务来减轻风险 为了减轻某种风险或多种风险我们可以给w e b 应用程序创建安全性服务, 其目的就是将所有的风险减轻至安全性策略允许的级别。一个设计良好的w e b 应用程序在创建安全性服务时,安全性技术当作相对独立的组件运行,从而降低 对w e b 应用程序的耦合性。 1 9 山东大学硕士学位论文 第三章w e b 应用程序的身份验证 身份验证是一个主体确认另一个主体是否确实是其声称的实体的过程。在计 算机系统中身份验证是指用户为了访问资源或使用服务向服务器提出请求,由服 务器来验证用户身份的过程。在w e b 应用程序中身份验证出现在多个环节中, 其主要形式有用户输入验证、i n t e r n c t 信息服务身份验证、证书服务。 3 1 用户输入验证 3 1 1 用户输入的类型 所有的w e b 应用程序都从用户那里接收它们的大多数输入,然后对用户输入 执行一些操作。用户输入有5 种形势:统一资源定位器( u r l ,u n i f o r mr e s o u r c e l o c a t o r ) 、g e t 数据、p o s t 数据、c 0 0 k i e 和h t t p 标头。 u r l - u r l 用于请求呃b 应用程序的单个资源。 g e t 数据:g e t 数据包含用户传递给w e b 应用程序用来满足g e t 请求的参数 和值。 p o s t 数据:p o s t 数据包含客户传递给w e b 应用程序来满足p o s t 请求的参 数和值。 c o o k i e :c o o k i e 用于在客户端计算机上存储数据,一个c o o k i e 与一个u r l 向关联。 h t t p 标头:客户端浏览器提供了大量的h t t p 标头,其值可以用来向服务 器描述客户端的环境。 3 1 2 验证用户输入的原因 用户输入可能会被潜在的用于攻击w e b 应用程序。攻击的动机可能是泄露 w e b 应用程序的执行细节,引发w e b 应用程序产生恶意数据,在w e b 应用程 序上执行恶意脚本或访问w e b 应用程序上的受限资源。任何执行细节的泄露可 能进一步地被用于反复攻击w e b 应用程序。恶意数据可用于访问未授权的w e b 山东大学硕士学位论文 应用程序。恶意脚本可用于控制w e b 应用程序或攻击使用w e b 应用程序的用 户。用户输入攻击也可将受限资源作为目标,以访问应用程序中受保护的信息。 必须把所有的用户输入都当作潜在的攻击来处理。无论何时接收用户输入, 都必须明确地定义一个很窄的有效输入值范围。然后必须编写代码以确保仅接收 那个有效范围内的数据。 只允许合法输入通过验证要比明确拒绝非法输入好。允许合法输入通过验 证,可以保证拒绝所有的无效格式,明确拒绝非法输入,只能拒绝那些知道的无 效格式。 3 1 3 用户输入验证类型 用于检查用户输入的验证代码既可以在客户端执行,也可以在服务器端执 行。 客户端验证 客户端验证代码包含于脚本中,这些脚本又包含在h t m l 中,它们一起被 发送地客户端。然后客户端验证代码在客户端的浏览器中运行。在向服务器发送 数据之前,客户端验证代码验证用户数据,特别是字段值。爱数据发送到服务器 前,用户必须纠正所有验证错误。客户端验证代码将进行数据验证的服务器往返 过程减小到最少。 服务器端验证 服务器端验证代码运行在w e b 应用程序服务器上,它验证用户作为请求的 一部分所发送的数据。任何验证的错误都有必要将带有相应的验证错误消息的响 应发送给客户端,对于数据验证错误,服务器端验证需要多次服务器往返过程。 m i c f ta s p m 玎包含特殊的用于验证的w e b 控件。这些控件的一个最好 的特性是它们既支持客户端验证也支持服务器端验证。如果客户端浏览器支持脚 本执行,a s e n e t 验证控件将产生包含客户端验证脚本的h t m l 。不考虑客户 端浏览器的功能,a s p n e t 验证控件也可以总在服务器端执行验证。 3 1 4 在a s p n e t 中使用正则表达式验证 正则表达式是一种严密而强大的表示法。它可以用于查找和替换字符串数据 的模式。正则表达式实际上是一个标志字符串,它定义了需要查找和替换的字符 2 i 山东大学硕士学位论文 串的模式。 正则表达式可用于确定给定的字符串是否匹配正则表达式所定义的模式。 a s p n e t 提供了支持正则表达式的类和组件,这些类和组件可以用来匹配或替 换字符串中的模式。 a s p n e t 有两个不同的类用于创建和使用正则表达式: r e g u l a r e x p r e s s i o n v a l i d a t o r 和r e g e x 。 r e g u l a r e x p r e s s i o n v a l i d a t o r 控件有v a l i d a t i o n e x p r e s s i o n 属性,该属性用于设 置正则表达式以验证目标控件。该正则表达式用于匹配目标控件中的内容。如果 不匹配,则验证失败 s y t e m t e x t r e g u l a r e x p r e s s i o n v a l i d a t o r r e g e x 类是n e tf r a m e w o r d 类,从任 何基于n e t 的w e b 应用程序到正则表达式表述,都可以使用它。r e g e x 使用 m a t c h e s 和r e p l a c e 方法查找匹配字符串,然后用其他字符串替换和谐匹配的字 符串。 下面的代码实现了t e s t 字符串与一个有4 个阿拉伯数字的序列匹配: s t r i n gt e s t 掣- l o o k i n gf o r1 2 5 6i nh e r e ”; r e g e xe x p r e s s i o n - - n e wr e g e x ( w 4 ) ; m a t c h c o l l e c t i o nm a t c h e 辑e x p r e s s i o n m a t c h e s ( t e a ) ; f o r e a c h ( m a t c hm a t c hi nm a t c h e s ) ; c o n s o l e w r i t e l i n e ( m a t c h i n d e x ) ; 3 2in t e r n e t 信息服务身份验证 在w e b 服务器上实现恰当的安全设置可以保护耽b 应用程序免受安全威胁, 在i n t e r n e t 信息服务( i i s ,i n t e r n e ti n f o r m a t i o ns e r v i c e ) 6 0 版本中,安全 性由交互式许可、策略、身份验证方法和安全通信协议组成。当客户端尝试访问 w e b 应用程序时,i i s 作为w e b 服务器资源的守卫者将对其身份进行验证。通过恰 当地配置w e b 服务器的安全性,可以避免未经授权的访问。 3 2 1 模拟与委托 ( 1 ) 模拟 山东大学硕士学位论文 量l_ i i i 曹 w e b 应用程序中的页面通过动态服务网页进程或者a s p n e t 进程来运行。这些 进程在运行w i n d o w s2 0 0 3s e r v e r 的计算机上是以多线方式运行的。 模拟是一个线程使用安全信息来执行的能力,这里使用的安全信息不同于拥 有此线程的进程所使用的安全信息。通常,在服务器应用程序中一个线程模拟一 个客户端。模拟允许线程代表客户端访问服务器上的对象,或者允许线程验证客 户端自己的对象的访问权限。 模拟的主要原因就是引发访问权限检查来验证客户端的身份。当线程于保险 对象互相影响或尝试执行需要访问特权的系统任务时,访问权限检查机制对这个 用户进行验证。访问权限价差机制使用客户端标识来判定访问是受限的还是扩展 的,这将取决于客户有权限做什么。 ( 2 ) 委托 委托是功能更强大的模拟形势,允许服务器作为客户端访问远程资源;模拟 被限制访问服务器计算机上的资源。 ( 3 ) 模拟委托模型的优点 模拟委托模型的主要优点就是审核( 与数据紧密相关) 。审核允许管理员 追踪用户试图访问的制定资源。一般来讲,如果审核发生在资源被访问的同一时 间,并且以同样的路径访问资源,那么审核人可以被认为是最有权威的。 模拟委托模型通过维护用户对下游资源访问的安全上下文来支持这种审 核,这使得系统后台可以把用户及其请求访问可靠地写入日志。 3 2 2 受信任的子系统模型 使用受信任的子系统,中间层服务以固定的身份访问下游服务和资源。尽管 应用程序可以选择在应用层传递原调用方的身份,但原调用方的安全上下文是不 能在操作系统层的服务中传递的。这么做是为了支持后端审核的需要,或者支持 每个用户的数据访问和授权。 下游服务( n - 7 能是数据库) 信任上游服务,并授权调用方,模型名称由此而 来。要十分注意信任边界,在这个例子中,数据库通过中间层授权调用方,并且 只允许被授权的调用方以受信任的身份访问数据库。 在受信任的子系统模型中,资源的访问模式如下: 对用户进行身份验证 山东大学硕士学位论文 将川户映射位角色 基于角色成员的授权 使川 古| 定的受信任的身份访问下游的资源管理器 323 选择安全的客户端身份验证方法 连接到i i s 的所有的j j j 户都必须经过验证后才能访f j w e b 应用程序或硬盘上 的文件。从匿名身份到非常安全的验证方法存在多种不同的验证方案。 回 ( 多种身份验证模式示意图) 323 1i l s 旧客户端身份验证概述 w e b 客户访问有如下三种基本方法: 匿名访问 如果不需要了解w e b 客户的任何信息除非这个客户以前或许访问过这个 w e b 站点,才可以使 j 这种级别客户验证方法。这样的一个例子是吡b 站点,它 对每个访问的用户都提供信息内容服务,例如h t t p :w , 哪m i c r o s o f tc o m 。 身份访问 如果提供了个性化的服务给用户,但不提供给用户访阎公司和其他用户的私 有数据的权限,应该使用盹b 客户访问的这种方法。这种游问方j 去的典型例子是 使用户配置的w e b 应用程序属性和身份个性化。 l 彤 山东大学硕士学位论文 验证访问 当需要确定用户身份信息,而且用户必须对数据有访问权时,验证访问是必 须的。银行业w e b 站点就是这种访问方式的一个例子,她允许客户管理他们自己 的帐户。 为了查看w e b 应用程序的内容,用户必须登陆到这个w e b 浏览器上,并且访 问w e b 页。i i s 支持的每个w e b 客户验证协议都提供一种可以使用户通过w e b 浏 览器登录w e b 服务器的方法。i i s 提供的w e b 客户验证协议包括: 匿名身份验证 基本身份验证 要式身份验证 集成w i n d o w s 身份验证,包括h t l m 和k e r b e r o s 客户证书映射 当对w e b 服务器配置身份验证时,了解每种类型验证协议的优缺点十分重 要,只有这样才能使用这些协议来最好地满足安全需要。 3 2 3 2 匿名身份验证 由于i n t e e r n e t 本身是匿名的,而且在用户访问功用的w e b 应用程序之前不 要求验证他们的身份,所以i i s 允许匿名身份验证。匿名身份验证是l l s 提的默 认验证机制。 匿名身份验证不要求用户提供用户名和密码就可以获得对w e b 应用程序公 用部分的访问权。当使用匿名身份验证时,也就不需要为每个用户创建用户帐户 了。类似于许多l l s 特性,验证可以对w e b 应用程序、文件夹或文件级进行设置。 3 2 3 3 基本身份验证 基本身份验证被定义为h 1 1 i p1 o 版本的一部分,大多数浏览器都支持这种 验证方式。基本身份验证的最大优点是它被广泛支持和兼容。基本身份验证的缺 点是其密码使用b a s e 6 4 编码的未加密方式在网络上发送的。 由于基本身份验证容易实现,所以在i n t e r n e t 上被广泛使用。这种验证协议也 被用于不需要较高的安全级别的时候。如下情况下需要使用基本身份验证: 具有最广泛的兼容性 需要通过代理服务器验证 山东大学硕士学位论文 允许已验证的用户访问w e b 服务器以外的网络资源。 尽管基本身份3 具有广泛的见通行,但必须谨慎使用,因为攻击者能通过 监视网络通信,轻而易举截获并破解用户密码。 在w i n d o w s2 0 0 3 下,基本身份严整协议要求用户输入有效的用户名和密码 作为活动用户帐户。基本身份验证没有创建这样的帐户,但是它通过w e b 服务起 的某中方法对帐户进行验证。 3 2 3 4 摘要式身份验证 摘要式身份验证弥补了基本身份验证的许多缺点,它引入了传输身份凭据的 新方法。在使用摘要式身份验证时,密码并非以明文形式在网络上传输。浏览器 把用户密码和其他与用户相关的信息收集到w e b 服务器上并创建一个哈希表,它 是一种不可逆的加密形式。接着浏览器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版司法局《移送执行申请书》民事类法律文书(空白模板)
- 临近地下室施工方案
- 深沟槽全是石方施工方案
- 咨询年度方案范文
- 轻质内外墙施工方案
- 寻宝记漫画营销推广方案
- 老旧建筑翻新加固方案设计
- 小型酒店客房营销方案
- 咨询目标与咨询方案
- 装修施工方案怎么编制的
- 培训课件 -面相识人 -识人秘籍内部资料
- 汽车维修试车协议书
- 髋关节置换术后护理讲课
- 电梯有限空间作业安全专项施工方案
- 连锁餐饮督导管理制度
- 2025年贵安新区产业发展控股集团有限公司招聘笔试参考题库附带答案详解
- 电子装修合同范文
- 传统医学师承关系合同书
- 质量管理5分钟竞聘演讲
- 老年人烫伤创面处理老年护理意外防护课件
- 《电子产品组装工艺》教学课件
评论
0/150
提交评论