安全套接层协议SSL.ppt_第1页
安全套接层协议SSL.ppt_第2页
安全套接层协议SSL.ppt_第3页
安全套接层协议SSL.ppt_第4页
安全套接层协议SSL.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章安全套接层协议SSL 主要内容 SSL概述SSL体系结构与协议SSL协议的安全性分析SSL的应用 目前国际上流行的电子商务所采用的协议主要有 安全套接层协议 SecureSocketsLayer SSL 基于信用卡交易的安全电子协议 SecureElectronicTransaction SET 安全HTTP S HTTP 协议安全电子邮件协议 PEM S MIME等 用于公对公交易的InternetEDI等 此外在Internet网上利用Ipsec标准建设虚拟专用网 利用VPN为企业 政府提供一些基本的安全服务 6 1SSL概述 SSL协议是一种国际标准的加密及身份认证通信协议目标 SSL被设计用来使用TCP提供一个可靠的端到端安全服务 为两个通讯个体之间提供保密性和完整性 身份鉴别 SSL TLS协议 1994年Netscape开发了SSL SecureSocketLayer 安全套接层协议 专门用于保护Web通讯版本和历史1 0 不成熟2 0 基本上解决了Web通讯的安全问题Microsoft公司发布了PCT PrivateCommunicationTechnology 并在IE中支持3 0 1996年发布 增加了一些算法 修改了一些缺陷TLS1 0 TransportLayerSecurity传输层安全协议 也被称为SSL3 1 1997年IETF发布了Draft 同时 Microsoft宣布放弃PCT 与Netscape一起支持TLS1 01999年 发布RFC2246 TheTLSProtocolv1 0 协议的使用 https 与shttp 在网络上传输的敏感信息 如电子商务 金融业务中的信用卡号或PIN码等机密信息 都纷纷采用SSL来进行安全保护 SSL通过加密传输来确保数据的机密性 通过信息验证码 MessageAuthenticationCodes MAC 机制来保护信息的完整性 通过数字证书来对发送和接收者的身份进行认证 IP IPSec TCP Lowerlayers IP TCP Lowerlayers SSL OS IPSec SSL 一个保证任何安装了安全套接字的客户和服务器间事务安全的协议 它涉及所有TCP IP应用程序 SSL协议可用于保护正常运行于TCP之上的任何应用协议 如HTTP FTP SMTP或Telnet的通信 最常见的是用SSL来保护HTTP的通信 SSL协议的优点在于它是与应用层协议无关的 高层的应用协议 如HTTP FTP Telnet等 能透明地建立于SSL协议之上 SSL协议在应用层协议之前就已经完成加密算法 通信密钥的协商以及服务器的认证工作 在此之后应用层协议所传送的数据都会被加密 从而保证通信的安全性 SSL协议使用通信双方的客户证书以及CA根证书 允许客户 服务器应用以一种不能被偷听的方式通信 在通信双方间建立起了一条安全的 可信任的通信通道 该协议使用密钥对传送数据加密 许多网站都是通过这种协议从客户端接收信用卡编号等保密信息 它被认为是最安全的在线交易模式 SSL解决的问题 功能 客户对服务器的身份认证SSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心 CA 的证书 来确认服务器的合法性 服务器对客户的身份认证也可通过公钥技术和证书进行认证 也可通过用户名 password来认证 建立服务器与客户之间安全的数据通道SSL要求客户与服务器之间的所有发送的数据都被发送端加密 接收端解密 同时还检查数据的完整性 SSL提供的安全服务 用户和服务器的合法性认证usingX 509v3digitalcertificates传输数据的机密性usingoneofDES TripleDES IDEA RC2 RC4 传输数据的完整性usingMACwithMD5orSHA 1 SSL协议实现的六步骤 接通阶段 客户机通过网络向服务器打招呼 服务器回应 密码交换阶段 客户机与服务器之间交换双方认可的密码 一般选用RSA密码算法 会谈密码阶段 客户机器与服务器间产生彼此交谈的会谈密码 检验阶段 客户机检验服务器取得的密码 客户认证阶段 服务器验证客户机的可信度 结束阶段 客户机与服务器之间相互交换结束的信息 6 1 3SSL协议与电子商务 SSL提供了用于启动TCP IP连接的安全性 信号交换 这种信号交换导致客户和服务器同意将使用的安全性级别 并履行连接的任何身份验证要求 通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证 在用数字证书对双方的身份验证后 双方就可以用保密密钥进行安全的会话了 SSL证书保障在线服务器的安全 服务器身份验证 防假冒网络信息发送内容加密 防偷窥网络信息发送完整性检测 防删节网络信息发送内容修改提醒 防篡改 应用数据 改变密码套 结束握手 送出客户端证书 送出服务器证书 请求客户端证书 SSL流程 浏览器 Web服务器 SSL安全通道 客户端证书 服务器证书 Clienthello ServerhelloServerCertificateCertificateRequestServerKeyExchange ClientCertificateClientKeyExchangeCertificateVerifyChangeCipherSpecFinished ChangeCipherSpecFinished ApplicationData ApplicationData 建立协议版本 会话ID 交换随机数 SSL服务器证书工作原理介绍 第一步 身份验证 发证机构 CA 你是谁 我是卓越服务器 身份验证 服务器 卓越服务器 SSL服务器证书工作原理介绍 第二步 发明密语规则 密语规则 发明 原文 密语 SSL服务器证书工作原理介绍 第三步 密语规则共享 信息保险箱 打开保险箱 获得规则 SSL服务器证书工作原理介绍 第四步 进行安全通信 SSL当初并不是为支持电子商务而设计的 所以在电子商务系统的应用中还存在很多弊端 SSL是一个面向连接的协议 在涉及多方的电子交易中 只能提供交易中客户与服务器间的双方认证 而电子商务往往是客户 网站 银行三家协作完成 SSL协议并不能协调各方间的安全传输和信任关系 购货时客户要输入通信地址 这样将可能使得客户收到大量垃圾信件 SSL协议运行的基点是商家对客户信息保密的承诺 但在上述流程中SSL协议有利于商家而不利于客户 客户的信息首先传到商家 商家阅读后再传到银行 这样 客户资料的安全性便受到威胁 随着电子商务参与方的迅速增加 认证问题越来越突出 SSL协议的缺点完全暴露出来 SSL协议逐渐被新的SET协议所取代 目前我国开发的电子支付系统 无论是中国银行的长城卡电子支付系统 还是上海长途电信局的网上支付系统 均没有采用SSL协议 主要原因就是无法保证客户资金的安全性 6 1 4SSL协议的分层结构 SSL的设计概念是希望使用TCP来提供一个可靠的端对端的安全性服务 SSL并不是单一个协议 而是由二层协议来组成SSL协议具有两层结构 其底层是SSL记录协议层 SSLRecordProtocolLayer 简称记录层 其高层是SSL握手协议层 SSLHandshakeProtocolLayer 简称握手层 SSL协议定义了两个通信主体 客户 client 和服务器 server 其中 客户是协议的发起者 在客户 服务器结构中 应用层从请求服务和提供服务的角度定义客户和服务器 而SSL协议则从建立加密参数的过程中所扮演的角色来定义客户和服务器 SSL握手协议包含四个阶段 第一个阶段建立安全能力 第二个阶段服务器鉴别和密钥交换 第三个阶段客户鉴别 可选的 和密钥交换 第四个阶段完成握手协议 SSL的两个重要概念 SSL连接 connection 一个连接是一个提供一种合适类型服务的传输 OSI分层的定义 SSL的连接是点对点的关系 连接是暂时的 每一个连接和一个会话关联 SSL会话 session 一个SSL会话是在客户与服务器之间的一个关联 会话由HandshakeProtocol创建 会话定义了一组可供多个连接共享的密码安全参数 会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价 在任意一对通信主体之间 可以有多个安全连接 会话状态参数 Sessionidentifier 服务器选择的一个任意字节序列 用以标识一个活动的或可激活的会话状态 PeerCertificate 标识服务器的X 509 v3证书 可为空 Compressionmethod 加密前进行数据压缩的算法 Cipherspec 指明数据体加密的算法 无 或DES等 以及散列算法 如MD5或SHA 1 用以计算MAC 还包括其它参数 如散列长度 Mastersecret 48位秘密 在client与server之间共享 Isresumable 一个标志 指明该会话是否能用于产生一个新连接 连接状态 Serverandclientrandom server和client为每一个连接所选择的字节序号 ServerwriteMACsecret 一个密钥 用来对server送出的数据进行MAC操作 ClientwriteMACsecret 一个密钥 用来对client送出的数据进行MAC操作 Serverwritekey 用于server进行数据加密 client进行数据解密的对称保密密钥 连接状态 Clientwritekey 用于client进行数据加密 server进行数据解密的对称保密密钥 Initializationvectors 当数据加密采用CBC方式时 每一个密钥保持一个IV 该字段首先由SSLHandshakeProtocol产生 以后保留每次最后的密文数据块作为IV Sequencenumber 每一方为每一个连接的数据发送与接收维护单独的顺序号 当一方发送或接收一个改变的cipherspecmessage时 序号置为0 最大264 1 6 2SSL握手协议 Handshakeprotocol 主要用来让客户端及服务器确认彼此的身分 为了保护SSL记录封包中传送的数据 Handshake协议还能协助双方选择连接时所会使用的加密算法 MAC算法 及相关密钥 在传送应用程序的数据前 必须使用Handshake协议来完成上述事项 Handshake由一些客户与服务器交换的消息所构成 每一个消息都含有以下三个字段 类型 Type 1字节 表示消息的类型 总共有十种 在表二中列出了这些已经定义的消息种类 长度 Length 3字节 消息的位组长度 内容 Content 1个字节 与此消息有关的参数 表6 1列出所有可能的参数 SSL握手协议使用的消息 第一阶段 建立起安全协商 客户发送一个client hello消息 包括以下参数 版本 随机数 32位时间戳 28字节随机序列 会话ID 客户支持的密码算法列表 CipherSuite 客户支持的压缩方法列表 然后 客户等待服务器的server hello消息服务器发送server hello消息 参数 客户建议的低版本以及服务器支持的最高版本 服务器产生的随机数 会话ID 服务器从客户建议的密码算法中挑出一套 服务器从客户建议的压缩方法中挑出一个 CipherSuite密码套件 第一个元素指定了密钥交换的方法 SSL支持以下一些方法 RSA 要求服务器提供一个RSA证书DH Diffie Hellman 要求服务器的证书中包含了由CA签名的DH公开参数 客户或者在证书中提供DH公开参数 或者在密钥交换消息中提供此参数 第二阶段 服务器鉴别和密钥交换 服务器发送自己的证书 消息包含一个X 509证书 或者一条证书链服务器发送server key exchange消息可选的 有些情况下可以不需要 只有当服务器的证书没有包含必需的数据的时候才发送此消息消息包含签名 被签名的内容包括两个随机数以及服务器参数服务器发送certificate request消息非匿名server可以向客户请求一个证书包含证书类型和CAs服务器发送server hello done 然后等待应答 第三阶段 客户鉴别和密钥交换 客户收到server done消息后 它根据需要检查服务器提供的证书 并判断server hello的参数是否可以接受 如果都没有问题的话 发送一个或多个消息给服务器如果服务器请求证书的话 则客户首先发送一个certificate消息 若客户没有证书 则发送一个no certificate警告 然后客户发送client key exchange消息最后 客户发送一个certificate verify消息 其中包含一个签名 对从第一条消息以来的所有握手消息的MAC值 进行签名 第四阶段 结束 第四阶段建立起一个安全的连接客户发送一个change cipher spec消息 并且把协商得到的CipherSuite拷贝到当前连接的状态之中然后 客户用新的算法 密钥参数发送一个finished消息 这条消息可以检查密钥交换和鉴别过程是否已经成功 其中包括一个校验值 对所有以来的消息进行校验 服务器同样发送change cipher spec消息和finished消息 握手过程完成 客户和服务器可以交换应用层数据 SSL握手协议的流程 交换Hello消息 对于算法 交换随机值等协商一致交换必要的密码参数 以便双方得到统一的premastersecret交换证书和相应的密码信息 以便进行身份认证产生mastersecret把安全参数提供给SSL记录层检验双方是否已经获得同样的安全参数 6 3SSL记录协议 SSLRecordProtocol SSL记录协议为每一个SSL连接提供以下两种服务 机密性 Confidentiality SSL记录协议会协助双方产生一把共有的密钥 利用这把密钥来对SSL所传送的数据做传统式加密 消息完整性 MessageIntegrity SSL记录协议会协助双方产生另一把共有的密钥 利用这把密钥来计算出消息认证码 SSL数据单元的形成过程 用户数据单元 分段 压缩 附加MAC 加密 附加SSL报头 SSL记录协议操作流程 第一个步骤是分片 fragmentation 每个上层应用数据被分成214字节或更小的数据块 记录中包含类型 版本号 长度和数据字段 选择是否执行压缩的步骤 compression 压缩的过程中 必须是无损失压缩 lossless 也就是说解压缩后能够得到原本完整的消息 经过压缩后的内容长度不能超过原有长度1024字节以上 在SSLv3 以及TLS的现有版本 并没有指定压缩算法 所以预设的算法是null 计算压缩数据的消息认证码 messageauthenticationcode 为了达到这个目的 必须使用一把双方共有的密钥 SSLRecordFormat 6 4SSL协议采用的加密和认证算法 6 4 1加密算法 6 4 2认证算法 认证算法采用X 509电子证书标准 通过使用RSA算法进行数字签名来实现的 服务器的认证 服务器方的写密钥和客户方的读密钥 客户方的写密钥和服务器方的读密钥分别是一对私有 公有密钥 客户的认证 6 4 3会话层的密钥分配协议 SKEIP SimpleKeyExchangeforInternetProtocol 由公钥证书来实现两个通信实体间的长期单钥的交换 证书通过用户数据协议UDP得到 Photuris SKEIP有其不利的一面 若某人能得到长期SKEIP密钥 他就可以解出所有以前用此密钥加密的信息 而Photuris只用长期密钥认证会话密钥 则无此问题 但Photuris效率没有SKEIP高 ISAKMP Internet安全协会的密钥管理协议 和前两者不同 ISAKMP只提供密钥管理的一般框架 而不限定密钥管理协议 也不限定密钥算法或协议 因此在使用和策略上更为灵活 6 5SSL协议安全性分析 6 5 1安全机制分析 鉴别机制 公开密钥技术和数字证书可以实现客户端和服务器端的身份鉴别 ClientHello和ServerHello发过去自己的证书 里面包含了身份和自己的公钥 加密机制 混合密码体制的使用提供了会话和数据传输的加密性保护 双方使用非对称密码体制协商出本次将要使用的会话密钥 并选择一种对称加密算法 完整性机制 定义了共享的 可以用来形成报文鉴别码MAC的密钥 数据进行分片压缩后 使用单向散列函数产生一个MAC 加密后置于数据包的后部 并且再一次和数据一起被加密 然后加上SSL首部进行网络传输 这样 如果数据被修改 其散列值就无法和原来的MAC相匹配 从而保证了数据的完整性 抗重放攻击 SSL使用序列号来保护通信方免受报文重放攻击 这个序列号被加密后作为数据包的负载 在整个SSL握手中 都有一个唯一的随机数来标记这个SSL握手 这样重放便无机可乘 6 5 2脆弱性分析 1 客户端假冒 因为SSL协议设计初衷是对Web站点及网上交易进行安全性保护 使消费者明白正在和谁进行交易要比使商家知道谁正在付费更为重要 为了不致于由于安全协议的使用而导致网络性能大幅下降 SSL协议并不是默认地要求进行客户鉴别 这样做虽然有悖于安全策略 但却促进了SSL的广泛应用 针对这个问题 可在必要的时候配置SSL协议 使其选择对客户端进行认证鉴别 2 SSL协议无法提供基于UDP应用的安全保护 SSL协议需要在握手之前建立TCP连接 因此不能对UDP应用进行保护 如果要兼顾UDP协议层之上的安全保护 可以采用IP层的安全解决方案 3 SSL协议不能对抗通信流量分析 由于SSL只对应用数据进行保护 数据包的IP头和TCP头仍然暴露在外 通过检查没有加密的IP源和目的地址以及TCP端口号或者检查通信数据量 一个通信分析者依然可以揭示哪一方在使用什么服务 有时甚至揭露商业或私人关系的秘密 4 进程中主密钥泄漏 除非SSL的工程实现大部分驻留在硬件中 否则主密钥将会存留在主机的主存储器中 这就意味着任何可以读取SSL进程存储空间的攻击者都能读取主密钥 因此 不可能面对掌握机器管理特权的攻击者而保护SSL连接 这个问题要依靠用户管理策略来解决 5 磁盘上的临时文件可能遭受攻击 对于使用虚拟内存的操作系统 不可避免地有些敏感数据甚至主密钥都交换到存盘上 可采取内存加锁和及时删除磁盘临时文件等措施来降低风险 6 对证书的攻击和窃取 类似Verisign之类的公共CA机构并不总是可靠的 系统管理员经常犯的错误是过于信任这样的公共CA机构 因为对于用户的证书 公共CA机构可能不像对网站数字证书那样重视和关心其准确性 3 安全盲点 系统管理员不能使用现有的安全漏洞扫描或网络入侵检测系统来审查或监控网络上的SSL交易 加密技术使得通过网络传输的信息无法让IDS辨认 使得最重要的服务器反而成为受到最少防护的服务器 对此 恶意代码检测 增强的日志功能等基于主机的安全策略会成为最后防线 SSL仍然不失为一套全面完善的安全策略中有效的组成元素 然而 与网络安全的其它工具软件一样 仅使用单一的防护软件都是远远不够的 对SSL的过高评价有可能带来高的安全风险 它仅仅是网络安全工具的一种 必须和其它网络安全工具紧密结合 方能构造出全面 完善 安全可靠的网络 6 6Web安全威胁 Web的全称是WorldWideWeb Web面临的主要安全威胁如下 Web服务器上的Web网页很容易收到攻击Web的下层软件结构复杂 存在大量的安全漏洞当Web服务器遭到破坏时 本地站点上的数据和系统也将面临威胁 威胁的蔓延 浏览器 如IE和Netscape等Web服务器 IIS DominoGoWebServerNetscapeEnterpriseServerAppache在浏览器端安装支持SSL的客户端证书 可选 然后把URL中的 http 更换为 https CGI程序的安全性问题CGI是CommonGatewayInterface 通用网关接口 的简写 它是一个Web服务器主机提供信息服务的标准接口 通过提供这样一个标准接口 Web服务器能够执行应用程序并将它们的输出 如文字 图形 声音等传递给一个Web浏览器CGI程序是WWW安全漏洞的主要来源编写安全的CGI脚本 6 6 1WWW的安全 Web服务器端安全性 服务器发布信息 提供服务静态信息 各种HTML页面动态信息 利用脚本或者各种扩展引擎响应客户的请求安全性目录安全性只有指定范围的文件才可以被访问例如 禁止URL中出现 Cgi文件的安全性 此目录禁止通过Web读写检查每一个cgi文件 不要保留有漏洞的cgi文件 特别是系统预装的一些cgi示例文件 这些文件往往为了说明功能 而忽略了安全性的考虑要求鉴别 由于协商的原因 要注意安全性最低的鉴别协议授权机制 保护好口令的安全存储 以及客户信息的保存日志 打开系统中对于Web服务的日志功能 以及Web服务的日志记录 服务器端的安全防护 有些应用使用SSL TLS 为WebService申请一个证书WebServer往往是网络攻击的入口点为了提供WebService 必须要开放端口和一些目录 还要接受各种正常的连接请求防火墙对WebServer的保护是有限的为了安全 请 及时打上WebServer软件厂商提供的补丁程序特别是一些主流的服务软件 比如MS的IIS控制目录和文件的权限Web应用开发人员注意在服务端的运行代码中 对于来自客户端的输入一定要进行验证防止缓冲区溢出 安全Web服务器 安全Web服务器在提供常规的Web服务的同时 还具有以下特点 WEB页面加密存储方法 确保存储在WEB服务器上的页面文件的安全性 WEB页面的原始性鉴别技术 分密级访问控制 确保不被非法访问 严格的传输加密技术 确保信息不被监听 数字水印日志 确保日志文件不可更改 为计算机取证提供支持 Web客户端的安全性 客户端安全性涉及到Cookie的设置 保护用户的隐私PKI设置 确定哪些是可信任的CA对可执行代码的限制 包括JavaApplet ActiveXcontrol如果你的机器是多个人合用的 则Web页面的缓存区域 将会留下用户最近访问过的页面历史记录口令自动保存和提示 4 2 6Plug in的安全性Plug in在运行时完全作为浏览器的一部分不要盲目执行任何从Internet上下载的程序4 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论