豪密科技第 16 期密评实操能力验证培训 - 2025/02/17 下午
有幸参加了公司安排的豪密科技第 16 期密评实操能力验证培训,本文是第二课《密码产品及应用》的培训内容。
能力验证备考建议:
- 摸产品:见过、用过、实操过,知道怎么用 <- 按商密规范,密码应用都是通过密码产品实现的
- 懂应用:理解各典型密码应用场景的正确逻辑(正确的密码应用是什么样)<- 不知对,焉知错
- 会分析:密评能力验证考试,代码题、数据分析题只是题目形式,核心是考察对密码应用中存在问题的分析、发现能力 <- 能力验证,在考什么?
为什么要学习密码产品
- 产品承载算法、协议,支撑密码应用
- 场景多变,产品不变
- 好抓手:密码产品可见、可感知,掌握密码产品是理解抽象的密码概念,有效学习高深的密码技术基础、枯燥的技术标准、多变的密码产品……
学习密码产品的现实困境
- 产品种类繁多,学不过来
- 缺乏资料和教材、没有成系统的学习方法:只有枯燥的“产品标准”,没有解释、讲解(标准是面向专业人士、已经学会的人,对尚在学习中的密评机构不友好),缺乏系统、高效学习的途径,机构很为难
- 密码产品维度多、难操练、不好下嘴:产品原理、应用、配置、数据规范一堆要求,什么关系,怎么学、难操练(密码产品本身即是一种“密码应用”……)……
学习方法建议:理论学习 + 实操 + 思辨(总结)
- 分类学习
- 终端类:智能密码钥匙、智能 IC 卡、国密浏览器、软件密码模块、动态口令
- 系统类:签名验签服务器、服务器密码机、SSL/IPSec VPN 网关
- 服务类:数字证书认证系统、安全电子签章系统、密钥管理系统
- 重点(产品)突破、解剖麻雀,再举一反三:智能密码钥匙、服务器密码机、签名验签服务器、网关、CA
- 体系化学习、总结:把握产品背后统一的密码原理、密码模型、密码思想。
要求高:要求掌握密码产品原理、应用及相关标准
服务器密码机及应用
什么是密码机?
- 密码机是以整机形态出现,具备完整密码功能的产品
- 实现数据加解密、签名/验证、密钥管理、随机数生成等功能
- 可供各类应用系统调用,为其提供数据加解密、签名/验证等密码服务
- 外部形态与一般的服务器、……
三种密码机
服务器密码机(通用性)
签名验签服务器(证书认证领域)
金融数据密码机(金融行业)
从硬件组成角度而言,三种密码机并无区别
- 工控机 +PCI/PCI-E 密码卡或者是计算机主板的功能和密码芯片集成到一个板卡上
- 后两类,针对特定应用场景再第一类基础上封装了特定接口,便于应用调用
签名验签服务器
- 三种调用方式:API 调用、通用请求响应、HTTP 请求响应
- 支持与 CA 连接、证书管理等功能
金融数据密码机 1.
密码机图片(连续两张)
要存储的数据用会话密钥加密后,用密钥加密密钥(KEK)加密会话密钥后,与密文一并存储(密钥加密密钥加密的会话密钥存在密钥表),使用时再解密(加解密均须使用此密码机,因为密钥加密密钥和会话密钥都是由该密码机生成)。
内外部RSA公钥加密输出图
服务器密码机典型应用举例
- 密钥初始化阶段
- 调用密码机接口,生成会话密钥(数据加解密密钥 DK)并用 KEK 加密输出
- SDF_GenerateKeyWithKEK()
- SDF_GenerateKeyWithEPK_ECC() 用对方公钥加密,不同的密钥场景
- 将数据密钥的密文存储到信息系统的数据库(密钥表)
- 调用密码机接口,生成会话密钥(数据加解密密钥 DK)并用 KEK 加密输出
- 敏感信息加密存储
- 获取用户敏感信息明文
- 从数据库密码表读取数据加密密钥的密文
- 调用密码机接口,导入会话密钥并用 KEK 解密会话密钥,返回句柄
- SDF_ImportKeyWithKEK()
- SDF_ImportKeyWithISK_ECC() 用内部私钥解密,不同的应用场景
- 调用密码机,传入上一步解密得到的会话密钥(数据密钥)句柄,对用户敏感信息加密 - SDF_Encrypt()
- 将用户敏感信息密文存储到数据库
- 敏感信息解密读取
- 从数据库读取用户明娜信息密文、密钥表中的密钥密文
- 调用密码机接口,导入会话密钥并用 KEK 解密会话密钥,返回句柄
- SDF_ImportKeyWithKEK()
- SDF_ImportKeyWithISK_ECC() 不同的应用场景
- 调用密码机,传入上一步解密得到的会话密钥(数据密钥)句柄,对用户敏感信息密文做解密 - SDF_Decrypt()
总结:服务器密码机密钥使用原则:密钥全程由密码机操作,任何其它方不能接触密钥明文
延伸:用户记录完整性计算和校验过程类似(MAC 密钥)
密码机的密钥体系6.3.16
MAC 是带密钥的杂凑
应用层重要数据存储加密方案:
- 直接使用密码机内置密钥,作为数据加密密钥 DK:安全性高、密钥数量有限、单个密钥保护数据范围过大
- 从密码机申请会话密钥,并用密码机密钥 KEK 加密存储,作为数据加密密钥 DK(密钥管理系统 KMS 的原型):密钥数量不受限、密钥保护数据范围小/精细/颗粒度小
签名验签服务器及应用(基于数字证书的典型密码应用)
内容
- SVS 功能概述、与服务器密码机的区别(接口对比)
- SVS 典型应用场景(及其接口调用)
- SVS 的配置及实验操作演示(应用管理、证书、证书链管理)
三个基本问题
- 已经有了服务器密码机,为什么还需要签名验签服务器?
- 签名验签服务器中的“证书”(及密钥)是谁的,是签名验签服务器的吗?
- 签名验签服务器中的“证书链”是谁的证书链?
信息系统不管理证书(证书的本质是密钥)或密钥(信息系统不能干跟密码相关的任何事)
签名验签服务器的应用
- 与 CA 的接口
- 下载 CRL
- 查询数字证书
- 查询数字证书实时状态(OCSP)
- 与时间戳服务器的接口
- 同步系统时间
- 在时间敏感型交易中,对时间和内容共同签名(时间戳)
- 与应用服务器的接口
- 应用服务器和签名验签服务器直连
- 签名验签服务器支持多个应用
- 每个应用被授权使用一组密码
- 主要标准
- GM/T 0020《证书应用综合服务接口规范》
- GM/T 0029《签名验签服务器技术规范》
- GM/T 0060《签名验签服务器检测规范》
- GM/T 0033《时间戳接口规范》
用户密钥包含签名密钥对和加密密钥对(GM/T 0020-2023《证书应用综合服务接口规范》)
签名验签服务器的功能
- PKI 连接
- CRL 连接
- OCSP 连接
- 应用管理
- 应用实体注册
- 配置密钥
- 设置私钥授权码
- 证书管理和验证
- 应用实体的密钥产生、证书申请
- 证书导入
- 证书更新
- 证书验证
- 数字签名和验证
- 签名
- 验证
- 日志管理和时间源(是 NTP 不是时间)同步
签名验签服务器VS服务器密码机图
GM/T 0020《证书应用综合服务接口规范》
密码机 | 签名验签服务器 |
---|---|
基于裸密钥 |
数据签名、消息签名的区别-1和-2
总结:为什么有了密码机还需要签名验签服务器?
- 服务器密码机(通用性)
- 含通用(基础)签名运算
- 签名、验签直接基于公私钥
- 没有“应用”……
签名验签服务器的应用场景
以下表格有些问题,等老师更新
序号 | 安全层面 | 应用场景 | 实现安全指标 | 调用的密码服务 | 考题/实际项目应用 |
---|---|---|---|---|---|
1 | 应用层 | 信息系统终端用户身份鉴别(基于数字证书的挑战-响应) | 真实性 | 签名验证 | √√√ |
2 | 应用层 | 信息系统终端用户关键业务数据提交 | 传输完整性、不可否认性 | 签名验证 | √√√ |
3 | 应用层 | 信息系统数据存储完整性(基于签名) | 存储完整性 | 签名(用谁的证书?) | √√ |
4 | 应用层 | 信息系统终端用户关键业务数据提交 | 存储完整性、不可否认性 | 验签 | √√ |
签名验签服务器的应用流程图
签名验签服务器典型应用一
基于证书的用户登录身份鉴别(挑战-响应)
应用方案 1.0 流程:
- 终端用户发起登录请求 login()
- 应用服务向签名验签服务器请求随机数 random
- 应用服务向终端发送挑战值 random
- 终端调用 ukey,用签名私钥对挑战值签名 sign()
- 终端将签名值、签名证书发送给应用服务,请求验证签名 verify()
- 应用服务调用签名验签服务器……
应用方案 2.0 优化点:
- 应用服务向终端发送挑战值 Rs 并签名
- 终端调用 ukey,生成随机 Rc,用签名私钥对挑战值和客户端随机值 Rc|Rs 做签名 sign()
签名验签服务器典型应用二
关键业务数据签名(不可否认性)
流程:
- 终端调用 ukey,用签名私钥对业务操作做签名
- 终端将业务数据原文、签名值、签名证书发送给应用服务
- 信息系统调用签名验签服务器做验签,并验证用户签名证书(……)……
签名验签服务器典型应用三
应用系统间业务数据签名、数字信封加密传输
调用流程:
- 业务系统之间互相进行签名验证,身份鉴别
- 业务数据加密
- 用对方加密证书公钥将加密密钥进行加密,用自己的签名私钥对业务数据签名
- 对方用加密私钥解密加密密钥、解密业务数据,并应对方签名证书公钥验证数据签名
这是一个典型的“应用层传输机密性、完整性”范例
数字证书认证系统 CA
内容
- 证书签发及密钥管理:证书签发整体流程,双证书、双中心;
- PKI 典型部署方案
- 设备证书(含签名服务器)、用户证书、代码证书签发实验演示
- 证书申请 P10 文件和证书签发 P12 文件解析
- 证书吊销管理及 CRL 订阅操作演示
证书类型:根证书、用户证书、设备证书/站点证书、代码签名证书、计算机证书、域控制器(Domain Controller)证书
签名验签服务器-总结
- 签名验签服务器面向数字证书应用场景的特定封装,(相对于密码机)更面向应用
- 支持多应用,