人力资源社会保障电子认证体系规范第4部分:数字证书应用接口规范(LD-T02.4-2022)_第1页
人力资源社会保障电子认证体系规范第4部分:数字证书应用接口规范(LD-T02.4-2022)_第2页
人力资源社会保障电子认证体系规范第4部分:数字证书应用接口规范(LD-T02.4-2022)_第3页
人力资源社会保障电子认证体系规范第4部分:数字证书应用接口规范(LD-T02.4-2022)_第4页
人力资源社会保障电子认证体系规范第4部分:数字证书应用接口规范(LD-T02.4-2022)_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LD/T02.4-2022

人力资源社会保障电子认证体系规范

第4部分:数字证书应用接口规范

1范围

本文件给出了数字证书的应用领域,规定了数字证书应用技术框架和典型应用流程。

本文件适用于指导人力资源社会保障应用系统实现基于电子认证体系的安全功能,有助于各级人

力资源社会保障部门采用统一的数字证书应用开发接口。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文

件仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用

于本文件。

GB/T35275-2017信息安全技术SM2密码算法加密签名消息语法规范

GB/T35276-2017信息安全技术SM2密码算法使用规范

GB/T35291-2017信息安全技术智能密码钥匙应用接口规范

GB/T36322-2018信息安全技术密码设备应用接口规范

GB/T38540-2020信息安全技术安全电子签章密码技术规范

GB/T38629-2020信息安全技术签名验签服务器技术规范

GM/T0020-2012证书应用综合服务接口规范

GM_T0025-2014SSLVPN网关产品规范

GM/T0026-2014安全认证网关产品规范

GM/T0033-2014时间戳接口规范

LD/T01-2022(所有部分)人力资源社会保障电子印章体系规范

LD/T32社会保障卡规范

LD/T33社会保障卡读写终端规范

PKCS#7CryptographicMessageSyntax加密消息的语法标准

PKCS#10(V1.7)CertificationRequestSyntaxStandard认证请求语法标准

3术语和定义

GB/T35291、GB/T0020界定的以及下列术语和定义适用于本文件。

3.1

容器container

密码设备中用于保存密钥所划分的唯一性存储空间。

[来源:GB/T35291-2017,3.1]

1

LD/T02.4-2022

3.2

BSTRbatchstirredtankreactor

在定义客户端服务接口时,本规范以ActiveX控件为例进行描述,其中BSTR代表函数返回值或参

数类型为OLECHAR字符串类型,不同的开发语言应采取对应的类型定义﹐如:char*、CString、

java.lang.String等。

[来源:GM/T0020-2012,6.2]

4缩略语

下列缩略语适用于本文件:

API:应用程序接口,简称应用接口(ApplicationProgramInterface)

CA:证书认证机构(CertificationAuthority)

CRL:证书撤销列表(CertificateRevocationList)

CSP:加密服务提供者(CryptographicServiceProvider)

KMC:密钥管理中心(KeyManagementCenter)

LDAP:轻量级目录访问协议(LightweightDirectoryAccessProtocol)

OID:对象标识符(ObjectIdentifier)

HTTP:超文本传输协议(HypertextTransferProtocol)

PKCS:公钥密码标准(thePublic-KeyCryptographyStandard)

RA:证书注册机构(RegistrationAuthority)

5应用领域

人力资源社会保障数字证书的应用领域包括全国性、区域性的各类应用系统,按照业务类别划分

为以下四类:

a)就业创业类:就业创业、失业监测等业务系统;

b)社会保障类:养老、工伤等社会保险业务系统、社会保障卡持卡库等业务系统、社会保险公

共服务平台;

c)人才人事类:事业单位人事管理、专业技术人员管理、人力资源市场、职业资格管理、职业

技能培训等业务系统;

d)劳动关系类:劳动用工备案、调解仲裁、劳动监察等业务系统。

6数字证书应用技术体系

6.1总体技术框架

人力资源社会保障数字证书应用技术框架由密码设备、基础应用接口、高级应用接口组成,如图

1所示。

2

LD/T02.4-2022

图1人力资源社会保障数字证书应用总体技术框架

6.2密码设备

密码设备由应用密码机、签名验签服务器、应用安全网关、电子印章系统、时间戳系统、责任认

定系统、证书载体等密码产品组成,密码产品通过基础应用接口向上层应用提供基础的、全面的密码

服务。

应用密码机、签名验签服务器、应用安全网关、时间戳服务器等必须采用支持SM1、SM2、

SM3、SM4密码算法的、经国家密码管理部门批准使用的密码设备,具有国家密码管理部门认证的产

