密钥分发

admin 2026-06-30 06:59:26 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档系统阐述了密钥分发的核心理念、技术实现与安全要求。密钥分发是密钥管理的关键环节,涉及密钥传输、导入和导出三个子过程,分为人工离线分发和自动在线分发两种模式。文档详细说明了SDF接口中的密钥分发函数,包括KEK对称加密分发和ECC数字信封分发两种典型模式,强调了密钥在外部必须始终受密码技术保护的安全原则。同时依据GB/T43206-2023和GM/T0051-2016等标准提出了具体的技术要求和测评要点。 综合评分: 85 文章分类: 技术标准,安全建设,数据安全,应用安全,网络安全


cover_image

密钥分发

原创

利刃信安 利刃信安

利刃信安

2026年6月28日 14:30 北京

在小说阅读器读本章

去阅读

密钥分发

一、核心理念与定义

密钥分发是密钥管理体系中承上启下的关键环节,其本质是在受控的安全策略约束下,实现密钥从产生端到使用端的可信转移。根据国家标准 GB/T 25069-2022《信息安全技术 术语》的定义,密钥分发是指”按照安全协议将密钥分配给对应实体的过程”。

从全生命周期看,密钥分发可进一步拆解为三个紧密衔接的子过程:密钥传输(对外交付)密钥导入(接收装载) 和 密钥导出(取出包装)。三者共同构成密钥在空间上流动的完整链条。

| 维度 | 密钥传输(对外交付) | 密钥导入 | 密钥导出 | | — | — | — | — | | 操作定义 | 按照安全协议将密钥交付给对应实体的过程 | 将密钥数据加载到密码设备内部的过程 | 从密码设备中取出密钥数据的过程 | | 核心方向 | 系统→系统 或 中心→设备(密钥从持有方转移到接收方) | 外部→内部(设备外部→密码设备内部) | 内部→外部(密码设备内部→外部) | | 密钥形态 | 密文(加密后)或密钥分量 | 必须是受保护形态(密文、密钥分量、数字信封)——密钥进入设备前已经过加密或拆分保护 | 必须是受保护形态(加密、数字信封);私钥和对称密钥禁止明文导出(公钥除外) | | 主要安全关注点 | 传输通道的机密性、完整性、真实性,防止中间人攻击 | 确保密钥进入设备前的安全,防止泄露 | 确保密钥离开设备后仍受保护,防止非授权备份 | | 典型函数 | 发送方:SDF_Encrypt(以KEK为密钥对称加密)、SDF_ExternalEncrypt_ECC(以接收方公钥ECC加密,即数字信封) | SDF_ImportKeyWithKEK (KEK解密导入)、SDF_ImportKeyWithISK_ECC(ECC私钥解密导入)、SDF_ImportKeyWithISK_RSA(RSA私钥解密导入) | 公钥:SDF_ExportSignPublicKey_ECCSDF_ExportEncPublicKey_ECCSDF_ExportSignPublicKey_RSASDF_ExportEncPublicKey_RSA;对称密钥/私钥:通过 SDF_Encrypt(KEK加密)或 SDF_ExternalEncrypt_ECC(数字信封)间接实现 | | 高风险行为 | 使用不可控信道(如普通邮件)分发明文密钥 | 绕开 SDF 安全接口,以明文方式直接写入密钥数据到设备 | 以明文形式将私钥或对称密钥复制到 U 盘 |

注意:GM/T 0018-2023(SDF 接口规范)中,SDF_ExportSignPublicKey_ECC 和 SDF_ExportEncPublicKey_ECC 仅能导出非对称密钥对中的公钥,公钥本身无需保密,因此明文导出是安全的。对于对称密钥和私钥,SDF 接口没有直接的导出函数,必须通过 SDF_Encrypt(以KEK为密钥进行对称加密)或 SDF_ExternalEncrypt_ECC(外部公钥ECC加密,即数字信封)等加密机制将密钥以密文形态输出,间接实现安全导出。

