## 【密码产品篇】服务器密码机密钥体系结构 标准GM/T 0030-2014中规定服务器密码机必须至少支持三层密码体系结构,包括:"管理密钥、用户密钥/设备密钥/密钥加密密钥、会话密钥"。除"管理密钥"外,其他密钥可被用户使用,提供数据加解密等服务---【蘇小沐】 !\[Image\](https://mmbiz.qpic.cn/mmbiz_png/g0qdRkVkqNzIkTKf4TNYBDZcYKzzFOxIoia82V8vEbaewNkxpKvzyyEoNMvR7ZPz9TnwFz4djeVmyopVicpY712g/640?wx_fmt=png) #### 1、服务器密码机密钥体系结构 服务器密码机密钥体系结构:管理密钥、用户密钥/设备密钥/密钥加密密钥、会话密钥。 \| 服务器密码机密钥体系结构 \| 作用 \| \| --- \| --- \| \| 管理密钥 \| 管理员密钥、与管理工具建立安全管理通道的密钥、保护其他各层次密钥的密钥加密密钥、保护设备固件完整性的密钥、保护设备日志完整性等的密钥等。 \| \| 用户密钥 \| 用户密钥是用户的身份密钥,包括签名密钥对和加密密钥对。"签名密钥对"由服务器密码机生成或安装,用于实现用户签名、验证、身份鉴别等,代表用户或应用者的身份;而"加密密钥对"则由密钥管理系统下发到设备中,主要用于对会话密钥的保护和数据的加解密等。用户密钥存储在服务器密码机内部的安全存储区域。 \| \| 设备密钥 \| 与用户密钥类似,设备密钥是服务器密码机的身份密钥,包括签名密钥对和加密密钥对,用于设备管理,代表服务器密码机的身份。设备密钥的签名密钥对在设备初始化时通过管理工具生成或者安装,加密密钥由密钥管理系统下发到设备中,设备密钥对存储在服务器密码机内部的安全存储区域。事实上,设备密钥和用户密钥存储在同一区域,设备密钥可以视作表征设备身份的特殊"用户密钥"。 \| \| 密钥加密密钥 \| 密钥加密密钥是定期更换的"对称密钥",用于在预分配密钥情况下,对会话密钥的保护。密钥加密密钥通过密码设备管理工具生成或安装,与用户密钥和设备密钥存储在不同的存储区。 \| \| 会话密钥 \| 会话密钥是"对称密钥",一般直接用于数据的加解密。会话密钥使用服务器密码机的接口生成或导入,使用时利用句柄检索。为了保证会话密钥的安全,它不能以明文形态进出密码机,服务器密码机的接口采用数字信封、密钥加密密钥加密传输或者密钥协商等方式进行会话密钥的导入/导出。 \| #### 2、服务器密码机接口类型 服务器密码机接口类型包括:"设备管理类、密钥管理类、非对称算法运算类函数、对称算法运行类函数、杂凑运算类函数、文件类函数"。 \| 服务器密码机接口类型 \| 作用 \| \| --- \| --- \| \| 设备管理类 \| 主要是对于密码设备、会话、私钥权限的管理、包括打开/关闭设备、创建/关闭会话、获取/释放私钥使用权限等 \| \| 密钥管理类 \| 主要涉及会话密钥生成、密钥的导入/导出、密钥销毁等密码生命周期管理 \| \| 非对称算法运算类函数 \| 主要包括数字签名的计算、公钥加密操作 \| \| 对称算法运算类函数 \| 主要包括对称加解密、MAC的计算 \| \| 杂凑运算类函数 \| 主要支持杂凑的多包运算 \| \| 文件类函数 \| 对内存存储的文件进行管理 \| #### 3、服务器密码机的密钥管理要求 ◎管理密钥的使用不对应用系统开放; ◎除公钥外,所有密钥均不能以明文形式出现在服务器密码机外; ◎服务器密码机内部存储的密钥应具备有效的防止解剖、探测和非法读取密钥保护机制; ◎服务器密码机内部存储的密钥应具备防止非法使用和导出的权限控制机制; ◎服务器密码机内部存储的密钥应具备安全销毁功能。 #### 4、服务器密码机的接口使用 服务器密码机的接口使用是一个有状态的过程,需要遵循一定的顺序,并且需要维持上下文。以下介绍服务器密码机两类典型应用的操作流程: 客户端调用服务器密码机存储的用户密钥进行签名的一般顺序为: \| 1 \| SDF\\_OpenDevice:打开设备,获得设备句柄 \| \| --- \| --- \| \| 2 \| SDF\\_OpenSession:创建会话,获得会话句柄 \| \| 3 \| SDF\\_GetPrivateKeyAccessRight:获取内部私钥使用权限 \| \| 4 \| SDF\\_Internalsign ECC:使用内部存储的私钥进行签名 \| \| 5 \| SDF\\_ReleasePrivateKeyAccessRight:释放私钥权限 \| \| 6 \| SDF\\_CloseSession:关闭会话,销毁会话句柄 \| \| 7 \| SDF\\_CloseDevice:关闭设备,销毁设备句柄 \| 完成签名后,其他应用可以使用对应的公钥/公钥证书来验证签名的正确性。 客户端调用服务器密码机使用会话密钥加密数据的一般顺序为: \| 1 \| SDF\\_OpenDevice:打开设备,获得设备句柄 \| \| --- \| --- \| \| 2 \| SDF\\_OpenSession:创建会话,获得会话句柄 \| \| 3 \| SDF\\_GenerateKeyWithEPK\\_ECC:生成会话密钥,并利用外部公钥加密形成数字信封 \| \| 4 \| SDF\\_Encrypt:利用会话密钥加密数据 \| \| 5 \| SDF\\_CloseSession:关闭会话,销毁会话句柄 \| \| 6 \| SDF\\_CloseDevice:关闭设备,销毁设备句柄 \| 完成数据加密后,持有外部公钥所对应私钥的用户可以打开数字信封,获得会话密钥句柄,并利用该会话密钥解密获得数据明文。 ### 总结 书写片面,纯粹做个记录,有错漏之处欢迎指正。 【著作所有权归作者 \\\[蘇小沐\\\] 所有,转载请注明文章出处】 本文转自 ,如有侵权,请联系删除。