TSL协议及抓包分析学习笔记
协议简介
TLS(Transport Layer Security,安全传输层),建立在传输层TCP协议之上,服务于应用层,实现了将应用层的报文进行加密后再交由TCP进行传输的功能。
为什么使用
在SSL/TLS出现之前,很多应用层协议(http、ftp、smtp等)都存在着网络安全问题,在传输过程中使用的是明文信息,传输报文一旦被截获便会泄露传输内容;传输过程中报文如果被篡改,无法轻易发现;无法保证消息交换的对端身份的可靠性。
作用
TLS协议主要解决如下三个网络安全问题。
- 保密(message privacy),通过加密encryption实现
- 完整性(message integrity),通过MAC校验机制,一旦被篡改,通信双方会立刻发现;
- 认证(mutual authentication),双方认证,双方都可以配备证书,防止身份被冒充;
协议结构
TLS协议可以分为两部分
1.记录协议(Record Protocol)
通过使用客户端和服务端协商后的秘钥进行数据加密传输。
2.握手协议(Handshake Protocol)
客户端和服务端进行协商,确定一组用于数据传输加密的秘钥串。
概念理解
散列(哈希,Hashing)
散列是另一种数据一旦转换为其他形式将永远无法恢复的加密技术。
对称与非对称密钥加密
对称秘钥加密(Symmetric Key Encryption):任何知道加密密钥以及加密算法的人都可以反向并检索原始明文。
非对称秘钥加密(Asymmetric Key Encryption):也称为公钥基础结构( Public Key Infrastructure, PKI)又称PKI
公钥加密的解密密钥永远不会与任何人共享,所以比对称密钥加密更安全。
而由于PKI涉及双密钥架构并且密钥长度通常很大,因此加密-解密开销非常高。与对称密钥加密相比,它需要更多的时间和CPU占有率。因此PKI仅用于在客户端和服务器之间交换对称密钥。交换之后,新的数据传输便使用对称秘钥加密技术。
握手:在客户端和服务器之间共享并同意一个秘密密钥的一系列过程我们称为握手
TSL协议握手过程
在抓包及分析过程(以blog.csdn.net为例)(在Ubuntu虚拟机环境下)
- 安装wireshark
- ping blog.csdn.net 查看服务器IP地址
- ifconfig命令查看本机IP地址
- 启动wireshark
- 以我当时的实验结果为例,过滤代码为
((ip.src==192.168.127.131&&ip.dst==39.96.126.153)||(ip.src==39.96.126.153&&ip.dst==192.168.127.131))&&ssl
#((ip.src==本机IP&&ip.dst==服务器IP)||(ip.src==服务器IP&&ip.dst==本机IP))&&ssl
- 点击左上角的start capturing packages开始抓包
- 完成后保存,过滤后,即可对TLS包进行分析
.