ch3 电子商务的技术基础(C-SSL;SET)_第1页
ch3 电子商务的技术基础(C-SSL;SET)_第2页
ch3 电子商务的技术基础(C-SSL;SET)_第3页
ch3 电子商务的技术基础(C-SSL;SET)_第4页
ch3 电子商务的技术基础(C-SSL;SET)_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

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

文档简介

1、安全套接层协议 SSL/TLS协议3.1 SSL协议概述协议概述3.2 体系结构与协议3.3 SSL协议的安全性分析3.4 SSL协议的脆弱性分析3.5 SSL的应用与开发环境3.6 SET协议 SSL- Secure Sockets Layer Internet上开放的电子商务系统,从技术角度来看,关键的技术问题有两个: 一是信息传递的准确性; 二是信息传递的安全可靠性。 前者是各种数据交换协议已经解决了的问题;后者则是目前学术界、工商界和消费者最为关注的问题。 3.1 SSL协议概述安全可靠性的信息传递,应满足以下五个方面,也是OSI规定的五种标准的安全服务:(1)数据保密:防止信息被截获

2、或非法存取而泄密。(2)对象认证:通信双方对各自通信对象的合法性、真实性进行确认,以防第三者假冒。(3)数据完整性:阻止非法实体对交换数据的修改、插入、删除及防止数据丢失。(4)防抗抵赖:用于证实已发生过的操作,防止交易双方对发生的行为抵赖。(5)访问控制:防止非授权用户非法使用系统资源。电子商务系统所采用的安全协议主要有:n安全套接层协议(Secure SocketsLayer,SSL)n基于信用卡交易的安全电子协议(Secure Electronic Transaction,SET)n安全HTTP(S-HTTP)协议n安全电子邮件协议(PEM、S/MIME等)n用于公对公交易的Intern

3、et EDI等。n此外在Internet网上利用Ipsec标准建设虚拟专用网,利用VPN为企业、政府提供一些基本的安全服务,SSL协议概述n协议是Netscape Communication公司推出在网络传输层之上提供的一种基于RSA和保密密钥的用于浏览器和Web服务器之间的安全连接技术。它是国际上最早应用于电子商务的一种由消费者和商家双方参加的信用卡/借记卡支付协议。nInternet上对应的七层网络模型的每一层都已经提出了相应的加密协议。SSL是工作于网络传输层之上的网络安全协议 SSL/TLS协议n1994年Netscape(网景)开发了SSL协议,专门用于保护Web通讯n版本和历史n1

4、.0,不成熟n2.0,基本上解决了Web通讯的安全问题nMicrosoft公司发布了PCT(Private Communication Technology),并在IE中支持n3.0,1996年发布,增加了一些算法,修改了一些缺陷nTLS 1.0(Transport Layer Security, 也被称为SSL 3.1),1997年IETF发布了Draft,同时,Microsoft宣布放弃PCT,与Netscape一起支持TLS 1.0n1999年,发布RFC-Request For Comments(Internet Society(ISOC) 2246(The TLS Protocol

5、v1.0)SSL协议 SSL协议在整个网络协议中的位置 IPSSL/TLS协议n协议的设计目标n为两个通讯个体之间提供保密性和完整性(身份认证)n互操作性、可扩展性、相对效率n协议的使用SSL/TLS协议的使用PSsl/TLSSsl/TLSSsl/TLS1.0SSL/TLS协议的使用SSL/TLS协议的使用SSL/TLS协议的使用SSL概述概述n在网络上传输的敏感信息(如电子商务、金融业务中的信用卡号或PIN码等机密信息)都采用了SSL来进行安全保护。nSSL通过加密传输来确保数据的机密性,通过信息验证码(Message Authentication Codes,MAC)机制来保护信息的完整性

6、,通过数字证书来对发送和接收者的身份进行认证。nMAC信息验证码是根据信息的全部内容通过某种算法产生的一种检验码,它与信息的全部内容密切相关。 HMAC:Hash-Based MACnSSL协议可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telnet的通信,最常见的是用SSL来保护HTTP的通信。nSSL协议的优点在于它是与应用层协议无关的。高层的应用协议(如HTTP、FTP、Telnet等)能透明地建立于SSL协议之上。nSSL协议在应用层协议之前就已经完成加密算法、通信密钥的协商以及服务器的认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的安

7、全性。 SSL概述概述nSSL协议使用通信双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通信,在通信双方间建立起了一条安全的、可信任的通信通道。n该协议使用密钥对传送数据加密,许多网站都是通过这种协议从客户端接收信用卡编号等保密信息。它被认为是最安全的在线交易模式, SSL概述概述IP/IPSecTCPLower layersIPTCPLower layersSSLOSIPSecSSL一个保证任何安装了安全套接字的客户和服务器一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有间事务安全的协议,它涉及所有TCP/IP应用程序应用程序 SSLSSL协议

8、提供的服务可以归纳为如下3个方面(1)用户和服务器的合法性认证)用户和服务器的合法性认证使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都有各自的识别号,由公开密钥编排。为了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性,从而保证通信的安全性。 用户和服务器的合法性认证:X.509 v3 digital certificates(2)加密数据以隐藏被传送的数据)加密数据以隐藏被传送的数据安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。具体来说,就是客户机与服务器交换数据之前,先交换SSL初始握手信息。在SSL握手信息中采用了各

