《WEB的安全性》由会员分享,可在线阅读,更多相关《WEB的安全性(60页珍藏版)》请在金锄头文库上搜索。
1、第11章 WEB的安全性 1WEB的安全性问题 在当前最主要的网络服务中,采用基于HTTP协议的WEB技术来实现 已成为一种普遍的趋势。很多企业和机构甚至个人都通过WEB站点向 Internet发布信息,由于WEB浏览器通常都具有良好的图形用户界面 ,并且集成了对多种应用的支持;java等技术的引入使得WEB具有了 更强的交互性来支持各种网络应用,因此目前绝大多数网络服务都倾 向于采用WEB的方式来向用户提供服务。因此可以说WEB已经成为 Internet上最重要的应用。 WEB的安全性问题的原因。 HTTP协议的安全性是非常脆弱的; 服务实现上的复杂性系统的配置和管理趋于复杂化 ,导致许多的
2、 安全隐患; WEB最终用户常常是未经训练或不了解系统安全细节的用户。 2WEB安全威胁 威胁的位置 (1)对WEB服务器的攻击;(2)对WEB浏览器的攻击;(3)对浏览器与服务器间通信流量的攻击。 计算机系统的安全 性来保障网络安全协议来 保障3WEB技术所面临的安全威胁 威胁的后果 (1)对信息完整性的攻击:试图修改用户数据;利用特洛伊木马攻 击客户浏览器;修改传输中的报文通信量 (2)对信息保密性的攻击:网络窃听数据信息;网络窃取网络配置 信息 (3)拒绝服务攻击:目标阻止受攻击者访问特定资源;目的是合法 用户使用网络资源 (4)对身份认证攻击:假冒合法用户获取服务权限;假冒服务器欺 骗
3、用户 4Web安全性威胁与对策5保证Web应用安全 首先需要保证服务器系统和客户工作站系统安全,因为系统 安全是整个应用安全保障的基础。 在此基础上,Web应用的安全性实现主要依赖于应用协议的 安全性和网络通信的安全性。 应用协议安全性问题在协议的设计和实现中体现。 网络通信的安全性需要一些安全通信协议和机制来保护网络 中的通信流量。 安全通信协议是附加在TCP/IP协议栈中的一系列安全机制 。6TCP/IP协议栈中的安全机制 7网络层IP 安全性(IPSec)提供了一种网络层的安全性。使用IPSec的优点在于对于最 终用户和应用程序来说,这层安全机制是透明的,而且能 够提供一种通用的解决方法
4、,它不影响应用的具体实现和 修改。IPSec可以保证通过IP层的数据的安全性,同时它还 具有过滤功能,只有符合条件信息流才能通过。8传输层 SSL / TLSSSL:安全套接字层;TLS:Internet传输层安全在该层上安全性的实现可以有两种方法(1)将SSL/TLS看作 基本协议栈中的组成部分,向应用提供透明的安全传输服 务;(2)直接将SSL嵌入到应用软件中,如Netscape和IE9将与应用有关的安全服务直接嵌入到特定的应用程序中。 这种方式支持特定的应用程序专门定制特定的安全服务。 如电子安全交易(SET)应用层S/MIME,PGP,SET,Kerberos10安全套接字层(SSL)
5、 Secure socket layer,是Netscape提出的。 TLS(Transport Layer Security) 1.0 (RFC 2246)可 看成是SSLv3.l,它们非常接近,并且与SSLv3兼容。 设计目标是在TCP基础上提供一种可靠的端到端的安全 服务,其服务对象一般是WEB应用。 传输层的安全协议。11SSL的体系结构 在SSL的体系结构中包含两个协议子层,其中底层是SSL 记录协议,高层是SSL握手协议层12SSL记录协议层(1)SSL Record Protocol layer。(2)为高层协议提供基本的安全服务。SSL记录协议针对 HTTP协议进行了特别的设计
6、,使得超文本的传输能够在 SSL上运行。(3)记录层协议封装各种高层协议。 (4)具体实施压缩解压缩、加密解密、计算和校验MAC等与 安全有关的操作。 13SSL握手协议层 SSL HandShake Protocol layer。 包括:SSL握手协议(SSL HandShake Protocol);SSL密码参数修改协议(SSL Change Cipher Spec Protocol);应用数据协议(Application Data Protocol);SSL告警协议(SSL Alert Protocol)。 这些协议用于SSL管理信息的交换,允许应用协议传送数 据之前相互验证,协商加密算
7、法和生成密钥等。14SSL的两个重要概念1、SSL连接(connection)(1) 连接一个点对点的关系,用于实现某种类型的服务数据 的传输; (2)SSL的连接是点对点的关系; (3)连接是暂时的,每一个连接一定和某一个会话关联。 2、SSL会话(session) (1)一个SSL会话是客户与服务器之间的一个关联关系; (2)会话由Handshake Protocol握手协议来创建。会话定义 了一组可供多个连接共享的加密安全参数; (3)会话用以避免为每一个连接提供新的安全参数所需昂贵 的谈判代价。理论上,在多个交互的实体之 间可能存在多个同时的对话, 但实际上不使用这个特性15SSL的会
8、话状态SSL中利用“会话话状态态”来表示通信双方通过过握手协议协协议协 商确定一组组安全参数集合。按照参数是否启用分为为两种:(1)待决状态态(pending state),它包含了当前握手协议协议 协协商好的压缩压缩 、加密和MAC的算法,以及加解密的密钥钥等 参数。(2)当前操作状态态(current operating state),它包含了 当前SSL纪录层协议纪录层协议 正在使用的压缩压缩 、加密和MAC的算法 ,以及加解密的密钥钥等参数。待用状态态和当前操作状态态又分别别可以分为为”读读状态态”和 ”写状态态”,分别别表示有关读读操作(接受)和写操作(发发 送)中使用的参数。 16
9、SSL的会话状态的参数(1)会话标识话标识 符: 服务务器选择选择 的一个任意字节节序列,用以标标 识识一个活动动的或可激活的会话话状态态。(2)对对方的证书证书 : 会话对话对 方的X.509.v3证书证书 。该该参数可为为空 。(3)压缩压缩 算法: 加密前进进行压缩压缩 数据的算法。(4)加密规约规约 : 指明数据体加密的算法(无,或DES等)以及散 列算法(如MD5或SHA-1)用以计计算MAC。还还包括其他参数, 如散列长长度。(5)主密值值: 一个48字节长节长 的秘密值值,由client与server 共 享。(6)可重新开始的标标志:用于指示会话话是否可以用于初始化新的 连连接
10、。 17SSL 记录协议 SSL 记录协议为SSL连接提供两种服务 保密性。利用握手协议所定义的共享密钥对SSL净荷( payload)加密 。 完整性。利用握手协议所定义的共享的MAC密值来生 成报文的鉴别码(MAC)。 18SSL工作过程和SSL记录格式 19SSL工作过程 发送方的工作过程 从上层接收要发送的数 据(包括各种消息和数 据); 对信息进行分段,分成 若干记录; 使用指定的压缩算法进 行数据压缩 (可选); 使用指定的MAC算法生 成MAC; 使用指定的加密算法进 行数据加密; 发送数据。 接收方的工作过程 接收数据; 使用指定的解密算法解 密数据; 使用指定的MAC算法校
11、验MAC; 使用压缩算法对数据解 压缩(在需要时进行) ; 将记录进行数据重组; 将数据发送给高层。20SSL握手协议层 (1) 加密规约修改协议 加密规约修改协议是一个位于SSL记录协议之上的协议,它使用了 SSL记录协议所提供的服务。仅定义了一个由单个字节“1”构成的消 息报文; 该消息的目的使”待决状态”中的安全参数复制到”当前操作状态”中 。改变连接中所用的加密规约 。 报警协议 用于将SSL有关的报警传送给对方实体; 报警协议的消息报文由两个字节组成。第一个字节说明报警的级别,协议定 义了警告性报警和致命性报警,用1、2表示。报警级别不同,SSL采取的处理 措施也不同 Level =
12、 1(warning), 2(fatal),SSL将立即关闭本连接,本会话的其它连接可以继续,但 不能创建新连接。 Alert = 具体警告编码;如:(均为fatal的警告内容) unexpected_message bad_record_mac21SSL握手协议层 (2) 握手协议(SSL Handshake Protocol)是SSL中最复杂的 一个部分。 其功能是使服务器和客户能够相互鉴别对方的身份,并且 协商一系列安全参数。 这些安全参数包括用于加密和MAC算法,以及用于在SSL 记录中保护发送数据的加密密钥。任何应用程序在传输数 据之前,必须使用握手协议来进行协商。 22SSL握手协
13、议的消息格式 消息包括三个字段 “消息的类型”说明本次握手消息的类型 “长度”以字节为单位的报文长度 “内容”该消息报文有关的参数23握手协议定义的消息类型(1)24握手协议定义的消息类型(2)25握手协议的协议过程26握手协议过程(1) 第一阶段 安全能力的建立(1) 客户 服务器 :client_hello。(2) 服务器 客户 :server_hello。第一个阶段用于开始逻辑连接,并且建立与该连接关联的安全能力。这 个过程是由客户发起的 第二阶段 服务器认证和密钥交换(1) 服务器 客户 :server_certificate。(2) 服务器 客户 :server_key_exchan
14、ge。(3) 服务器 客户 :certificate_request。(4) 服务器 客户 :server_hello_done。用于对服务器的认证和服务器密钥的交换。如果客户要求认证服务器, 那么服务器需要在这个阶段的开始,向客户发送自己的证书。27握手协议过程(2) 第三阶段 客户认证和密钥交换(1) 客户 服务器 :client_certificate。(2) 客户 服务器 :client_key_exchange。(3) 客户 服务器 :certificate_verify。客户收到服务器的server-hello-done消息后,就可以验证服务器是 否提供了合法的证书,检查服务器提供
15、的参数是否可以接受。如果这 些条件都满足,客户就可向服务器发送响应。 第四阶段 结束阶段(1) 客户 服务器 :change_cipher_spec。(2) 客户 服务器 :finished。(3) 服务器 客户 :change_cipher_spec。(4) 服务器 客户 :finished。用于结束握手过程28安全电子交易 (SET) Security Electronic Transaction是一个用于保护 Internet上信用卡交易的加密和安全归约。 是由世界上两大信用卡商Visa和Master Card于1997年5月 联合制定的实现网上信用卡交易的模型和规范。 主要是为了解决用
16、户、商家和银行之间通过信用卡支付的 交易而设计的,以保证支付信息的机密和支付过程的完整 。 SET规范,是一种为基于信用卡而进行的电子交易提供安 全措施的规则;是一种能广泛应用于Internet上的安全电 子付款协议。是一个安全协议的集合。 SET中的核心技术包括公开密钥加密、数字签名、电子信 封、电子安全证书等。 29SET的设计目标根据商业需求而设计开发的: 为支付/订购信息提供机密性。加密 通信信息的完整性。 数字签名 验证持卡者是否是信用卡账户的合法用户。(数字签名、证 书) 持卡用户需要确认能与之进行安全交易的商家的身份。 ( 数字签名、证书) 采用最好的安全策略和系统设计技术来保护电子商务交易 中的所有合法方。(加密、协议规约) 安全性应不依赖于传运输层安全机制,但又可以充分利用 传输层的安全服务。 (独立) 协议应该独立