宏观理解

传输是”交付”环节——把密钥安全地送到目的地;

导入是”落地”环节——把到货的密钥安全地装载进密码模块;

导出是”离岸”环节——把设备里的密钥安全地打包带走。


二、密钥分发模式与方式

根据分发过程中是否需要人工介入,密钥分发可分为 人工分发(离线) 和 自动分发(在线) 两大模式。

2.1 人工(离线)分发

人工分发指利用加密传输、知识拆分等手段,通过人工将密钥从一个密码产品(如密钥管理系统、密钥分发系统)分发到其他产品中。该方式效率较低,仅适用于少量密钥的分发,通常用于根密钥(密钥加密密钥,KEK)的分发。

人工分发必须满足以下安全要求:

  • • 密钥由授权的分发者分发,并由授权的接收者接收;
  • • 进行人工分发的实体必须是可信的;
  • • 具备足够的机制(如加密、紧急销毁机制等)保证密钥安全性,提供对截取、假冒、篡改、重放等攻击手段的对抗能力。

2.2 自动(在线)分发

自动分发借助密码技术在线完成,其安全性主要依托密码技术本身来保证。对于对称密钥,可通过 KEK 加密或数字信封等方式分发;对于非对称密钥对中的私钥,可通过数字信封等方式加密分发。

根据 GM/T 0051-2016《密码设备管理 设备管理技术规范》,密钥分发和加载可通过以下方式实现:

  • • 人工加载
  • • 移动存储介质直接加载
  • • 专用密钥传输设备加载
  • • 网络分发

2.3 不同密钥形态下的分发要求

| 密钥形态 | 分发要求 | | — | — | | 明文密钥 | 在两个密码设备之间传递时,应采用分量传递、口令保护等方式,防止密钥泄露、篡改和替换 | | 密钥分量 | 分发过程不应泄露密钥分量的任何部分给未授权人 | | 密文密钥 | 可通过网络分发和加载,分发过程应防止篡改和替换 |

重要原则(依据 GM/T 0051-2016):应根据密钥分发策略选择在线或离线分发。在线密钥分发过程应遵循标准密钥分发协议;离线分发支持多种介质(专用密钥加载装置、通用移动密钥加载装置等),应遵循介质的安全分发协议。密钥封装及导入的核心安全处理(加密、分量拆分等)与分发方式无关——无论采用哪种分发方式,密钥在设备外部始终需要密码技术保护。


三、密钥分发安全技术要求与测评

3.1 测评内容(依据 GB/T 43206-2023《信息安全技术 信息系统密码应用测评要求》)

检查目的:验证密钥分发过程是否保证了密钥的机密性、完整性以及分发者、接收者身份的真实性。

检查对象

  • • 密钥本身;
  • • 密钥管理制度及策略类文档;
  • • 信息系统中的密码产品、密码服务、密码算法、密码技术实现。

检查要点

| 序号 | 检查内容 | 核实要点 | | — | — | — | | 1 | 密钥分发方式 | 确认信息系统内部采用何种密钥分发方式(离线分发、在线分发、混合分发) | | 2 | 密码技术保护 | 确认密钥传递过程中使用了何种密码技术保证机密性、完整性与真实性,并核实采用密码技术的合规性、正确性和有效性 |

3.2 技术要求(依据 GM/T 0051-2016)

密钥分发模块应满足以下功能要求:

(1)密钥分发策略管理:支持组合密钥分发条件的策略集合,包括:

  • • 分发时间
  • • 密码产生装置编号
  • • 密钥类型
  • • 密钥数量
  • • 被管设备型号或名称
  • • 被管设备唯一编号
  • • 被管设备 IP 地址
  • • 密管设备所属管理系统
  • • 密管设备使用单位
  • • 分发未成功时的处理策略等

