ssl协议规范.docx
- 文档编号:7391302
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:7
- 大小:22.69KB
ssl协议规范.docx
《ssl协议规范.docx》由会员分享,可在线阅读,更多相关《ssl协议规范.docx(7页珍藏版)》请在冰豆网上搜索。
ssl协议规范
竭诚为您提供优质文档/双击可除
ssl协议规范
篇一:
ssl协议和set协议的区别
ssl协议和set协议的区别
前言
如何才能拥有一个安全的在线电子支付环境是用户、商家及金融机构最为关注的问题,为此,众多it精英们共同开发了安全在线支付协议,一个是安全套接层协议(ssl,securesocketslayer),另一个是安全电子交换协议(set,secureelectronictransaction)。
一、ssl协议
ssl协议是使用浏览器访问web服务器时,为了提高安全性而定下的一些规矩,包括在接到请求后的动作步骤,何时需要采用身份验证技术和加密技术等,ssl协议可以保证其数据传输的安全性。
(一)ssl工作原理
ssl提供在web上两台机器间的安全通道,其原理如下:
(1)利用认证技术识别各种身份。
顾客向服务器发出连接消息后,ssl要求服
务器向浏览器出示数字证书。
顾客了浏览器通过验证交易信息进而验证顾客身份信息,保证安全性。
(2)利用加密技术保证通道的保密性。
互相认证身份后,浏览器随机产生一个
密钥,并用这个密钥将数据采用对称加密的方式加密成一份密文,然后服务器中的数字证书里的公开密钥对产生的密钥加密,并将加密后的密钥和密文一起发送出去。
由于传输密钥只能由对应的私钥解密,从而保证了信息传输的安全。
(3)利用数字签名技术保证信息传送的完整性。
(二)ssl交易过程
(三)ssl优、缺点
优点:
1、支持多加密算法2、过程简单3、独立于应用层协议
缺点:
1、只能建立两点之间的安全连线(所以顾客信息不能直接发给银行,
须经商家转发)2、只能保证连接通道是安全的,即不能保证商家会私自保留或盗用顾客付款及身份信息
正是由于上述协议的不完善,众多技术开发人士又推出了一个新的更加全面的协议:
set协议。
二、set协议
set协议是由Visa和mastercard两大信用卡组织联合开发的电子商务安全协议,其复杂度较深,涵盖了信用卡在电子商务交易中的交易流程,以及应用的信息保密问题、资料完整及ca认证问题、数字签名等问题。
主要包括:
(1)保障付款信息的安全(交易数据不会被截获或丢失);
(2)保障付款过程的安全。
第一点体现在顾客发给商户的交易信息中有关顾客的个人信息及信用卡密码等信息不会对外公开,即商户无法看到顾客的付款信息,从而保证了信息的安全;第二点体现在set协议要求参与付款的各方都要提供数字认证,保障信用安全;
(3)保证付款过程遵守相同的协议和标准,确保在不同的硬件和软件平台上均可以使用。
(一)set交易过程
由于set协议安全性较高,其操作过程也就较为复杂,主要包括以下6个步骤:
(1)消费者利用自己的pc机通过因特网选定所要购买的物品,并在计算机上输入订货单、订货单上需包括在线商店、购买物品名称及数量、交货时间及地点等相关信息。
(2)通过电子商务服务器与有关在线商店联系,在线商店作出应答,告诉消费者所填订货单的货物单价、应付款数、交货方式等信息是否准确,是否有变化。
(3)消费者选择付款方式,确认订单签发付款指令。
此时set开始介入。
(4)在线商店接受订单后,向消费者所在银行请求支付认可。
信息通过支付网关到收单银行,再到电子货币发行公司确认。
批准交易后,返回确认信息给在线商店。
(5)在线商店发送订单确认信息给消费者。
消费者端软件可记录交易日志,以备将来查询。
(6)在线商店发送货物或提供服务并通知收单银行将钱从消费者的帐号转移到商店帐号,或通知发卡银行请求支付。
(二)set优、缺点
优点:
1、提供了更好的安全服务2、保护了商家免受损失3、扩展了银行和信用卡商的业务缺点:
1、需要安装相应软件才能使用2、必须向各方发放证书3、价格昂贵
三、ssl协议和set协议的比较
结束语
综上所述,我们看到ssl和set各有利弊,但都不够完善。
我们应该尽快推出新的更加完善的在线电子交易协议,综合两者之长,改善两个协议都没有完善的地方,使得电子商务发展的更加快速,成型。
篇二:
ssl原理详解
ssl工作原理
第一章概要
一、什么是ssl?
ssl采用tcp作为传输协议提供数据的可靠传送和接收。
ssl工作在socket层上,因此独立于更高层应用,可为更高层协议,如telnet、Ftp和http提供安全业务。
ssl提供的安全业务和tcp层一样,采用了公开密钥和私人密钥两种加密体制对web服务器和客户机(选项)的通信提供保密性、数据完整性和认证。
在建立连接过程中采用公开密钥,在会话过程中使用私人密钥。
加密的类型和强度则在两端之间建立连接的过程中判断决定。
在所有情况下,服务器通过以下方法向客户机证实自身:
给出包含公开密钥的、可验证的证明;演示它能对用此公开密钥加密的报文进行解密。
为了支持客户机,每个客户机都要拥有一对密钥,这要求在internet上通过netscape分配。
由于internet中的服务器数远少于客户机数,因此能否处理签字及密钥管理的业务量是很重要的,并且与客户联系比给商家以同样保证更重要。
二、ssl提供的服务
ssl协议提供的服务可以归纳为如下3个方面。
(1)用户和服务器的合法性认证
使得用户和服务器能够确信数据将被发送到正确的客户机和服务器上。
客户机和服务器都有各自的识别号,由公开密钥编排。
为了验证用户,安全套接层协议要求在握手交换数据中做数字认证,以此来确保用户的合法性。
(2)加密数据以隐藏被传送的数据
安全套接层协议采用的加密技术既有对称密钥,也有公开密钥。
具体来说,就是客户机与服务器交换数据之前,先交换ssl初始握手信息。
在ssl握手信息中采用了各种加密技术,以保证其机密性和数据的完整性,并且经数字证书鉴别,这样就可以防止非法用户破译。
(3)维护数据的完整性
安全套接层协议采用密码杂凑函数和机密共享的方法,提供完整信息性的服务,来建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务,在传输过程中都能完整、准确无误地到达目的地。
第二章ssl工作流程概述
ssl的工作分为两个阶段:
握手阶段和数据传输阶段,若通信期间检测到不安全因素,比如握手时候发现另一端无法支持选择的协议或加密算法,或者发现数据被篡改,这时通信一方会发送警告消息,不安全因素影响比较大两端之间的通信就会终止,必须重新协商建立连接。
ssl协议分成三个子协议:
handshake(握手)changecipherspec(更改密钥规格),alert(告警)。
ssl的告警协议是用来为通信对方发送一条告警消息,告警分为两个层次:
fatal和warning,如果是fatal级别的如mac计算出错或协商密钥算法失败则马上断开连接,要建立连接的话需要重新握手;warning类型的消息一般只会记录日志,并不会断开连接。
具体的工作流程图如下所示:
使用协商好的密钥加密
(1)clienthello
握手阶段从客户端发送“clienthello”消息为起点。
“clienthello”消息中包含了协议的版本号(protocolVersion)、会话的id(sessionid)、表明了客户端加密能力的密钥套件列表(ciphersuite)、客户端支持的压缩算法(compressionmethods)以及一个28位长的随机数(该随机数将用于所有的消
息摘要和会话密钥的生成)。
(2)serverhello
服务器端收到客户端发来的请求,在内部协商之后,确定了协议版本号、之后所要使用到的加密套件列表和压缩算法、生成一个新的会话id,并产生一个28位长的随机数。
封装在“serverhello”中发送给客户端。
服务器与客户端之间的协商必须确定出一个公共密钥对,如果无法确定,则握手失败。
(3)服务器发送数字证书(servercertificates)
ssl采用x.509数字证书标准,证书中包含验证服务器身份的证书消息和服务器端的公开密钥。
(4)服务端密钥交换信息(serverkeyexchange)
这条消息本来是可选的,视不同情况而定,服务器端发送将用在密钥交换过程的信息(依据使用的密钥交换算法的不同,可能发送公钥,也可能发送一个经过签名的整数)
(5)请求客户端证书消息(clientcertificateRequest)
如果所用的ssl版本是3.0以上的,服务器端可以要求客户端发送数字证书,以实现对客户端的认证。
消息中会包含服务端支持的证书类型和所有server端信任的证书发行机构的dn(distinguishedname)列表。
(6)serverhellodone
客户端收到这个消息,客户端会先对服务器端发送过来的消息做如下处理:
①serverhello
客户端会先收到服务器端的“serverhello”消息,客户端会将serverhello中的多个消息(会话id、服务器端的一个随机数、协商出ssl协议版本号以及密钥套件)放到会话缓存中。
②服务器证书消息
证书消息中包含一个证书列表和一个公开密钥,客户端取出证书列表,最上面是server的证书,最下面是ca根证书,通过一层层验证,证明服务端是可信任的。
③收到服务端密钥交换信息
客户端将保存在里面的信息存到会话缓存中。
④收到客户端证书请求消息
将消息中的证书类型列表和可信任证书发行机构列表保存起来,在后面发送
客户端证书的时候,就根据这个列表来筛选。
⑤收到serverh
ellodone消息
收到消息之后,客户端就开始给server端发送回馈消息。
(7)客户发送证书消息(clientcertificates)
如果服务端要求客户端发送证书消息,客户端就按照clientcertificateRequest里的列表,发送符合要求的证书。
如果客户端没有证书可以发送,客户端将发送“没有数字证书”的警告,此警告仅仅是警告而已,但如果客户端数字证书认证是强制性的话,服务器应用程序将会使会话失败。
(8)发送客户端密钥交换消息(clientkeyexchange)
若是Rsa方式密钥交换,则产生一个48位随机数作为pre-master并用服务器公钥加密后发出去
若是dh方式的密钥交换,则根据sever的g,p,ys,产生xa和yc,xa和ys能计算出pre-master,把产生的yc放入消息中发给server,这样server用它的xb和yc也能计算出pre-master了。
计算出预主密码后就顺便把主密码(mastersecret)给算出来了。
算出主密码就把对称密钥产生出来了。
(9)发送certificateVerify消息
这个消息是可选的,只有在客户端发送了自己证书到服务器端,这个消息才需要发送。
发这个消息的目的是让服务器验证发消息的客户端和客户端证书的真实所有者。
这个消息中要包含一个签名,签名里头内容就是从clienthello开始到目前为止所有握手消息(不包括本消息)的摘要,主密码,若是Rsa方式则要把这些内容分别用md5和sha1计算一遍,两种摘要算法算得的摘要拼接起来用客户端证书中公钥对应的私钥加密就获得了签名。
到时候服务器端会用收到的证书中的公钥来验证签名。
(10)发送改变密码规格消息(changecipherspec)
从服务器端收到这个消息开始,之间的对话开始使用协商好的会话密钥加密数据。
(11)发送clientFinishedmessage
表示服务器端的ssl握手协议协商成功。
消息中包含两个摘要,分别用md5和sha算法计算当前收到所有握手消息和主密码的摘要,不包括本消息和changecipherspec(因为不属于握手消息)。
(12)server端处理与回应clientFinished消息
server端如果确认了client的身份(client发送了证书的前提下),从收到的客户端密钥交换消息中取出预主密钥(pre-master)计算出主密钥,生成对称密钥。
收到client的changecertificatespec消息后将会话的读密钥设置为刚生产的对称密钥。
处理完成后,服务端发送改变密码规格消息(changecertificatespec)并把会话的写密钥设置为生成的对称密钥。
发送serverFinished消息,client端收到server端的changecipherspec消息将会话的读密钥设置为生成的对
篇三:
ssl协议的安全性及其分析
摘要:
ssl(securesocketslayer安全套接层)是保护网络通信数据安全及其完整性的一种网络安全协议。
这种协议已经在互联网上获得了广泛的应用。
该文对ssl协议工作原理、流程进行介绍,并对其安全性作出分析,讨论其所存在的问题且提出相应的措施。
关键词:
ssl协议;安全套接层;安全性
中图分类号:
tp393文献标识码:
a文章编号:
1009-3044(20xx)12-2726-03
当前,互联网技术的不断更新和发展,给我们的生活带来了很多便利。
但与此同时也带来了很多网络信息安全性的威胁。
随着信息网络的发展,信息安全越来越引起人们的关注。
如当今流行的电子商务、电子政务、电子邮件等,除了其业务本身,人们更加关心的是其安全性。
这样我们需要保证信息的保密性、完整性,通信双方的认证等,这正是过去网络所缺乏。
这就有了安全套接层(securitysocketlayerprotocol,简称ssl协议)。
它是现在互联网上保证信息安全传输的一种网络协议。
1概述
ssl协议提供的安全信道有以下三个特性。
1)私密性:
从应用层经过ssl协议的数据,所有的消息都是被加密后才到传输层的。
2)确认性:
服务器端是被认证的。
3)可靠性:
所有传输的消息都是经过完整性检查的。
2ssl协议结构
ssl协议的目标在于在tcp的基础上提供安全可靠的传输服务。
在ssl的体系结构中包括了ssl握手协议层和ssl记录协议层两个协议子层。
这两大协议完成了ssl的大部分工作。
ssl握手协议层建立在ssl记录协议层之上。
建立在ssl记录协议层上的还有密码参数修改协议、报警协议、应用数据协议等子协议。
图1ssl体系结构图
2.1ssl记录协议
ssl记录协议限定了所有要传输的数据的打包,所有的传输数据都被封装在记录中。
它提供了通信、身份认证功能。
由上层传来的数据信息,将在记录协议层,划分数据分段。
依据握手协议中协商的加密算法,给分段的数据压缩、计算mac值、对数据加密处理,将数据变成记录。
添上记录头后,传递到下层的tcp协议。
ssl记录头格式
ssl记录头包括记录头长度、记录数据长度的信息,及记录数据中是否填充数据。
当最高位为1时,则不含有填充数据,记录头为两字节,记录数据最大长度为32767字节;当最高位为0时,则含有填充数据,记录头为三个字节,记录数据的最大长度为16383字节。
当记录头长度是为三个字节时,次高位有特殊的含义。
当次高位为1时,标识所传输的记录是普通的数据记录;当次高位为0时,标识所传输的记录是安全空白记录(被保留用于将来协议的扩展)。
ssl记录数据格式
ssl的记录数据包含三个部分:
mac数据、实际数据和填充数据(若是需要的话)。
mac数据为密钥,实际数据,填充数据,序号的拼接后的散列值。
用于检查数据的完整性。
2.2ssl握手协议层
ssl握手协议层包括握手协议(handshakeprotocol)、密码参数修改协议(sslchangecipherspecprotocol)、应用数据协议(applicationdataprotocol)和报警协议(alertprotocol)。
握手协议主要负责协商客户端和服务器端所有使用的参数,包括采用协议版本、加密算法、密钥等;建立独立的安全会话连接,认证双方的身份。
密码参数修改协议主要负
责协商双方修改密码参数,并指示记录层把即将读/写状态编程当前读/写状态。
客户端和服务器均可发送此类消息,通知对方记录将使用新的协商密码说明和密钥。
报警协议主要是负责通知对方警告信息。
例如关闭通知、错误记录、解压失败、握手失败、无证书、错误证书等等。
应用数据协议主要负责将应用数据直接传递给记录协议。
3ssl协议工作过程
1)由客户端向服务器端发送“clienthello”信息,以便开始一个新的安全对话连接。
信息中将表明客户端密码能力。
例如ssl版本,使用的加密算法、签名算法、密钥交换算法、可接受的压缩算法等。
2)由服务器回应客户端发送“severhello”信息(如果可以接受其回应的话,否则握手失败。
注:
客户端和服务器端必须要至少支持一个公共密码对,否则握手将会失败)。
“serverhello”消息将告知服务器的相关安全参数。
3)由服务器向客户端发送它使用的证书和密钥交换信息。
若服务器端需要对客户端认证,则还会向客户端发出“数字证书”的请求消息。
4)服务器发出“serverhellodone”消息并等待客户端响应。
5)客户端收到了“serverhellodone”以后,将对服务器发送过来的数字证书验证,并检查服务端的安全参数是否可以接受。
如果服务器端需要客户端的数字证书的话,则客户端将要发送它的数字证书。
如果客户端没有数字证书可有,则发送一个警告信息表明没有数字证书,但将会导致本次握手失败(如果客户端数字证书认证是强制性的话)。
6)客户端发送“客户端密钥交换”消息。
消息中包含有“预-主密钥”和消息认证代码(mac)密钥(消息使用了服务器端公钥加密,故此消息只有服务器可以用私钥解密)。
7)客户端将计算出“主密钥”。
然后,客户端发“更改密码规范”消息给服务器,以确定本次传输使用的加密套件和密钥。
8)服务器确定了本次传输使用的加密套件和密钥。
完成本次握手。
9)此后的传输的数据都将加密后才传输。
图2ssl协议工作过程
(标有括号的表示服务器需要验证客户端的情况)
4ssl安全性分析
1)算法安全性。
ssl协议v2/v3均支持的算法有rc2、rc4、idea、des、3des等。
认证算法采用x.509电子证书标准,使用rsa算法进行数字签名。
ssl协议通过使用数字证书来完成客户端和服务器端之间的身份验证。
通过ssl握手,双方使用非对称密码体制协商并确定本次对话所要使用的加密算法和会话密钥。
这样不仅保证了会话密钥协商过程的安全性,而且又克服了非对称密码加密速度慢的缺陷。
ssl协议所提供的混合密码体制,可使ssl使用的加密算法和会话密钥适时的变更。
此外,协议还提供完整性的检查,保证数据不被篡改。
2)抵抗重放攻击。
ssl协议使用了序列号,序列号经加密后传输。
在每一次握手都使用了一个随机数来标示本次握手,从而阻止了重放攻击。
5ssl存在的问题和改进
1)加密强度问题。
由于美国对加密技术出口的限制,ssl支持的对称加密算法受到了影响。
如密钥长度朝超过40位的对称加密算法rc4、des等不能用于ssl的数据加密。
一般的,使用同一加密算法,密钥位数越高其安全性越强。
尽管ssl所支持的加密算法的安全强度都比较高,但出口到我国的仅支持低位密钥算法,削弱了加密算法的安全性。
此外加密数据的安全性还取决于密码管理的安全性。
同样的,美国对密码技术出口的限制,如在ssl规范中限定rsa算法和dh算法采用512位的密钥。
非对称算法如果要保证其安全性,一般是需要1024位以上的。
这样使得密钥交换的安全性得不到保证。
所以,首先在算法选择上,应当把
一些不安全的算法如des等移去。
在实现中选择对称加密算法3des、idea、aes等。
在实现ssl时,都应该限定交换密钥长度必须为1024位或更多位。
或者可以选用椭圆曲线算法。
这样不仅可以密钥比较短,而且处理速度比较快。
2)签名问题。
ssl协议不能数字签名。
虽然ssl可很好保证数据传输的机密性和完整性,但缺乏数字签名是其在电子商务应用中一大缺憾。
而事实上,ssl本身就有对消息进行数字签名和验证的潜力。
因为原有的公私钥只是使用在服务器端和客户端之间密钥的交换,并由使用其来签名。
基本的思路是,将签名服务作为ssl协议一个可选独立扩展功能,保证其向下兼容性;对发送的所有信息进行签名;利用原有的密码资源;
6结束语
ssl虽然存在一些缺陷,但也不失为一套完善安全的网络通信协议。
在其广泛的实践中也证明了其高度的安全性。
当然,它只是网络安全的一种工具。
而要做到真正的安全还需要多方面的结合,这样才可以打造一个全面的、完善的、安全可靠的网络环境。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ssl 协议 规范
![提示](https://static.bdocx.com/images/bang_tan.gif)