品认证证书。

数字证书载体主要指用于存储密钥和数字证书并具有密码运算功能的载体,目前人力资源社会保

障电子认证系统所采用的数字证书载体包括智能密码钥匙和第三代社会保障卡两类,为应用系统的客

户端提供密码服务。必须采用支持SM1、SM2、SM3、SM4密码算法的、经国家密码管理部门批准使

用的密码设备,具有国家密码管理部门认证的产品认证证书。

数字证书载体的各项技术参数应符合LD/T02.5规定的要求。

6.3基础应用接口

基础应用接口位于密码设备之上,密码设备通过基础应用接口向上层的高级应用接口层提供密钥

生成、密码运算等基础密码服务。基础应用接口分为服务器端密码设备接口和证书载体接口两类,其

中,数字证书载体接口包括智能密码钥匙接口和第三代社会保障卡读写终端接口。

6.3.1密码设备应用接口

密码设备应用接口应支持包括国产操作系统在内的主流操作系统,例如Windows、Linux、Unix

等主流操作系统。

3

LD/T02.4-2022

应用密码机接口应符合GB/T36322-2018规定的要求。

签名验签服务器接口应符合GB/T38629-2020规定的要求。

应用安全网关接口应符合GM/T0026-2014、GM/T0025-2014规定的要求。

电子印章系统接口应符合GB/T38540-2020以及LD/T01-2022规定的要求。

时间戳系统接口应符合GM/T0033-2014规定的要求。

6.3.2证书载体接口

智能密码钥匙接口应符合GB/T35291-2017和LD/T02.5规定的要求,支持国产操作系统及

Windows、Linux等主流操作系统,支持国产浏览器以及IE、火狐、Chrome等主流浏览器及相应版

本。

第三代社会保障卡接口应符合LD/T32规定的要求。

6.4高级应用接口

高级应用接口是位于基础应用接口之上,为应用系统提供身份认证、数字签名、数据加解密、时

间戳、电子印章、责任认定等安全保障服务,该接口可直接被应用系统调用,将应用系统的密码服务

请求转向基础应用接口,通过基础应用接口调用相应的密码设备实现具体的密码运算和密钥操作。高

级应用接口包括客户端应用接口和服务器端应用接口两大部分。

客户端应用接口根据数字证书载体类型形态分为两类:数字证书载体为智能密码钥匙时,客户端

应提供跨浏览器支持组件、ActiveX控件、动态链接库、JAR等开发包,客户端应用接口符合GM/T

0020-2012中7.1规定的要求,见附录B.1;证书载体为第三代社会保障卡时,客户端应提供ActiveX

控件或DLL动态连接库,客户端应用接口符合LD/T33规定的要求。本文件主要规范智能密码钥匙形

态的客户端应用接口(客户端控件接口)。

服务器端应用接口根据功能及接口形态的不同,分为COM组件接口、Java组件接口和密码应用

服务接口。应用系统服务器端直接调用密码设备时,通过COM组件接口和Java组件接口实现,其主

要功能包括:身份认证、数字签名、数据加解密等,COM组件接口符合GM/T0020-2012中7.2规定

的要求,见附录B.2.1,Java组件接口符合GM/T0020-2012中7.3规定的要求,见附录B.2.2。应用系

统服务器端调用密码应用服务平台时,通过密码应用服务接口实现,该接口的主要功能包括:身份认

证、数字签名、数据加解密、时间戳、电子印章、责任认定等,密码应用服务接口形态为HTTP

restful,见附录B.2.3。

6.5应用接口技术要求

6.5.1密码算法

密码设备和密码服务接口应提供符合国家密码管理部门规定的密码算法和接口规范,并根据国家

密码管理部门批准的算法及时调整,以适应国家最新技术标准要求。密码算法及算法类型如表1所

示。

a)对称密码算法:SM1、SM4等;

b)公钥密码算法:SM2算法,兼容RSA算法但不推荐使用;

c)HASH算法:SM3、SHA256等。

表1密码算法

算法名称算法类型Oid

SM1算法我国分组密码算法0197.1.102

SM4算法我国分组密码算法0197.1.104

SM2椭圆曲线密码算法我国非对称密码算法0197.1.301

4

LD/T02.4-2022

算法名称算法类型Oid

SM2椭圆曲线签名算法我国非对称密码算法0197.1.301.1

SM2椭圆曲线密钥交换协议我国非对称密码算法0197.1.301.2

SM2椭圆曲线加密算法我国非对称密码算法0197.1.301.3