(2)安全性与协议要求

  • • 确保密钥管理指令的完整性,以及敏感数据(密钥等)的机密性和完整性;
  • • 支持标准密钥分发协议;
  • • 支持多种分发方式(在线分发和将业务密钥导出至智能卡、智能密码钥匙等载体离线分发);
  • • 密钥分发格式对于离线、在线分发方式应保持一致;
  • • 支持密钥更新策略,包括:根据密钥属性(密钥类型、系统、设备等)划分的生命周期更新策略;根据密钥泄露或威胁等级提高时的特殊情况制定的应急更新策略。

四、密钥分发协议流程与安全通道

密钥分发通常借助设备管理平台的安全通道技术实现。典型协议流程如下:

  1. 1. 安全通道建立:设备管理平台与被管设备以设备管理协议建立安全通道;随后,密钥分发双方通过该安全通道协商本次分发的会话密钥。
  2. 2. 密钥转换:密钥管理应用从数据库中取出被主密钥加密的待分发密钥(原子密钥),调用密码设备将原子密钥转换为本次会话密钥加密。
  3. 3. 封装与传输:将标准封装的密钥通过安全通道二次保护,分发给被管设备。

分发会话密钥的协商过程是整个协议安全性的基石,必须确保协商过程中身份认证的可靠性和会话密钥的随机性。


五、SDF 接口中的密钥分发函数全景

GM/T 0018-2023《密码设备应用接口规范》(SDF)中,与密钥分发直接相关的函数集中在密钥导入密钥导出两类。以下按密钥导入→密钥导出顺序梳理。

5.1 函数全景表

| 阶段 | SDF 函数 | 函数类型 | 功能说明 | | — | — | — | — | | 密钥导入 | SDF_ImportKeyWithKEK | 密钥管理 | 导入密文会话密钥,用 KEK(SM4-ECB)解密后返回密钥句柄 | | | SDF_ImportKeyWithISK_ECC | 密钥管理 | 导入密文会话密钥(数字信封),用内部 ECC 私钥解密后返回密钥句柄 | | | SDF_ImportKeyWithISK_RSA | 密钥管理 | 导入密文会话密钥(数字信封),用内部 RSA 私钥解密后返回密钥句柄 | | 密钥导出(公钥) | SDF_ExportSignPublicKey_ECC | 密钥管理 | 导出设备内部 ECC 签名公钥(供发送方加密会话密钥) | | | SDF_ExportEncPublicKey_ECC | 密钥管理 | 导出设备内部 ECC 加密公钥 | | | SDF_ExportSignPublicKey_RSA | 密钥管理 | 导出设备内部 RSA 签名公钥 | | | SDF_ExportEncPublicKey_RSA | 密钥管理 | 导出设备内部 RSA 加密公钥 | | 密钥导出(对称密钥/私钥) | SDF_Encrypt | 对称运算 | 用 KEK 对密钥进行对称加密后输出密文(KEK 加密分发) | | | SDF_ExternalEncrypt_ECC | 非对称运算 | 用外部 ECC 公钥对密钥进行加密后输出密文(数字信封分发) |

说明

  1. 1. SDF 接口没有直接导出对称密钥或私钥的函数。上表中 SDF_Encrypt 和 SDF_ExternalEncrypt_ECC 并非专门的”密钥导出”函数,而是通用的加密运算接口。在密钥分发场景中,它们用于将密钥数据加密后以密文形态输出,间接实现安全导出。
  2. 2. 在 SDF 标准的实际工程设计中,密钥分发通常通过 SDF_GenerateKeyWithKEKSDF_GenerateKeyWithEPK_ECC 等 “生成+加密合体” 函数完成——密钥在生成的同时即被加密输出,从源头避免明文暴露。本文为清晰阐述密钥分发各阶段的安全机制,将”加密”环节从密钥生成过程中解耦出来单独讨论。

5.2 典型分发模式与函数对应关系

模式一:KEK 对称加密分发(预共享密钥场景)

