ANSSI R226 拦截合规文档
文档目的: 本文档提供了在法国刑法第 R226-3 条和 R226-7 条下获得 ANSSI R226 授权所需的技术规范,适用于 OmniCSCF IMS 核心网络(呼叫会话控制功能)。
分类: 监管合规文档
目标机构: 法国国家信息系统安全局(ANSSI)
法规: R226 - 通信隐私和合法拦截的保护
1. 详细技术规范
1.1 系统识别
产品名称: OmniCSCF IMS 核心网络
产品类型: IP 多媒体子系统(IMS)核心网络
主要功能: VoIP/VoLTE 呼叫会话控制和多媒体服务交付
部署模型: 本地电信基础设施
网络组件:
- P-CSCF(代理呼叫会话控制功能)
- E-CSCF(紧急呼叫会话控制功能)
- I-CSCF(查询呼叫会话控制功能)
- S-CSCF(服务呼叫会话控制功能)
该系统处理 IP 多媒体子系统(IMS)网络的注册、认证、会话路由和呼叫控制。详细的拦截能力和加密特性在下面的章节中描述。
1.2 拦截能力
1.2.1 注册和会话获取
SIP 注册捕获:
CSCF 系统处理所有 SIP 注册并维护完整的注册状态:
-
用户标识符:
- IMPU(IP 多媒体公共身份) - SIP URI(例如,sip:+33612345678@ims.mnc001.mcc001.3gppnetwork.org)
- IMPI(IP 多媒体私有身份) - 认证用户名(例如,user@ims.mnc001.mcc001.3gppnetwork.org)
- IMSI(国际移动用户身份) - 来自 P 头或 HSS
- MSISDN(手机号码) - 来自 IMPU 或 HSS 用户配置文件
-
注册元数据:
- 联系 URI(实际 UE 网络地址)
- 路径头(通过 P-CSCF 返回的路由)
- 服务路由头(路由到 S-CSCF)
- 用户代理字符串(设备类型识别)
- 注册过期时间戳
- 源 IP 地址和端口
- 传输协议(TCP/UDP/TLS)
- 认证向量(RAND、AUTN、XRES、CK、IK 来自 HSS)
-
网络位置信息:
- P-Access-Network-Info 头(基站、位置区域)
- P-Visited-Network-ID(漫游网络识别)
- 接收的 IP 地址(实际源)
- P-CSCF 地址(网络入口点)
呼叫会话捕获:
S-CSCF 维护所有活动呼叫的完整 SIP 对话状态:
-
会话标识符:
- Call-ID(唯一会话标识符)
- From/To URI 和标签
- 双方的路由集
- Original-Dialog-ID(用于应用服务器交互跟踪)
-
会话元数据:
- 主叫身份(From 头,P-Asserted-Identity)
- 被叫方(To 头,请求 URI)
- 会话建立时间戳
- 会话终止时间戳
- 对话状态(早期/确认/已删除)
- CSeq 编号(事务排序)
-
媒体信息:
- SIP 消息体中的 SDP(会话描述协议)
- 媒体服务器地址(OmniTAS)
- 编解码器信息(音频/视频格式)
- 媒体流端点
- RTP/RTCP 端口分配
紧急呼叫识别:
E-CSCF 组件识别并路由紧急呼叫:
- 紧急号码检测(112、911 等)
- IMEI(国际移动设备身份)捕获
- IMEI 到 MSISDN 的映射(用于回拨)
- 来自 UE 或网络的位置
- HELD(HTTP 启用位置交付)协议支持
- 紧急路由目的地(PSAP/紧急 AS)
1.2.2 数据存储和处理
重要:仅内存状态
CSCF 组件(P-CSCF、E-CSCF、I-CSCF、S-CSCF)仅在内存中维护所有状态数据。没有持久数据库存储注册或呼叫会话数据。所有注册绑定、对话状态和 IPsec 安全关联都存储在内存中,并在系统重启时丢失。
活动注册数据(内存中):
CSCF 系统仅维护实时状态:
P-CSCF 注册状态:
- IPsec 安全关联数据(SPI 对、端口、加密参数)
- UE 联系绑定和网络地址
- IPsec 隧道端点和状态
- 注册有效期
S-CSCF 注册状态:
- 公共身份(IMPU)和当前注册状态
- 带有路径头、用户代理、接收地址的联系绑定
- 私有身份(IMPI)到公共身份的映射
- 来自 HSS 的用户配置文件(在注册期间缓存)
活动会话状态(内存中):
S-CSCF 仅维护活动呼叫状态:
- 呼叫标识符(Call-ID)、参与者身份(From/To 标签)
- 路由集和联系地址
- 会话状态(早期/确认/已终止)
- 会话时间信息
无 CDR 或历史跟踪:
CSCF 组件不生成或存储:
- 呼叫详细记录(CDR)
- 历史呼叫记录
- 历史注册记录
- 长期事件跟踪
CDR 生成和历史跟踪: 所有呼叫详细记录、计费数据和历史呼叫跟踪由**TAS(电话应用服务器 - OmniTAS)**处理,而不是由 CSCF 组件处理。
SIP/Diameter 消息日志记录:
CSCF 可以生成实时事件日志以供操作使用:
- SIP 消息日志记录: 可选的 SIP 消息日志记录(INVITE、REGISTER 等)
- Diameter 消息日志记录: 可选的 Diameter 事务日志记录(Cx、Rx、Ro)
- 系统事件: 配置更改、错误、故障
这些日志是瞬态操作日志,而不是持久的呼叫记录。日志保留是可配置的,通常是短期的(几小时到几天),仅用于调试目的。
1.2.3 分析能力
实时监控:
Phoenix LiveView 网络控制面板提供:
-
注册监控:
- 查看所有注册用户,带分页
- 按 IMPU、联系、IMPI 搜索
- 注册详细信息(联系、路径、用户代理、过期)
- 强制注销能力
-
对话监控:
- 活动呼叫会话视图
- Call-ID、From/To URI、状态、持续时间
- 呼叫终止能力(发送 BYE)
- 每 5 秒自动刷新
-
系统状态:
- Diameter 对等状态(HSS、PCRF、OCS 连接)
- 前端网关状态
- 系统容量指标
- IPsec 隧道容量(P-CSCF)
关于历史数据的说明:
CSCF 组件不维护历史数据。对于历史呼叫记录、CDR 和通信模式分析,合法拦截机构必须与**OmniTAS(电话应用服务器)**协调,该服务器处理所有 CDR 生成和长期呼叫跟踪。
实时服务触发可见性:
S-CSCF 实时处理初始过滤标准(iFC):
- iFC 评估确定每个呼叫触发哪些应用服务器
- 实时可见性显示哪些服务被调用
- 应用服务器路由决策在 SIP 消息流中可见
网络状态:
- HSS 连接状态(Diameter Cx 接口)
- S-CSCF 选择分布(I-CSCF)
- 呼叫路由模式
- 应用服务器响应时��
- Diameter 事务性能
1.3 对策能力
1.3.1 隐私保护机制
通信机密性:
-
IPsec 隧道: UE 和 P-CSCF 之间的 ESP(封装安全负载)隧道
- 加密:AES-CBC、AES-GCM
- 认证:HMAC-SHA1、HMAC-SHA256
- 从 IMS AKA 派生密钥(CK/IK 来自 HSS)
- 每个 UE 的安全关联
-
TLS/TLS 支持:
- 支持 SIP over TLS(SIPS)
- 支持 Diameter over TLS(HSS、PCRF、OCS 连接)
- 基于证书的认证
- 通过 ECDHE/DHE 实现完美前向保密(PFS)
-
SIP 隐私头:
- P-Asserted-Identity(经过认证的来电显示)
- 隐私头(请求来电显示抑制)
- 匿名会话支持
访问控制:
- Web UI 认证和访问控制
- 控制面板的 BINRPC 接口(端口 2046)
- 注册访问控制和角色分离
- SIP 认证(通过 HSS 的 AKA)
- Diameter 对等认证
审计日志:
- 全面的 SIP 和 Diameter 消息日志记录
- 注册/注销事件
- 呼叫建立和终止事件
- 通过 Web UI 的管理操作
- 配置更改
- 认证成功/失败
1.3.2 数据保护特性
访问安全:
- 基于角色的访问控制(RBAC)
- 只读监控账户
- 认证和授权控制
系统加固:
- 最小暴露的网络端口(5060 SIP、3868 Diameter、8086 Web UI)
- SIP 消息合理性检查
- Max-Forwards 循环预防
- 速率限制和防洪保护
- 消息大小限制
- 工作进程隔离
1.4 合法拦截集成点
1.5.1 ETSI 合法拦截架构
CSCF 系统为符合 ETSI 的合法拦截提供基础。虽然原生 X1/X2/X3 接口并未内置,但所有必要的数据访问点均存在,以便与外部合法拦截中介功能(LIMF)系统集成。
标准 ETSI LI 接口:
X1 接口 - 管理功能:
- 目的: 来自执法机构的授权和目标提供
- 方向: LEMF → LIMF(双向)
- 功能:
- 为目标(IMPU、IMSI、MSISDN)激活/停用拦截
- 设置拦截持续时间和有效期
- 配置过滤标准(身份、时间窗口)
- 检索拦截状态
- 与 CSCF 的集成:
- LIMF 维护授权数据库(目标列表 - 外部于 CSCF)
- LIMF 监控 CSCF 的实时状态和消息日志,以匹配会话
- LIMF 根据 X1 提供的标准进行过滤
X2 接口 - IRI(拦截相关信息)交付:
- 目的: 向执法机构交付会话元数据
- 方向: LIMF → LEMF(单向)
- 数据格式: 符合 ETSI TS 102 232 的 XML/ASN.1
- 来自 CSCF 的内容:
- 会话标识符(Call-ID、对话标签)
- 主叫方(From URI、P-Asserted-Identity、IMPU、IMSI、MSISDN)
- 被叫方(To URI、请求 URI、IMPU、IMSI、MSISDN)
- 注册时间戳
- 会话建立/拆除时间戳
- 网络位置(P-Access-Network-Info、基站、位置区域)
- P-CSCF/S-CSCF 地址(网络元素识别)
- 用户代理(设备类型)
- 漫游信息(P-Visited-Network-ID)
X3 接口 - CC(通信内容)交付:
- 目的: 交付实际通信内容
- 方向: LIMF → LEMF(单向)
- 数据格式: 符合 ETSI TS 102 232
- 来自 CSCF 的内容:
- SIP 消息体(SDP 会话描述)
- 媒体服务器地址(用于 RTP 拦截)
- 编解码器信息
- SIP MESSAGE 即时消息(主体内容)
- 应用数据(如果通过 CSCF 路由)
注意: 对于语音/视频 RTP 流,LIMF 还必须与媒体服务器(OmniTAS)集成,以捕获实际媒体内容。CSCF 提供会话设置信息(SDP),显示媒体流向。
1.5.2 CSCF 数据源用于合法拦截
1. 注册数据访问:
P-CSCF 注册数据:
- IMPU(公共身份)
- 联系 URI(UE 网络地址)
- 接收的 IP 和端口
- 路径头
- 注册过期
- IPsec SPI 和端口信息
- 用户代理字符串
S-CSCF 注册数据:
- 公共身份(IMPU)、禁止状态、注册状态
- 带有路径头、用户代理、接收地址的联系绑定
- 私有身份(IMPI)到公共身份的映射
- 来自 HSS 的用户配置文件(XML 格式,包括用户详细信息)
访问方法:
- 只读数据访问接口
- Web UI 监控接口
- 实时事件日志记录
2. 活动会话数据:
S-CSCF 对话数据:
- Call-ID(唯一会话标识符)
- From/To URI 和标签
- 主叫和被叫的 CSeq 编号
- 双方的路由集
- 联系地址
- 对话状态(早期���确认、已删除)
- 开始时间戳
- 超时值
访问方法:
- 实时对话状态监控
- 按会话标识符或方标识符查询
- 法医分析的导出能力
3. SIP 消息日志记录:
日志捕获:
- 所有 SIP 消息均可记录(REGISTER、INVITE、MESSAGE 等)
- 可配置的日志级别
- 带时间戳的结构化日志
- Syslog 或基于文件的日志记录
日志分析:
- 解析 SIP 头以提取身份
- 提取 SDP 以获取媒体信息
- 跟踪消息序列(CSeq)
- 关联请求和响应
示例日志条目:
INFO: INVITE sip:+33687654321@ims.mnc001.mcc001.3gppnetwork.org SIP/2.0
From: <sip:+33612345678@ims.mnc001.mcc001.3gppnetwork.org>;tag=abc123
To: <sip:+33687654321@ims.mnc001.mcc001.3gppnetwork.org>
Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@ims.mnc001.mcc001.3gppnetwork.org
P-Asserted-Identity: <sip:+33612345678@ims.mnc001.mcc001.3gppnetwork.org>
P-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-id-3gpp=208011234567890
Content-Type: application/sdp
v=0
o=- 1234567890 1234567890 IN IP4 192.168.1.100
s=-
c=IN IP4 10.20.30.40
t=0 0
m=audio 49170 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
4. Diameter 消息日志记录:
Cx 消息(HSS 通信):
- UAR/UAA:用户授权(包含 IMPU、IMPI)
- LIR/LIA:��置信息(包含 IMPU、服务 S-CSCF)
- MAR/MAA:认证(包含 IMPI、认证向量)
- SAR/SAA:服务器分配(包含 IMPU、IMPI、用户配置文件 XML)
可用的 Diameter 数据:
- IMSI(来自用户配置文件)
- MSISDN(来自用户配置文件)
- 相关的 IMPU(每个用户多个身份)
- 用户配置文件(服务、禁止、漫游状态)
日志示例:
Diameter Cx SAA received from HSS:
User-Name: user@ims.mnc001.mcc001.3gppnetwork.org
Public-Identity: sip:+33612345678@ims.mnc001.mcc001.3gppnetwork.org
Server-Name: sip:scscf.ims.mnc001.mcc001.3gppnetwork.org
Result-Code: 2001 (Success)
User-Data: <XML user profile with IMSI, MSISDN, iFC>
5. 紧急呼叫数据(E-CSCF):
IMEI 到 MSISDN 映射:
- P-CSCF 在 UE 使用 IMEI 注册时创建映射
- 24 小时 TTL(生存时间)
- 用于紧急回拨
- 在 P-CSCF 集群节点之间同步
数据保留:
- IMEI 到 MSISDN 的映射保留 24 小时
- 可用于紧急回拨关联
- 通过监控接口访问
紧急呼叫日志:
- 紧急号码检测(112、911 等)
- 从联系或 P 头提取 IMEI
- 位置信息(来自 HELD 或 P-Access-Network-Info)
- PSAP(公共安全应答点)路由
- E-CSCF 到紧急 AS 路由
1.5.3 LIMF 的集成能力
该系统为合法拦��中介功能(LIMF)系统提供多种集成方法:
-
注册和会话数据访问:
- 实时访问注册数据(身份、位置、设备信息)
- 活动会话监控(呼叫状态、参与者、时间)
- 历史查询能力
-
事件日志记录:
- SIP 消息日志记录,具有可配置的详细级别
- Diameter 消息日志记录,用于 HSS 交互
- 带时间戳的结构化事件日志
-
实时监控:
- 实时注册状态监控
- 活动呼叫会话跟踪
- 紧急呼叫检测和路由信息
集成方法支持基于轮询和事件驱动的架构,以便与 LIMF 连接。
1.5.4 CSCF 数据映射到 LI 接口
CSCF 数据到 IRI(X2)映射:
| CSCF 数据源 | IRI 字段 | 数据示例 |
|---|---|---|
| IMPU(SIP 头/内存状态) | A 方 | sip:+33612345678@ims.mnc001.mcc001.3gppnetwork.org |
| IMPI(SIP 头/内存状态) | 认证 ID | user@ims.mnc001.mcc001.3gppnetwork.org |
| IMSI(HSS 用户配置文件) | 用户 ID | 208011234567890 |
| MSISDN(HSS 用户配置文件) | 电话号码 | +33612345678 |
| Call-ID(SIP 头/对话状态) | 会话 ID | f81d4fae-7dec-11d0-a765-00a0c91e6bf6@... |
| From/To(SIP 头) | A 方/B 方 | sip:+33612345678@... / sip:+33687654321@... |
| 注册时间戳(内存���) | 事件时间 | 2025-11-29T10:30:00Z |
| P-Access-Network-Info(SIP 头) | 位置 | 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=208011234567890 |
| 接收的 IP(SIP 联系) | UE IP 地址 | 10.20.30.40:5060 |
| P-CSCF 地址(SIP 路由) | 网络元素 | 10.4.12.165:5060 |
| S-CSCF 地址(SIP 路由) | 网络元素 | 10.4.11.45:5060 |
CSCF 数据到 CC(X3)映射:
| CSCF 数据源 | CC 字段 | 数据示例 |
|---|---|---|
| SIP MESSAGE 主体 | 即时消息内容 | "你好,你好吗?" |
| INVITE 中的 SDP | 媒体会话信息 | RTP 端点、编解码器 |
| 媒体服务器地址 | RTP 拦截目标 | 10.50.60.70:49170 |
注意: 对于实际的语音/视频内容(RTP),LIMF 必须与媒体服务器(OmniTAS)协调,以捕获 RTP 流。CSCF 仅提供会话设置信息。
1.5 基于 Web 的监控接口
该系统包括一个基于 Web 的控制面板,用于实时监控和管理访问:
监控能力:
- 实时注册状态(活跃用户、位置、设备信息)
- 活动呼叫会话监控(参与者、呼叫状态、时间)
- 按身份(IMPU、IMPI、IMSI、MSISDN)搜索和过滤
- IPsec 隧道状态和容量监控
- 法医分析的导出能力
安全性:
- HTTPS/TLS 加密访问
- 需要认证
- 所有管理操作的审计日志记录
- 监控人员的只读访问模式
2. 加密和密码分析能力
2.1 密码能力概述
OmniCSCF 实现了多层加密保护,用于信令和用户数据。本节记录了 ANSSI 所要求的所有密码能力。
2.2 IPsec ESP 隧道加密(UE 到 P-CSCF)
2.2.1 IPsec 协议实现
支持的 IPsec 模式:
- ESP(封装安全负载) - IP 协议 50
- 传输模式(非隧道模式)
- 保护 UE 和 P-CSCF 之间的 SIP 信令
支持的加密算法:
该系统支持内核 IPsec:
-
AES-CBC(高级加密标准 - 密码块链接):
- AES-128-CBC(128 位密钥)
- AES-192-CBC(192 位密钥)
- AES-256-CBC(256 位密钥) - 推荐
-
AES-GCM(高级加密标准 - Galois/计数器模式):
- AES-128-GCM(128 位密钥,带 AEAD)
- AES-256-GCM(256 位密钥,带 AEAD) - 推荐
-
3DES-CBC(三重 DES - 密码块链接):
- 168 位有效密钥(已弃用,遗留兼容性)
-
NULL 加密:
- 无机密性(仅认证)
- 仅用于调试或特定合规场景
支持的认证算法:
-
HMAC-SHA1(基于哈希的消息认证码 - SHA-1):
- 160 位输出
- 遗留兼容性
-
HMAC-SHA256(HMAC - SHA-256):
- 256 位输出
- 推荐
-
HMAC-SHA384(HMAC - SHA-384):
- 384 位输出
-
HMAC-SHA512(HMAC - SHA-512):
- 512 位输出
-
HMAC-MD5:
- 128 位输出
- 已弃用,仅用于遗留兼容性
密钥派生:
IPsec 密钥(CK - 密码密钥,IK - 完整性密钥)由 IMS AKA 认证派生:
- UE 与 S-CSCF/HSS 执行 AKA 认证
- HSS 生成 CK(128 位)和 IK(128 位)
- S-CSCF 通过内部接口将 CK/IK 传递给 P-CSCF
- P-CSCF 使用 CK/IK 与 UE 建立 IPsec 安全关联
- CK 用于 ESP 加密
- IK 用于 ESP 认证
安全关联参数:
- 生命周期: 与 SIP 注册过期相关(通常为 599 秒)
- 重放保护: 启用(防重放窗口)
- 序列号: 32 位或 64 位(ESN - 扩展序列号)
- 完美前向保密: 不适用(密钥来自 AKA,而非 Diffie-Hellman)
实现:
P-CSCF 的 IPsec 能力:
- 与 Linux 内核 IPsec 堆栈(XFRM 框架)接口
- 通过内核 API 配置安全策略和关联
- SPI(安全参数索引)分配和管理
- 保护流量的端口分配
2.2.2 IPsec 配置能力
密码套件选择:
P-CSCF 可以配置为优先选择特定的密码套件:
优先(强安全性):
- ESP 使用 AES-256-GCM 和 HMAC-SHA256
- ESP 使用 AES-256-CBC 和 HMAC-SHA256
支持(兼容性):
- ESP 使用 AES-128-CBC 和 HMAC-SHA1
- ESP 使用 3DES-CBC 和 HMAC-SHA1(遗留)
密钥管理:
- 不使用 IKE(互联网密钥交换)
- 密钥通过 IMS AKA 提供(CK/IK 来自 HSS)
- 通过内核 XFRM 手动设置安全关联
- 注册过期时自动拆除 SA
隧道生命周期:
- UE 注册 → AKA 认证 → 生成 CK/IK
- P-CSCF 从 S-CSCF 接收 CK/IK
- P-CSCF 分配 SPI 对(客户端 SPI、服务器 SPI)
- P-CSCF 分配端口对(客户端端口、服务器端口)
- P-CSCF 使用 CK/IK 配置内核 IPsec SA
- P-CSCF 在 200 OK 中将 IPsec 参数发送给 UE(Security-Server 头)
- UE 使用相同参数配置 IPsec SA
- 所有后续 SIP 流量通过 ESP 隧道流动
- 在注册过期或注销时:SA 被删除,资源被释放
2.3 TLS 加密(SIP 和 Diameter)
2.3.1 SIP 的 TLS(SIPS)
支持的 TLS 版本:
- TLS 1.2(RFC 5246) - 支持
- TLS 1.3(RFC 8446) - 支持(如果内核/库支持)
- TLS 1.0/1.1 - 已弃用(默认禁用)
- SSL 2.0/3.0 - 不支持(已知漏洞)
TLS 实现:
该系统使用 OpenSSL 或 LibreSSL:
- 行业标准的 TLS 库
- 经过密码学验证的实现
- 定期安全更新
支持的密码套件:
TLS 1.3(推荐):
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
- TLS_CHACHA20_POLY1305_SHA256
TLS 1.2(支持):
- ECDHE-RSA-AES256-GCM-SHA384(完美前向保密)
- ECDHE-RSA-AES128-GCM-SHA256(完美前向保密)
- ECDHE-ECDSA-AES256-GCM-SHA384(完美前向保密)
- DHE-RSA-AES256-GCM-SHA384(完美前向保密)
- DHE-RSA-AES128-GCM-SHA256(完美前向保密)
禁用弱密码:
- 无 RC4
- 无 MD5
- 无 NULL 加密
- 无 EXPORT 级别的密码
- 无 DES/3DES(已弃用)
证书支持:
- X.509 证书(标准格式)
- RSA 密钥: 最小 2048 位,推荐 4096 位
- ECDSA 密钥: 支持 P-256、P-384、P-521 曲线
- 证书链验证
- CRL(证书撤销列表)检查(可选)
- OCSP(在线证书状态协议)(可选)
TLS 特性:
- 完美前向保密(PFS): 通过 ECDHE/DHE 密钥交换
- 服务器名称指示(SNI): 支持
- TLS 会话恢复: 支持(性能优化)
- 客户端证书认证: 支持(双向 TLS)
SIP over TLS(SIPS):
- 传输:TCP 带 TLS 加密
- 端口:5061(标准 SIPS 端口)
- 用于 CSCF 之间的通信(可选)
- 用于受信网络连接
2.3.2 Diameter 的 TLS
Diameter 能力:
该系统支持:
- Diameter over SCTP(优先考虑可靠性)
- Diameter over TCP with TLS
- 端口: 3868(标准 Diameter 端口)
用例:
- Cx 接口: S-CSCF/I-CSCF 到 HSS(用户数据、认证)
- Rx 接口: P-CSCF 到 PCRF(QoS 策略)
- Ro 接口: S-CSCF 到 OCS(在线计费 - 如果启用)
Diameter 的 TLS 配置:
与 SIP 相同的密码套件
- TLS 1.2/1.3
- ECDHE/DHE 密钥交换(PFS)
- AES-GCM 加密
- SHA256/SHA384 认证
基于证书的认证:
- Diameter 对等通过 TLS 证书进行认证
- 双向 TLS(客户端和服务器证书)
- 证书中的 FQDN(完全合格域名)验证
- 受信 CA 链验证
2.4 认证密码学
2.4.1 IMS AKA 密码功能
3GPP AKA 算法(MILENAGE):
用于生成认证向量(RAND、AUTN、XRES、CK、IK):
密码功能:
- f1: 消息认证功能(计算 MAC-A 和 MAC-S)
- f2: 响应功能(从 RAND 和 K 计算 RES)
- f3: 密码密钥派生(计算 CK)
- f4: 完整性密钥派生(计算 IK)
- f5: 匿名密钥功能(计算 AK 以保护 IMSI 隐私)
密钥材料:
- K: 128 位永久用户密钥(存储在 ISIM 和 HSS 中)
- OPc: 操作员变体密钥(从 K 和 OP 派生)
- RAND: 128 位随机挑战
- SQN: 48 位序列号(防重放保护)
AKA 序列:
- HSS 生成 RAND(���码学随机)
- HSS 计算 MAC-A = f1(K, RAND, SQN, AMF)
- HSS 计算 AUTN = (SQN ⊕ AK) || AMF || MAC-A
- HSS 计算 XRES = f2(K, RAND)
- HSS 计算 CK = f3(K, RAND)
- HSS 计算 IK = f4(K, RAND)
- HSS 将 {RAND, AUTN, XRES, CK, IK} 发送给 S-CSCF
- S-CSCF 用 RAND 和 AUTN 向 UE 发起挑战
- UE 使用 ISIM 计算 RES = f2(K, RAND)
- UE 将 RES 发送给 S-CSCF
- S-CSCF 将 RES 与 XRES 进行比较(认证验证)
安全属性:
- 双向认证: UE 通过 AUTN 验证 HSS,HSS 通过 RES 验证 UE
- 密钥新鲜性: RAND 是随机的,SQN 防止重放
- 密钥派生: CK 和 IK 从共享秘密 K 派生
2.4.2 HTTP 摘要认证
对于非 IMS 认证(如果使用):
算法: MD5(RFC 2617)
- 哈希函数: MD5(128 位输出)
- 挑战-响应: 基于随机数
- 重放保护: 带时间戳的随机数
注意: 使用 MD5 的 HTTP 摘要被认为是弱的。强烈推荐使用 IMS AKA。
2.5 哈希和完整性
2.5.1 可用的哈希函数
该系统可以使用(通过 OpenSSL/内核加密):
- SHA-256: 256 位输出,推荐
- SHA-384: 384 位输出
- SHA-512: 512 位输出
- SHA-1: 160 位输出,因安全原因已弃用
- MD5: 128 位输出,因安全原因已弃���
用途:
- 用于 IPsec/TLS 的 HMAC 构造
- 数据完整性验证
- 随机数生成
- 重复检测(呼叫 ID 哈希)
2.5.2 消息完整性
SIP 消息完整性:
- IPsec ESP: HMAC-SHA256 用于经过认证的 SIP over IPsec
- TLS: 通过 TLS MAC 进行消息认证
- SIP 摘要: 认证头完整性
Diameter 消息完整性:
- TLS: Diameter over TLS 提供消息认证
- HMAC: Diameter 消息可以包含 HMAC AVP 以确保完整性
2.6 随机数生成
密码学安全的随机数生成:
该系统依赖于:
- Linux 内核 /dev/urandom: 密码学安全的 PRNG
- OpenSSL RAND_bytes(): CSPRNG(密码学安全伪随机数生成器)
用途:
- SPI 分配(随机起始值)
- 呼叫 ID 生成
- 分支参数生成
- 认证的随机数生成
- 会话 ID 生成
2.7 密钥管理
2.7.1 TLS 证书管理
证书存储:
- 文件系统存储,权限受限(0600)
- 位于:
/etc/system/tls/ - 证书和密钥采用 PEM 格式
证书生成:
# 生成 RSA 4096 位私钥
openssl genrsa -out system-key.pem 4096
# 生成 CSR(证书签名请求)
openssl req -new -key system-key.pem -out system.csr \
-subj "/C=FR/ST=IDF/L=Paris/O=Omnitouch/CN=scscf.ims.mnc001.mcc001.3gppnetwork.org"
# 自签名证书(开发/测试)
openssl x509 -req -days 365 -in system.csr \
-signkey system-key.pem -out system-cert.pem
# 生产:将 CSR 提交给受信 CA
证书轮换:
- 建议每年更新证书
- 优雅地重启服务以加载新证书
- 不需要停机
2.7.2 IPsec 密钥管理
密钥派生:
- CK(密码密钥)和 IK(完整性密钥)来自 IMS AKA
- 128 位密钥来自 HSS
- 通过 Diameter Cx(通过 TLS)安全传递
密钥生命周期:
- 与 SIP 注册过期相关(通常为 599 秒)
- 在注册刷新时重新密钥
- 在注销时自动销毁密钥
密钥存储:
- 瞬态(仅在活动注册期间内存中)
- 安装在内核 IPsec 堆栈中
- 无持久密钥存储
- 当 SA 被删除时,密钥被丢弃
2.8 密码分析抵抗
2.8.1 算法选择
抵御密码分析:
- 不使用自定义算法: 仅使用行业标准、经过同行评审的算法
- 强密钥大小: AES-256、RSA-4096、SHA-256
- 认证加密: AES-GCM(AEAD - 带相关数据的认证加密)
- 完美前向保密: TLS 中的 ECDHE/DHE
- 定期更新: 应用 OpenSSL/LibreSSL 安全补丁
禁用已弃用的算法:
- MD5(哈希冲突)
- RC4(流密码弱点)
- DES/3DES(块大小小,密钥长度短)
- SSL 2.0/3.0(协议漏洞)
- TLS 1.0/1.1(BEAST、POODLE 攻击)
2.8.2 边信道攻击缓解
时间攻击抵抗:
- 对认证响应进行恒定时间比较
- 在密码操作中无时间泄露(通过 OpenSSL)
内存保护:
- 内核 IPsec 堆栈隔离
- 进程内存隔离
- 对敏感数据不使用交换(如果配置)
2.9 合规性和标准
密码标准合规性:
- NIST SP 800-52: TLS 指南
- NIST SP 800-131A: 密码算法过渡
- RFC 7525: TLS 推荐
- ETSI TS 133 203: 3GPP 接入安全(IMS AKA)
- ETSI TS 133 210: IP 网络层安全(IPsec)
- 3GPP TS 33.203: IMS 的接入安全
- 3GPP TS 33.210: 网络域安全
法国密码法规:
- 无出口限制的密码学(所有标准算法)
- 标准密码手段(无政府后门)
- ANSSI 密码产品认证(如有需要)