RSA算法国外非对密码密算法1.2.840.1135

SM3杂凑算法我国杂凑密码算法0197.1.401

SHA-256杂凑算法国外杂凑密码算法2.16.8.4.2.1

SM3withSM2我国数字签名算法0197.1.501

SM3withRSA国外数字签名算法0197.1.504

SHA1withRSA国外数字签名算法1.2.840.1135

SHA256withRSA国外数字签名算法1.2.840.11351

6.5.2应用接口运行环境

密码服务接口应支持在以下环境中可靠运行:

a)客户端支持国产Linux桌面操作系统及WindowsXP、Windows7、Windows8、Windows10等

主流操作系统;

b)服务器端支持国产Linux操作系统及Windows2012(或更高版本)、Linux、Unix等所有主流

操作系统;

c)服务器端支持硬件密码机或加密卡,客户端证书载体支持智能密码钥匙、智能IC卡(第三

代社会保障卡)等设备;

d)应用系统支持C/S和B/S的系统结构。

6.5.3数据结构

本文件对应的接口处理的数据分为两种类型:

a)数据类型A:当公钥算法为SM2时,数据的结构符合GB/T35276-2017规定的要求;当公钥

算法为RSA时,数据的结构应符合PKCS#1;

b)数据类型B:当公钥算法为SM2时,消息的结构符合GB/T35275-2017规定的要求;当公钥

算法为RSA时,消息的结构应符合PKCS#7。

7数字证书典型应用流程

7.1概述

数字证书典型应用流程主要包括以下几类:

a)数字证书登录认证;

b)单向数字签名与验签;

c)双向数字签名与验签;

d)加密与解密;

e)加密签名与解密验签。

另外,数字证书应用场景相关示例见附录A。

7.2数字证书登录认证

基于数字证书的登录认证是指用户通过数字证书方式安全登录人力资源社会保障业务系统的过

程。

在应用过程中,用户应在业务系统中进行注册,同时需要将业务系统中的注册用户与用户数字证

5

LD/T02.4-2022

书进行关联。用户使用数字证书登录前,应安装数字证书客户端软件,准备好证书运行环境。

数字证书登录认证流程如图2所示。

客户端证书登录页面服务器端处理程序

用户插入智能密码钥

随机数

匙,读取本机证书列产生随机数并保存

表,展现证书登录框

用户输入证书口令,

开始“登录”

验证证书口令

验证服务器证书及签名

验证客户端证书与签名

用所选用户证书对应的

私钥对随机数签名解析用户证书

用户证书+签名

按照约定数据格式,根据证书的实体唯一标识

提交到服务器端找到系统用户并授权

图2数字证书登录认证流程图

数字证书登录认证流程:

a)用户将证书载体(智能密码钥匙)插入计算机,浏览证书登录首页。

b)服务器端处理程序产生一个随机数,通过密码设备签名,并将设备证书、随机数及其电子签名值

下载到客户端。登录页面获取本机注册的数字证书,展现给用户一个证书登录框。

c)用户选择数字证书,输入证书保护密码(即智能密码钥匙的用户口令),点击“登录”按钮。此

时,客户端程序(如JavaScript)应调用证书高级应用接口(ActiveX控件)对证书密码进行校

验。以ActiveX控件为例,分别调用SOF_GetDeviceInstance和SOF_Login()函数。

d)登录成功后,使用证书载体(智能密码钥匙)对随机数进行签名。以ActiveX控件为例,调用

SOF_SignData()函数。

e)签名成功后,按照约定的数据格式将数据提交给服务器。数据格式中至少应包括用户证书和证书

载体对随机数的签名。

f)服务器接收到客户端提交的登录请求后,应调用证书应用接口或密码应用服务接口验证客户端证

书及其签名的有效性,包括以下几个方面:

1)用户证书是否在有效期内;

2)用户证书是否为服务器端配置的CA证书所签发;

3)用户证书是否已被注销;

4)验证用户证书对随机数签名的有效性。

以Java组件为例,分别调用SOF_validateCert()和SOF_VerifySignedData()函数。

以密码应用服务接口为例,分别调用B.证书验证接口和B.RAW方式验签接

口。

g)服务器端调用证书应用高级接口,解析用户证书信息,获取证书的实体唯一标识。

h)服务器程序根据证书的实体唯一标识,在系统中找到对应的用户进行相应授权。

7.3单向数字签名与验签

单向数字签名与验签是指客户端对业务数据进行数字签名,服务器验证后进行业务处理的过程,

6

LD/T02.4-2022

