欢迎来到天天文库
浏览记录
ID:19785580
大小:165.00 KB
页数:11页
时间:2018-10-06
《电子商务安全协议及支付安全》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、5.1.1SSL协议工作原理SSL协议处于互联网多层协议集的传输层上,运行在TCP/IP协议之上而在其他高层协议(如HTTP、Telnet、FTP和IMAP等)之下,如图5-1所示。在建立一次SSL连接之前,首先建立TCP/IP连接。SSL协议可以让应用层协议透明地加以应用。运行时,支持SSL协议的服务器可以同一个支持SSL协议的客户机彼此认证自己,还允许这两个机器之间建立安全的加密连接,同时保证信息在传输过程中的完整性。SSL协议可以分为4个子协议:SSL握手协议、SSL更改密码规程协议、SSL报警协议和SSL记录协
2、议,其中最重要的两个协议是握手协议和记录协议。SSL记录协议定义了数据传送的格式,它位于一些可靠的传输层协议之上(如TCP),用于各种更高层协议的封装。SSL握手协议位于SSL记录协议之上,并被SSL记录协议所封装。它描述建立安全连接的过程,在客户和服务器传送应用层数据之前,该协议允许服务器与客户机之间协商加密算法和会话密钥,完成通信双方的身份验证等功能。应用层协议(HTTP、Telnet、FTP、IMAP等)SSL握手协议SSL更改密码规程协议SSL报警协议SSL记录协议TCP协议IP协议图5-1SSL协议的分层结构
3、5.1.2SSL记录协议SSL记录协议(RecordProtocol)定义了传输的格式,包括记录头和记录数据格式的规定。发送方记录层的工作过程如图5-2所示:分片添加MAC压缩加密添加SSL记录头计算MAC图5-2记录层的工作过程1.记录层从上层接收到任意大小的应用层数据块,把数据快分成不超过214字节的分片。2.记录层用当前的会话状态中给出的压缩算法静分片压缩成一个压缩快,压缩操作是可选的。3.每个会话都有相应“加密规格”指定了对称加密算法和MAC算法。记录层用指定的MAC算法对压缩块计算MAC,用指定的对称加密算法
4、加密压缩块和MAC,形成密文块。1.对密文块添加SSL记录头,然后送到传输层,传输层受到这个SSL记录层数据单元后,记上TCP报头,得到TCP数据包。MAC数据实际数据附加数据图5-3SSL记录协议中数据项的格式5.1.3SSL握手协议客户机服务器server_hellocertificateserver_key_exchange*certificate_request*hello_donecertificate_verifyclient_key_exchangeCertificate*change_cipher_sp
5、ecfinishedcertificate_verify*finishedchange_cipher_specclient_hellono_certificate*Step1:确定一些相关参数,包括协议版本、会话ID、加密规格、压缩算法和初始随机数Step2:服务器端发送自身证书(或临时公钥)及证书请求,最后发送hello阶段结束信号。Step3:客户端验证服务器端证书、发送自身证书、交换对称密钥。Step4:双方确定加密规格,结束握手协议。图5-4SSL建立新会话时的握手过程1)建立新会话时的握手过程握手协议用于数据
6、传输之前。它可以进行服务器与客户之间的身份鉴别,同时通过服务器和客户协商,决定采用的协议版本、加密算法,并确定加密数据所需的对称密钥,随后采用公钥加密技术产生共享机密信息(例如对称密钥)。每次连接,握手协议都要建立一个会话。会话中包含了一套可在多次会话中使用的加密安全参数,从而减轻了每次建立会话的负担。然而,必须指出的是,SSL中的每次连接时,在握手协议中产生的对称密钥都是独特的,这种每次更换密钥的方法显然在更大程度上确保了系统的不易攻破性。根据是否验证对方的证书,SSL的握手过程可以分为以下三种验证模式:客户和服务器
7、都被验证;只验证客户机,不验证服务器,这是Internet上使用最广泛的形式;客户和服务器都不验证,也称为完全匿名模式。SSL握手协议建立一个新的会话的过程如图5-4所示,具体如下:阶段1:确定一些相关参数,包括协议版本、会话ID、加密规格、压缩算法和初始随机数(1)客户端发送client_hello消息给服务器,向服务器传送客户端支持的SSL协议的版本号、加密算法的种类、MAC算法的种类、会话标识、密码属性(如hash块的大小),以及其他服务器和客户端之间通信所需要的各种信息。(1)服务器以server_hello向
8、客户应答,服务器端传选定的SSL协议的版本号、加密算法的种类、MAC算法的种类、密码属性及其他相关信息。阶段2:服务器端发送自身证书(或临时公钥)及证书请求,最后发送hello阶段结束信号。(2)如果需要验证服务器,服务器将发送certificate消息。服务器首先建立一个随机数,然后对这个随机数进行数字签名,将这个含有签名的随机
此文档下载收益归作者所有