【密码产品篇】商用密码产品的密钥体系结构小结

news/2024/11/23 4:40:06/

【密码产品篇】商用密码产品的密钥体系结构小结

商用密码产品的密钥体系结构笔记小结—【蘇小沐】

文章目录

    • 【密码产品篇】商用密码产品的密钥体系结构小结
      • 1.商用密码产品密钥体系结构
    • (一)服务器密码机密钥体系结构
      • 1.服务器密码机密钥体系结构
      • 2.服务器密码机接口类型
      • 3.服务器密码机的密钥管理要求
      • 4.服务器密码机的接口使用
    • (二)金融数据密码机密钥体系结构
      • 1.金融数据密码机体系结构
      • 2.金融数据密码机接口
    • (三)VPN产品密钥体系结构
      • IPSec VPN密钥体系
      • SSL VPN密钥体系
    • (四)动态口令系统密钥体系结构
    • (五)智能密码钥匙密钥体系结构
      • 1.智能密码密钥体系
    • 总结

1.商用密码产品密钥体系结构

密钥体系结构顶层中层底层
服务器密码机管理密钥用户密钥/设备密钥/密钥加密密钥会话密钥
金融数据密码机主密钥次主密钥数据密钥
IPSec VPN产品设备密钥(非对称)工作密钥会话密钥
SSL VPN产品设备密钥(非对称)预主密钥/主密钥工作密钥
动态口令系统管理类密钥密钥加密密钥用户类密钥
智能密码钥匙产品设备认证密钥用户密钥会话密钥

(一)服务器密码机密钥体系结构

标准GM/T 0030-2014中规定服务器密码机必须至少支持三层密码体系结构,包括:管理密钥、用户密钥/设备密钥/密钥加密密钥、会话密钥。除"管理密钥"外,其他密钥可被用户使用,提供数据加解密等服务。
在这里插入图片描述

1.服务器密码机密钥体系结构

服务器密码机密钥体系结构:管理密钥、用户密钥/设备密钥/密钥加密密钥、会话密钥。

服务器密码机密钥体系结构作用
管理密钥管理员密钥、与管理工具建立安全管理通道的密钥、保护其他各层次密钥的密钥加密密钥、保护设备固件完整性的密钥、保护设备日志完整性等的密钥等。
用户密钥用户密钥是用户的身份密钥,包括签名密钥对和加密密钥对。"签名密钥对"由服务器密码机生成或安装,用于实现用户签名、验证、身份鉴别等,代表用户或应用者的身份;而"加密密钥对"则由密钥管理系统下发到设备中,主要用于对会话密钥的保护和数据的加解密等。用户密钥存储在服务器密码机内部的安全存储区域。
设备密钥与用户密钥类似,设备密钥是服务器密码机的身份密钥,包括签名密钥对和加密密钥对,用于设备管理,代表服务器密码机的身份。设备密钥的签名密钥对在设备初始化时通过管理工具生成或者安装,加密密钥由密钥管理系统下发到设备中,设备密钥对存储在服务器密码机内部的安全存储区域。事实上,设备密钥和用户密钥存储在同一区域,设备密钥可以视作表征设备身份的特殊"用户密钥"。
密钥加密密钥密钥加密密钥是定期更换的"对称密钥",用于在预分配密钥情况下,对会话密钥的保护。密钥加密密钥通过密码设备管理工具生成或安装,与用户密钥和设备密钥存储在不同的存储区。
会话密钥会话密钥是对称密钥,一般直接用于数据的加解密。会话密钥使用服务器密码机的接口生成或导入,使用时利用句柄检索。为了保证会话密钥的安全,它不能以明文形态进出密码机,服务器密码机的接口采用数字信封、密钥加密密钥加密传输或者密钥协商等方式进行会话密钥的导入/导出。

2.服务器密码机接口类型

服务器密码机接口类型包括:设备管理类、密钥管理类、非对称算法运算类函数、对称算法运行类函数、杂凑运算类函数、文件类函数。

服务器密码机接口类型作用
设备管理类主要是对于密码设备、会话、私钥权限的管理、包括打开/关闭设备、创建/关闭会话、获取/释放私钥使用权限等
密钥管理类主要涉及会话密钥生成、密钥的导入/导出、密钥销毁等密码生命周期管理
非对称算法运算类函数主要包括数字签名的计算、公钥加密操作
对称算法运算类函数主要包括对称加解密、MAC的计算
杂凑运算类函数主要支持杂凑的多包运算
文件类函数对内存存储的文件进行管理

