SSL协议相关知识简介3354.docx
《SSL协议相关知识简介3354.docx》由会员分享,可在线阅读,更多相关《SSL协议相关知识简介3354.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、引言 SSSL是一种种在客户户端和服服务器端端之间建建立安全全通道的的协议。SSL一经提提出,就就在Intternnet上得到到广泛的的应用。SSL最常用用来保护护Web的安全全。为了了保护存存有敏感感信息Web的服务务器的安安全,消消除用户户在Intternnet上数据据传输的的安全顾顾虑。OpenSSSL是一个个支持SSL认证的的服务器器它是是一个源源码开放放的自由由软件,支支持多种种操作系系统。OpeenSSSL软件的的目的是是实现一一个完整整的、健健壮的、商商业级的的开放源源码工具具,通过过强大的的加密算算法来实实现建立立在传输输层之上上的安全全性。OpeenSSSL包含一一套SSL协
2、议的的完整接接口,应应用程序序应用它它们可以以很方便便的建立立起安全全套接层层,进而而能够通通过网络络进行安安全的数数据传输输。2 SSSL协议概概述SSL 是是Seccuree soockeet LLayeer英文缩缩写,它的中中文意思思是安全全套接层层协议,指使用用公钥和和私钥技技术组合合的安全全网络通通讯协议议。SSL协议是是网景公公司(Neetsccapee)推出的的基于 WEEB应用的的安全协协议,SSSL协议指指定了一一种在应应用程序序协议(如Htttp、Telleneet、NMTTP和FTPP等)和TCPP/IPP协议之之间提供供数据安安全性分分层的机机制,它为TCPP/IPP连
3、接提提供数据据加密、服服务器认认证、消消息完整整性以及及可选的的客户机机认证,主要用用于提高高应用程程序之间间数据的的安全性性,对传送送的数据据进行加加密和隐隐藏,确保数数据在传传送中不不被改变变,即确保保数据的的完整性性。SSL 以对称称密码技技术和公公开密码码技术相相结合,可可以实现现如下三三个通信信目标:(1)秘密密性: SSSL客户机机和服务务器之间间传送的的数据都都经过了了加密处处理,网络中中的非法法窃听者者所获取取的信息息都将是是无意义义的密文文信息。( 2)完完整性: SSSL利用密密码算法法和散列(HAASH)函数,通过对对传输信信息特征征值的提提取来保保证信息息的完整整性,确
4、保要要传输的信息全部部到达目目的地,可以避避免服务务器和客客户机之之间的信信息受到到破坏。(3)认证证性:利用证证书技术术和可信信的第三三方认证证,可以让让客户机机和服务务器相互互识别对对方的身身份。为为了验证证证书持持有者是是其合法法用户(而不是是冒名用用户), SSLL要求证证书持有有者在握握手时相相互交换换数字证证书,通过验验证来保保证对方方身份的的合法性性。3 SSSL协议的的体系结结构SSL协议议位于TCPP/IPP协议模模型的网网络层和和应用层层之间,使用TCP来提供供一种可可靠的端端到端的的安全服服务,它是客客户/服务器器应用之之间的通通信不被被攻击窃窃听,并且始终终对服务务器进
5、行行认证,还可以以选择对对客户进进行认证证。SSL协议在在应用层层通信之之前就已已经完成成加密算算法、通通信密钥钥的协商商以及服服务器认认证工作作,在此之之后,应用层层协议所所传送的的数据都都被加密密。SSL实际上上是共同同工作的的两层协协议组成成,如图1所示。从从体系结结构图可可以看出出SSL安全协协议实际际是SSL握手协协议、SSL修改密密文协议议、SSL警告协协议和SSL记录协协议组成成的一个个协议族族。 握手协议修改密 文协议报警协议 SSLL记录协协议 TCPP IP 图1 SSL体系结结构 SSLL记录协协议为SSL连接提提供了两两种服务务:一是机机密性,二是消消息完整整性。为为了
6、实现现这两种种服务, SSSL记录协协议对接接收的数数据和被被接收的的数据工工作过程程是如何何实现的的呢? SSSL记录协协议接收收传输的的应用报报文,将数据据分片成成可管理理的块,进行数数据压缩缩(可选),应用MACC,接着利利用IDEEA、DES、3DEES或其他他加密算算法进行行数据加加密,最后增增加由内内容类型型、主要要版本、次次要版本本和压缩缩长度组组成的首首部。被被接收的的数据刚刚好与接接收数据据工作过过程相反反,依次被解密密、验证证、解压压缩和重重新装配配,然后交交给更高高级用户户。 SSLL修改密密文协议议是使用用SSL记录协协议服务务的SSL高层协协议的3个特定定协议之之一,
7、也是其其中最简简单的一一个。协协议由单单个消息息组成,该消息息只包含含一个值值为1的单个个字节。该该消息的的唯一作作用就是是使未决决状态拷拷贝为当当前状态态,更新用用于当前前连接的的密码组组。为了了保障SSL传输过过程的安安全性,双方应应该每隔隔一段时时间改变变加密规规范。 SSLL告警协协议是用用来为对对等实体体传递SSL的相关关警告。如如果在通通信过程程中某一一方发现现任何异异常,就需要要给对方方发送一一条警示示消息通通告。警警示消息息有两种:一种是 Faatall错误,如传递递数据过过程中,发现错错误的MACC,双方就就需要立立即中断断会话,同时消消除自己己缓冲区区相应的的会话记记录;第
8、二种种是Warrninng消息,这种情情况,通信双双方通常常都只是是记录日日志,而对通通信过程程不造成成任何影影响。SSL握手协协议可以以使得服服务器和和客户能能够相互互鉴别对对方,协商具具体的加加密算法法和MAC算法以以及保密密密钥,用来保保护在SSL记录中中发送的的数据。SSL握手手协议允允许通信信实体在在交换应应用数据据之前协协商密钥钥的算法法、加密密密钥和和对客户户端进行行认证(可可选)的的协议,为为下一步步记录协协议要使使用的密密钥信息息进行协协商,使使客户端端和服务务器建立立并保持持安全通通信的状状态信息息。SSL握手协协议是在在任何应应用程序序数据传传输之前前使用的的。SSL握手
9、协协议包含含四个阶阶段:第一个个阶段建建立安全全能力;第二个个阶段服服务器鉴鉴别和密密钥交换换;第三个个阶段客客户鉴别别和密钥钥交换;第四个个阶段完完成握手手协议。4 SSSL协议的的实现基于OpeenSSSL的程序序可以被被分为两两个部分分:客户户机和服服务器,使使用SSL协议使使通信双双方可以以相互验验证对方方身份的的真实性性,并且且能够保保证数据据的完整整性和机机密性。建建立SSL通信的的过程如如图2所示。 图2 SSSL通信过过程SSL通信信模型采采用标准准的C/S结构,除除了在TCP层上进进行传输输之外,与与普通的的网络通通信协议议没有太太大的区区别,基基于OpeenSSSL的程序序
10、都要遵遵循以下下几个步步骤:(1 ) OpeenSSSL初始化化在使用OppenSSSL之前,必必须进行行相应的的协议初初始化工工作,这这可以通通过下面面的函数数实现:int SSSL_libbrarry_iint(voiid);(2 ) 选择会会话协议议在利用OppenSSSL开始SSL会话之之前,需需要为客客户端和和服务器器制定本本次会话话采用的的协议,目目前能够够使用的的协议包包括TLSSv1.0、SSLLv2、SSLLv3、SSLLv2/v3。需要注意的的是,客客户端和和服务器器必须使使用相互互兼容的的协议,否否则SSL会话将将无法正正常进行行。(3 ) 创建会会话环境境在OpennS
11、SLL中创建建的SSL会话环环境称为为CTX,使用用不同的的协议会会话,其其环境也也不一样的。申申请SSL会话环环境的OpeenSSSL函数是是:SSL_CCTX *SSSL_CCTX_neww(SSSL_MMETHHOD * mmethhod);当SSL会会话环境境申请成成功后,还还要根据据实际的的需要设设置CTX的属性性,通常常的设置置是指定定SSL握手阶阶段证书书的验证证方式和和加载自自己的证证书。制制定证书书验证方方式的函函数是:int SSSL_CTXX_seet_vveriify(SSLL_CTTX *ctxx,innt mmodee,innt(*verrifyy_caallbba
12、ckk),iint(X5009_SSTORRE_CCTX *);为SSL会会话环境境加载CA证书的的函数是是:SSL_CCTX_loaad_vveriify_loccatiion(SSLL_CTTX *ctxx,coonstt chhar *Caa chhar *Caapatth);为SSL会会话加载载用户证证书的函函数是:SSL_CCTX_usee_ceertiificcatee_ *ctxx, cconsst ccharr * typpe);为SSL会会话加载载用户私私钥的函函数是:SSL_CCTX_usee_PrrivaateKKey_ *cctx,connst chaar* tyype
13、);在将证书和和私钥加加载到SSL会话环环境之后后,就可可以调用用下面的的函数来来验证私私钥和证证书是否否相符:int SSSL_CTXX_chheckk_prrivaate_keyy(SSSL_CCTX *cttx);(4) 建建立SSL套接字字SSL套接接字是建立立在普通通的TCP套接字字基础之之上,在在建立SSL套接字字时可以以使用下下面的一一些函数数:SSL *SSll_neew(SSSL_CTXX *cctx); /申请一一个SSL套接字字int SSSL_sett_fdd(SSSL *ssll,innt ffd);) /绑定读读写套接接字int SSSL_sett_rffd(SSS
14、L *sssl,iint fd); /绑定只只读套接接字int SSSL_sett_wffd(SSSL *sssl,iint fd); /绑定只只写套接接字(5) 完完成SSL握手在成功创建建SSL套接字字后,客客户端应应使用函函数SSL_connnecct( )替代传传统的函函数connnecct( )来完成成握手过过程:int SSSL_connnecct(SSSL *sssl);而对服务器器来讲,则则应使用用函数SSLL_ aacceept ( )替代传传统的函函数accceptt ( )来完成成握手过过程:int SSSL_accceptt(SSSL *ssll);握手过程完完成之后后
15、,通常常需要询询问通信信双方的的证书信信息,以以便进行行相应的的验证,这这可以借借助于下下面的函函数来实实现:X509 *SSSL_gget_peeer_ccerttifiicatte(SSSL *sssl);该函数可以以从SSL套接字字中提取取对方的的证书信信息,这这些信息息已经被被SSL验证过过了。X509_NAMME *X5009_gget_subbjecct_nnamee(X5509 *a);该函数得到到证书所所用者的的名字。(6) 进进行数据据传输当SSL握握手完成成之后,就就可以进进行安全全的数据据传输了了,在数数据传输输阶段,需需要使用用SSLL_reead( )和SSLL_wr
16、ritee( )来替代代传统的的reaad( )和wriite( )函数,来来完成对对套接字字的读写写操作:int SSSL_reaad(SSSL *sssl,vvoidd *bbuf,intt nuum);int SSSL_wriite(SSLL *sssl,connst voiid *buff,innt nnum);(7 ) 结束SSL通信当客户端和和服务器器之间的的数据通通信完成成之后,调调用下面面的函数数来释放放已经申申请的SSL资源:int SSSL_shuutdoown(SSLL *sssl); /关闭SSSL套接字字void SSll_frree(SSLL *sssl); /释放
17、放SSL套接字字void SSLL_CTTX_ffreee(SSSL_CCTX *cttx); /释放SSSL会话环环境4 结束束语SSL协议议采用数数字证书书进行双双端实体体认证,用非对对称加密密算法进进行密钥钥协商,用对称称加密算算法将数数据加密密后进行行传输以以保证数数据的保保密性,并且通通过计算算数字摘摘要来验验证数据据在传输输过程中中是否被被篡改和和伪造,从而为为敏感数数据在Intternnet上的传传输提供供了一种种安全保保障手段段。OpenSSSL是一个个开放源源代码的的SSL协议的的产品实实现,它它采用C语言作作为开发发语言,具具备了跨跨系统的的性能。调调用OpeenSSSL
18、的函数数就可以以实现一一个SSL加密的的安全数数据传输输通道,从从而保护护客户端端和服务务器之间间数据的的安全。SSL 协协议的握握手和通通讯 为为了便于于更好的的认识和和理解 SSSL 协议,这这里着重重介绍 SSSL 协协议的握握手协议议。SSLL 协议既既用到了了公钥加加密技术术又用到到了对称称加密技技术,对对称加密密技术虽虽然比公公钥加密密技术的的速度快快,可是是公钥加加密技术术提供了了更好的的身份认认证技术术。SSLL 的握手手协议非非常有效效的让客客户和服服务器之之间完成成相互之之间的身身份认证证,其主主要过程程如下: 客户端端的浏览览器向服服务器传传送客户户端 SSSL 协议的的
19、版本号号,加密密算法的的种类,产产生的随随机数,以以及其他他服务器器和客户户端之间间通讯所所需要的的各种信信息。 服务器器向客户户端传送送 SSSL 协议的的版本号号,加密密算法的的种类,随随机数以以及其他他相关信信息,同同时服务务器还将将向客户户端传送送自己的的证书。 客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。用户端随机产生一个用于后面通讯
20、的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。 如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器。 如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的 CA 是否可靠,发行 CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立
21、刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。 服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。 客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。 服务器向客户端发出信息,指明后面的数据通讯将使用的步骤中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。 SSL 的握手部分结束,SSL 安
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSL 协议 相关 知识 简介 3354
限制150内