发送方                                    接收方
SDF_Encrypt(key, KEK)  ────密文────▶  SDF_ImportKeyWithKEK()
  │ 以KEK为密钥对称加密                     │ KEK解密 + 装载
  ▼                                      ▼
密文(网络传输)                           密钥句柄(可用)

流程说明:

  1. 1. 发送方使用 SDF_Encrypt,以 KEK 作为加密密钥,将待分发密钥加密为密文;
  2. 2. 密文通过网络安全传输到接收方;
  3. 3. 接收方调用 SDF_ImportKeyWithKEK,用 KEK 解密密文,将密钥装载到密码设备内部。

适用场景:双方预先通过离线方式共享了 KEK(密钥加密密钥)。

模式二:ECC 数字信封分发(公钥体制场景)

接收方(先导出公钥)                          发送方
SDF_ExportEncPublicKey_ECC()  ──公钥──▶  SDF_ExternalEncrypt_ECC(key, pubKey)
  │                                       │ 用接收方公钥加密密钥
  ▼                                       ▼
公钥(明文传输,无需保密)                    密文(数字信封)

接收方(收到密文后)
SDF_ImportKeyWithISK_ECC()  ◀────密文────
  │ 内部私钥解密 + 装载
  ▼
密钥句柄(可用)

流程说明:

  1. 1. 接收方通过 SDF_ExportEncPublicKey_ECC 导出自己的 ECC 加密公钥,发送给发送方(公钥无需保密);
  2. 2. 发送方使用 SDF_ExternalEncrypt_ECC,以接收方公钥加密待分发密钥,生成数字信封密文;
  3. 3. 密文发送给接收方,接收方调用 SDF_ImportKeyWithISK_ECC,用内部 ECC 私钥解密数字信封,装载密钥。

适用场景:发送方持有接收方的公钥,通过数字信封实现一次一密的会话密钥分发。

概念区分:上述两种模式中,发送方加密密钥的函数(SDF_EncryptSDF_ExternalEncrypt_ECC)属于通用加密运算。密钥本身的生成(如 SDF_GenerateKeyWithKEKSDF_GenerateKeyWithEPK_ECC)属于密钥生成阶段,不在密钥分发范畴内。


六、密钥导入与导出的安全机制

6.1 密钥导入

定义:将已经存在于系统外部(如 U 盘、网络报文、备份文件)的密钥数据,装载到密码设备(如密码卡、USBKey、云密码机)的内部存储空间中,使其成为设备可用的密钥句柄。

SDF 接口支持

  • • SDF_ImportKeyWithKEK:导入用 KEK 加密的会话密钥密文,以 SM4-ECB 模式解密后返回密钥句柄;
  • • SDF_ImportKeyWithISK_ECC:导入用 ECC 公钥加密的会话密钥密文(即数字信封),用内部 ECC 私钥解密后返回密钥句柄;
  • • SDF_ImportKeyWithISK_RSA:导入用 RSA 公钥加密的会话密钥密文(即数字信封),用内部 RSA 私钥解密后返回密钥句柄。

操作要点

  • • 导入过程需多人同时在场操作(如密钥管理员、安全审计员、密码设备操作员共同参与);
  • • 导入后需验证密钥的正确性(如使用校验值或测试向量);
  • • 明文不得出现于设备外部,需双重控制。

重要:GM/T 0018-2023 中所有密钥导入函数均以密文形式接收密钥,不存在明文导入接口。这是 SDF 标准在接口设计层面的安全保障——从协议层面杜绝了明文密钥进入设备的可能性。

6.2 密钥导出

定义:将存储在密码设备内部的密钥,以受保护的形式提取到设备外部,通常用于密钥备份、密钥恢复或司法取证。

