概述
TCP/IP脆弱性:
没有能力保护网上数据的机密性,缺乏保密机制
没有验证通信双方身份真实性的能力,缺乏有效身份认证机制
自身设计的某些细节和实现的一些安全漏洞,容易引发各种安全攻击
针对TCP/IP的攻击:
窃取
认证攻击
欺骗
网络安全协议:
基于密码学通信协议,将密码技术应用于通信协议
通过信息的安全交换来实现某种安全目的
SSL/TLS
安全套接字层,传输层安全
工作于运输层,SSL独立于各种协议
由协商过程与通信过程组成
sequenceDiagram
Client->>Server: ClientHello(记录协议承载)
Server->>Client: ServerHello + Certificate(记录协议)
Server->>Client: ChangeCipherSpec(切换协议)
Server->>Client: Finished(加密记录)
Client->>Server: ChangeCipherSpec(切换协议)
Client->>Server: Finished(加密记录)
Client->>Server: HTTP Request(应用数据记录)
Server->>Client: HTTP Response(应用数据记录)
Server->>Client: Alert(close_notify)(告警协议)
Client->>Server: Alert(close_notify)
协商过程
三次握手建立TCP连接
TLS握手,建立TLS会话
通过会话安全传送数据包
释放连接
TLS握手协议
协商安全算法
协商相关密钥
双方相互认证身份
Client Hello
客户端发送一个“Client Hello”消息到服务器。
消息内容包括客户端支持的SSL/TLS版本号列表、产生的随机数、会话ID、密码算法列表和压缩方法列表。
Server Hello
服务器响应客户端的“Hello”消息,并发送一个“Server Hello”消息。
消息内容包括从客户端列表中选出的SSL/TLS版本号、产生的随机数、会话ID以及从客户端列表中选出的密码算法和压缩算法。
Certificate(可选)
服务器发送包含自己证书的证书链。
这个步骤是可选的,但通常情况下,服务器会发送其公钥证书以供客户端验证。
Server Key Exchange(可选)
如果服务器证书中没有包含足够的密钥交换信息,服务器将发送一个“Server Key Exchange”消息。
这个消息包含了用于计算预主密钥的相关信息。
Client Key Exchange
客户端发送一个“Client Key Exchange”消息。
这个消息包含了用于计算预主密钥的相关随机数及相应的签名等信息。
Change Cipher Spec
客户端发送一个“Change Cipher Spec”消息,通知服务器它将使用选定的密码算法和参数处理接下来的通信。
Finish
客户端发送一个“finish”消息,表示握手过程的结束。
这个消息用于验证协商获得的密钥是否正确。
Server Hello Done
服务器发送一个“Server Hello Done”消息,表示服务器的初始握手阶段完成。
Server Finished
服务器发送一个“finished”消息,表示服务器的握手过程结束。
这个消息用于确认协商获得的密钥是否正确。
Encrypted Application Data
握手成功后,双方开始传输加密的应用数据。
SSL记录协议
面相连接的可靠传输协议
保密、完整、抗重放
数据分块
将应用数据分割为 ≤ 16KB 的片段(避免 IP 分片)。
加密与完整性保护
TLS 1.2:先计算 HMAC-SHA256,再用 AES-CBC 加密。
TLS 1.3:直接使用 AEAD 模式(如 AES-GCM),同时加密和认证。
防重放攻击
包含序列号(隐式递增),接收方验证序号连续性。
TLS 修改密文规约协议
(Change Cipher Spec Protocol)
作用:握手阶段的切换信号,通知对端后续消息将使用新协商的密钥加密。
TLS 告警协议(Alert Protocol)
作用:传递错误状态或连接关闭通知,可能导致连接终止
IPsec
IP协议缺乏身份认证机制、完整性保护机制和机密性保护机制
网络层,身份认证、机密性、完整性、抗重放
IKE协议
密钥协商协议
在通信双方间建立起共享安全参数及验证过的密钥
安全关联SA
单向的安全通道参数集合(包括密钥、加密算法、生存周期等)。
双向通信:需要两个 SA(入站 SA + 出站 SA)
AH
认证头协议
对通信实体进行身份认证
完整性保护
防止重放攻击
使用模式
传输模式
IP报头+AH报文+IP报文
隧道模式
新IP报头+AH报头+IP报头+IP报文
ESP协议
封装安全载荷协议
机密、完整、身份认证、抗重放
不验证IP头
IP头+ESP头+负荷+ESP尾+ESP认证
传输模式
IP头+ESP头+IP报文+ESP尾+ESP认证
隧道模式
新IP报头+IP头+ESP头+IP报文+ESP尾+ESP认证
IPSec的两种工作模式
隧道模式
数据封装在一个IP包中隐藏原始IP信息
用一个新的数据报封装,用于与安全网关建立联系
子网内部可以使用私有IP地址
子网拓扑结构保护
子网所有用户透明享受安全网关的保护
网关处理负荷大,形成通信瓶颈
内部安全问题不可控
传输模式
只处理IP有效载荷,不添加新的IP协议报头
用于主机到主机的通信
VPN
VPN概述
端到端数据通路需要经过拨入段-外部段-内部段
拨入段以明文传递到ISP,很容易在拨入段监听
外部段经过多个路由器,容易泄露
端到端数据通路上随处可能发生数据泄露
拨入段链路
ISP接入设备
因特网上
内部网上
Visual Private Network
利用公共网络基础设施,通过隧道技术等达到类似私有专网数据安全传输
具有虚拟的特点
优点
成本低
企业不必租用长途专线建设专网,不必大量的网络维护人员和设备投资
易扩展
网络路由设备配置简单,无需增加太多的设备,省时省钱
完全的主动控制权
VPN上的设施和服务完全掌握在企业手中
基本原理
VPN将分布在不同物理地点的网络或终端通过公用网络连接起来,最终实现在两台直接与公网连接的设备之间建立一条专用安全通道
采用隧道技术(Tunnelling) ,对数据进行封装,在公共网络上建立一条数据通道(隧道),让数据包通过这条隧道传输
隧道,实质上是一种封装,将一种协议封装在另一种协议中传输,从而实现内
部网络协议对公用网络的透明性
隧道技术在VPN中的作用:
负责隧道的建立、保持和拆除
对数据进行封装,传输,解封
提供数据完整性和机密性等安全服务
隧道有隧道协议形成
可以在网络任意一层实现
VPN协议
二层隧道协议
• PPTP,Ponit-to-Point Tunneling Protocol,点对点隧道协议,RFC2637
• L2F,Layer 2 Forwarding,第2层转发协议,RFC2341
• L2TP,Layer 2 Tunneling Protocol,第2层隧道协议,RFC2661
• MPLS,Multiprotocol Label Switching,多协议标记交换,RFC3031
• 三层隧道协议
• IP-in-IP
• IPSec,Internet Protocol Security,Internet协议安全
• GRE,Generic Routing Encapsulation,通用路由选择封装,RFC2784
• 高层隧道协议
• SSL,Security Socket Layer,安全套接字层
三种数据格式
用户数据包格式
封装格式
公用网传输格式
这三种格式分别对应三种协议:
乘客协议
隧道协议
传输协议
主要类型
IPSec VPN
SSL VPN
PPTP VPN
L2TP VPN
MPLS VPN
VPN是企业网在因特网上的延伸