SSL协议小结

来源:互联网 发布:时时彩数据统计 编辑:程序博客网 时间:2024/05/14 20:06

这篇文章写的很详细哦,赞一个:http://rrsongzi-gmail-com.iteye.com/blog/603015


最近要用到ssl协议,顺便了解了下

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。

SSL协议可分为两层:

 SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议有多个版本,SSLV2,SSLV3,TLSv1.0,TLSv1.1,TLSv1.2,目前由于爆出SSLV2,SSLV3存在安全漏洞,估计不久的将来基本会被TLS取代

http://www.cnxhacker.com/2014/10/15/2803.html;

SSL链接的大致流程如下:

先来看wireshark抓取的ssh包


大致如下流程


1.客户端发送client Hello消息体到服务器,消息体结构如下

struct {ProtocolVersion client_version;  //客户端支持的版本号Random random;                   //随机数SessionID session_id;            //会话session一般为0,最终由服务器端分配CipherSuite cipher_suites<0..216-1>;//客户端所支持的秘钥套件列表CompressionMethod compression_methods<0..28-1>;//客户端所支持的压缩算法列表} ClientHello;
wireshark解包如下:

2.服务器端发送server Hello消息体给客户端,消息体结构如下

struct {ProtocolVersion server_version;<span style="font-family: Arial, Helvetica, sans-serif;">//版本版本号,该版本好取通信双方所支持的最高版本中的低者,如client为TSL1.1,server最高支持TSL1.2,哪个用TSL1.1进行ssl链接</span>Random random;//随机数SessionID session_id;//session,该session用于通信整个过程中CipherSuite cipher_suite;//第一个验证通过的秘钥CompressionMethod compression_method;//压缩算法} ServerHello; 
wireshark解包如下,可以发现现server Hello消息体中多了秘钥交换消息:

3.客户端根据服务端返回的消息作出相应,交换秘钥,最终实现数据的安全传输


0 0
原创粉丝点击