1 / 15
文档名称:

加密通信协议ssl编程.doc

格式:doc   大小:92KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

加密通信协议ssl编程.doc

上传人:ttteee8 2020/2/22 文件大小:92 KB

下载得到文件列表

加密通信协议ssl编程.doc

相关文档

文档介绍

文档介绍:加密通信协议ssl编程篇一:SSL协议详解HTTPS协议详解HTTPS是什么HTTPS(全称:HypertextTransferProtocoloverSecureSocketLayer),是基于安全目的的HTTP通道,其安全基础由SSL层来保证,scape公司研发,主要提供了通讯双方的身份认证和加密通信方法。现在广泛应用于互联网上安全敏感通讯。HTTPS与HTTP主要区另!]1•协议基础不同:HTTPS在HTTP下加入了SSL层;通讯方式不同:HTTPS在数据通信之前需要客户端、服务器进行握手(身份认证),建立连接后,传输数据经过加密,通信端口443。HTTP传输数据不加密,明文传输,通信端口80;HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费。SSL协议基础SSL协议位于传输层和应用层之间,本身又分为两层:?SSL记录协议(SSLRecordProtocol):建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。记录协议层封装了高层协议的数据,协议数据采用SSL握手协议中协商好的加密算法及MAC算法来保护。记录EI协议传送的数据包括一个序列号,这样就可以检测消息的丢失、改动或重放。如果协商好了压缩算法,那么SSL记录协议还可以执行压缩功能。?SSL握手协议(SSLHandshakeProcotol):在SSL记录协议之上,用于实际数据传输前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。握手协议是关于客户和服务器如何协商它们在安全信道中要使用的安全参数,这些参数包括要采用的协议版本加密算法和密钥。另外,客户要认证服务器,服务器则可以选择认证/不认证客户。PKI在客户一服务器认证阶段就开始运作了,这就是握手协议的实质。SSL协议提供的主要服务?认证客户机和服务器的合法性,确保数据发送到正确的客户机和服务器?加密数据以防止数据中途被窃取?维护数据的完整性,确保数据在传输过程中不被改变。-S:客户端浏览器向服务器传送客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息;-C:服务器向客户端传送SSL协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书;C・S认证:客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名3服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步;C产生“对称密钥”,用S的公钥对“对称密钥”加密,将“预主密钥”传给服务器:用户端随机产生一个用于后面通讯的“对称密钥3然后用服务器的公钥(服务器的公钥从步骤2中的服务器的证书中获得)对其加密,然后将加密后的“预主密钥,,传给服务器;S-C认证:如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密钥”一起传给服务器;S-C认证:如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA是否可靠,发行CA的公钥能否正确解开客户证书的发行CA的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密钥”,然后执行一系列步骤来产生主通讯密钥(客户端也将通过同样的方法产生相同的主通讯密钥);产生通话密钥,用于加解密:客户端和服务器用相同的主密钥即“通讯密钥”,该密钥是对称一个对称密钥,用于SSL协议的安全数据通讯的加解密通讯。同时在SSL通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化;C-S:客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤7中的主密钥为对称密钥,同时通知服务器客户端的握手过程结束。C-S:服务器向客户端发出信息,指明后面的数据通讯将使用的步骤7中的主密钥为对称密钥,同时通知客户端服务器端的握手过程结束。,会话开始:SSL的握手部分结束,SSL安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。双向认证SSL协议的具体过程浏览器发送一个连接请求给安全服务器;服务器将自己的证书,以及同证书相关的信息发送给客户浏览器;客户浏览器检查服务器送过来的证书是否是由自己信赖的CA中心所签发的。如果是,就继续执行协议;如果不是,客户浏览器就