从而实现客户端向服务器端提交数据的完整性和用户业务操作的不可抵赖性。

单向数字签名和验签流程如图3所示。

客户端页面服务器端处理程序

用户登录,选择操作菜单,

填写表单数据,确认提交

填写业务表单数据

组合业务数据,

形成原始数据

使用客户证书

使用登录证书对应的私验证签名

钥对原始数据进行签名

处理业务数据,

业务数据+签名

按照约定数据格式,保存业务数据和签名

提交到服务器端

图3单向数字签名与验签流程图

单向数字证书签名与验签流程:

a)用户使用数字证书登录系统,选择操作菜单,根据提示填写表单数据,提交业务数据。

b)客户端组合业务数据,形成原始数据。

c)客户端调用证书高级应用接口(ActiveX控件),使用用户数字证书对应的私钥对原始数据进

行数字签名,数字签名时应采用签名密钥,验证时采用签名证书。以ActiveX控件为例,分

别调用SOF_GetDeviceInstance()、SOF_Login()、SOF_SignData()和SOF_GetCertInfo()函数。

d)按照约定格式,将原始数据和数字签名提交到服务器端。

e)服务器端接收到客户端的数据后,应调用证书应用接口或密码应用服务接口验证客户端对业

务数据的签名。

以Java组件为例,调用SOF_verifySignedData()函数。

以密码应用服务接口为例,调用B.RAW方式验签接口。

f)验证签名通过后,服务端程序处理业务数据,并保存业务数据和签名。

7.4双向数字签名与验签

双向数字签名与验签是指客户端和服务器端双方分别对业务数据进行数字签名和验证,从而实现

客户端和服务器端双向数据传输的数据完整性和双方业务操作的不可抵赖性。

双向数字签名和验签流程如图4所示。

7

LD/T02.4-2022

客户端页面服务器端处理程序

用户登录,

选择操作菜单填写业务表单数据,

确认提交

验证用户证书与签名

组合业务数据

形成原始数据

业务数据处理

使用用户证书对应的私

钥对原始数据进行签名使用服务器证书对业务处理

的结果进行数字签名

业务数据+签名

按照约定数据格式,

提交到服务器端保存业务数据和双方签名,

返回回执到客户端

客户端网页展现回执

用户下载回执

回执下载链接

图4双向数字签名与验签流程图

双向的数字签名和验签的流程:

a)用户使用数字证书登录系统,选择操作菜单,根据提示填写表单数据,提交业务数据。

b)客户端组合业务数据,形成原始数据。

c)客户端调用证书高级应用接口(ActiveX控件),使用用户数字证书对应的私钥对原始数据进

行数字签名,数字签名时应采用签名密钥,验证时采用签名证书。以ActiveX控件为例,分

别调用SOF_GetDeviceInstance()、SOF_Login()、SOF_SignData()和SOF_GetCertInfo()函数。

d)按照约定格式,将原始数据和数字签名提交到服务器端。

e)验证签名通过后,服务端程序处理业务数据,并保存业务数据和签名。

f)服务端程序处理成功后,使用设备证书对应的私钥对业务操作的结果进行数字签名(设备证

书对应的私钥一定从密码设备中生成)。

以Java组件为例,调用SOF_signData()函数。

以密码应用服务接口为例,调用B.RAW签名接口。

g)服务端程序保存原始数据、客户端签名、服务器端的数字签名,作为操作证据安全存储在服

务器端,返回回执到客户端供用户下载。

h)用户下载回执文件并保存。

7.5加密与解密

加密与解密是指业务数据的加密与解密,实现业务数据的保密性。人力资源社会保障业务系统中

数据加密与解密的方式包括:

a)使用标准SSL协议对业务数据加密与解密;

b)使用数字信封对业务数据进行加密与解密。

业务系统服务器端不需要保存密文,可选择标准SSL协议进行加密和解密。服务器端需要保存密

文,应通过高级证书应用接口实现基于数字信封方式的加密与解密,如图5所示。

8

LD/T02.4-2022

图5加密与解密流程图

加密与解密的流程:

a)用户使用数字证书登录系统后,选择操作菜单,根据提示填写表单数据,提交业务数据。

b)客户端组合业务数据,形成原始数据。

c)客户端调用高级证书应用接口(控件),使用服务器端设备证书对原始数据进行加密,形成密

文数字信封数据。以ActiveX控件为例,调用SOF_EncryptData()函数。

d)按照约定格式,将密文数字信封数据提交到服务器端。

e)服务端程序接收到密文数字信封的业务数据后,使用服务器设备证书对应的密码设备解密,形