SDF 接口支持

  • • SDF_ExportSignPublicKey_ECC / SDF_ExportEncPublicKey_ECC:导出设备内部存储的 ECC 签名/加密公钥(明文输出,公钥无需保密);
  • • SDF_ExportSignPublicKey_RSA / SDF_ExportEncPublicKey_RSA:导出设备内部存储的 RSA 签名/加密公钥;
  • • 对称密钥和私钥的导出:SDF 没有直接的导出函数,必须通过 SDF_Encrypt(KEK对称加密)或 SDF_ExternalEncrypt_ECC(外部公钥ECC加密,即数字信封)将密钥加密为密文后间接导出。

补充说明SDF_Encrypt 需要输入明文数据和密钥句柄,因此用它导出密钥的前提是密钥数据以明文形态存在。在实际安全实践中,密钥通常不在设备外部暴露明文,SDF 标准通过 SDF_GenerateKeyWithKEK 等函数在密钥生成阶段即加密输出,从源头避免了这一暴露窗口。

操作要点

  • • 私钥和对称密钥不得明文导出,必须用公钥加密或数字信封保护;
  • • 导出后仍需确保密钥在外部环境中的受控性。

6.3 安全技术手段

(1)加密传输

利用对称加密或非对称加密算法保护密钥在导入/导出过程中的机密性,是最常用的方法。前提是通信双方需预先共享一个密钥加密密钥(KEK)或获取接收方的公钥。同时,为保障完整性,需加入完整性保护和校验机制(如 MAC、数字签名)。

数字信封是最典型的非对称加密传输方式:发送方先用随机生成的对称密钥加密数据,再用接收方的公钥加密该对称密钥,将两者一并发送。接收方先用私钥解密对称密钥,再用对称密钥解密数据。在 SDF 接口中,SDF_ExternalEncrypt_ECC(外部公钥 ECC 加密)可用于实现数字信封的非对称加密部分。

注意:SM2 密文结构为 C1C3C2,解密过程对密文篡改有两层检测能力:一是验证 C1 点是否满足椭圆曲线方程(数学性质的附带效果),二是算法规范明确规定的 C3 哈希校验——解密后重新计算 SM3(x₂ ∥ M ∥ y₂) 与 C3 比对。但这两层保护均非独立的完整性机制:C3 校验无法提供不可否认性,且不防范密钥泄露后的伪造。在需要强完整性保证的场景下,仍应结合 SM2 数字签名或 HMAC 等专用完整性保护手段。

(2)知识拆分

知识拆分是将密钥拆分为多个独立的密钥分量,导出到密码产品外部;导入时,每个密钥分量单独导入,最终在密码产品内部进行合成。单个分量不能提供原始密钥的任何有效信息。

常见的知识拆分方法:

  • • 异或拆分法:将密钥 K 拆分成若干个与其长度一致的分量 K₁、K₂…Kₙ,满足 K = K₁ ⊕ K₂ ⊕ … ⊕ Kₙ。导入时利用异或计算恢复出原密钥。每个分量与原始密钥等长,穷举搜索单个分量不会降低攻击难度。
  • • 门限算法拆分法:利用 Shamir 秘密分享方案(基于拉格朗日多项式插值构造的门限方案),将 K 拆分为 n 个密钥分量,只有大于等于 t(门限值)个分量才能恢复 K。

典型门限方案

  • • (3,5) 门限:密钥分成 5 份,任意 3 份可恢复,丢失 2 份不影响恢复(容错性较好);
  • • (5,5) 门限:密钥分成 5 份,需全部 5 份才能恢复,丢失任意 1 份将永久丢失秘密(安全性最高,但容错性最差)。

安全红线:知识拆分不得降低密钥安全性。简单地将密钥截取为若干段(如将一个 128 比特的 SM4 密钥直接截成两个 64 比特分量)是严格禁止的——这会使得穷举搜索空间从 2¹²⁸ 骤降至 2 × 2⁶⁴,攻击难度断崖式下降。合法拆分(异或拆分、Shamir 门限拆分)的共同特征是:每个分量单独来看,穷举难度与原始密钥相等(异或分量 128 比特,门限分量通常也在有限域 GF(q) 上与原始密钥空间一致)。