3.服务器密码机的密钥管理要求

◎管理密钥的使用不对应用系统开放

◎除公钥外,所有密钥均不能以明文形式出现在服务器密码机外;

◎服务器密码机内部存储的密钥应具备有效的防止解剖、探测和非法读取密钥保护机制;

◎服务器密码机内部存储的密钥应具备防止非法使用和导出的权限控制机制;

◎服务器密码机内部存储的密钥应具备安全销毁功能

4.服务器密码机的接口使用

服务器密码机的接口使用是一个有状态的过程,需要遵循一定的顺序,并且需要维持上下文。以下介绍服务器密码机两类典型应用的操作流程:

客户端调用服务器密码机存储的用户密钥进行签名的一般顺序为:

1SDF_OpenDevice:打开设备,获得设备句柄
2SDF_OpenSession:创建会话,获得会话句柄
3SDF_GetPrivateKeyAccessRight:获取内部私钥使用权限
4SDF_Internalsign ECC:使用内部存储的私钥进行签名
5SDF_ReleasePrivateKeyAccessRight:释放私钥权限
6SDF_CloseSession:关闭会话,销毁会话句柄
7SDF_CloseDevice:关闭设备,销毁设备句柄

完成签名后,其他应用可以使用对应的公钥/公钥证书来验证签名的正确性。

客户端调用服务器密码机使用会话密钥加密数据的一般顺序为:

1SDF_OpenDevice:打开设备,获得设备句柄
2SDF_OpenSession:创建会话,获得会话句柄
3SDF_GenerateKeyWithEPK_ECC:生成会话密钥,并利用外部公钥加密形成数字信封
4SDF_Encrypt:利用会话密钥加密数据
5SDF_CloseSession:关闭会话,销毁会话句柄
6SDF_CloseDevice:关闭设备,销毁设备句柄

完成数据加密后,持有外部公钥所对应私钥的用户可以打开数字信封,获得会话密钥句柄,并利用该会话密钥解密获得数据明文。

(二)金融数据密码机密钥体系结构

金融数据密码机采用基于"对称密码体制"的三层密钥体系结构;分别为"主密钥、次主密钥和数据密钥"三层。金融数据密码机中的密钥采用"自上而下逐层保护"的分层保护原则,即主密钥保护次主密钥,次主密钥保护数据密钥。
在这里插入图片描述

1.金融数据密码机体系结构

金融数据密码机体系结构:主密钥、次主密钥、数据密钥

金融数据密码机作用
主密钥主密钥是一种"密钥加密密钥",其主要作用是保护其下层密钥的安全传输和存储。主密钥的存储必须采用强安全措施,不能以明文方式出现在密码机外。主密钥可采用加密存储或微电保护存储方式。采用微电保护存储方式时,密钥可以明文方式存储,但需要设计有销毁密钥的触发装置,当触发装置被触发时,销毁存储的所有密钥。
次主密钥次主密钥是一种"密钥加密密钥",其主要作用是保护数据密钥的安全传输、分发和存储。由于采用的是对称密码体制,因此一般需要通过离线分发的方式进行密钥的共享。
数据密钥数据密钥是实际保护金融业务数据安全的密钥,直接用于加密或校验各类应用数据,包括PIN密钥和MAC密钥等。数据密钥一般不在密码机中长期存储,多个密码机在共享次主密钥的基础上,利用次主密钥保护各类数据密钥的安全传输以完成数据密钥的共享。数据密钥的使用最为频繁,一般需要按时更新。

2.金融数据密码机接口

主要分为以下三类:

金融数据密码机接口作用
磁条卡应用接口支持各类密钥的生成、注入、合成、转加密。
IC卡应用接口支持数据加解密、数据转加密、脚本加解密、MAC计算。
基础密码运算服务接口提供最基本的各类密码计算服务,包括SM2签名验签、加密解密、SM4加密解密、SM3消息摘要。

(三)VPN产品密钥体系结构

VPN产品只有"设备密钥"是"非对称密钥"。
在这里插入图片描述

IPSec VPN密钥体系

IPSec VPN密钥体系:设备密钥、工作密钥、会话密钥。