成明文格式的业务数据。

以Java组件为例,调用SOF_decryptData()函数。

以密码应用服务接口为例,调用B.1数据解密接口。

f)服务端程序将密文数字信封数据解密后,进行相应的业务处理,是否保存密文数字信封数据根

据应用需求而定。

7.6加密签名与解密验签

加密签名与解密验签是指在客户端对业务数据进行加密和签名,服务器端在业务处理前对密文进

行解密和验证签名的过程,从而实现数据保密性、完整性和操作的不可否认性。

加密签名与解密验签流程如图6所示。

9

LD/T02.4-2022

图6加密签名与解密验签流程图

加密签名与解密验签的流程:

a)用户使用数字证书登录系统后,选择操作,根据提示填写表单数据,提交业务数据。

b)客户端组合业务数据,形成原始数据。

c)客户端调用高级证书应用接口(控件),使用用户证书对原始数据进行数字签名,数字签名时

应采用发送方的签名密钥,验证时采用发送方签名证书。以ActiveX控件为例,分别调用

SOF_GetDeviceInstance()、SOF_Login()、SOF_SignData()和SOF_GetCertInfo()函数。

d)客户端调用高级证书应用接口(控件),使用设备证书对原始数据进行加密,形成密文数据。

以ActiveX控件为例,调用SOF_EncryptData()函数。

e)按照约定格式,将带签名的密文数字信封数据提交到服务器端。

f)服务端程序接收到带签名的密文数字信封数据后,使用服务器端设备证书对应的密码设备解

密。以Java组件为例,调用SOF_decryptData()函数。

以密码应用服务接口为例,调用B.1数据解密接口。

g)服务端程序将密文数字信封数据解密后,使用用户证书验证数字签名,进行相应的业务处理。

以Java组件为例,调用SOF_verifySignedData()函数。

以密码应用服务接口为例,调用BRAW方式验签接口。

h)保存原始业务数据和客户端签名,作为操作证据安全存储在服务器端。

10

LD/T02.4-2022

附录A

(资料性)

数字证书应用场景

随着政策环境和业务需求的变化,人力资源社会保障业务系统会随之变化,因此本文件并不针对

具体的业务系统进行详细分类和需求分析,而是从证书应用功能角度分析证书应用的安全需求。

A.1COM组件接口和Java组件接口调用

A.1.1应用集成部署模型

数字证书应用软件分为客户端和服务器端两个模块,应用系统服务器端通过调用COM组件接口和

Java组件接口实现身份认证、数字签名、数据加解密等基本功能。典型的数字证书应用集成部署模型

如图A.1所示。

人力资源社会保障电子认证系统

证书查询验证

证书签发管理系统

CRL发布服务系统

证书注册管理系统

CRL同步

用户证书签发设备证书签发

用户

应用服务器

证书登录认证密码机

及证书应用

1、客户端控件1、服务器端认证软件包

2、证书载体驱动程序(C动态库或JAR包)

3、证书载体(智能密码钥匙)2、CRL同步程序和CRL文件

3、CA证书和设备证书

图A.1证书应用集成部署模型

根据图A.1所示,基于数字证书的应用系统涉及三个方面:人力资源保障电子认证系统、应用服务

器和客户端控件及证书载体等。

人力资源社会保障电子认证系统负责为用户签发用户数字证书,为应用服务器签发设备证书,并

通过证书查验服务系统向应用服务器同步CRL文件。

应用服务器端需要部署的内容包括:

a)服务器认证软件包:进行加密解密、数字签名验签的软件接口。软件包为C语言的动态库文件

或Java语言的Jar包;

b)CRL同步程序:定时从证书查验服务系统下载CRL文件的服务程序;

11

LD/T02.4-2022

c)CRL文件:CA系统发布的黑名单文件;

d)CA证书:行业CA证书和业务CA证书;

e)设备证书:代表服务器身份的数字证书,私钥由密码机产生;

f)密码机:存储服务器设备证书对应密钥的密码设备。

客户端用户需要安装证书应用软件客户端控件及证书载体的驱动程序。在日常登录和使用时应将

证书载体(智能密码钥匙)插入客户端的电脑中。

客户端和服务器端通过双方的数字证书进行双向身份认证,在数据传输过程中,双方可通过数字

证书进行签名、验证、加密、解密等安全操作,实现数据完整性、操作的不可抵赖性和数据保密性。

A.1.2数字证书应用示例

A.1.2.1数字证书初始化绑定

用户首先应按照“证书申请流程”完成能够代表自己身份的数字证书申请,以及业务系统的用户