6.4 高安全等级要求

符合 GM/T 0028-2024《密码模块安全技术要求》安全三级/四级密码模块,要求知识拆分后的密钥分量必须通过可信信道传输。可信信道在密码模块和发送者/接收者之间建立安全可信的通信链接,用于安全传输未受保护的关键安全参数、密钥分量和鉴别数据,能够防止窃听以及来自恶意实体、恶意进程或其他装置的物理篡改或逻辑篡改。


七、安全红线与高风险防范

密钥分发环节中应重点防范以下高风险场景:

| 风险编号 | 高风险行为 | 安全后果 | | — | — | — | | R1 | 使用没有访问控制机制的存储介质(如普通信封、普通 U 盘)传输明文密钥 | 密钥在传输过程中完全暴露,且无法追溯 | | R2 | 密钥在不可控环境中分发时,未使用密码技术保护机密性和完整性 | 密钥易遭截获、篡改和替换 | | R3 | 绕开 SDF 安全接口(如 SDF_ImportKeyWithKEKSDF_ImportKeyWithISK_ECC),以明文方式直接写入密钥数据到密码设备 | 密钥在设备外部出现明文,违背”明文不得出现于设备外”的铁律;GM/T 0018-2023 中所有导入函数均要求密文输入,无明文导入接口 | | R4 | 以明文形式将私钥或对称密钥复制到 U 盘导出 | 密钥脱离设备后完全不受保护,易导致大规模泄露 | | R5 | 使用简单截取方式拆分密钥(如 128 位截成两个 64 位) | 大幅降低密钥空间,使穷举攻击变为可行 |


八、总结

密钥分发不是一个孤立的技术操作,而是贯穿密钥全生命周期的核心管理活动。其本质是在 “密钥产生” 与 “密钥使用” 之间架设一条安全可信的桥梁。无论采用离线人工分发还是在线自动分发,都必须遵循以下不可动摇的安全原则:

  1. 1. 身份可信:分发者与接收者必须经过严格认证;
  2. 2. 通道可靠:传输过程必须通过安全通道或可信信道;
  3. 3. 形态受控:密钥在设备外部必须以密文、数字信封或密钥分量形式存在,禁止明文裸露(公钥除外);
  4. 4. 机制完备:需具备完整性校验、抗重放、抗篡改等防御机制;
  5. 5. 策略可管:分发的时、空、对象、数量等要素均受策略管理和审计追踪。

从 SDF 接口层面看,GM/T 0018-2023 中与密钥分发直接相关的函数集中在密钥导入和密钥导出两类:密钥导入方面,SDF_ImportKeyWithKEK(KEK解密导入)、SDF_ImportKeyWithISK_ECC(ECC私钥解密导入)、SDF_ImportKeyWithISK_RSA(RSA私钥解密导入)覆盖了三种主流解密装载方式;密钥导出方面,公钥通过 SDF_ExportSignPublicKey_ECC / SDF_ExportEncPublicKey_ECC 等函数直接导出,对称密钥和私钥则通过 SDF_Encrypt(KEK加密)或 SDF_ExternalEncrypt_ECC(数字信封)间接实现密文导出。所有涉及密钥跨边界传输的函数均以密文形态操作,从接口设计层面杜绝了明文泄露的可能。

密钥导入是分发链条的”落地端”,密钥导出是备份恢复的”离岸端”,两者共同构成密钥空间转移的完整闭环。只有在宏观策略、技术实现和操作流程三个层面协同保障,才能真正实现密钥的安全分发。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:利刃信安 利刃信安 利刃信安《密钥分发》

密钥分发 网络安全文章

密钥分发

文章总结: 该文档系统阐述了密钥分发的核心理念、技术实现与安全要求。密钥分发是密钥管理的关键环节,涉及密钥传输、导入和导出三个子过程,分为人工离线分发和自动在线
评论:0   参与:  0