zoukankan      html  css  js  c++  java
  • 密码设备管理-对称密钥管理

    对称密钥管理系统

    本文主要介绍了对称密钥管理系统的体系结构、密钥管理流程、安全通道协议、标准管理消息格式等。详情可以去查看GM/T0051和GM/T0050的相关内容。

    密钥管理应用与被管设备间的密钥管理协议,通过GM/T0050定义的安全通道承载。
    密钥管理系统调用GM/T0050—2016中9.2.1的初始化设备管理环境API接口,获取与被管设备的安全通道句柄,调用GM/T0050-2016中9.4的安全通道数据发送接口,将密钥管理指令封装在安全通道消息PDU中发送至被管密码设备。

    整体流程

    整体架构

    按照密钥产生机制划分为以下架构:

    管理流程

    以下为上图模块的详细内容以及密钥功能介绍:

    • 密钥管理中心统一产生和分发各系统、各型号被管设备的业务密钥,实现业务密钥的产生、分发、备份、查询、更新、归档和销毁。

    密钥管理系统主要功能是管理业务密钥,同时应具备身份认证、审计管理功能,以确保管理系统的安全。
    密钥管理系统根据具体情况采用多级管理中心的方式。

    主控模块:管理、调度其他模块的关键模块,完成策略配置、密钥分发、密钥查询等主要密管功能。
    密钥生成策略的配置包括是否使用专用密钥生成装置、密钥生成的数量及长度要求等,由密钥管理系统根据密钥管理应用需求制定,密钥分发策略的配置包括一系列组合条件。
    其他策略的配置包括密钥查询方式、通用密钥生成装置封装格式的导入等操作
    当策略条件满足时,将触发相应的密钥管理操作。

    • 密钥生成/存储:以通用密钥生成装置和专用密钥生成装置分别产生通用格式密钥和专用格式密钥。

    通用密钥生成装置生成随机数,主控管理模块根据被管设备密钥格式配置文件的要求将所产生的随机密钥封装为原子密钥。

    • 密钥分发:根据密钥分发策略进行在线分发或离线分发。在线密钥分发过程应遵循本标准制定的密钥分发协议。离线分发支持多种分发介质,包括专用密钥加载装置、通用移动密钥加载装置等,应遵循介质的安全分发协议。

    • 被管设备接收和执行标准密钥管理命令。
      被管设备的密钥管理代理由设备厂商定制。

    密钥配置文件

    格式要求

    密钥格式配置文件:

    • txt格式;
    • 5种基本属性:
      1. [密钥适配系统名称] < 128字节
      2. 密钥适配设备型号] < 128字节
      3. [配置类型]:0-原子密钥结构,1-密钥生成参数
      4. [密钥生成参数表] → 专用密钥生成装置:待产生原子密钥的密钥生成参数表
      5. [密钥模板表] → 通用密钥生成装置:待产生原子密钥模板码流表

    文件内容

    专用密钥生成装置生成N个量子密钥时使用ParaData参数码流直接调用接口,填写入ParaData结构。

    通用密钥生成装置生成N个量子密钥时所采用的原子密钥模板表中各个码流表格式如下:

    待加密数据必须填充,方法为:
    第一个字节为0x80,气候为若干个0x00,填充到分组长度整数倍。
    指令采用网络字节序传输。

    原子密钥生成存储

    密钥生成装置在密钥管理主机中的主控模块下发的密钥格式配置文件的指导下生成了符合要求的原子密钥,再与密管密码机进行通信,将这些原子密钥进行转加密存储到密钥库中。
    密钥生成装置与密管密码机通过证书机制互相通过身份认证后,需要通过协商会话密钥去加密原子密钥,并最终将原子密钥安全地保存到密钥库中。


    密管密码机与密钥生成装置间的会话密钥协商

    在通过证书认证机制后,密管密码机与密钥生成装置间通过各自的证书公私钥进行如下会话密钥协商操作:

    1. 密钥生成装置自身生成一个随机数(R_{A}),发起密钥协商申请,用密管密码机的证书公钥加密该随机数,并用自己的私钥进行签名,保证数据的真实性和完整性,发送给密管密码机;
    2. 密管密码机收到密钥协商申请后,用密钥生成装置的证书公钥进行验签,验签通过后,再用自己的证书私钥解密得到随机数(R_{A}),并自己生成一个随机数(R_{B}),最后用密钥生成装置的公钥对两个随机数进行加密,并用自己的证书私钥进行签名返回给密钥生成装置。另一方面,密管密码机将两个随机数进行异或,异或后的结果作为后续与密钥生成装置间通信的会话密钥;
    3. 密钥生成装置接收到密管密码机返回的响应后,用密管密码机的证书公钥进行验签,验签成功后用自己的证书私钥解密得到随机数(R_{B}),随后将两个随机数进行异或得到会话密钥;
    4. 至此,密钥生成装置和密管密码机之间就建立了安全通道,共享了会话密钥。

    PS:此处的信息发送方和接收方皆为个人的理解,标准中未明确提及。


    将原子密钥加密导出到密管密码机

    密管密码机调用int SMF_GenAtomKey();函数,基于签名机制向密钥生成装置指定会话密钥加密原子密钥的算法,随后密钥生成装置返回对应的原子密钥密文。

    密管密码机收到原子密钥密文后,再用自己本地的主密钥进行转加密,格式化封装后存储于密钥库中。

    下图为密钥生成装置接口:

    两方的原子密钥密文传递为:


    标准密钥格式封装

    将原子密钥密文存储到密钥库之前,需要将密文按照标准格式进行封装。
    在密钥分发之前,同样需要将原子密钥密文进行标准格式封装。

    注意:存储和分发的封装时采用的加密密钥是不同的。


    密钥分发

    对称密钥管理应用指令

    消息尾中的HMAC,标准中采用的是SM3算法。


    建立安全通道

    安全通道的建立过程和上述的密管密码机与密管密码机与密钥生成装置间的会话密钥协商相似,在此不再赘述。


    被管设备注册

    分中心向总中心进行注册时也需要采用离线方式,注册流程与密码被管设备的注册流程类似。


    安全通道中的密管指令

    基于GM/T 0050安全通道协议的密管指令如下:

    黑字:指令名称
    红字:主要数据

    安全通道数据发送接口:将密钥管理指令封装在安全通道消息PDU中发送至被管理要设备。

    指定的密钥类型:参考GM/T0006-2012密码应用标识规范-6.3.1密钥分类标识。


    下面详细介绍一下密钥管理指令PDU中的详细格式:

    • 分发保护密钥协商

    • 密钥申请请求

    • 密钥分发请求

    • 密钥销毁请求

    • 密钥启用请求




    参考:
    GMT 0051-2016 密码设备管理-对称密钥管理技术规范
    GMT 0050-2016 密码设备管理-设备管理技术规范

  • 相关阅读:
    Java学习笔记1---JVM、JRE、JDK
    Java学习笔记2---设置环境变量JAVA_HOME,CLASSPATH,PATH
    第一次博客作业
    2018-2019-2 《Java程序设计》第5周学习总结
    作业四——文法和语言总结与梳理
    作业三——语法书、短语、直接短语、句柄
    作业二——文法和语言
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
  • 原文地址:https://www.cnblogs.com/11sgXL/p/14627047.html
Copyright © 2011-2022 走看看