9、种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别,这样就可以防止非法用户破译。 SSL协议提供的服务可以归纳为如下3个方面传输数据的机密性:DES, Triple DES, IDEA, RC2, RC4, SSL协议提供的服务可以归纳为如下3个方面(3)维护数据的完整性)维护数据的完整性安全套接层协议采用密码杂凑函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务,在传输过程中都能完整、准确无误地到达目的地。传输数据的完整性:MAC with MD5(RFC 1321) or SHA-1 MD5,Message Dige

10、st Algorithm 消息摘要算法 Secure Hash Algorithm 安全散列算法总结:SSL的功能n客户对服务器的身份认证nSSL服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性。n服务器对客户的身份认证n也可通过公钥技术和证书进行认证,也可通过用户名,password来认证。n建立服务器与客户之间安全的数据通道nSSL要求客户与服务器之间的所有发送的数据都被发送端加密、接收端解密,同时还检查 数据的完整性安全套接层协议 SSL/TLS协议3.1 SSL协议概述3.2 体系结构与协议体系结构与协议3.3 SSL协议的安全性分析

11、3.4 SSL协议的脆弱性分析3.5 SSL的应用与开发环境SSL的设计概念是希望使用TCP来提供一个可靠的端对端的安全性服务。SSL并不是单一个协议,而是由二层协议来组成 n协议分为两层n上层:TLS握手协议- TLS Handshake Protocol 、TLS密码变化协议- Change Cipher Spec Protocol 、TLS警告协议-Alert Protocoln底层:TLS记录协议- TLS Record Protocol3.2体系结构与协议体系结构与协议nTLS握手协议n客户和服务器之间相互认证n协商加密算法和密钥n它提供连接安全性,有三个特点n身份认证,至少对一方实