注册。在登录业务系统前,首先应完成数字证书的绑定,即将数字证书的唯一标识与该用户在系统中

的账户(或用户名)进行绑定,实现数字证书与系统用户及其权限的一一对应。证书绑定成功后,应

及时修改数字证书的pin码。

数字证书绑定的操作流程如图A.2所示。

图A.2数字证书绑定流程图

12

LD/T02.4-2022

A.1.2.2数字证书身份认证

证书用户完成数字证书绑定后,即可使用数字证书登录业务系统,数字证书登录认证处理流程如

下:

a)用户将数字证书载体(智能密码钥匙)插入计算机后,输入业务系统URL地址,访问系统;

b)服务器端程序调用认证软件包产生一个随机数,并保存在会话(Session)中;

c)服务器端将随机数传递给客户端;

d)用户输入证书pin码,由数字证书载体(智能密码钥匙)验证证书pin码的正确性;

e)验证证书pin成功后,使用智能密码钥匙对随机数签名;

f)客户端将用户证书和签名值提交到服务器端;

g)服务器端程序接收到上述数据后,验证用户证书和签名值的有效性。其中,验证证书的有效性

包括:证书有效期、信任源以及是否被吊销;

h)解析证书中的唯一标识,根据唯一标识获取用户权限,显示用户权限对应的操作页面。

数字证书身份认证处理流程如图A.3所示。

图A.3数字证书身份认证流程图

13

LD/T02.4-2022

A.1.2.3签名验签示例1:金保工程异地业务系统

以金保工程异地业务系统为例,介绍在业务系统中如何利用数字证书实现身份认证和对传输的重

要业务数据的签名保护,从而实现数据完整性和不可抵赖性。

异地业务系统主要是实现异地社会保险关系转移信息交换的业务系统,异地社会保险关系转移的

主要业务操作流程如下:

a)A地的参保人员首先登录到本地的异地转移系统,申请保险关系转移业务,并向异地系统上传

申请接收函信息;

b)B地异地系统查询下载接收函信息,进行办理转出操作,并向异地系统上传分险种的转移单;

c)A地异地系统查询转移单,并下载办理转入,完成后上传转移单,操作完毕。

以A地办理转入业务申请为例,签名验签处理流程如下:

a)用户将数字证书载体(智能密码钥匙)插入计算机,登录到异地业务系统;

b)编辑、输入、上传接收函文件;

c)使用智能密码钥匙对接收函文件进行签名;

d)提交接收函文件、签名及签名证书;

e)服务器端程序验证签名有效性,对接收函验证签名;

f)验证成功后,保存当前的接收函,业务处理结束。

异地业务系统证书签名验签业务处理流程如图A.4所示。

图A.4金保工程异地业务系统证书签名验签流程图

A.1.2.4签名验签示例2:金保工程传输总线系统

金保工程传输总线系统通过建立数据总线通道,利用数字签名技术实现部门间数据的安全上传和

下发,主要应用在金保工程联网软件系统数据报表的上传和下发。

金保工程传输总线系统中数字证书签名验签处理流程如下:

14

LD/T02.4-2022

a)下级应用系统(如:地市联网软件系统)需要上传数据报表到上级部门时,操作联网软件的

业务人员将数据上传到本地总线服务器上;

b)本地总线服务器定时轮询目录中需要上传的报表文件。当检测到上报文件后,产生随机数A,

然后向目的地总线服务器发出服务请求;

c)目的地总线服务器接收到请求后,产生随机数B,使用目的地总线服务器的设备证书对随机数

A和随机数B签名,并将随机数B和签名值返回给本地总线服务器;

d)本地总线服务器验证目的地总线服务器的证书和签名后,将随机数B和需传输的业务数据进行

组合,使用本地总线服务器的设备证书对组合数据进行签名,将业务数据和签名值发送到目

的地总线服务器;

e)目的地总线服务器验证本地总线服务器的设备证书及签名后,保存本地总线服务器传输的业

务数据,并返回成功信息;

f)至此,从本地总线服务器到目的地总线服务器数据文件传输结束。

传输总线系统数字证书签名验签业务处理流程如图A.5所示。

15

LD/T02.4-2022

图A.5金保工程传输总线系统证书签名验签流程图

A.2密码应用服务接口调用

A.2.1应用集成部署模型

应用系统通过调用密码应用服务接口实现身份认证、数据加解密、数字签名、时间戳、电子印

章、责任认定等服务功能。典型的应用集成部署模型如图A.6所示。

16

LD/T02.4-2022

图A.6证书应用集成部署模型

