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

下载本文档

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

文档简介

第六章平安套接层协议SSLSSL概述SSL体系结构与协议SSL协议的平安性分析SSL的应用目前国际上流行的电子商务所采用的协议主要有:平安套接层协议〔SecureSockets

Layer,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)协议的使用s://与s://在网络上传输的敏感信息〔如电子商务、金融业务中的信用卡号或PIN码等机密信息〕都纷纷采用SSL来进行平安保护。SSL通过加密传输来确保数据的机密性,通过信息验证码〔MessageAuthenticationCodes,MAC〕机制来保护信息的完整性,通过数字证书来对发送和接收者的身份进行认证。IP/IPSecTCPLowerlayersIPTCPLowerlayersSSLOSIPSecSSL一个保证任何安装了平安套接字的客户和效劳器间事务平安的协议,它涉及所有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-1SSL协议实现的六步骤

⑴接通阶段:客户机通过网络向效劳器打招呼,效劳器回应;⑵密码交换阶段:客户机与效劳器之间交换双方认可的密码,一般选用RSA密码算法;

⑶会谈密码阶段:客户机器与效劳器间产生彼此交谈的会谈密码;⑷检验阶段:客户机检验效劳器取得的密码;⑸客户认证阶段:效劳器验证客户机的可信度;⑹结束阶段:客户机与效劳器之间相互交换结束的信息。6.1.3SSL协议与电子商务SSL提供了用于启动TCP/IP连接的平安性“信号交换〞。这种信号交换导致客户和效劳器同意将使用的平安性级别,并履行连接的任何身份验证要求。通过数字签名和数字证书可实现浏览器和Web效劳器双方的身份验证。在用数字证书对双方的身份验证后,双方就可以用保密密钥进行平安的会话了。SSL证书保障在线效劳器的平安效劳器身份验证——防假冒网络信息发送内容加密——防偷窥网络信息发送完整性检测——防删节网络信息发送内容修改提醒——防篡改应用数据改变密码套,结束握手送出客户端证书送出效劳器证书,请求客户端证书SSL流程浏览器Web效劳器SSL平安通道客户端证书效劳器证书ClienthelloServerhelloServerCertificateCertificateRequestServerKeyExchangeClientCertificateClientKeyExchangeCertificateVerifyChangeCipherSpecFinishedChangeCipherSpecFinishedApplicationDataApplicationData建立协议版本、会话ID、交换随机数SSL效劳器证书工作原理介绍第一步:身份验证发证机构—CA服务器身份证你是谁?我是卓越效劳器身份验证???效劳器卓越效劳器SSL效劳器证书工作原理介绍第二步:创造密语规那么密语规那么发明规则A1、2、35、8、9原文密语SSL效劳器证书工作原理介绍第三步:密语规那么共享规则A信息保险箱翻开保险箱规则A获得规那么SSL效劳器证书工作原理介绍第四步:进行平安通信规则A规则A1、2、3原文1、2、3原文5、8、9无意义文字SSL当初并不是为支持电子商务而设计的,所以在电子商务系统的应用中还存在很多弊端:SSL是一个面向连接的协议,在涉及多方的电子交易中,只能提供交易中客户与效劳器间的双方认证,而电子商务往往是客户、网站、银行三家协作完成,SSL协议并不能协调各方间的平安传输和信任关系;购货时客户要输入通信地址,这样将可能使得客户收到大量垃圾信件。SSL协议运行的基点是商家对客户信息保密的承诺。但在上述流程中SSL协议有利于商家而不利于客户。客户的信息首先传到商家,商家阅读后再传到银行,这样,客户资料的平安性便受到威胁。随着电子商务参与方的迅速增加,认证问题越来越突出,SSL协议的缺点完全暴露出来。SSL协议逐渐被新的SET协议所取代。目前我国开发的电子支付系统,无论是中国银行的长城卡电子支付系统,还是上海长途电信局的网上支付系统,均没有采用SSL协议,主要原因就是无法保证客户资金的平安性。6.1.4SSL协议的分层结构SSL的设计概念是希望使用TCP来提供一个可靠的端对端的平安性效劳。SSL并不是单一个协议,而是由二层协议来组成SSL协议具有两层结构:其底层是SSL记录协议层〔SSLRecordProtocolLayer〕,简称记录层。其高层是SSL握手协议层〔SSLHandshakeProtocolLayer〕,简称握手层.应用层协议(HTTP、Telnet、FTP、SMTP等)SSL握手协议(HandshakeProtocol)SSL记录协议(RecordProtocol)TCP协议IP协议SSL协议图6.2SSL协议的分层结构SSL协议定义了两个通信主体:客户〔client〕和效劳器〔server〕。其中,客户是协议的发起者。在客户/效劳器结构中,应用层从请求效劳和提供效劳的角度定义客户和效劳器,而SSL协议那么从建立加密参数的过程中所扮演的角色来定义客户和效劳器。SSL握手协议包含四个阶段:第一个阶段建立平安能力;第二个阶段效劳器鉴别和密钥交换;第三个阶段客户鉴别(可选的)和密钥交换;第四个阶段完成握手协议。SSL的两个重要概念SSL连接〔connection)一个连接是一个提供一种适宜类型效劳的传输〔OSI分层的定义〕。SSL的连接是点对点的关系。连接是暂时的,每一个连接和一个会话关联。SSL会话〔session〕一个SSL会话是在客户与效劳器之间的一个关联。会话由HandshakeProtocol创立。会话定义了一组可供多个连接共享的密码平安参数。会话用以防止为每一个连接提供新的平安参数所需昂贵的协商代价。会话连接1连接1连接2连接2…………连接n连接n图6.3SSL的会话与连接在任意一对通信主体之间,可以有多个平安连接。会话状态参数Sessionidentifier:效劳器选择的一个任意字节序列,用以标识一个活动的或可激活的会话状态。PeerCertificate:标识效劳器的证书。可为空。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)。为了到达这个目的,必须使用一把双方共有的密钥。SSLRecordFormat6.4SSL协议采用的加密和认证算法6.4.1加密算法块加密流加密加密算法密钥长度加密算法密钥长度IDEARC2-40DES-40DES3DESFortezza12840405616880RC440RC4-128401286.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的过高评价有可能带来高的平安风险,它仅仅是网络平安工具的一种,必须和其它网络平安工具紧密结合,方能构造出全面、完善、平安可靠的网络。Web平安威胁Web的全称是WorldWideWeb。Web面临的主要平安威胁如下:Web效劳器上的Web网页很容易收到攻击Web的下层软件结构复杂,存在大量的安全漏洞当Web效劳器遭到破坏时,本地站点上的数据和系统也将面临威胁。〔威胁的蔓延〕浏览器:如IE和Netscape等Web效劳器:IIS、Domino

Go

WebServerNetscape

Enterprise

ServerAppache在浏览器端安装支持SSL的客户端证书〔可选〕,然后把URL中的“://〞更换为“s://〞。CGI程序的平安性问题CGI是CommonGatewayInterface〔通用网关接口〕的简写,它是一个Web效劳器主机提供信息效劳的标准接口,通过提供这样一个标准接口,Web效劳器能够执行应用程序并将它们的输出,如文字、图形、声音等传递给一个Web浏览器CGI程序是WWW平安漏洞的主要来源编写平安的CGI脚本4.2WWW的平安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-

温馨提示

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

评论

0/150

提交评论