12、现认证,也可以是双向认证n协商得到的共享密钥是安全的,中间人不能够知道n协商过程是可靠的nTLS记录协议n建立在可靠的传输协议(如TCP)之上n它提供连接安全性,有两个特点n保密性,使用了对称加密算法n完整性,使用MAC /HMAC算法: Hash-based Message Authentication Code 密钥相关的哈希运算消息认证码n用来封装高层的协议体系结构与协议n为上层协议提供安全性n保密性n身份认证和数据完整性应用层协议(应用层协议(HTTP、Telnet、FTP、SMTP等)等)SSL握手协议(握手协议(Handshake Protocol)SSL记录协议(记录协议(Rec

13、ord Protocol)TCP协议协议IP协议协议SSL协议协议SSL协议的分层结构协议的分层结构 SSL握手协议握手协议(Handshake protocol)握手协议是关于客户和服务器协商它们在安全信道中要使用的参数,这些参数包括采用的协议版本、加密算法和密钥。主要用来让客户端及服务器确认彼此的身分。为了保护SSL记录封包中传送的数据,Handshake协议还能协助双方选择连接时所会使用的加密算法、MAC算法、及相关密钥。在传送应用程序的数据前,必须使用Handshake 协议来完成上述事项。nHandshake由一些客户与服务器交换的消息所构成,每一个消息都含有以下三个字段:n类型(T

14、ype),1字节:表示消息的类型,总共有十种。在表二中列出了这些已经定义的消息种类。n长度(Length),3字节:消息的位组长度。n内容(Content),1个字节:与此消息有关的参数,表列出所有可能的参数。SSL握手协议使用的消息SSL握手协议包含四个阶段n第一个阶段建立安全能力;n第二个阶段服务器鉴别和密钥交换;n第三个阶段客户鉴别(可选的)和密钥交换;n第四个阶段完成握手协议。 SSL握手协议应用数据改变密码套,结束握手送出客户端证书送出服务器证书,请求客户端证书SSL流程浏览器浏览器Web服务器服务器SSL安全通道安全通道客户端证客户端证书书服务器证服务器证书书Client hell

15、oServer helloServer CertificateCertificate RequestServerKeyExchangeClient CertificateClientKeyExchangeCertificate VerifyChangeCipherSpecFinishedChangeCipherSpecFinishedApplication DataApplication Data建立协议版本、会话ID、交换随机数SSL服务器证书工作原理介绍第一步:身份验证第一步:身份验证发证机构发证机构 CA CA服务器身份证服务器身份证你你 是是 谁?谁?我是我是XX服务器服务器身份验证身

16、份验证?服务器服务器XXXX服务器服务器第二步:创建密语规则第二步:创建密语规则密语规则密语规则创建创建规则规则A A1 1、2 2、3 35 5、8 8、9 9原原 文文密语密语第三步:密语规则共享第三步:密语规则共享规则规则A A信息保险箱信息保险箱打开保险箱打开保险箱规则规则A A获得规则获得规则第四步:进行安全通信第四步:进行安全通信规则规则A A规则规则A A1 1、2 2、3 3原原 文文1 1、2 2、3 3原原 文文5 5、8 8、9 9无意义文字无意义文字SSL握手协议的流程握手协议的流程 客户(client)端发送ClientHello信息给服务器(Server)端,Ser

17、ver回答ServerHello。这个过程建立的安全参数包括协议版本、“会话”标识、加密算法、压缩方法。另外,还交换两个随机数:ClientHello.Random和ServerHello.Random,用于计算“会话主密钥”。 Hello消息发送完后,Server端会发送它的证书和密钥交换信息。如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送HelloDone消息,以示达成了握手协议,即双方握手接通。 Server请求Client证书时,Client要返回证书或返回没有证书的指示,这种情况用于单向认证,即客户端不装有证书。然后,Client发送密钥交换

18、消息。 服务器Server此时要回答“握手完成”消息(Finished),以示完整的握手消息交换已经全部完成。 握手协议完成后,Client端即可与Server端传输应用加密数据,应用数据加密一般是用第步密钥协商时确定的对称加/解密密钥,如DES、3DE等。目前,商用加密强度为128位,非对称密钥一般为RAS,商用强度为1024位,用于证书的验证。SSL的两个重要概念 SSLSSL连接(连接(connection)connection)与与SSLSSL会话(会话(sessionsession)nSSLSSL连接(连接(connection)connection)n一个连接是一个提供一种合适类型

19、服务的传输(一个连接是一个提供一种合适类型服务的传输(OSIOSI分分层的定义)。层的定义)。nSSLSSL的连接是点对点的关系。的连接是点对点的关系。n连接是暂时的,每一个连接和一个会话关联。连接是暂时的,每一个连接和一个会话关联。nSSLSSL会话(会话(sessionsession)n一个一个SSLSSL会话是在客户与服务器之间的一个关联。会话是在客户与服务器之间的一个关联。会话由会话由Handshake ProtocolHandshake Protocol创建。会话定义了一组创建。会话定义了一组可供多个连接共享的密码安全参数。可供多个连接共享的密码安全参数。n会话用以避免为每一个连接提

20、供新的安全参数所需会话用以避免为每一个连接提供新的安全参数所需昂贵的协商代价。昂贵的协商代价。会会 话话连接连接1连接连接1连接连接2连接连接2连接连接n连接连接n SSL的会话与连接的会话与连接在任意一对通信主体之间,可以有多个安全连接。在任意一对通信主体之间,可以有多个安全连接。 会话状态参数Session identifier: 服务器选择的一个任意字节序列,用以标识一个活动的或可激活的会话状态。Peer Certificate: 标识服务器的X.509.v3证书。可为空。Compression method: 加密前进行数据压缩的算法。Cipher spec: 指明数据体加密的算法(无

21、,或DES等)以及散列算法(如MD5或SHA-1)用以计算MAC。还包括其它参数,如散列长度。Master secret: 48位秘密,在client与server之间共享。Is resumable:一个标志,指明该会话是否能用于产生一个新连接。连接状态Server and client random: server 和client 为每一个连接所选择的字节序号。Server write MAC secret: 一个密钥,用来对server 送出的数据进行MAC操作。Client write MAC secret: 一个密钥,用来对client送出的数据进行MAC操作。 Server writ

22、e key: 用于server 进行数据加密,client进行数据解密的对称保密密钥;连接状态Client write key:用于client 进行数据加密,server进行数据解密的对称保密密钥;Initialization vectors: 当数据加密采用CBC方式时,每一个密钥保持一个IV。该字段首先由SSL Handshake Protocol产生产生,以后保留每次最后的密文数据块作为IV。Sequence number: 每一方为每一个连接的数据发送与接收维护单独的顺序号。当一方发送或接收一个改变的cipher spec message时,序号置为0, 最大264-1。完整的握手协

23、议消息交换过程ClientHelloCertificateClientKeyExchangeCertificateVerifyChangCipherSpecFinishedApplicationDataServerHelloCertificateServerKeyExchangeCertificateVerifyServerHelloDoneFinishedApplicationDataClient端Server端SSL握手协议的流程n交换Hello消息,对于算法、交换随机值等协商一致n交换必要的密码参数,以便双方得到统一的premaster secretn交换证书和相应的密码信息,以便进行身

24、份认证n产生master secretn把安全参数提供给SSL记录层n检验双方是否已经获得同样的安全参数SSL握手协议的作用协议的作用SSL中的握手协议,将公钥加密技术与对称密钥加密技术的应用有效、巧妙地结合在一起,有机地组成了互联网(或其他网络)上信息安全传输的通道。这种信息安全通道,有其实用价值,比如,利用对称加密技术比公钥加密技术对大容量信息的加/解密速度要快,而公钥技术却提供了更好的身份认证技术。SSL的握手协议可以非常有效地让客户与服务器之间完成身份认证。通过SSL客户端与服务器传送自己的数字证书,互验合法性,特别是验证服务器的合法性,可以有效地防止互联网上虚假网站的网上钓鱼事件;同

25、时,服务器端也可以严格验证客户端的真实身份。其作用如下:SSL握手协议的作用协议的作用客户端的浏览器向服务器传送客户端SSL协议的版本号、加密算法的种类、产生的随机数,以及其它服务器和客户端之间通信所需要的各种信息。服务器向客户端传送SSL协议的版本号、加密算法的种类、随机数及其他相关信息,同时,服务器还将向客户端传送自己的证书。客户利用服务器传过来的信息验证服务器的合法性。服务器的合法性包括:证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,则通信将断开;如果合法性

26、验证通过,则将继续进行第步。SSL握手协议的作用协议的作用客户端随机产生一个用于后面通信的“对称密码”,然后用服务器的公钥(从步骤中服务器的证书中获得)对其加密,再将加密后的“预主密码”传给服务器。如果服务器要求客户的身份认证(在握手过程中为可选),用户则可以建立一个随机数,然后对其进行数字签名,将这个含有签名的随机数和客户自己的证书,以及加密过的“预主密码”一起传给服务器。SSL握手协议的作用协议的作用如果服务器要求客户的身份认证,服务器则必须检验客户证书和签名随机数的合法性。具体的合法性验证包括:客户的证书使用日期是否有效,为客户提供证书的CA是否可靠,发行CA的公钥能否正确解开客户证书的

27、发行CA的数字签名,检查客户的证书是否在证书撤销列表(CRL)中。检验如果没有通过,则通信立刻中断;如果验证通过,则服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通信密码(客户端也将通过同样的方法产生相同的主通信密码)。服务器和客户端用相同的主密码,即“通话密码”,一个对称密钥用于SSL协议的安全数据通信的加/解密通信。同时,在SSL通信过程中还要完成数据通信的完整性,以防止数据通信中的任何变化。SSL握手协议的作用协议的作用客户端向服务器端发出信息,指明后面的数据通信将使用步骤中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。服务器向客户端发出信息,指明后面的

28、数据通信将使用步骤中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。SSL的握手部分结束,SSL安全通道的数据通信开始,客户和服务器开始使用相同的对称密钥进行数据通信,同时进行通信完整性的检验。TLS密码变化协议 Change Cipher Spec Protocoln它位于TLS记录协议之上n所以,它用到了TLS记录协议的处理过程n协议只包含一条消息,一个字节 1n用途:切换状态把密码参数设置为当前状态在握手协议中,当安全参数协商一致后,发送此消息n这条消息使得接收方改变当前状态读参数,使得发送方改变当前状态写参数TLS密码变化协议 Change Cipher Spec Proto

29、col密码变化协议也叫改变密码规范协议。改变密码规范协议指明对使用的密码规范的改变,协议中还包括了一个用当前密码规范加密的单独消息。客户和服务器都要发送改变密码规范消息来表明它们准备使用一个新的密码规范和密钥。TLS警告协议Alert Protocoln位于TLS记录协议之上n所以,也用到了TLS记录协议的处理过程n协议数据包含两个字节第一个字节为level:分别为warning(1)和fatal(2)两种情况第二个字节为情况说明nFatal类型的alert消息导致连接立即终止,此时,对应该会话的其他连接可以继续,但是会话标识符无效,以免利用此失败的连接来建立新的连接。n警告协议传送与事件相关

30、的消息,包括事件严重性及事件描述。这里的事件主要是指错误情形,如错误的MAC码、证书过期或是非法参数。警报协议也用于共享有关预计连接终止的信息。SSL记录协议记录协议(SSL Record Protocol)nSSLSSL记录协议为每一个记录协议为每一个SSLSSL连接提供以下连接提供以下两种服务:两种服务:n机密性机密性(Confidentiality)(Confidentiality): SSLSSL记录协议记录协议会协助双方产生一把共有的密钥,利用这会协助双方产生一把共有的密钥,利用这把密钥来对把密钥来对SSLSSL所传送的数据做传统式加密。所传送的数据做传统式加密。n消息完整性消息完整

31、性(Message Integrity)(Message Integrity): SSLSSL记记录协议会协助双方产生另一把共有的密钥,录协议会协助双方产生另一把共有的密钥,利用这把密钥来计算出消息认证码。利用这把密钥来计算出消息认证码。 SSL记录协议记录协议nSSL记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认证功能,它是一个面向连接的可靠传输协议,如TCP/IP提供安全保护。 n在SSL中所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。记录头可以是2字节或3字节(当有填充数据时使用)。nSSL握手层协议的报文要求必须放在一个SSL记录层的记录里,但应

32、用层协议的报文允许占用多个SSL记录来传送。SSL记录协议记录协议1SSL记录头格式SSL记录头可以是2个或3个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密(blocken-cryption)算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有填充数据,记录头的长度为2个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为3个字节,记录数据最长为16383个字节。SSL记录协议记录协议当数据头长度是3个字节时,次高位有特殊的含义。次高位为1时,表示所传输的记录是普通

33、的数据记录;次高位为0时,表示所传输的记录是安全空白记录(被保留用于将来协议的扩展)。记录头中数据长度编码不包括数据头所占用的字节长度。SSL记录协议记录协议2SSL记录数据格式SSL记录数据部分有3个分量:MAC-DATA、ACTUAL-DATA和PADDING-DATA。MAC数据用于数据完整性检查。计算MAC所用的散列函数由握手协议中的CIPHER-CHOICE消息确定。若使用MD2和MD5算法,则MAC数据长度是16个字节。MAC的计算公式为:MAC数据=Hash密钥,实际数据,填充数据,序号。当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证MAC数据);而当会话的客

34、户端接收数据时,密钥是客户的读密钥(服务器用写密钥来产生MAC数据)。序号是一个可以被发送和接收双方递增的计数器,每个通信方向都会建立一对计数器,分别被发送者和接收者拥有。计数器有32位,计数值循环使用,每发送一个记录,计数值递增一次,序号的初始值为0。ACTUAL-DATA是被传送的应用数据,PADDING-DATA是当采用分组码时所需要的填充数据,在明文传送下只有第二项。SSL记录协议记录协议3记录协议的作用记录协议层封装了高层协议的数据,协议数据采用SSL握手协议中协商好的加密算法及MAC算法来保护。记录协议传送的数据包括一个序列号,这样就可以检测消息的丢失、改动或重放。如果协商好了压缩

35、算法,那么SSL记录协议还可以执行压缩功能。SSL数据单元的形成过程数据单元的形成过程用户数据单元用户数据单元分段分段压缩压缩附加附加MAC加密加密附加附加SSL报头报头SSL记录协议操作流程 (1)第一个步骤是分片(fragmentation)。每个上层应用数据被分成214字节或更小的数据块。记录中包含类型、版本号、长度和数据字段 .(2)选择是否执行压缩的步骤(compression)。压缩的过程中,必须是无损失压缩(lossless),也就是说解压缩后能够得到原本完整的消息。经过压缩后的内容长度不能超过原有长度1024字节以上,在SSLv3(以及TLS的现有版本),并没有指定压缩算法,所

36、以预设的算法是null。 (3)计算压缩数据的消息认证码(message authentication code)。为了达到这个目的,必须使用一把双方共有的密钥。 SSL Record Format安全套接层协议 SSL/TLS协议3.1 SSL协议概述3.2 体系结构与协议3.3 SSL协议的安全性分析协议的安全性分析3.4 SSL协议的脆弱性分析3.5 SSL的应用与开发环境SSL协议的安全性分析协议的安全性分析1SSL协议采用的加密算法和认证算法 (1)加密算法和会话密钥 SSL V2协议和SSL V3协议支持的加密算法包括RC4、RC2、IDEA和DES,而加密算法所用的密钥由消息散列

37、函数MD5产生。RC4、RC2是由RSA定义的,其中RC2适用于块加密,RC4适用于流加密。块加密流加密加密算法密钥长度加密算法密钥长度IDEARC2-40DES-40DES3DESFortezza(堡垒)12840405616880RC440RC4-12840128SSL协议的安全性分析协议的安全性分析(2)认证算法 认证算法采用X.509电子证书,通过RSA算法进行数字签名来实现的。服务器的认证:服务器的认证: 在上述的两对密钥中,服务器方的写密钥和客户方的读密钥、客户方的写密钥和服务器方的读密钥分别是一对私有、公有密钥。对服务器进行认证时,只有用正确的服务器方写密钥加密,ClientHe

38、llo消息形成的数字签名才能被客户正确地解密,从而验证服务器的身份。SSL协议的安全性分析协议的安全性分析若通信双方不需要新的密钥,则它们各自所拥有的密钥已经符合上述条件。若通信双方需要新的密钥,首先服务器方在ServerHello消息中的服务器证书中提供了服务器的公有密钥,服务器用其私有密钥才能正确地解密由客户方使用服务器的公有密钥加密的MASTER-KEY,从而获得服务器方的读密钥和写密钥。SSL协议的安全性分析协议的安全性分析客户的认证:客户的认证: 同上,只有用正确的客户方写密钥加密的内容才能被服务器方用其读密钥正确地解开。当客户收到服务器方发出的REQUEST-CERTIFICATE

39、消息时,客户首先使用MD5消息散列函数获得服务器方信息的摘要,服务器方的信息包括:KEY-MATERIAL-0、KEY-MATERIAL-1、KEY-MATERIAL-2、CERTIFICATE-CHALLENAGE-DATA(来自于REQUEST-CERTIFICATE消息)、服务器所赋予的证书(来自于ServerHello)消息。 其中KEY-MATERIAL-1、KEY-MATERIAL-2是可选的,与具体的加密算法有关。然后客户使用自己的读密钥加密摘要形成数字签名,从而被服务器认证。SSL协议的安全性分析协议的安全性分析2SSL安全优势 (1)监听和中间人式攻击 SSL使用一个经过通信

40、双方协商确定的加密算法和密钥,对不同的安全级别应用都可找到不同的加密算法,从而用于数据加密。它的密钥管理处理比较好,在每次连接时通过产生一个密码杂凑函数生成一个临时使用的会话密钥,除了不同连接使用不同密钥外,在一次连接的两个传输方向上也使用各自的密钥。SSL协议的安全性分析协议的安全性分析尽管SSL协议为监听者提供了很多明文。但由于采用RSA交换密钥具有较好的密钥保护性能,以及频繁更换密钥的特点,因此对监听和中间人式攻击而言,具有较高的防范性。 (2)流量数据分析式攻击 流量数据分析式攻击的核心是通过检查数据包的未加密字段或未加保护的数据包属性,试图进行攻击。在一般情况下该攻击是无害的,SSL

41、无法阻止这种攻击。 SSL协议的安全性分析协议的安全性分析(3)截取再拼接式攻击 对需要较强的连接加密,需要考虑这种安全性。SSL V3.0基本上可阻止这种攻击。 (4)报文重发式攻击 报文重发式攻击比较容易阻止,SSL通过在MAC数据中包含“系列号”来防止该攻击。SSL协议的安全性分析协议的安全性分析3SSL协议存在的问题 (1)密钥管理问题 设计一个安全秘密的密钥交换协议是很复杂的,因此,SSL的握手协议也存在一些密钥管理问题。SSL的问题表现在: 客户机和服务器在互相发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能。 SSL V3.0为了兼容以前的版本,可能降低安全性。

42、 所有的会话密钥中都将生成MASTER-KEY,握手协议的安全完全依赖于对MASTER-KEY的保护,因此在通信中要尽可能少地使用MASTER-KEY。 SSL协议的安全性分析协议的安全性分析(2)加密强度问题 Netscape依照美国内政部的规定,在它的国际版的浏览器及服务器上使用40位的密钥。以SSL所使用的RC4演绎法所命名的RC4法规,对多于40位长的加密密钥产品的出口加以限制,这项规定使Netscape的128位加密密钥在美国之外的地方变成不合法。一个著名的例子是一个法国的研究生和两个美国柏克莱大学的研究生破译了一个SSL的密钥,才使人们开始怀疑以SSL为基础的系统安全性。SSL协议

43、的安全性分析协议的安全性分析Microsoft公司想利用一种称为私人通信技术(PCT)的SSL superset协议来改进SSL的缺点。PCT会衍生出第二个专门为身份验证用的密钥,这个身份验证并不属于RC4规定的管辖范围。PCT加入比目前随机数产生器更安全的产生器,因为它也是SSL安全链中的一个弱环节。这个随机数产生器提供了产生加密密钥的种子数目(Seed Number)。SSL协议的安全性分析协议的安全性分析(3)数字签名问题 SSL协议没有数字签名功能,即没有抗否认服务。若要增加数字签名功能,则需要在协议中打“补丁”。这样做,在用于加密密钥的同时又用于数字签名,这在安全上存在漏洞。后来PK

44、I体系完善了这种措施,即双密钥机制,将加密密钥和数字签名密钥二者分开,成为双证书机制。这是PKI完整的安全服务体系。 安全套接层协议 SSL/TLS协议3.1 SSL协议概述3.2 体系结构与协议3.3 SSL协议的安全性分析3.4 SSL协议的脆弱性分析协议的脆弱性分析3.5 SSL的应用与开发环境1.客户端假冒n因为SSL协议设计初衷是对Web站点及网上交易进行安全性保护,使消费者明白正在和谁进行交易要比使商家知道谁正在付费更为重要,为了不致于由于安全协议的使用而导致网络性能大幅下降, SSL协议并不是默认地要求进行客户鉴别,这样做虽然有悖于安全策略,但却促进了SSL的广泛应用。n针对这个

45、问题,可在必要的时候配置SSL协议,使其选择对客户端进行认证鉴别。2.SSL协议无法提供基于UDP应用的安全保护nSSL协议需要在握手之前建立TCP连接,因此不能对UDP应用进行保护。如果要兼顾UDP协议层之上的安全保护,可以采用IP层的安全解决方案。3.SSL协议不能对抗通信流量分析由于SSL只对应用数据进行保护,数据包的IP头和TCP头仍然暴露在外,通过检查没有加密的IP源和目的地址以及TCP端口号或者检查通信数据量,一个通信分析者依然可以揭示哪一方在使用什么服务,有时甚至揭露商业或私人关系的秘密。4.进程中主密钥泄漏除非SSL的工程实现大部分驻留在硬件中,否则主密钥将会存留在主机的主存储

46、器中,这就意味着任何可以读取SSL进程存储空间的攻击者都能读取主密钥,因此,不可能面对掌握机器管理特权的攻击者而保护SSL连接,这个问题要依靠用户管理策略来解决。5.磁盘上的临时文件可能遭受攻击对于使用虚拟内存的操作系统,不可避免地有些敏感数据甚至主密钥都交换到存盘上,可采取内存加锁和及时删除磁盘临时文件等措施来降低风险。 6.对证书的攻击和窃取类似Verisign之类的公共CA机构并不总是可靠的,系统管理员经常犯的错误是过于信任这样的公共CA机构。因为对于用户的证书,公共CA机构可能不像对网站数字证书那样重视和关心其准确性。 7.安全盲点n系统管理员不能使用现有的安全漏洞扫描或网络入侵检测系

47、统来审查或监控网络上的SSL交易。加密技术使得通过网络传输的信息无法让IDS辨认.n使得最重要的服务器反而成为受到最少防护的服务器。对此,恶意代码检测、增强的日志功能等基于主机的安全策略会成为最后防线。nSSL仍然不失为一套全面完善的安全策略中有效的组成元素。然而,与网络安全的其它工具软件一样,仅使用单一的防护软件都是远远不够的。对SSL的过高评价有可能带来高的安全风险,它仅仅是网络安全工具的一种,必须和其它网络安全工具紧密结合,方能构造出全面、完善、安全可靠的网络。 SSL协议分析总结SSL运行在一种可靠的通信协议之上,比如说TCP。SSL的上层是HTTP等应用层,SSL为其提供安全通信。S

48、SL协议使用X.509来认证,RSA作为公钥算法,可选用RC4-128、RC-128、DES作为数据加密算法。SSL分为两层:记录层和握手层,每层使用下层服务,并为上层服务,介于ISO模型的应用层和传输层之间。 安全套接层协议 SSL/TLS协议3.1 SSL协议概述3.2 体系结构与协议3.3 SSL协议的安全性分析3.4 SSL协议的脆弱性分析3.5 SSL的应用与开发环境的应用与开发环境SSL的应用的应用SSL的实现主要是基于B/S架构的应用系统。通过将数字证书与应用系统的集成,能够实现对用户的身份认证、数据的加密、数据签名等安全功能,充分保证了B/S构架系统的安全。安全原理、安全构架和

49、具体应用流程等三个方面分别对SSL的实现流程进行描述。SSL的应用的应用(1)身份认证和访问控制的实现在SSL会话产生时:首先,服务器会传送它的服务器证书,客户端会自动的分析服务器证书,来验证服务器的身份。其次,服务器会要求用户出示客户端证书(即用户证书),服务器完成客户端证书的验证,来对用户进行身份认证。对客户端证书的验证包括验证客户端证书是否由服务器信任的证书颁发机构颁发、客户端证书是否在有效期内、客户端证书是否有效(即是否被窜改等)和客户端证书是否被吊销等。验证通过后,服务器会解析客户端证书,获取用户信息,并根据用户信息查询访问控制列表来决定是否授权访问。所有的过程都会在几秒钟内自动完成

50、,对用户是透明的。SSL的应用的应用(1)Web服务器证书要利用SSL技术,在Web服务器上必需安装一个Web服务器证书,用来表明服务器的身份,并对Web服务器的安全性进行设置,使能SSL功能。服务器证书由CA认证中心颁发,在服务器证书内表示了服务器的域名等证明服务器身份的信息、Web服务器端的公钥以及CA对证书相关域内容的数字签名。服务器证书都有一个有效期,Web服务器需要使能SSL功能的前提是必须拥有服务器证书,利用服务器证书来协商、建立安全SSL安全通道。这样,在用户使用浏览器访问Web服务器,发出SSL握手时,Web服务器将配置的服务器证书返回给客户端,通过验证服务器证书来验证他所访问

51、的网站是否真实可靠。SSL的应用的应用(2)用户证书用户证书由CA认证中心颁发给企业内用户,在用户证书内标识了用户的身份信息、用户的公钥以及CA对证书相关域内容的数字签名,用户证书都有一个有效期。在建立SSL通道过程中,可以对服务器的SSL功能配置成必须要求用户证书,服务器验证用户证书来验证用户的真实身份SSL的应用的应用(3)证书解析模块证书解析模块以动态库的方式提供给各种Web服务器,它可以解析证书中包含的信息,用于提取证书中的用户信息,根据获得的用户信息,查询访问控制列表(ACL),获取用户的访问权限,实现系统的访问控制。(4)访问控制列表(ACL)访问控制列表是根据应用系统不同用户建设

52、的访问授权列表,保存在数据库中,在用户使用数字证书访问应用系统时,应用系统根据从证书中解析得到的用户信息,查询访问控制列表,获取用户的访问权限,实现对用户的访问控制。SSL的应用的应用(3)证书解析模块证书解析模块以动态库的方式提供给各种Web服务器,它可以解析证书中包含的信息,用于提取证书中的用户信息,根据获得的用户信息,查询访问控制列表(ACL),获取用户的访问权限,实现系统的访问控制。(4)访问控制列表(ACL)访问控制列表是根据应用系统不同用户建设的访问授权列表,保存在数据库中,在用户使用数字证书访问应用系统时,应用系统根据从证书中解析得到的用户信息,查询访问控制列表,获取用户的访问权

53、限,实现对用户的访问控制。SSL的应用的应用客户端数据签名模块客户端数据签名模块以控件的方式提供。用户使用浏览器访问Web服务器时,该模块作为控件进行下载,注册安装在用户浏览器中。数据签名模块的功能是使用用户选择的客户端证书的私钥对客户端发送的数据进行数字签名,保证数据传输的完整性,防止客户端对发送的数据进行抵赖。服务端签名验证模块服务端签名验证模块以插件或动态库方式提供,安装在服务器端,实现对客户端数据签名的验证,对客户端数据签名证书的有效性验证。同时,将通过验证的数据,传输给后台应用服务器,进行相关的业务处理,并将数据及其数字签名保存到数据库中。SSL的应用的应用应用系统身份认证流程SSL

54、的应用的应用用户在计算机中插入保存有用户证书的USB KEY,采用安全连接方式(HTTPs方式)访问信息系统,进行系统登录; 信息系统Web服务器发出回应,并出示服务器证书,显示Web服务器的真实身份。同时,要求用户提交用户证书; 用户浏览器自动验证服务器证书,验证登录的信息系统的真实性; 用户选择保存在USB KEY上的用户证书,进行提交; 信息系统Web服务器验证用户提交的用户证书,判断用户的真实身份; 用户身份验证通过后,Web服务器解析用户证书,获得用户信息,根据用户信息,查询信息系统的访问控制列表(ACL),获取用户的访问授权; 获得用户的访问权限后,在用户浏览器和信息系统服务器之间

55、建立SSL连接,用户可以访问到请求的资源,身份认证和访问控制流程结束,用户成功登录信息系统。应用系统身份认证流程SSL的应用的应用应用系统签名流程应用系统签名流程SSL的应用的应用应用系统签名流程应用系统签名流程 用户在计算机中插入保存有用户证书的USB KEY,使用浏览器,访问系统,进行系统登录; 系统对用户完成身份认证和访问控制流程,在用户浏览器和系统服务器之间建立SSL安全通道; 用户访问请求的资源,进入到信息发布、公文流转、网上申报和财务数据上传等操作的网页,和网页一起将PTA(个人信任代理)下载并注册到浏览器中。用户填写办公数据(表单或文件),向系统服务器提交; 此时,浏览器调用PT

56、A,对提交办公数据进行数字签名。浏览器会弹出提示,提示用户是否对提交的数据进行数字签名,并显示浏览器中的证书,供用户选择;SSL的应用的应用应用系统签名流程应用系统签名流程 用户选择自己的证书,点击“签名”,PTA利用用户选择证书的私钥对提交的信息进行数字签名操作,并将提交的信息及其签名一起发送给系统服务器; 系统服务器接收到用户提交的信息后,服务器调用SVM(签名验证模块)来验证用户提交数据的数字签名; 验证通过,将用户提交的办公数据及其签名一起保存到数据库中,并进行后续的业务操作。 整个身份认证和签名过程中,对于使用者来说,始终使用数字证书完成身份认证和数字签名,所以只需将保存有个人证书(

57、私钥)的USB KEY插入本地计算机,其它的提交、认证、解析等过程完全由应用程序在后台完成,最终用户根本感觉不到,最大的程度上方便了用户的使用,在不增加最终用户额外负担的情况下更好的保证了信息系统的安全性。开发环境nOpenSSL()是一款开源的SSL开发环境,支持Linux和Windows。采用的语言是C/C+,提供SSL算法的函数库,为基于TCP/IP应用开发提供SSL的功能。nSSLSocket,语言是Java 3.4 SSL协议安全实例分析国内各大银行都有自己的网上银行,安全如何保障?SSL协议安全实例分析 安全性分析 小 结 从SSL协议所提供的服务及其

58、工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方面的安全传输和信任关系。在这种情况下,Visa和MasterCard两大信用卡公司组织制定了SET协议,

59、为网上信用卡支付提供了全球性的标准。3.6 安全电子交易协议(Secure Electronic Transaction, SET)1 SET协议概述2 SET购物与支付处理流程3 SET的相关技术4 SET安全性分析5 SSL与SET协议的比较1 SET协议概述-SET的由来 协议是维萨(VISA)国际组织、万事达(MasterCard)国际组织创建,结合IBM、Microsoft、Netscope、GTE等公司制定的电子商务中安全电子交易的一个国际标准。其主要目的是解决信用卡电子付款的安全保障性问题:网上购物与现实中购物的比较n在传统购物中,商家和消费者需要直接见面,交易过程中需要的信息传

60、输手段往往也是多种多样的,如电话、传真、信件等。n与传统购物一样,网上购物也分为查询、订货、交易等环节,但这种交易不需要消费者和商家之间直接见面,并且可以通过Internet这一媒介来进行 SET购物与支付处理流程SET协议的简单工作流程SET购物与支付处理流程1 持卡人在商家的WEB主页上查看在线商品目录浏览商品。 2 持卡人选择要购买的商品。 3 持卡人填写定单,定单通过信息流从商家传过来。 4 持卡人选择付款方式,此时SET开始介入。 5 持卡人发送给商家一个完整的定单及要求付款的指令。在SET中,定单和付款指令由持卡人进行数字签名。同时利用双重签名技术保证商家看不到持卡人的帐号信息。商

温馨提示

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

评论

0/150

提交评论