根据图A.6所示,基于证书的应用系统涉及三个方面:人力资源社会保障电子认证系统、应用服务

器和客户端认证类软件及证书载体等。

人力资源社会保障电子认证系统负责为用户签发用户数字证书。

应用服务器端通过密码应用服务接口调用密码应用服务平台实现身份认证、签名、验签等操作。

客户端用户需要安装证书应用软件客户端控件及证书载体的驱动程序。在日常登录和使用时应将证书

载体(智能密码钥匙)插入客户端的电脑中。

客户端和服务器端通过双方的数字证书进行双向身份认证,在数据传输过程中,双方可通过数字

证书进行签名、验证、加密、解密等安全操作,实现数据完整性、操作的不可抵赖性和数据保密性。

密码应用服务接口调用流程说明:

1.应用接入

所有调用密码应用服务接口的应用系统,需要在密码应用服务平台申请接入;密码应用服务平台

审核通过后根据接入申请为其分配资源权限,以及下述信息:

“syscode”:系统代码;

“sysauthcode”:系统授权码,由应用负责其安全存储,用于通讯认证过程中的hmac计算;

“secretcode”:一个计算密钥,二进制数据,长度为32字节。

2.应用系统拿到上述信息后,根据message_header的要求组织header头信息,每次调用的业务均

需要带有上面的校验信息。

17

LD/T02.4-2022

3.完成业务流程处理后,根据附录B.2.2.1报文结构要求对message_header组织响应header头信

息,最终返回给服务调用方。

4.所有应用系统应安全保存sysauthcode和secretcode,不得泄露。

A.2.2数字证书身份认证应用示例

用户在登录业务系统前,首先应完成数字证书的绑定,即将数字证书的唯一标识与该用户在系统

中的账户(或用户名)进行绑定,实现数字证书与系统用户及其权限的一一对应。数字证书绑定的操

作流程见A.1.2.1。

证书用户完成数字证书绑定后,即可使用数字证书登录业务系统,证书登录认证处理流程如下:

a)用户将数字证书载体(智能密码钥匙)插入计算机后,输入业务系统URL地址,访问系统;

b)服务器端程序调用B.随机数获取接口,产生一个随机数,并保存在会话(Session)中;

c)服务器端将随机数传递给客户端;

d)用户输入证书pin码,由数字证书载体(智能密码钥匙)验证证书pin码的正确性;

e)验证证书pin成功后,使用智能密码钥匙对随机数签名;

f)客户端将用户证书和签名值提交到服务器端;

g)服务器端程序接收到上述数据后,通过密码应用服务接口调用密码应用服务平台验证用户证书

和签名值的有效性。其中,验证证书的有效性包括:证书有效期、信任源以及是否被吊销;

h)解析证书中的唯一标识,根据唯一标识获取用户权限,显示用户权限对应的操作页面。

数字证书身份认证处理流程如图A.7所示。

18

LD/T02.4-2022

图A.7数字证书身份认证流程图

19

LD/T02.4-2022

附录B

(规范性)

数字证书客户端与服务端应用接口技术要求

B.1客户端应用接口

a)获取接口版本信息SOF_GetVersion

原型:BSTRSOF_GetVersion()

描述:获取控件的版本号。

参数:无

返回非空成功

值:空失败

b)设置签名算法SOF_SetSignMethod

原型:longSOF_SetSignMethod(longSignMethod)

描述:设置接口在签名运算时使用的签名算法,如SM3、SHA1算法等。

参数:SignMethod[in]签名算法标识

返回值:0成功

其他失败,详见附录C

c)获得当前签名算法SOF_GetSignMethod

原型:longSOF_GetSignMethod()

描述:获得控件签名使用的签名算法。

参数:无

返回值:非0当前接口使用的签名算法的预定义值

0没有设置签名算法

d)设置加密算法SOF_SetEncryptMethod

原型:longSOF_SetEncryptMethod(longEncryptMethod)

描述:设置组件进行数据加解密时使用的对称算法,SM1、SM4算法等。

参数:EncryptMethod[in]对称加解密算法标识

返回值:0成功

其他失败,详见附录C

e)获得加密算法SOF_GetEncryptMethod

原型:longSOF_GetEncryptMethod()

描述:获得控件使用的对称加解密算法。

参数:无

返回值:非0当前控件使用的加密算法的预定义值

0没有设置加密算法

f)获得证书列表SOF_GetUserList

原型:BSTRSOF_GetUserList()

描述:取得当前已安装证书的用户列表。

参数:无

