2卫生系统数字证书应用集成规范(试行1)
发布时间:2024-11-12
发布时间:2024-11-12
卫生系统数字证书应用集成规范
(试行)
卫生部办公厅 卫生部统计信息中心 二○○九年六月
目 录
第1章 1.1 1.2 1.3 第2章 第3章 3.1 3.2 3.3 3.4 3.4.13.4.23.5 3.5.13.5.23.5.3第4章 4.1 4.2 4.2.14.2.24.3 4.3.14.3.2概述.................................................................................................................................................1 范围.................................................................................................................................................1 规范性引文 ...................................................................................................................................1 术语和定义 ...................................................................................................................................1 总体技术框架 ...............................................................................................................................2 统一证书应用接口 ......................................................................................................................3 证书介质应用接口 ......................................................................................................................3 密码设备应用接口 ......................................................................................................................3 通用密码接口 ...............................................................................................................................3 客户端控件接口...........................................................................................................................3
概述.................................................................................................................................................3 控件接口函数 ...............................................................................................................................4
服务端组件接口.........................................................................................................................21
概述...............................................................................................................................................21
COM组件接口 ...........................................................................................................................21 Java组件接口 ............................................................................................................................41 附 录.............................................................................................................................................63 典型证书应用部署模式 ...........................................................................................................63 证书登录认证集成范例 ...........................................................................................................64
证书登录认证流程 ....................................................................................................................64 数据库改造 .................................................................................................................................65
页面签名加密集成范例 ...........................................................................................................65
页面签名加密流程 ....................................................................................................................65 数据库改造 .................................................................................................................................66
第1章 概述
1.1 范围
本规范制定了卫生系统数字证书应用技术框架,规范了卫生体系统一证书应用接口规范和证书应用集成部署实施规范。
本规范适用于指导卫生系统内实现证书应用集成实施工作,指导为卫生系统提供证书应用的安全厂家开发统一的证书应用接口,在卫生系统内实现基于数字证书的证书登录、电子签名与验证、加密解密等安全功能。
1.2 规范性引文
下列标准所包含的条文,通过本规范中的引用而构成本规范的条文。考虑到标准的修订,使用本规范时,应研究使用下列标准最新版本的可能性。
公钥密码基础设施应用技术体系 框架规范
公钥密码基础设施应用技术体系 密码设备应用接口规范 公钥密码基础设施应用技术体系 通用密码服务接口规范 智能IC卡及智能密码钥匙密码应用接口规范
1.3 术语和定义
以下术语和定义适用于本规范。 1.3.1 数字证书 digital certificate
由权威认证机构进行数字签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及一些扩展信息的数字文件。 1.3.2 数字证书介质 certificate entity
用于存储密钥和数字证书并具有密码运算功能的载体,包括智能密码钥匙(UsbKey)、智能IC卡等密码设备。
第2章 总体技术框架
数字证书应用集成的总体技术框架如图1所示:
图1数字证书应用集成总体技术框架图
根据总体结构图,实现数字证书应用集成的总体技术框架包括:密码设备和统一证书应用接口组成。
密码设备包括:加密机、加密卡、USBKey、智能IC等,是数字证书应用支撑体系的硬件基础。一般情况下,加密机用于服务器端,USBKey用于客户端。
统一证书应用接口包括:证书介质应用接口、密码设备应用接口、通用密码服务接口、客户端控件接口和服务器端组件接口等模块组成。统一证书应用接口位于应用系统和密码设备之间,它是数字证书应用支撑体系的软件基础。统一证书应用接口为上层的证书应用系统提供简洁、易用的调用接口,实现身份认证、实现信息的保密性、完整性和不可否认性等功能。统一证书应用接口屏蔽了各类密码设备(加密机和USB KEY等)的设备差异性,屏蔽了各类密码设备的密码应用接口之间的差异性,实现应用与密码设备无关性,可简化应用开发的复杂性。
第3章 统一证书应用接口
3.1 证书介质应用接口
证书介质应用接口是客户端证书介质(如:USBKey)的底层应用接口,该接口应在符合CSP技术规范的同时,符合《智能IC卡及智能密码钥匙密码应用接口规范》。
证书介质应用接口适用于USBKey等终端密码设备上,应支持WindowsXP、Windows2000、Windows2003、Vista、Linux等操作终端类的主流操作系统。
3.2 密码设备应用接口
密码设备应用接口是服务器端密码设备(如加密机)的底层应用接口,该接口应在符合国际标准PKCS#11技术规范的基础上,符合《公钥密码基础设施应用技术体系 密码设备应用接口规范》。
密码设备应用接口适用于加密机等服务器的密码设备上,应支持Windows、Linux、Unix、AIX、Solaris等服务器类的主流操作系统。
3.3 通用密码接口
通用密码接口是屏蔽了底层不同密码设备类型和底层接口的通用中间件,该接口要符合《公钥密码基础设施应用技术体系 通用密码服务接口规》。
通用密码接口适用于客户端和服务器端使用,应支持Windows、Linux、Unix、AIX、Solaris等所有主流操作系统。
3.4 客户端控件接口
3.4.1 概述
客户端控件接口是供卫生体系业务系统直接调用的高级接口,适用于客户端程序使用,应支持WindowsXP、Windows2000、Windows2003、Vista、Linux等操作终端类的主流操作系统。客户端控件接口可以是DLL动态库、ActiveX控件、Applet插件等形态,以支持B/S和C/S等架构的应用系统。
客户端控件接口的功能与服务器端组件接口向对应,应支持不同CA机构签发的符合《卫生系统数字证书格式规范》的数字证书,客户端应可自动识别符合《卫生系统介质规范》的证书介质,在卫生系统服务器端配置的信任列表范围内,实现不同CA机构证书之间的交叉认证和互信互认。
客户端控件接口的主要功能函数应包括:配置管理、数字证书解析、签名与验证、数据加密与解密、PKCS#7数据信封、XML数据的签名与验证、文件签名与加密等。
3.4.2 控件接口函数
客户端提供ActiveX控件形态的文件,说明如下: 1) 事件说明
2) 设置证书应用策略SetCertAppPolicy
功能:
设置证书应用策略。支持 “MS”。 “MS”:使用微软的证书存储规范,即csp规范,读取、使用证书。 函数原型:
Void SetCertAppPolicy (BSTR AppPolicy); 参数: 无 返回: 无
3) 设置签名算法SetSignMethod
功能:
设置控件签名使用的签名算法。如果不调用此函数,控件缺省为“RSA-SHA1”。 函数原型:
Void SetSignMethod (BSTR SignMethod);
参数: SignMethod
[IN],签名算法。支持的有:“RSA-SHA1”、“RSA-MD5”、“RSA-MD2” 返回:
无
4) 获得当前签名算法GetSignMethod
功能:
获得控件签名使用的签名算法。 函数原型:
BSTR GetSignMethod (); 参数: 无
返回:
当前的签名算法。
5) 设置加密算法SetEncryptMethod
功能:
设置控件使用的对称加解密算法。如果不调用此函数,控件缺省为“T-DES”。 函数原型:
Void SetEncryptMethod (BSTR EncryptMethod); 参数: SetEncryptMethod [IN],对称加解密算法。支持的有:
“DES”:(8字节) “T-DES2KEY”(16字节) “T-DES”(24字节) “SSF33”(16字节) “AES-128”(16字节) “AES-192”(24字节) “AES-256” 32字节 返回: 无
6) 获得加密算法GetEncryptMethod
功能:
获得控件使用的对称加解密算法。 函数原型:
BSTR GetEncryptMethod (); 参数: 无
返回:
当前控件使用的加密算法。
7) 获得证书列表GetUserList
功能:
取得当前已安装证书的用户列表。 函数原型:
BSTR GetUserList(); 参数: 无 返回:
BSTR ret 用户列表字符串,
格式:(用户名1||证书标识1&&&用户名2||证书标识&&& ) 备注:
根据证书应用的策略不同会得到不同的证书列表。
8) 导出用户证书ExportUserCert
功能:
根据证书惟一标识,获取Base64编码的证书字符串。 函数原型:
BSTR ExportUserCert(BSTR CertID); 参数:
输入参数,BSTR CertID:证书惟一标识 返回值:
BSTR rv:证书字符串。出错返回空值。
9) 导出用户证书ExportExChangeUserCert
功能:
根据证书惟一标识,获取Base64编码的证书字符串。指定获取加密(交换)证书。
函数原型:
BSTR ExportExChangeUserCert (BSTR CertID);
参数:
输入参数,BSTR CertID:证书惟一标识 返回值:
BSTR rv:证书字符串。出错返回空值。
10) 获得证书信息GetCertInfo
功能:
获取证书信息 函数原型:
BSTR GetCertInfo(BSTR Cert, short Type); 参数:
输入参数 :BSTR sCert:Base64编码的证书 输入参数:short Type:获取信息的类型 根据type获得证书信息
11) 获得证书扩展信息GetCertInfoByOid
功能:
根据OID获取证书私有扩展项信息 函数原型:
BSTR GetCertInfoByOid(BSTR Cert, BSTR Oid); 参数:
输入参数 :BSTR sCert:Base64编码的证书
输入参数:BSTR oid:私有扩展对象ID,比如“1.2.18.21.88.2” 返回:
BSTR ret::证书OID对应的值。
12) 获得用户信息GetUserInfo
功能:
获得用户信息。 函数原型:
BSTR GetUserInfo (BSTR CertId, short type); 参数:
输入参数 :BSTR Certid:证书标识。 输入参数:type:类别。
返回:
BSTR ret::type对应的值。出错返回空值。
13) 验证证书有效性validateCert
功能:
验证证书有效性 函数原型:
boolean ValidateCert(BSTR Cert); 参数:
输入参数 :BSTR sCert:Base64
编码的证书 返回: 成功返回true,否则返回false。
14) 数据签名SignData
功能:
对字符串数据进行数字签名,签名格式为Pkcs#1。 函数原型:
BSTR SignData(BSTR CertID, BSTR InData); 参数:
输入参数 :BSTR sCertID:证书标识 输入参数:BSTR sInData :签名原文 返回:
BSTR ret 签名结果。
15) 验证签名VerifySignedData
功能:
验证数字签名 函数原型:
boolean VerifySignedData(BSTR Cert, BSTR InData, BSTR SignValue); 参数:
输入参数 :BSTR sCert:签名者证书 输入参数:BSTR sInData :签名原文 输入参数:BSTR sSignValue:签名值 返回:
成功返回true,否则返回false。
16) 文件签名SignFile
功能:
对文件数字签名 函数原型:
BSTR SignFile(BSTR CertID, BSTR InFile); 参数:
输入参数 :BSTR sCertID:证书标识
输入参数:BSTR sInFile :签名原文文件路径
返回:
BSTR ret 签名结果。出错返回空值。
17) 验证文件签名VerifySignedFile
功能:
验证文件数字签名 函数原型:
boolean VerifySignedFile(BSTR Cert, BSTR InFile, BSTR SignValue); 参数:
输入参数 :BSTR sCert:签名者证书
输入参数:BSTR sInFile :签名原文文件路径 输入参数:BSTR sSignValue:签名值 返回:
成功返回true,否则返回false。 数据项描述
18) 加密数据EncryptData
功能:
使用对称算法加密数据 函数原型:
BSTR EncryptData(BSTR SymmKey, BSTR Indata);
参数:
输入参数:BSTR sKey,加密密钥
输入参数:BSTR sIndata,待加密的明文 返回值:
BSTR rv:加密后的密文。
19) 解密数据DecryptData
功能:
使用对称算法解密数据 函数原型:
BSTR DecryptData(BSTR SymmKey, BSTR Indata);
参数:
输入参数:BSTR SymmKey,解密密钥
输入参数:BSTR sIndata,待解密的密文 返回值:
BSTR rv:解密后的明文。
20) 文件加密EncryptFile
功能:
使用对称算法加密文件 函数原型:
boolean EncryptFile(BSTR SymmKey, BSTR InFile, BSTR OutFile); 参数:
输入参数:BSTR SymmKey,加密密钥
输入参数:BSTR InFile,待加密的明文文件路径 输入参数:BSTR OutFile,密文文件保存路径 返回值:
成功返回true,否则返回false。
21) 文件解密DecryptFile
功能:
使用对称算法解密文件 函数原型:
boolean DecryptFile(BSTR SymmKey, BSTR InFile, BSTR OutFile); 参数:
输入参数:BSTR SymmKey,解密密钥
输入参数:BSTR InFile,待解密的密文文件路径 输入参数:BSTR OutFile,明文文件保存路径 返回值:
成功返回true,否则返回false。
22) 公钥加密PubKeyEncrypt
功能:
使用证书对数据加密。(Pkcs#1格式) 函数原型:
BSTR PubKeyEncrypt(BSTR Cert, BSTR InData); 参数:
输入参数:BSTR Cert,证书
输入参数:BSTR InData,待加密的数据。 返回值:
BSTR rv,成功返回加密后的密文。否则返回空。
23) 私钥解密PriKeyDecrypt
功能:
私钥解密(Pkcs#1格式) 函数原型:
BSTR PriKeyDecrypt(BSTR CertID, BSTR InData); 参数:
输入参数:BSTR CertID,证书ID
输入参数:BSTR InData,待解密的数据。 返回值:
BSTR rv,成功返回解密后的明文。否则返回空。
24) P7数据签名SignDataByP7
功能:
对字符串数据进行数字签名,签名格式为Pkcs7。 函数原型:
BSTR SignDataByP7 (BSTR CertID, BSTR InData); 参数:
输入参数 :BSTR sCertID:证书标识 输入参数:BSTR sInData :签名原文 返回:
BSTR ret 签名结果。出错返回空值。
25) 验证签名VerifySignedDataByP7
功能:
验证数字签名 函数原型:
boolean VerifySignedDatabyP7( BSTR P7Data); 参数:
输入参数 :BSTR P7Data :p7签名包。 返回:
成功返回true,否则返回false。
26) 解析P7签名包信息GetP7SignDataInfo
功能:
解析p7签名包的信息,可获得原文、签名值、签名证书等信息。 函数原型:
BSTR GetP7SignDataInfo ( BSTR P7Data ,short type); 参数:
输入参数 :BSTR P7Data :p7签名包。 输入参数:short type:类型。 1:原文
2:签名者证书 3:签名值 返回:
成功返回true,否则返回false。
27) XML数据签名SignDataXML
功能:
对XML数据进行数字签名,输出符合国际标准的XML签名结果。 函数原型:
BSTR SignDataXML(BSTR CertID, BSTR InData); 参数:
输入参数 :BSTR sCertID:证书标识
输入参数:BSTR InData :签名原文,XML格式。 返回:
BSTR ret 签名结果。出错返回空值。
上一篇:工伤事故管理制度
下一篇:企业集团财务管理形考3