网络安全协议及分析
华东师范大学 软件工程学院 2025年春季学期
授课教师:刘虹(密码与网络安全系)
笔记来源:华东师范大学软件工程学院《网络安全协议及分析》
github地址:https://github.com/BetterECNU/ECNU_Crypt_Student_Manual/tree/main/网络安全协议及分析
内容与方班的《安全协议设计与分析》有相通之处,但并不完全重合,学有余力者自行和阅读
第一章 概述
1.1 TCP/IP协议安全缺陷
TCP/IP协议栈在设计之初没有充分考虑安全性,存在四类典型安全缺陷:
| 缺陷类型 | 说明 | 攻击示例 |
|---|---|---|
| 信息泄露 | 数据被未授权窃取 | 共享式网络嗅探、ARP欺骗下交换式网络嗅探 |
| 信息篡改 | 数据在传输中被恶意修改 | SQL注入、XSS、网站篡改、缓冲区溢出 |
| 身份伪装 | 攻击者冒充合法通信实体 | ARP欺骗、IP欺骗、DNS欺骗、RIP欺骗 |
| 行为否认 | 发送/接收方否认已发送/接收数据 | IP/UDP/TCP/HTTP均无防否认机制 |
ARP欺骗原理:攻击主机H向A发送伪造的ARP应答(IP_B→MAC_H),向B发送(IP_A→MAC_H),从而截获A与B之间的通信。
1.2 网络安全需求(IATF框架)
- 机密性:数据不被泄露
- 完整性:数据不被篡改
- 可用性:服务可正常访问
- 来源真实性:通信对端身份可验证
- 不可否认性:行为可追溯,无法事后否认
密码学是实现这些安全需求的通用基础。例如 HTTPS = HTTP + TLS/SSL。
1.3 网络安全协议定义
基于密码学的通信协议,同时具备:
- 语法:报文格式
- 语义:报文处理方法
- 时序:报文交换顺序
1.4 核心密码学组件
对称加密 :AES、3DES、SM4公钥加密 :RSA、DSA、ECC、SM2消息摘要/散列函数:MD5、SHA-1/2/256/512
- 关键特性:雪崩效应、单向性、抗冲突性(弱/强)
消息验证码(MAC) :密钥 + Hash函数,提供数据源认证和完整性校验
数字签名:发送方用私钥加密摘要,接收方用公钥验证,确保不可否认性
密钥管理:
- 基于KDC(密钥分发中心)的共享密钥建立
- D-H密钥协商:基于离散对数困难问题,双方各自生成共享密钥
- 公钥证书(X.509)和CA解决中间人攻击问题
1.5 协议设计要素
- 应用场景:SSL偏服务器认证、IPSec要求双向认证
- 协议栈层次:层次越低,安全服务越通用(IPSec在IP层、SSL/TLS在传输层、Kerberos/PGP在应用层)
- 安全性:需考虑算法协商、密钥生成、身份认证的全流程
第二章 链路层扩展 L2TP
2.1 PPP协议基础
PPP(Point to Point Protocol)用于两个对等实体之间的直连链路,提供全双工按序传输。规定三部分内容:
- 帧格式及成帧方法
- LCP(链路控制协议):建立、配置和测试链路
- NCP(网络控制协议):如IPCP用于配置IP
PPP协议流程:链路不可用 → 建立(LCP) → 认证(PAP/CHAP) → 网络层(IPCP) → 终止
PPP帧格式:F(7E) | A(FF) | C(03) | 协议 | 数据... | FCS | F(7E)
LCP报文类型:
- 链路配置:Configure-Request/Ack/Nak/Reject
- 链路终止:Terminate-Request/Ack
- 链路维护:Code-Reject、Echo-Request/Reply 等
幻数(魔术字):防止环路的关键参数,在Config-Request中协商。不协商时填全0。
IPCP:负责动态协商IP地址。报文在PPP未达到网络层协议阶段前会被丢弃。
2.2 PAP与CHAP认证
| PAP | CHAP | |
|---|---|---|
| 方式 | 两次握手,明文传口令 | 三次握手,挑战-应答 |
| 安全性 | 低(口令明文传输) | 较高(基于共享密值+随机数+MD5) |
| 流程 | 被认证端发送用户名+密码 → 认证端确认 | 认证端发随机数 → 被认证端返回MD5值 → 比对 |
2.3 L2TP协议架构
L2TP对PPP进行扩展,允许链路端点跨越多个IP/ATM/帧中继网络。
关键组件:
- LAC(接入集中器):接收远程客户呼叫
- LNS(网络服务器):作为PPP会话的逻辑终点
- LAC与LNS之间通过隧道转发PPP帧
L2TP层次结构:
- 基于UDP(端口1071),也可运行于ATM、帧中继
- 数据消息:投递PPP帧,不可靠传输
- 控制消息:建立/维护/终止连接,可靠传输(滑动窗口+慢启动)
隧道、控制连接和会话的关系:
- 一个隧道包含一个控制连接
- 一个控制连接承载多个L2TP会话
- 每个会话对应一条虚拟PPP链路
2.4 L2TP协议流程
- 建立控制连接(SCCRQ → SCCRP → SCCCN)
- 建立会话:呼入(ICRQ→ICRP→ICCN)或呼出(OCRQ→OCRP→OCCN)
- 数据通信:转发PPP帧
- 终止会话:CDN → ZLBACK
- 终止控制连接:StopCCN → ZLBACK
2.5 L2TP报文
报文首部包含:T/L标志、版本、隧道ID、会话ID、Ns/Nr序号、偏移量。
控制消息信息以AVP(属性值对)形式出现,隐藏AVP使用随机向量RV进行加密。
2.6 L2TPv2与v3的区别
| 特性 | L2TPv2 | L2TPv3 (RFC3931, 2005) |
|---|---|---|
| 支持协议 | 仅PPP | PPP、帧中继、以太网等 |
| 隧道/会话ID | 2字节 | 4字节(更大命名空间) |
| 认证范围 | 部分控制消息 | 整个控制消息 |
2.7 安全性分析
L2TP不是严格意义上的安全协议,更应被视为隧道协议("Safe Protocol"而非"Security Protocol")。实际部署中常与IPSec结合使用(L2TP/IPSec)。
第三章 IP层安全 IPSec
3.1 IPSec协议组成
| 类别 | 协议 | 功能 |
|---|---|---|
| 交换协议 | ISAKMP、IKE | SA协商、密钥生成、身份认证 |
| 数据封装 | AH | 数据完整性+数据源发认证+抗重放 |
| 数据封装 | ESP | AH全部功能 + 机密性 + 有限传输流机密性 |
3.2 IKE协议
主要功能:SA协商、身份认证、密钥生成与交换、SA管理
SA协商属性:加密算法、散列算法、认证方法、D-H群信息、伪随机函数PRF、生命期等
PRF生成的四种秘密信息:
- SKEYID:基础密钥素材
- SKEYID_d:为IPSec衍生加密素材
- SKEYID_a:用于完整性检验+数据源发认证
- SKEYID_e:用于数据加密
认证方法(4种):数字签名、公钥加密、改进的公钥加密、预共享密钥
交互模式:
| 阶段 | 模式 | 用途 |
|---|---|---|
| 第一阶段(IKE SA) | 主模式(6条消息) | 身份保护 |
| 第一阶段(IKE SA) | 野蛮模式(3条消息) | 速度快,不保护身份 |
| 第二阶段(IPSec SA) | 快速模式(3条消息) | 协商具体安全协议参数 |
| 辅助 | 新群模式 | 协商新的D-H群 |
| 辅助 | 通知模式 | 错误/状态通告、SA删除 |
主模式(预共享密钥)6条消息:SA提议 → SA选定 → KE+g^i+Ni → KE+g^r+Nr → IDii+HASH_I → IDir+HASH_R
3.3 AH(认证首部)与 ESP(封装安全载荷)
| AH | ESP | |
|---|---|---|
| 完整性 | ✅ | ✅ |
| 数据源发认证 | ✅ | ✅ |
| 抗重放 | ✅ | ✅ |
| 机密性 | ❌ | ✅ |
| 传输流机密性 | ❌ | 有限 |
传输模式 vs 隧道模式:
- 传输模式:IP头 + AH/ESP头 + 上层协议数据(适用端到端)
- 隧道模式:新IP头 + AH/ESP头 + 原IP头 + 上层数据(适用网关到网关)
应用场景:端到端、基本VPN(Site-to-Site)、移动用户访问(End-to-Site)、嵌套隧道
第四章 传输层安全 SSL/TLS
4.1 SSL协议概述
1994年Netscape开发,位于应用层和传输层之间,保护基于TCP的应用。
SSLv3协议套件(4个子协议):
| 协议 | 作用 |
|---|---|
| 握手协议 | 算法协商、身份认证、密钥生成 |
| 记录协议 | 数据承载、分片→压缩→MAC→加密 |
| 更改密码规范协议 | 通告启用新安全参数(仅一条消息) |
| 警告协议 | 报错和可认证的安全断连 |
4.2 SSLv3握手流程(全握手)
ClientHello → 算法列表+随机数
ServerHello ← 选定算法+随机数+会话ID
Certificate ← 服务器证书
ServerHelloDone ←
ClientKeyExchange → 加密的预主密钥
ChangeCipherSpec → 启用新参数
Finished* → 加密的完成消息
ChangeCipherSpec ← 启用新参数
Finished* ← 加密的完成消息
Application Data* ↔ 加密通信
Close_notify* ↔ 安全断连
会话恢复:通过会话ID重用之前协商的参数,跳过完整握手,提高效率。
客户端认证(可选):服务器发送CertificateRequest,客户端额外发送Certificate和CertificateVerify消息。
4.3 密钥导出
由预主密钥 + 客户端随机数 + 服务器随机数 → 主密钥 → 密钥分组:
- Esc:服务器写加密密钥
- Msc:服务器写MAC密钥
- Ecs:客户端写加密密钥
- Mcs:客户端写MAC密钥
- IVcs、IVsc:初始化向量
4.4 TLS协议
TLS vs SSLv3主要差异:
- MAC计算:SSLv3用MD5/SHA-1直接计算,TLS用HMAC
- 伪随机函数:TLS使用P_HASH扩展+PRF
- 填充:TLS允许填充至任意分组数,SSLv3仅填满一个分组
- 版本号:TLS 1.0 = SSL 3.1
TLS 1.2 vs TLS 1.3:
- TLS 1.3删除了更改密码规范协议
- TLS 1.3握手协议部分加密
- TLS 1.3新增心跳协议(keep-alive)
- ContentType:change_cipher_spec(0x14)、alert(0x15)、handshake(0x16)、application_data(0x17)、heartbeat(0x18)
4.5 SSL/TLS安全问题
| 攻击类型 | 利用的漏洞 |
|---|---|
| CBC模式攻击 | 填充字节未做完整性验证 |
| Lucky Thirteen | 利用填充不确定性+响应时间差异 |
| POODLE | CBC模式设计缺陷,最后一块全为填充时可自由修改 |
| BleichenBacher | 降级攻击,伪装SSL 3为SSL 2 |
| DROWN | SSLv2虽已退役但仍被大量服务器支持 |
4.6 SSL/TLS脆弱性
- 客户端假冒:SSL默认不要求客户端认证
- 无法保护UDP应用:握手前需建立TCP连接
- 不能对抗通信流量分析:IP头和TCP头仍暴露
- 进程中主密钥泄漏风险
- 临时文件可能暴露敏感数据
4.7 SSL应用方式
- 分设端口:HTTP(80) / HTTPS(443)
- 向上协商:在已建立的普通连接上协商启用TLS
- SSL VPN:身份鉴别 + 访问策略 + 数据转发
SSL证书类型:域名验证型(单域名/多域名/通配符)、组织验证型、扩展验证型
第五章 会话安全 SSH
5.1 SSH概述
SSH(Secure Shell):应用层协议,基于TCP,端口22。
发展历程:SSH1(1995) → SSH2(1998) → SSH G3(2005) → SSH2.0标准(2006, RFC4250-4256)
SSH协议组成(三层结构):
Telnet/SFTP/FTP等高层应用
┌─────────────────────┐
│ SSH连接协议 │ ← 多路复用安全通道
├─────────────────────┤
│ SSH用户认证协议 │ ← 客户端身份认证
├─────────────────────┤
│ SSH传输层协议 │ ← 服务器认证+算法协商+密钥交换
└─────────────────────┘
22号端口
TCP
5.2 SSH传输层协议
协议流程:
- 版本协商:交换版本字符串
- 算法协商:交互SSH_MSG_KEXINIT(Cookie、密钥交换算法、热键算法、加密/MAC/压缩算法列表、语言、标志)
- D-H交换 :
- 客户端发送SSH_MSG_KEXDH_INIT(D-H公开值)
- 服务器返回SSH_MSG_KEXDH_REPLY(证书/热键、D-H公开值、对散列值H的签名)
- 密钥计算:导出6个密钥(Ecs, Esc, Mcs, Msc, IVcs, IVsc),使用公式 IV = HASH(K|H|"A"~"F"|会话ID),需要时可扩展
- 通告新密钥:SSH_MSG_NEWKEYS
- 服务请求:SSH_MSG_SERVICE_REQUEST → SSH_MSG_SERVICE_ACCEPT
服务器认证方式:
- 显式方法:报文包含数字签名(需事先获取服务器公钥/热键)
- 隐式方法:报文包含用预共享密钥计算的MAC
密钥再交换:任一方可发起,流程与首次相同。
报文格式:MAC(Mcs/Msc, 序号 | 未加密报文)
5.3 SSH用户认证协议
运行于传输层提供的安全通道之上,支持4种方法:
| 方法 | 说明 |
|---|---|
| Publickey | 公钥认证,两轮交互(通告→响应) |
| Password | 口令认证,支持口令更改 |
| Hostbased | 由宿主机代理用户认证,用主机私钥签名 |
| None | 用于查询服务器支持的方法 |
公钥认证流程:
- 客户端发送签名算法名+证书(标志=FALSE)
- 服务器返回PK_OK或FAILURE
- 客户端发送签名算法名+公钥+签名(标志=TRUE)
- 服务器验证签名
5.4 SSH连接协议
运行于传输层安全通道(隧道)之上,将隧道多路分解为多个逻辑通道。
通道类型(4种):
| 类型 | 用途 |
|---|---|
| session | 远程交互式会话 |
| x11 | X视窗系统转发 |
| forwarded-tcpip | 远程端口转发 |
| direct-tcpip | 本地端口转发 |
通道生命周期:OPEN → OPEN_CONFIRMATION/FAILURE → DATA/EXTENDED_DATA → WINDOW_ADJUST → EOF → CLOSE
交互式会话请求类型:伪终端请求、x11转发、环境变量、启动shell/可执行命令/子系统、窗口更改、数据流控制、信号、退出状态/信号
TCP/IP端口转发:将本地端口的数据通过SSH安全通道转发到远程端口,保护SMTP、IMAP等应用。
- 本地转发:
ssh -L 本地端口:目标主机:目标端口 中间主机 - 远程转发:
ssh -R 远程端口:目标主机:目标端口 中间主机 - 动态转发:
ssh -D 本地端口 中间主机(SOCKS代理)
5.5 SSH应用
- SFTP:基于SSH2的子系统,比FTPS更安全
- SSH VPN:利用端口转发构建
- 无密码访问:公钥认证自动配置
- SSH蜜罐:防御暴力破解
第六章 代理安全 Socks
6.1 代理类型
| 类型 | 工作层次 | 特点 |
|---|---|---|
| 应用层代理 | 应用层 | HTTP代理、FTP代理,具备缓存功能 |
| ICS(连接共享) | IP层 | 基于NAT,多私有地址共享同一公网地址 |
| Socks代理 | 应用层(垫层) | 可转发所有高层应用,端口1080 |
应用层代理的附加功能:缓存加速、隐藏真实IP(突破IP限制)、应用层防火墙
6.2 Socks框架
C/S模型:
- Socks库(客户端):替代Socket库函数
- Sockd守护程序(服务器):处理CONNECT和BIND请求
Socks函数与Socket函数对应:Rconnect↔Connect, Rbind↔Bind, Rlisten↔Listen, Raccept↔Accept
Socks优势:任何主机都可作为代理服务器;统一出口便于部署安全策略;Socks5支持多种认证方案。
6.3 Socks4
CONNECT命令:客户端请求代理与远程主机建立TCP连接
- 请求:VN | CD | 目标端口 | 目标IP | 用户ID | NULL
- 应答:VN | CD | 目标端口 | 目标IP
BIND命令:通过已建立的主连接,请求代理接收远程主机的反向连接
- 代理绑定本地端口 → 客户端通过主连接通告远程主机 → 代理验证远程主机源地址 → 转发连接
认证:基于Ident协议(RFC1413,113端口),代理向客户端发起身份查询,比较用户ID。
6.4 Socks5
对Socks4的三大扩展:
1. 身份认证扩展
- 协商阶段:客户端列出支持的方法 → 服务器选定一个
- 用户名/口令认证:明文传输(在Socks层面)
- GSSAPI认证:提供完整的安全框架
2. 寻址方法扩展
- IPv4地址、域名、IPv6地址(ATYP字段:0x01/0x03/0x04)
3. UDP支持
- UDP ASSOCIATE命令:为UDP会话建立转发通道
- UDP报文前添加UDP请求首部(保留、分片、地址类型、目标地址、目标端口)
6.5 GSSAPI(通用安全服务API)
GSSAPI为应用开发者屏蔽底层安全机制差异,提供统一编程接口。
三个关键概念:
- 信任状(Credential):建立安全上下文的先决条件
- 安全上下文(Context):认证后的安全通道
- 令牌(Token):承载安全参数的载体
核心函数调用:
- GSS_Init_sec_context():客户端发起,生成输出令牌
- GSS_Accept_sec_context():服务器接收令牌,完成双向认证
- GSS_Seal/GSS_Wrap:加密+完整性
- GSS_Sign:仅完整性
- GSS_Unseal/GSS_Unwrap、GSS_Verify:对应解封/验证
Socks5 GSSAPI流程:建立信任状 → 交换令牌建立安全上下文 → 子协商(单条消息保护方式) → 数据保护
子协商的三种保护级别:必需的完整性、必需的完整性和机密性、本地配置决定
6.6 Socks应用案例
- 伪装来源:隐藏客户端真实IP
- 内网漫游:通过具有双网卡的公网VPS访问内网资源
- IPv4/IPv6互通:利用域名寻址屏蔽地址差异
常用工具:Earthworm、xsocks、ShadowSOCKS、SocksCap64
第七章 网管安全 SNMPv3
7.1 SNMP概述
SNMP(简单网络管理协议)是TCP/IP架构下的网络管理标准,工作于应用层,通常基于UDP。
组成要素:规范语言(SMI)、MIB定义、协议定义、安全与管理
版本演进:
- SNMPv1:基于共同体名(明文口令)的访问控制,无安全保护
- SNMPv2:升级SMIv2,延续v1框架
- SNMPv3:标准化框架结构,为v1/v2消息提供安全功能
7.2 SNMPv3安全服务三级
| 级别 | 认证 | 加密 | 标识 |
|---|---|---|---|
| noAuthNoPriv | 无 | 无 | 1 |
| authNoPriv | 有 | 无 | 2 |
| authPriv | 有 | 有 | 3 |
7.3 MIB(管理信息库)
使用OID命名树确保对象标识符唯一性。例如:
1.3.6.1= Internet网络管理子树1.3.6.1.2.1= mgmt/mib1.3.6.1.2.1.2.2= interfaces/ifTable
对象与实例:对象是类型定义,实例是具象化(如 sysObjectID.0)。
7.4 SNMPv3体系结构
实体构成:SNMP引擎 + 若干应用
SNMP引擎四大模块:
| 模块 | 职责 |
|---|---|
| 调度程序 | 消息收发 |
| 消息处理模块 | 消息解析与生成 |
| 安全模块 | 认证与加密 |
| 访问控制模块 | MIB访问控制 |
五种应用:命令生成器、命令接收器、通告生成器、通告接收器、代理转发器
三种实体类型:Manager(请求发送/响应接收)、Agent(请求接收/响应发送)、Proxy(转发)
7.5 USM(基于用户的安全模型)
核心机制:
- 消息验证码(MAC):提供完整性+数据源发认证,HMAC-MD5-96 / HMAC-SHA-96
- 消息时效性:时间参数+时间窗口防重放
- 机密性:CBC-DES加密PDU部分
权威引擎概念:确认类PDU的接收者和非确认类PDU的发送者为权威实体。
时间变量:
- snmpEngineBoots:引擎重启次数
- snmpEngineTime:最近一次boot以来的秒数
密钥本地化:将用户口令转化为与特定权威引擎共享的本地化密钥。
用户属性:用户名、安全名、认证协议/密钥、加密算法/密钥、密钥更新对象等。
7.6 VACM(基于视图的访问控制模型)
以组为单位设置访问权限,核心要素:
| 要素 | 说明 |
|---|---|
| 组(Group) | 包含多个<securityModel, securityName>二元组 |
| 安全级别 | noAuthNoPriv / authNoPriv / authPriv |
| 上下文 | SNMP实体可访问的管理信息集合 |
| MIB视图 | 上下文中管理对象的子集 |
| 视图家族 | 家族名+家族掩码 |
| 访问策略 | 读视图 / 写视图 / 通知视图 |
认证流程(6W):Who → Where → How → Why → What → Which → Decision
7.7 SNMP操作与报文
网管操作:普通请求(GetRequest/SetRequest/GetNextRequest/GetBulkRequest)、普通响应(Response)、告警(SNMPv2-Trap)、通告(InformRequest)
序列化:使用BER编码,整个消息及每个字段编码为三元组(Tag-Length-Value)。
第八章 认证协议 Kerberos
8.1 Kerberos概述
基于对称密码体制和可信第三方的认证系统,采用C/S结构,支持双向认证。
应对的安全威胁:用户冒充、IP伪造、重放攻击、服务器冒充
8.2 核心设计思想
| 机制 | 作用 |
|---|---|
| 可信第三方(AS) | 维护用户和服务器密钥,颁发身份凭证 |
| 票据许可服务器(TGS) | 分离认证与授权,TGT可重用 |
| 时间参数(生命期+时间戳) | 限制票据有效期 |
| 会话密钥+认证符 | 证明拥有会话密钥,防止重放 |
| 双向认证 | 服务器也向客户端证明身份 |
| 密钥转化 | 长期密钥→短期会话密钥 |
8.3 Kerberos协议流程
客户端 ── KRB_AS_REQ ──→ AS(认证服务器)
客户端 ←── KRB_AS_REP ── (获取TGT)
客户端 ── KRB_TGS_REQ ─→ TGS(票据许可服务器)
客户端 ←── KRB_TGS_REP ── (获取服务票据Ticket_s)
客户端 ── KRB_AP_REQ ──→ 应用服务器
客户端 ←── KRB_AP_REP ── (双向认证完成)
TGT重用:TGT有效期较长,免去每次申请服务票据时都需输入口令。
8.4 票据与认证符结构
票据(用服务器密钥加密):
- 版本、服务器域/名、标志、会话密钥
- 客户端域/名、认证时间、起止时间、更新终止时间
- 主机地址、传输编码、认证数据
认证符(用会话密钥加密):
- 版本、客户端域/名、校验和
- 客户端时间戳、子会话密钥(可选)、序号
8.5 跨域认证
域间共享域间密钥。跨域认证链:客户端→域A AS→域A TGS→域B TGS→域B 服务器。
U2U(用户到用户)认证:客户端向TGS同时出示自己和目标服务器的TGT,TGS用服务器TGT中的会话密钥加密新票据。
8.6 消息交换类型
| 交换类型 | 消息 | 用途 |
|---|---|---|
| AS交换 | KRB_AS_REQ/REP/ERROR | 获取TGT |
| TGS交换 | KRB_TGS_REQ/REP/ERROR | 获取服务票据 |
| AP交换 | KRB_AP_REQ/REP/ERROR | 访问应用服务 |
| 安全交换 | KRB_SAFE | 防篡改检测(校验和) |
| 机密交换 | KRB_PRIV | 加密+完整性(含时间戳/序号) |
| 信任状交换 | KRB_CRED | 传递票据 |
第九章 应用安全
9.1 DNSSEC
DNS面临的安全威胁:DNS欺骗(伪装DNS服务器/篡改应答)、数据窃听和篡改、ID猜测、名字连锁攻击、信任服务器背叛等。
DNSSEC思想:利用数字签名技术提供DNS消息认证功能。不改变DNS框架和报文格式,以新的资源记录(RR)形式进行安全扩展。
提供:数据源发认证、完整性校验、公钥分发机制。
9.2 SHTTP
HTTPS = HTTP + SSL/TLS,而SHTTP从另一个角度增强Web安全。
SHTTP特点:
- 不改变HTTP协议框架,利用HTTP报文首部扩展新选项
- 提供三种安全保护:加密 (机密性)、基于MAC的认证 (完整性+数据源发认证)、签名(认证+不可否认性)
支持的密钥交换方式:
- 带内(inband):密钥直接放在HTTP首部
- 带外(outband):接收方通过关键字匹配预先配置的密钥
- D-H交换
- 基于RSA公钥加密的密钥传输
SHTTP vs HTTPS:
| SHTTP | HTTPS | |
|---|---|---|
| 不可否认性 | 支持 | 不支持 |
| 防火墙可见性 | 可检测行为 | 仅见端口号 |
| 灵活性 | 可任意组合安全服务 | 较固定 |
| 证书需求 | 无限制 | 必须依托证书 |
课程总结:安全协议分层全景
应用层 Telnet/SSH, DNS/DNSSEC, SNMPv3, SMTP/POP3/PEM, PGP, Kerberos, L2TP
传输层 SSL/TLS, Socks | TCP, UDP
网络层 IPSec (AH/ESP), IKE | IP
网络接口层 L2TP | PPP, PAP, CHAP
硬件层
要点回顾:
| 层次 | 协议 | 核心安全服务 | 关键机制 |
|---|---|---|---|
| 链路层 | L2TP | 隧道封装(非严格安全协议) | PPP扩展、CHAP认证、需配合IPSec |
| IP层 | IPSec | 完整性、认证、抗重放、机密性 | AH/ESP、IKE、D-H、传输/隧道模式 |
| 传输层 | SSL/TLS | 机密性、完整性、服务器认证 | 握手+记录+密钥导出、会话恢复 |
| 会话层 | SSH | 远程安全登录+端口转发 | D-H交换、三层协议架构、通道机制 |
| 代理层 | Socks5 | 代理转发+访问控制 | CONNECT/BIND/UDP、GSSAPI |
| 网管层 | SNMPv3 | 认证+加密+访问控制 | USM(用户安全)、VACM(视图控制) |
| 认证 | Kerberos | 双向认证+单点登录 | 票据+认证符、TGT+TGS、跨域认证 |
| 应用层 | DNSSEC/SHTTP | DNS认证/Web安全增强 | 数字签名/HTTP首部扩展 |