IPsec VPN作用
设备密钥非对称密钥对,包括签名密钥对和加密密钥对,用于实体身份鉴别、数字签名和数字信封等,其中,用于签名的设备密钥对在IKE第一阶段提供基于数字签名的身份鉴别服务;用于加密的设备密钥对在IKE第一阶段对交换数据提供保密性保护。
工作密钥对称密钥,在IKE第一阶段经密钥协商派生得到,用于对会话密钥交换过程的保护。其中,用于加密的工作密钥对IKE第二阶段交换的数据提供保护性保护;用于完整性校验的工作密钥为IKE第二阶段交换的数据提供完整性保护及对数据源进行身份鉴别。
会话密钥对称密钥,在IKE第二阶段经密钥协商派生得到,直接用于数据报文及报文MAC的加密和完整性保护,用于加密的会话密钥为通信数据和MAC值提供保密性保护;用于完整性校验的会话密钥为通信数据提供完整性保护

SSL VPN密钥体系

SSL VPN密钥体系:设备密钥、预主密钥/主密钥、工作密钥。

SSL VPN作用
设备密钥非对称密钥,包括签名密钥对和加密密钥对。签名密钥对用于握手协议中通信双方的身份鉴别;加密密钥对用于预主密钥协商时所用交换参数的保密性保护
预主密钥、主密钥对称密钥,预主密钥是双方协商通过伪随机函数(PRF)生成的密钥素材,用于生成主密钥;主密钥由预主密钥、双方随机数等交换参数,经PRF计算生成的密钥素材,用于生成工作密钥
工作密钥对称密钥,对称通信数据安全性提供保护。数据加密密钥用于数据的加密和解密;校验密钥用于数据的完整性计算和校验,发送方使用的工作密钥称为写密钥,接受方使用的工作密钥称为读密钥。

(四)动态口令系统密钥体系结构

动态口令是一种一次性口令机制。用户无须记忆口令,也无须手工更改口令,口令通过用户持有的客户端器件生成,并基于一定的算法与服务端形成同步,从而作为证明用户身份的依据。动态口令机制可广泛用于身份鉴别场合,如Web系统登录、金融支付。

动态系统口令包括三部分:动态令牌、认证系统和密钥管理系统。

动态系统口令作用
动态令牌用于生成动态口令。
认证系统用于验证动态口令的正确性。
密钥管理系统用于动态令牌的密钥管理。

密码行业标准中,与动态口令系统相关标准为GM/T 0021-2012《动态口令密码应用技术规范》和配套的GM/T 0061-2018《动态口令密码应用检测规范》。标准给出了动态口令的生成方式基于SM3密码杂凑算法和基于SM4分组密码算法两种选择。

在这里插入图片描述

功能分类作用
管理类密钥▪主密钥Km: 系统的根密钥,用于生成种子密钥加密密钥Ks、厂商生产主密钥Kp;▪厂商生产主密钥Kp:用于生成厂商种子密钥加密密钥Kps
密钥加密类密钥▪种子密钥加密密钥Ks:在令牌应用服务商系统(密钥管理系统和认证系统)中,用于对种子密钥进行加密存储的密钥。▪厂商种子密钥加密密钥Kps:在令牌厂商(动态令牌)系统中,用于对种子密钥进行加密存储的密钥。▪传输密钥Kt:用于加密保护厂商生产主密钥Kp的交换,保障生产所用的硬件密码设备和认证所用的硬件密码设备之间厂商生产主密钥Kp交换的安全。
用户类密钥种子密钥:用于动态口令生成

在这里插入图片描述

(五)智能密码钥匙密钥体系结构

智能密码钥匙是一种具备密码运算、密钥管理能力,可提供密码服务的终端密码设备,其主要作用是"存储用户秘密信息(如私钥、数字证书),完成数据加解密、数据完整性校验、数字签名、访问控制等功能"

1.智能密码密钥体系

UK密钥体系:设备认证密钥、用户密钥、会话密钥。

容器中存放用户密钥(包括加密密钥对和签名密钥对)和会话密钥。

  • 加密密钥对用于保护会话密钥,加密密钥对由"外部产生"并安全导入
  • 签名密钥对用于数学签名和验证,签名密钥对由"内部产生"
