安全中间件二次开发手册.docx
《安全中间件二次开发手册.docx》由会员分享,可在线阅读,更多相关《安全中间件二次开发手册.docx(46页珍藏版)》请在冰豆网上搜索。
![安全中间件二次开发手册.docx](https://file1.bdocx.com/fileroot1/2022-10/23/e206ea3a-9741-4e38-8cf8-2feec55eb5c0/e206ea3a-9741-4e38-8cf8-2feec55eb5c01.gif)
安全中间件二次开发手册
安全中间件二次开发手册
1引言
1.1编写目的
该文档主要规范了PKI安全中间件的功能接口定义。
在整个PKI体系中,安全中间件的作用非常关键,它通过调用底层的WHCSP及证书管理器等,封装了一系列PKI应用接口,满足上层PKI具体应用的需要。
本标准适用于PKI上层应用的需求,主要为CA系统。
适用对象为所有采用安全中间件的系统开发人员。
1.2项目背景
高级密码服务,顾名思义,是为用户提供相对高级和抽象的密码服务,而不是像底层的CSP和硬件加密算法那样,提供比较低级和具体的密码服务。
一般来说,高级的密码服务应该能够让不懂加密、解密和签名、验签等概念的用户也能够透明的使用,也就是说把密码学算法的细节给屏蔽掉了。
1.3术语和缩写词
缩写、术语
解释
PKI
公钥基础设施(PublicKeyInfrastructure)
CSP
CryptographicServiceProvider(密码服务提供者)
CRL
证书撤消列表(CertificateRevocationList)
一个标记一系列不再被证书发布者所信任的证书的签名列表(通称黑名单)。
LDAP
目录查询协议(LightweightDirectoryAccessProtocol)
本设计指轻型目录访问协议LDAP。
用户可使用LDAP协议,通过网络到目录服务器查询系统中的证书或证书撤消列表。
OCSP
在线证书状态查询协议(OnlineCertificateStatusProtocol)
用户可使用OCSP协议,通过网络到OCSP服务器实时查询系统中证书的当前有效/无效状态。
1.4遵循标准
列出参考资料,如:
●RFC2459PKIXPKIX证书和CRL概要
●IETF:
PKIX证书策略和证书实践框架
●IETF:
RFC2510:
CMP(证书管理协议)
●RFC2797:
CMC(CMS上的证书管理消息)
●RFC2511:
CRMF(证书请求消息格式)
●X.208抽象语法符号1描述(ASN.1)
●X.209抽象语法符号1基本编码规范说明(ASN.1)
●X.680信息技术―抽象语法符号1(ASN.1)—基本符号规范
●X.681信息技术―抽象语法符号1(ASN.1)-信息目标规范
●X.682信息技术―抽象语法符号1(ASN.1)-强制规范
●X.690信息技术―ASN.1编码规则-基本编码规则(BER),规范编码规则(CER)和主要编码规则(DER)
●X.509v4信息技术-开放式系统互连-目录:
公钥和属性证书框架
●X.500开放式系统互连—目录:
概念,模型和服务概述
●LDAP轻目录访问协议:
由ISO于1997年12月发布。
●PKCS#1(v1.5)RSA密码算法
●PKCS#5(v2.0)基于口令的密码标准
●PKCS#6(v1.5)扩展的数字证书语法标准
●PKCS#7(v1.5)密文消息语法标准
●PKCS#8(v1.5)私钥信息语法标准
●PKCS#9(v2.0)可选择的属性类型
●PKCS#10(v1.5)数字证书申请语法标准
●PKCS#11硬件密码设备接口标准
●PKCS#12(v1.0)个人信息交换语法
●PKCS#15(v1.1)多个应用访问标准
●X.509开放式系统互连—目录:
公钥和授权证书框架
●ITU-TX.500开放式系统互连—目录:
概念,模型和服务概述
●CORBA(公共对象请求代理体系结构)v2.4
2系统概述
在PKI体系结构中【见上图】,安全中间件总揽了证书管理器和CSP的所有功能。
它在PC端和PKI服务器端都是直接面向最终用户的调用接口,因此,它必须能够屏蔽掉PC端和PKI服务器端的不同情况。
安全中间件是为用户提供相对高级和抽象的密码服务,而不是像底层的CSP和硬件加密算法那样,提供比较低级和具体的密码服务。
一般来说,安全中间件服务应该能够让不懂加密、解密和签名、验签等概念的用户也能够透明的使用,也就是说把密码学算法的细节给屏蔽掉了。
2.1功能
●抽象的算法服务
1.对指定的明文进行加密的功能,包括口令加密、对称密钥加密和公开密钥加密。
2.对指定的密文进行解密的功能,包括对称密钥解密和公开密钥解密。
3.对指定的明文进行签名的功能。
4.对指定的签名进行验签的功能
5.封装PKCS7数字信封
6.解开PKCS7数字信封
7.对明文进行散列。
8.产生随机数。
●抽象的证书服务
1.根据标签得到证书
2.验证证书的有效性
3.生成PKCS10格式的证书请求文件
4.输入绑定的证书和私钥。
●私钥和口令保护服务
1.检查私钥口令
2.更改私钥口令
3.检查PIN
4.更改PIN
●编码服务
5.ASE64的编码功能
6.BASE64的解码功能
2.2性能
精度
TSP响应时间<1s;
OCSP响应时间<1s;
LDAP服务单元响应速度<0.5s
时间特性
客户端RSA签名2次/秒
验签5次/秒
服务器端RSA签名20次/秒
验签100次/秒
灵活性
可以灵活支持多种硬件介质和硬件加密卡;
可以提供C/C++、Java、C#等应用接口;
一套软件结构可以同时为CA和应用提供服务;
可以支持33算法、RC4算法、DES/3DES算法;
3运行环境
3.1硬件系统
适用于各种PC兼容机、服务器、小型机等等
3.2支撑软件
WINDOWS2000,WindowsXP,LINUX(RedHat9.0及AdvancedServer2.1)
4开发说明
描述系统为二次开发工作提供的接口、约束等。
安全中间件分为客户端和服务端2部分,安全中间件客户端主要的功能是在客户端通过对硬件存储介质的操作完成一些密码运算。
服务端主要是通过调用密码服务器为应用服务提供所需的密码服务。
客户端和服务端产的数据格式都采用国际同意标准。
服务端可以运算客户端产生的数据,客户端也可以运算服务端产生的数据。
主要用的功能为客户端进行签名、加密,服务端验签、解密或服务端签名、加密,客户端验签、解密。
客户端与服务端的数据传输可以由应用开发灵活处理,但要保证在传输前后数据的格式不发生变化。
通过安全中间件提供的抽象密码服务,为应用开发提供机密性,完整性,不可抵赖性方面的支持。
完成身份认证,电子印章,责任认定,密文传输等应用服务。
4.1客户端描述
客户端主要设备是硬件存储介质E-Key,E-Key做为数字证书的存储设备主要存储用户的签名私钥,加密私钥,签名证书,加密证书。
通过调用客户端控件可以使用E-Key完成签名,加密等密码服务。
4.1.1APP客户端控件接口说明
4.1.1.1AtvInit
功能简介
控件初始化。
读取客户端证书载体信息及其它初始化工作。
调用一些主要功能接口前必须先调用本接口。
接口名称
intAtvInit()
参数说明
入参说明
无
出参说明
无
返回值
成功,则返回0
失败,则返回错误号,错误号小于0
4.1.1.2AtvEnd
功能简介
进行开发包函数库调用完毕后内部存储区的清除工作。
接口名称
intAtvEnd();
参数说明
入参说明
无
出参说明
无
返回值
成功,则返回0
失败,则返回错误号,小于0
4.1.1.3SetHardWare
功能简介
设置客户端硬件设备类型。
接口名称
BOOLSetHardWare(longhardwareType);
参数说明
入参说明
hardwareType[IN]:
客户端硬件设备类型
目前支持:
1 软件摸拟实现
2 加密卡实现
3 SIM卡实现
4EKEY实现
出参说明
无
返回值
成功,则返回TRUE
失败,则返回FALSE
4.1.1.4Login
功能简介
登录客户端硬件设备。
接口名称
BOOLLogin(intloginType,
BSTRloginPin);
参数说明
入参说明
loginType[IN]:
用户登陆类型,此处用户请输入1
loginPin[IN]:
用户登陆PIN码
出参说明
无
返回值
成功,则返回TRUE
失败,则返回FALSE
说明
调用本接口时,如果loginPin输入为””空,则会弹出输入口令对话框;如果不为空,则不会弹出,只返回登录是否成功。
4.1.1.5ChangeLoginPin
功能简介
修改客户端用户登陆PIN码。
接口名称
BOOLChangeLoginPin(BSTRkeyLabel,
BSTRoldPasswd,
BSTRnewPasswd);
参数说明
入参说明
keyLabel[IN]:
私钥标签,此处请传入“wellhope”
oldPasswd[IN]:
旧的用户登陆口令
newPasswd[IN]:
新的用户登陆口令
出参说明
无
返回值
成功,则返回TRUE
失败,则返回FALSE
4.1.1.6Logout
功能简介
退出客户端硬件登录。
接口名称
BOOLLogout();
参数说明
入参说明
无
出参说明
无
返回值
成功,则返回TRUE
失败,则返回FALSE
4.1.1.7GetCert
功能简介
根据证书标签和证书类型读取客户端用户证书。
证书标签写在配置文件中,见前面Client.conf配置文件。
接口名称
BSTRGetCert(intcertType);
参数说明
入参说明
certType[IN]:
证书类型
1---加密证书
2---签名证书
出参说明
无
返回值
返回编码后的证书信息。
4.1.1.8CheckCert
功能简介
验证证书的有效性。
在验证过程中会连接到OCSP服务器上进行证书的验证。
接口名称
BOOLCheckCert(BSTRi_inCert);
参数说明
入参说明
i_inCert[IN]:
待验证的证书,已编码。
出参说明
无
返回值
成功,则返回TRUE
失败,则返回FALSE
4.1.1.9GetCertInfo
功能简介
解析证书信息,并以XML字符串格式返回
接口名称
BSTRGetCertInfo(BSTRi_inCert);
参数说明
入参说明
i_inCert[IN]:
待解析的证书,已编码。
出参说明
无
返回值
返回采用XML标准结构的证书信息。
[举例]
3
00000000000000000000000000000042
SHA1RSA
CN
Shanghai
Zhangjiang
ShanghaiwellhopeE-BussinessCertificateAuthority
WELLHOPE
自然人CA