802.11i中的四次握手协议安全性分析及改进

ssl 协议实现

SSL协议的分析及实现 文章出处:计算机与信息技术作者:令晓静田红心发布时间:2005-11-01 (西安电子科技大学ISN国家重点实验室,中国西安,710071) 1引言 SSL是一种在客户端和服务器端之间建立安全通道的协议。SSL一经提出,就在Internet上得到广泛的应用。SSL最常用来保护Web的安全。为了保护存有敏感信息Web的服务器的安全,消除用户在Internet上数据传输的安全顾虑。 OpenSSL是一个支持SSL认证的服务器.它是一个源码开放的自由软件,支持多种操作系统。OpenSSL软件的目的是实现一个完整的、健壮的、商业级的开放源码工具,通过强大的加密算法来实现建立在传输层之上的安全性。OpenSSL包含一套SSL协议的完整接口,应用程序应用它们可以很方便的建立起安全套接层,进而能够通过网络进行安全的数据传输。 2 SSL协议概述 SSL 是Secure socket Layer英文缩写,它的中文意思是安全套接层协议,指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的基于 WEB应用的安全协议,SSL协议指定了一种在应用程序协议(如Http、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于提高应用程序之间数据的安全性,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即确保数据的完整性。 SSL 以对称密码技术和公开密码技术相结合,可以实现如下三个通信目标:(1)秘密性: SSL客户机和服务器之间传送的数据都经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息。 ( 2)完整性: SSL利用密码算法和散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输 的信息全部到达目的地,可以避免服务器和客户机之间的信息受到破坏。 (3)认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。为了验证证书持有者是其合法用户(而不是冒名用户), SSL要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。 3 SSL协议的体系结构 SSL协议位于TCP/IP协议模型的网络层和应用层之间,使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。SSL协议在应用层通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后,应用层协议所传送的数据都被加密。SSL实际上是共同工作的两层协议组成,如图1所示。从体系结构图可以看出SSL安全协议实际是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族。

ssl 协议详解

SSL协议详解 SSL (Secure Socket Layer) 为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络 上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全 标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。 当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL协议提供的服务主要有: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。 SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。 用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。 从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa 和 MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。 https介绍 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

ssl握手协议报文头

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 ssl握手协议报文头 甲方:___________________ 乙方:___________________ 日期:___________________

ssl 握手协议报文头 篇一:ssl 握手协议 篇二:第二章.对ssl 握手协议的研究 第六章.对ssl 的安全性分析 第七章.举例一种将usbkey 融入javajsse 框架的解决 方案client 处理和回应serverhello 阶段 客户端收到服务器发过来的那些消息,要做的是验证服 务器证书,发送自己的证书(如果双向认证) ,发送计算出 的预主密码, 发送证书验证消息。 收至V serverhello 在serverhello 阶段连续的发了多个消息,最先发出的 是serverhello , client 收到后将ssl 会话id ,服务器端的 一个随机数,协商出的 ssl 协议版本号以及密钥套件放到会 话缓存中。 收至V servercertificates 接下来收到的应该是 server 端的证书消息了,取出所 有的消息,最头上的是 server 证书,最末端的 ca 根证书。 在sunjdkjsse 中实现的ssl 是这样处理的: 第一章.对ssl 的基本概念和框架的介绍 第二章.对ssl 握手协议的研究(part-1 ) 第三章.对ssl 握手协议的研究(part-2) 第四章.对ssl 握手协议细节和实现的介绍 第五章.对ssl 记录协议细节和实现的介绍

从sslcontex 中取出trustmanager ,如果用过javassl 编程的同学应该知道,可以自己实现x509trustmanager和 x509keymanager两个接口来定制对证书的验证,sunjdk中 就是调用这个trustmanager的验证方法来验证证书(在解决浏览器检测到证书是自签名的时候跳出警告框的问题就是可以自己实现这个trustmanager来让浏览器不跳出警告框)。 jdk当然也有默认的证书验证实现,就是验证签名有效性,验证证书是否过期等。证书签名的有效性验证是在取证书链中某证书中的公钥验证前一个证书的签名,这样第一个证书就是用第二个证书的公钥来验证,那有人可能会问最后的根ca的证书谁来验证?根ca的证书是自签名的,就是自己给自己签名,没人管的了,jdk中某个文件中有存储一堆 可信任的证书发行机构的证书列表,如果你的根ca在那个列表中并对比后确实是那个根ca的证书那就ok,验证通过, 这个可信任的机构也可以自己实现那个trustmanager来添加设置。 收至V serverkeyexchange 消息 Rsa方式密钥交换消息则把消息中的加密用公钥放入会活缓存中,作为客户端这边握手阶段的写密钥而不是用服务器证书中的公钥。 dh方式的消息就把消息中的p,g,ys三个参数记录下来, 有这些client 端就可以计算出pre-master 了,只要回头再把自己这边的yc参数发过去,server端就也能计算出相同的pre-maseter 了。 收至V servercerttificatsRequest 消息

安全套接层SSL协议简介

安全套接层SSL协议简介 SSL(Secure Sockets Layer)协议最先是由著名的Netscape公司开发的,现在被广泛用于Internet上的身份认证与Web服务器和用户端浏览器之间的数据安全通信。 制定SSL协议的宗旨是为通信双方提供安全可靠的通信协 议服务,在通信双方间建立一个传输层安全通道。SSL使用对称加密来保证通信保密性,使用消息认证码(MAC)来保证数据完整性。SSL主要使用PKI在建立连接时对通信双方进行身份认证。IETF的传输层安全(TLS)协议(RFC 2246 1999)及无线访问协议(WAP)论坛的无线传输层安全协 议(WTIS)都是SSI的后续发展。协议包括两个层次:其 较低的SSL记录层协议位于传输协议TCP/IP之上。SSL记录协议用来对其上层的协议进行封装。握手协议就在这些被封装的上层协议之中,它允许客户端与服务器彼此认证对方;并且在应用协议发出或收到第一个数据之前协商加密算法 和加密密钥。这样做的原因就是保证应用协议的独立性,使低级协议对高级协议是透明的。 目前,Internet上对7层网络模型的每一层都已提出了相应 的加密协议。在所有的这些协议中,会话层的SSL和应用层的SET与电子商务的应用关系最为密切。 因此,SSL已成为用户与Internet之间进行保密通信的事实

标准,支持SSL也已经成为每个浏览器的内置功能。SSL 包括握手和记录两个子协议。这两个子协议均可以提供与应用尤其是与HTTP的连接。这种连接经过了认证和保密,可以防止篡改。 SSL可以嵌入Internet的处理栈内,位于TCP/IP之上和应 用层之下,而不会对其他协议层造成太大影响。SSL同样能够与其他Internet应用一起使用,如Intranet和Extranet访问、应用安全、无线应用及Web服务等。通过对离开浏览 器的数据进行加密,并在其进入数据中心之后进行解密,SSL 实现对Internet的数据通信进行保护。 SSL对话是由连接和应用组成的。在连接对话期间,客户机和服务器交换证书并就安全参数进行磋商。如果客户机接受服务器的证书,就会建立一个主密钥,这个主密钥将被用来对随后进行的通信进行加密。 在应用对话期间,客户机和服务器之间可以安全地传递信息,如信用卡号、股票交易数据、个人医疗数据以及其他敏感数据。SSL提供以下三种机制以确保安全:认证,能够对服务器或连接各端的客户机和服务器进行认证;保密,能够对信息进行加密,只有交流信息的双方才能访问并理解加密信息;完整性,可以防止信息内容在未经检测的情况下被修改,接收方可以确信他们收到的是无法进行修改的信息。 保密通信过程中的一个关键步骤就是对双方身份进行认证。

SSL协议详解

11.6 安全套接层SSL协议 SSL(Secure Sockets Layer)协议最先是由著名的Netscape公司开发的,现在被广泛用于Internet上的身份认证与Web服务器和用户端浏览器之间的数据安全通信。 制定SSL协议的宗旨是为通信双方提供安全可靠的通信协议服务,在通信双方间建立一个传输层安全通道。SSL使用对称加密来保证通信保密性,使用消息认证码(MAC)来保证数据完整性。SSL主要使用PKI在建立连接时对通信双方进行身份认证。IETF的传输层安全(TLS)协议(RFC 2246 1999)及无线访问协议(WAP)论坛的无线传输层安全协议(WTIS)都是SSI的后续发展。协议包括两个层次:其较低的SSL记录层协议位于传输协议TCP/IP之上。SSL记录协议用来对其上层的协议进行封装。握手协议就在这些被封装的上层协议之中,它允许客户端与服务器彼此认证对方;并且在应用协议发出或收到第一个数据之前协商加密算法和加密密钥。这样做的原因就是保证应用协议的独立性,使低级协议对高级协议是透明的。 目前,Internet上对7层网络模型的每一层都已提出了相应的加密协议。在所有的这些协议中,会话层的SSL和应用层的SET与电子商务的应用关系最为密切。 因此,SSL已成为用户与Internet之间进行保密通信的事实标准,支持SSL 也已经成为每个浏览器的内置功能。SSL包括握手和记录两个子协议。这两个子协议均可以提供与应用尤其是与HTTP的连接。这种连接经过了认证和保密,可以防止篡改。 SSL可以嵌入Internet的处理栈内,位于TCP/IP之上和应用层之下,而不会对其他协议层造成太大影响。SSL同样能够与其他Internet应用一起使用,如Intranet和Extranet访问、应用安全、无线应用及Web服务等。通过对离开浏览器的数据进行加密,并在其进入数据中心之后进行解密,SSL实现对Internet的数据通信进行保护。 SSL对话是由连接和应用组成的。在连接对话期间,客户机和服务器交换证书并就安全参数进行磋商。如果客户机接受服务器的证书,就会建立一个主密钥,这个主密钥将被用来对随后进行的通信进行加密。 在应用对话期间,客户机和服务器之间可以安全地传递信息,如信用卡号、股票交易数据、个人医疗数据以及其他敏感数据。SSL提供以下三种机制以确保安全:认证,能够对服务器或连接各端的客户机和服务器进行认证;保密,能够对信息进行加密,只有交流信息的双方才能访问并理解加密信息;完整性,可以防止信息内容在未经检测的情况下被修改,接收方可以确信他们收到的是无法进行修改的信息。 保密通信过程中的一个关键步骤就是对双方身份进行认证。SSL握手子协议就具有之一功能。服务器与客户机之间的以下举动可以使认证动作变得更快捷:客户机对服务器进行认证;让客户机和服务器选择所需要的密码算法和安全水平;服务器有选择地对客户机进行认证;使用公共密钥密码生成可以共享的密钥,随后利用这些密钥传输真正的保密数据;建立SSL连接。 SSL记录子协议负责加密数据的传送。以下动作可以使数据传送变得更快捷:数据被分解成小的可以使用的块,称作片断;通过一个具有完整性的“包装纸”使数据不被修改;数据加密后就可以贴上“包装纸”了。

SSL协议相关知识简介

引言 SSL是一种在客户端和服务器端之间建立安全通道的协议。SSL一经提出,就在Internet上得到广泛的应用。SSL最常用来保护Web的安全。为了保护存有敏感信息Web的服务器的安全,消除用户在Internet上数据传输的安全顾虑。OpenSSL是一个支持SSL认证的服务器.它是一个源码开放的自由软件,支持多种操作系统。OpenSSL软件的目的是实现一个完整的、健壮的、商业级的开放源码工具,通过强大的加密算法来实现建立在传输层之上的安全性。OpenSSL包含一套SSL 协议的完整接口,应用程序应用它们可以很方便的建立起安全套接层,进而能够通过网络进行安全的数据传输。 2 SSL协议概述 SSL 是Secure socket Layer英文缩写,它的中文意思是安全套接层协议,指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的基于 WEB应用的安全协议,SSL协议指定了一种在应用程序协议(如Http、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于提高应用程序之间数据的安全性,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即确保数据的完整性。 SSL 以对称密码技术和公开密码技术相结合,可以实现如下三个通信目标: (1)秘密性: SSL客户机和服务器之间传送的数据都经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息。 ( 2)完整性: SSL利用密码算法和散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输 的信息全部到达目的地,可以避免服务器和客户机之间的信息受到破坏。 (3)认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。为了验证证书持有者是其合法用户(而不是冒名用户), SSL要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。 3 SSL协议的体系结构 SSL协议位于TCP/IP协议模型的网络层和应用层之间,使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。SSL协议在应用层通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后,应用层协议所传送的数据都被加密。SSL实际上是共同工作的两层协议组成,如图1所示。从体系结构图可以看出SSL安全协议实际是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL 记录协议组成的一个协议族。 图1 SSL体系结构 SSL记录协议为SSL连接提供了两种服务:一是机密性,二是消息完整性。为了实现这两种服务, SSL记录协议对接收的数据和被接收的数据工作过程是如何实现的呢? SSL记录协议接收传输的应用报文,将数据分片成可管理的块,进行数据压缩(可选),应用MAC,接着利用IDEA、DES、3DES或其他加密算法进行数据加密,最后增加由内容类型、主要版本、次要版本和压缩长度组成的首部。被接收的数据刚好与接收数据工作过程相反,依次被解密、验证、解压缩和重新装配,然后交给更高级用户。

SET协议和SSL协议的比较

SET协议和SSL协议的比较 1.简介 ①SET协议 为了实现更加完善的即时电子支付,SET协议应运而生。SET协议(Secure Electronic Transaction),被称之为安全电子交易协议,是由Master Card和Visa 联合Netscape,Microsoft等公司,于1997年6月1日推出的一种新的电子支付模型。SET协议是B2C上基于信用卡支付模式而设计的,它保证了开放网络上使用信用卡进行在线购物的安全。SET主要是为了解决用户,商家,银行之间通过信用卡的交易而设计的,它具有的保证交易数据的完整性,交易的不可抵赖性等种种优点,因此它成为目前公认的信用卡网上交易的国际标准。 ②SSL协议 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。 TLS与SSL在传输层对网络连接进行加密。 2.比较 ①工作流程比较 ㈠SET协议:SET交易过程中要对商家,客户,支付网关等交易各方进 行身份认证,因此它的交易过程相对复杂。 (1)客户在网上商店看中商品后,和商家进行磋商,然后发出请求购买信息。 (2)商家要求客户用电子钱包付款。 (3)电子钱包提示客户输入口令后与商家交换握手信息,确认商家和客户两端均合法。 (4)客户的电子钱包形成一个包含订购信息与支付指令的报文发送给商家。 (5)商家将含有客户支付指令的信息发送给支付网关。 (6)支付网关在确认客户信用卡信息之后,向商家发送一个授权响应的报文。 (7)商家向客户的电子钱包发送一个确认信息。 (8)将款项从客户帐号转到商家帐号,然后向顾客送货,交易结束。 从上面的交易流程可以看出,SET交易过程十分复杂性,在完成一次S ET 协议交易过程中,需验证电子证书9次,验证数字签名6次,传递证书7次,进行签名5次,4次对称加密和非对称加密。通常完成一个SET协议交易过程大约要花费1.5-2分钟甚至更长时间。由于各地网络设施良莠不齐,因此,完成一个SET协议的交易过程可能需要耗费更长的时间。 ㈡SSL协议:服务器认证阶段:

SSL协议的工作原理

SSL协议的工作原理 图解安全套接字SSL协议的工作原理 1、密码学的相关概念 密码学(cryptography):目的是通过将信息编码使其不可读,从而达到安全性。明文(plain text):发送人、接受人和任何访问消息的人都能理解的消息。密文(cipher text):明文消息经过某种编码后,得到密文消息。加密(encryption):将明文消息变成密文消息。解密(decryption):将密文消息变成明文消息。算法:取一个输入文本,产生一个输出文本。加密算法:发送方进行加密的算法。解密算法:接收方进行解密的算法。密钥(key):只有发送方和接收方理解的消息对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥。非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥。 2、相关的加密算法介绍 DES算法即数据加密标准,也称为数据加密算法。加密过程如下: 在SSL中会用到分组DES、三重DES算法等加密算法对数据进行加密。当然可以选用其他非DES加密算法,视情况而定,后面会详细介绍。 3、密钥交换算法 使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie-Hellman密钥交换算法。 Diffie-Hellman密钥交换算法原理: RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则

3、散列算法: 主要用于验证数据的完整性,即保证时消息在发送之后和接收之前没有被篡改对于SSL 中使用到的散列算法有MD5、SHA-1. 4、数字证书: 数字证书其实就是一个小的计算机文件,其作用类似于我们的身份证、护照,用于证明身份,在SSL中,使用数字证书来证明自己的身份,而不是伪造的。 5、简单的总结: 在SSL中会使用密钥交换算法交换密钥;使用密钥对数据进行加密;使用散列算法对数据的完整性进行验证,使用数字证书证明自己的身份。好了,下面开始介绍SSL协议。 SSL介绍: 安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。 SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。 目前有三个版本:2、3、,最常用的是第3版,是1995年发布的。 SSL协议的三个特性 ① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。 ② 鉴别:可选的客户端认证,和强制的服务器端认证。 ③ 完整性:传送的消息包括消息完整性检查(使用MAC)。 SSL的位置 SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。 SSL的工作原理

SSL协议

SSL协议 百科名片 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 SSL (Secure Socket Layer) 为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit 之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。 当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL协议提供的服务主要有: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。 SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。 用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。 从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa 和MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。 https介绍 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP 应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。

ssl协议如何开启

竭诚为您提供优质文档/双击可除 ssl协议如何开启 篇一:ssl协议 ssl安全协议 ssl安全协议最初是由netscapecommunication公司设计开发的,又叫“安全套接层(securesocketslayer)协议”,主要用于提高应用程序之间的数据的传输安全。ssl协议的整个概念可以被总结为:一个保证安装了安全套接字的客户和服务器间事务安全的协议。 ssl安全协议主要提供三方面的服务: 用户和服务器的合法性认证 认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。客户机和 服务器都是有各自的识别号,这些识别号由公开密钥进行编号,为了验证用户是否合法,安全套接层协议要求在握手交换数据进行数字认证,以此来确保用户的合法性。 加密数据以隐藏被传送的数据 安全套接层协议所采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户机与服务器进行数

据交换之前,交换ssl初始握手信息,在ssl握手情息中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。 护数据的完整性 安全套接层协议采用hash函数和机密共享的方法来提供信息的完整性服务,建立客户机与服务器之 间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整准确无误地到达目的地。 要说明的是,安全套接层协议是一个保证计算机通信安全的协议,对通信对话过程进行安全保护。例 如,一台客户机与一台主机连接上了,首先是要初始化握手协议,然后就建立了一个ssl。对话进段。直到对话结束,安全套接层协议都会对整个通信过程加密,并且检查其完整性。这样一个对话时段算一次握手。而http协议中的每一次连接就是一次握手,因此,与http相比。安全套接层协议的通信效率会高一些。 (1)接通阶段:客户通过网络向服务商打招呼,服务商回应; (2)密码交换阶段:客户与服务器之间交换双方认可的密码,一般选用Rsa密码算法,也有的选用 diffie-hellmanf和Fortezza-kea密码算法;

ssl协议未开启如何处理

竭诚为您提供优质文档/双击可除ssl协议未开启如何处理 篇一:ssl协议_openssl_附代码 ssl协议 1实验原理 1.1ssl协议 ssl(securesocketlayer,安全套接字层)在通信双方间建立了一个传输层安全通道,它使用对称加密来保证通信保密性,使用消息认证码(mac)来保证数据完整性,并且在建立连接时主要使用pki对通信双方进行身份认证。netscapenavigator和internetexplorer都支持ssl。 1.2ssl协议的分层结构 ssl协议基于c/s(client/server)模式,位于tcp/ip 协议与各种应用层协议之间,为数据通信提供安全支持。它可分为两层: 1.ssl记录协议(sslRecordprotocol) 它建立在可靠的传输控制协议(如tcp)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 2.ssl握手协议(sslhandshakeprotocol)

它建立在ssl记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。 作为分层的协议,在每一层,消息可以包含长度、描述和内容字段。ssl发出消息,先把数据分成可管理的块,然后压缩、加密并发出加密后的结果。接收消息后进行解密、验证、解压和重组,再把结果发往更高一层的客户。 1.3ssl握手协议 ssl握手协议的作用是在正式的秘密通信之前,让服务器和客户之间互相鉴别对方的身份并协商一种会话的加密 算法和加密密钥,主要可分为以下两个方面: (1)客户端和服务器端之间互相验证身份 c/s主要是通过证书来验证,首先通过对方证书中权威发证机构签字的验证, 来确定对方拥有的证书是否有效。如果证书有效,接着就从这个证书中提取出公钥,通过对方的签名验证用户是不是假冒的。如果二者都通过,则证明对方的身份是真实可信的。其中服务器对客户端的验证是可选的。 (2)客户端和服务器之间协商安全参数 协商的参数一般包括协议的版本号、密钥交换算法、数据加密算法和hash算法,通过协商达成一致性。其中版本号一般要求一致。关于密钥交换算法和数据加密算法,是先

(完整版)SSL协议详解

背景介绍 最近在看《密码学与网络安全》相关的书籍,这篇文章主要详细介绍一下著名的网络安全协议SSL。 在开始SSl介绍之前,先给大家介绍几个密码学的概念和相关的知识。 1、密码学的相关概念 ?密码学(cryptography):目的是通过将信息编码使其不可读,从而达到安全性。 ?明文(plain text):发送人、接受人和任何访问消息的人都能理解的消息。 ?密文(cipher text):明文消息经过某种编码后,得到密文消息。 ?加密(encryption):将明文消息变成密文消息。 ?解密(decryption):将密文消息变成明文消息。 ?算法:取一个输入文本,产生一个输出文本。 ?加密算法:发送方进行加密的算法。 ?解密算法:接收方进行解密的算法。 ?密钥(key):只有发送方和接收方理解的消息 ?对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥。 ?非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥。 2、相关的加密算法介绍 DES算法即数据加密标准,也称为数据加密算法。加密过程如下: 在SSL中会用到分组DES、三重DES算法等加密算法对数据进行加密。当然可以选用其他非DES加密算法,视情况而定,后面会详细介绍。

3、密钥交换算法 使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie-Hellman密钥交换算法。 Diffie-Hellman密钥交换算法原理: (1)Alice与Bob确定两个大素数n和g,这两个数不用保密 (2)Alice选择另一个大随机数x,并计算A如下:A=gx mod n (3)Alice将A发给Bob (4)Bob选择另一个大随机数y,并计算B如下:B=gy mod n (5)Bob将B发给Alice (6)计算秘密密钥K1如下:K1=Bx mod n (7)计算秘密密钥K2如下:K2=Ay mod n K1=K2,因此Alice和Bob可以用其进行加解密 RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则很难。加密过程如下: (1)选择两个大素数P、Q (2)计算N=P*Q (3)选择一个公钥(加密密钥)E,使其不是(P-1)与(Q-1)的因子 (4)选择私钥(解密密钥)D,满足如下条件: (D*E) mod (P-1)(Q-1)=1 (5)加密时,明文PT计算密文CT如下: CT=PTE mod N (6)解密时,从密文CT计算明文PT如下: PT=CTDmodN 这也是SSL中会用一种密钥交换算法。 3、散列算法: 主要用于验证数据的完整性,即保证时消息在发送之后和接收之前没有被篡改对于SSL中使用到的散列算法有MD5、SHA-1。 4、数字证书: 数字证书其实就是一个小的计算机文件,其作用类似于我们的身份证、护照,用于证明身份,在SSL中,使用数字证书来证明自己的身份,而不是伪造的。 5、简单的总结: 在SSL中会使用密钥交换算法交换密钥;使用密钥对数据进行加密;使用散列算法对数据的完整性进行验证,使用数字证书证明自己的身份。好了,下面开始介绍SSL协议。 SSL介绍:

ssl握手协议报文头

竭诚为您提供优质文档/双击可除ssl握手协议报文头 篇一:ssl握手协议 篇二:第二章.对ssl握手协议的研究 第一章.对ssl的基本概念和框架的介绍 第二章.对ssl握手协议的研究(part-1) 第三章.对ssl握手协议的研究(part-2) 第四章.对ssl握手协议细节和实现的介绍 第五章.对ssl记录协议细节和实现的介绍 第六章.对ssl的安全性分析 第七章.举例一种将usbkey融入javajsse框架的解决方案client处理和回应serverhello阶段 客户端收到服务器发过来的那些消息,要做的是验证服务器证书,发送自己的证书(如果双向认证),发送计算出的预主密码,发送证书验证消息。 收到serverhello 在serverhello阶段连续的发了多个消息,最先发出的是serverhello,client收到后将ssl会话id,服务器端的一个随机数,协商出的ssl协议版本号以及密钥套件放到会

话缓存中。 收到servercertificates 接下来收到的应该是server端的证书消息了,取出所有的消息,最头上的是server证书,最末端的ca根证书。在sunjdkjsse中实现的ssl是这样处理的: 从sslcontex中取出trustmanager,如果用过javassl 编程的同学应该知道,可以自己实现x509trustmanager和x509keymanager两个接口来定制对证书的验证,sunjdk中就是调用这个trustmanager的验证方法来验证证书(在解决浏览器检测到证书是自签名的时候跳出警告框的问题就 是可以自己实现这个trustmanager来让浏览器不跳出警告框)。 jdk当然也有默认的证书验证实现,就是验证签名有效性,验证证书是否过期等。证书签名的有效性验证是在取证书链中某证书中的公钥验证前一个证书的签名,这样第一个证书就是用第二个证书的公钥来验证,那有人可能会问最后的根ca的证书谁来验证?根ca的证书是自签名的,就是自己给自己签名,没人管的了,jdk中某个文件中有存储一堆可信任的证书发行机构的证书列表,如果你的根ca在那个列表中并对比后确实是那个根ca的证书那就ok,验证通过,这个可信任的机构也可以自己实现那个trustmanager来添加设置。

SSL两个重要协议(for students)

SSL 体系结构 SSL不是简单的单个协议,是两层协议。 底层:SSL记录协议;上层:SSL握手协议、SSL修改密码规范协议、SSL警报协议 SSL的两个重要概念 ?SSL连接(connection) 一个连接是一个提供一种合适类型服务的传输(OSI 分层的定义)。 SSL的连接是点对点的对等网络关系。 连接是暂时的,每一个连接和一个会话关联。 ?SSL会话(session) 一个SSL会话是在客户与服务器之间的一个关联。 -- 会话由握手协议创建。会话定义了一组可供多个连接共享的密码安全参数。会话用以减少为每次连接提供新的安全参数所需昂贵的协商代价。

两个主要协议 SSL记录协议–建立在可靠的传输协议(如TCP)之上–它提供连接安全性,有两个特点?保密性,使用了对称加密算法?完整性,使用HMAC算法–用来封装高层的协议?SSL握手协议–客户和服务器之间相互认证–协商加密算法和密钥–它提供连接安全性,有三个特点?身份认证,至少对一方实现认证,也可以是双向认证;?协商得到的共享密钥是安全的,中间人不能够知道; 协商过程是可靠的。 SSL记录协议 SSL记录协议的操作

P400-401 最后得到的SSL记录格式见图17.4,其有效载荷见图17.5所示 SSL握手协议4个阶段 阶段1:建立安全协商。包括:客户建议的SSL协议低版本以及服务器支持的最高版本、服务器产生的随机数(防重放攻击)、会话ID、服务器从客户建议的密码算法中挑出一套、服务器从客户建议的压缩方法中挑出一个。 阶段2:服务器认证和密钥交换。包括:服务器发送自己的X.509证书,密钥交换,请求客户端的证书。 阶段3:客户端认证和密钥交换。包括:检查服务器提供的证书并发验证信息,发送自己证书(如服务器发请求的话),密钥交换。 阶段4:建立安全连接,结束握手协议。包括:客户端发送修改密码规范协议消息,把协商得到的密码组拷贝到当前连接的状态中,并用新的算法、密钥参数发送一个finished消息以验证密钥交换和认证过程的正确性。服务器也同样进行。

相关主题
相关文档
最新文档