密钥作用备注
设备认证密钥用于终端管理程序与设备之间的相互鉴别,以获得终端对设备上应用的管理权限。/
用户密钥用于签名和签名验证、加密和解密的非对称密钥对。包括加密密钥对和签名密钥对
会话密钥临时从外部密文导入或内部临时生成的对称密钥,使用完毕或设备断电后即消失。会话密钥用于数据加解密和MAC运算,会话密钥可由"内部产生或者由外部产生"并安全导入。
理解记忆作用
1)应结合产品的应用逻辑结构,理解智能密码钥匙的密钥体系结构智能密码钥匙产品一般基于"非对称密码"体制,至少支持三种密钥:设备认证密钥、用户密钥、会话密钥。
2)在智能密码钥匙的初始化时应注意区分出厂初始化和应用初始化出厂初始化时需对设备认证密钥进行初始化。应用初始化是在应用提供商对设备进行发行时,需对设备认证密钥进行修改,并建立相应的应用。
3)应使用商用密码算法进行密码运算公钥密码算法应使用SM2或SM9;对称密码算法应使用SM4;密码杂凑算法应使用SM3。
4)⚠️应注意口令PIN和对称密钥的存储和使用安全【6,10】口令PIN长度不小于6个字符,使用错误口令登录的次数限制不超过10次;采用安全的方式存储和访问口令,存储在智能密码钥匙内部的口令不能以任何形式输出;在管理终端和智能密码钥匙之间传输的所有口令和密钥均采用加密传输,并在传输过程中能够防范重放攻击。
5)⚠️在签名前应执行身份鉴别,以保证签名密钥的使用安全智能密码钥匙每次执行签名等敏感操作前会对用户进行身份鉴别,每次执行签名等敏感操作后会立即清除相应身份鉴别结果,下一次执行敏感操作前仍需要进行身份鉴别。

总结

书写片面,纯粹做个记录,有错漏之处欢迎批评指正。觉得对您有所帮助,可以点赞收藏!

著作所有权归作者 蘇小沐 所有,转载请注明文章出处

名称时间
开始编辑日期2022 年 11 月 23 日
最后编辑日期2022 年 12 月 05 日

在这里插入图片描述


http://www.ppmy.cn/news/392365.html

相关文章

查看windows产品密钥

第一种方法:电脑输入框输入powershell以管理员方式打开 输入如下代码: Get-WmiObject -query select * from SoftwareLicensingService | Select OA3xOriginalProductKey 点击Enter键运行 第二种方法:输入cmd,以管理员方式打开…

如何更改Windows2003的产品密钥

2008年04月17日 星期四 19:06 1、运行:regedit,打开HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/WPAEvents, 双击OOBETimer并把其值清空 2、运行:X:/windows/system32/oobe/msoobe /a -&#xf…

Win10怎么查找产品密钥? Win10产品密钥的3种查找方法

Win10怎么查找产品密钥?升级win10系统以后,想要查看产品密钥,我们有多种查看的方法,下面我们就来看看Win10产品密钥的3种查找方法,详细请看下文介绍 一般情况下,我们可以在电脑贴纸上找到密钥,…

JAVA基础模拟斗地主游戏(部分功能逻辑)

Game_Test类import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List;public class Game_Test { // 定义一个静态集合存储54张牌public static List<Card> AllCardnew ArrayList<>();//定义静态代码块…

斗地主游戏java底层实现

斗地主游戏java底层实现 介绍软件架构使用说明相关代码写在最后 gitee地址 介绍 本文介绍了斗地主小游戏玩法规则&#xff0c;以及详细的java代码底层实现。 采用命令行模式&#xff0c;可实现3人斗地主&#xff0c;简单模拟斗地主的全部功能&#xff0c;玩法规则和qq斗地主类…

Java写的斗地主游戏源码

原文地址为&#xff1a; Java写的斗地主游戏源码 源码下载在最后我们的前年的课设要求做一个斗地主程序&#xff0c;当时正在愁如何做界面&#xff0c;当时刚好在学习C#&#xff0c;于是就用C#完成了这个程序。一方面&#xff0c;当时我C#功底还很差&#xff08;其实现在也不怎…

有趣的游戏,Java版斗地主游戏实现

近日&#xff0c;使用Java编写了斗地主单机小游戏&#xff0c;作为经典小游戏&#xff0c;它也给大家带来不少乐趣&#xff0c;通过对这款游戏的简单实现&#xff0c;加深了我对对Java基础算法的理解。 一.思路&#xff1a; 1、首先要了解斗地主的游戏规则&#xff0c;针对游…

单机斗地主项目总结

好久没写博客&#xff0c;最近也是闲来无事&#xff0c;在工作业余时间写了一个斗地主的游戏&#xff0c;时间好像是从4月份到8月份吧&#xff0c;现在在来想一想&#xff0c;里面涉及到的一些细节好像忘的差不多了&#xff0c;还是写个总结吧&#xff0c;以祭奠我的第一款上线…