返回值:非空用户列表字符串数据格式为:用户名

1||ContainerName1&&&用户名2||

ContainerNam21&&&…

空失败

备注:根据证书应用的策略不同得到不同的证书列表。在证书列表中,用户名代

表证书的CN项内容;ContainerName代表证书和密钥对应的容器名,也

20

LD/T02.4-2022

可以是代表证书实体身份的唯一的号码,通过ContainerName可以找到唯

一的加密证书、签名证书,并使用对应的密钥。

g)导出用户签名证书SOF_ExportUserCert

原型:BSTRSOF_ExportUserCert(BSTRContainerName)

描述:根据证书容器名,获取base64编码的证书字符串。

参数:ContainerName[in]证书容器名

返回值:非空Base64编码的证书字符串

空失败

备注:默认导出签名证书,无签名证书时导出加密证书。

h)校验证书口令SOF_Login

原型:BOOLSOF_Login(BSTRContainerName,BSTRPassWd)

描述:校验设备的用户认证口令,进行用户认证。

参数:ContainerName[in]证书容器名

PassWd[in]设备的用户认证口令

返回值:TRUE成功

FALSE失败

i)获取用户认证口令剩余重试次数SOF_GetPinRetryCount

原型:longSOF_GetPinRetryCount(BSTRContainerName)

描述:获取用户认证口令的剩余密码重试次数。

参数:ContainerName[in]证书容器名

返回值:剩余口令重试次数,当重试次数小于或等于0时表示证书介质口令已被锁

j)修改证书口令SOF_ChangePassWd

原型:BOOLSOF_ChangePassWd(BSTRContainerName,BSTROldPassWd,

BSTRNewPassWd)

描述:修改设备的用户认证口令。

参数:ContainerName[in]证书容器名

OldPassWd[in]旧口令

NewPassWd[in]新口令

返回值:TRUE成功

FALSE失败

k)导出用户加密证书SOF_ExportExChangeUserCert

原型:BSTRSOF_ExportExChangeUserCert(BSTRContainerName)

描述:根据证书容器名,获取base64编码的加密(交换)证书字符串。

参数:ContainerName[in]证书容器名

返回值:非空Base64编码的证书字符串

空失败

l)获得证书信息SOF_GetCertInfo

原型:BSTRSOF_GetCertInfo(BSTRBase64EncodeCert,shortType)

描述:获取证书内指定类型的信息。

参数:base64EncodeCert[in]Base64编码的证书

Type[in]获取信息的类型

返回值:非空证书内指定类型的信息

空失败

m)获得证书扩展信息SOF_GetCertInfoByOid

原型:BSTRSOF_GetCertInfoByOid(BSTRBase64EncodeCert,BSTROid)

描述:根据OID获取证书私有扩展项信息。

参数:base64EncodeCert[in]Base64编码的证书

Oid[in]私有扩展对象ID

21

LD/T02.4-2022

返回值:非空私有扩展对象OID对应的信息

空失败

n)获得设备信息SOF_GetDeviceInfo

原型:BSTRSOF_GetDeviceInfo(BSTRContainerName,longType)

描述:根据容器和类型代码获得设备信息。

参数:ContainerName[in]证书容器名

Type[in]信息类别

返回值:非空Type对应的设备信息

空失败

o)验证证书有效性SOF_ValidateCert

原型:longSOF_ValidateCert(BSTRBase64EncodeCert)

描述:验证证书有效性。

参数:base64EncodeCert[in]Base64编码的证书

返回值:0验证成功

其他-1证书不被信任

-2超过有效期范围

-3证书已作废

-4证书已冻结

-5证书未生效

-6其他错误

备注:基本的证书验证策略应包括:

a)验证CA信任列表,各层都要进行签名和有效期验证;

b)各层证书的有效期;

c)各层证书的吊销状态。在特殊情况下(如:网络条件不允许),证书的吊

销状态可采取灵活方式,由应用系统各层内部维护一个吊销列表,在证书登录

认证时应用该吊销列表。验证证书有效性也可采取代理验证方式。

p)数字签名SOF_SignData

原型:BSTRSOF_SignData(BSTRContainerName,BSTRInData)

描述:对字符串数据进行数字签名,签名结果为数据类型A

参数:ContainerName[in]证书容器名

InData[in]签名原文

返回值:非空Base64编码的签名结果

空失败

q)验证签名SOF_VerifySignedData

原型:BOOLVerifySignedData(BSTRBase64EncodeCert,BSTRInData,

BSTRSignValue)

描述:验证数字签名,签名值为数据类型A。

参数:b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论