EAS集成第三方CA的开发指导

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

EAS集成第三方CA的开发指导

1.背景介绍

EAS产品目前标准只集成天威诚信数字证书认证,由于多家客户要求使用CFCA厂商的数字证书认证,本文档用来指导开发集成CFCA的思路及其原理,其它厂商同理。

1.1 EAS签名验签流程

   

2.实现思路

EAS标准产品CA认证以天威为原型抽象了USB相关证书操作的接口,屏蔽了厂商的底层操作方法,因此大部分功能可以仿照天威的实现类来实现其它厂商的底层操作细节,存在部分不一样的操作方式可以单独进行二开实现。


3.实现方案

3.1EAS客户端实现

1.新增类CfcaPKIClientProvider实现接口com.kingdee.eas.base.security.provider.client.IPKIClientExt2Provider用来支持EAS客户端和本地的USB进行交互操作,涉及到的功能有证书导出、初始化、签名等动作,接口详细说明如下:

1. 判断usbkey是否存在:boolean isUsbKeyExistent()

2. 检查密码是否正确:boolean checkPasswd(byte[] password)

3. 获取存放在USBKey中的用户证书:byte[] exportCertificate()

4. 获取USB Key中的序列号:String GetKeyID()

5. 获取存放在USBKey中的用户标识:byte[] getUserID()

6. USBKey是否登录状态:boolean isKeyLogin()

8. 数据签名:byte[] sign(byte[] plaintext)

9. 使用用户的证书对签名进行验证:int verify(byte[] plaintext, byte[] signature)

10. 批量签名接口(标记接口,表示当前签名在批量处理中,无需要用户每条数据都需要输入密码):byte[] batchSign()

2. 新建一个CfcaMWkeyImpl的类,这个类主要是用在GUI端登录时使用的。它继承了AbstractUsbKeyBaseOperator这个抽象类,主要重写了readFile(int fileName)、getNo()、verifyPwd(String newPwd)、exportCertificate()等方法,逻辑和CfcaPKIClientProvider大致相同。


3.2 EAS服务器端实现

服务器新增实现类CfcaServerProvider继AbstractBOSObject父类并实现com.kingdee.eas.base.security.provider.IPKIServerExtProvider接口,用来做证书合法性校验与签名合法性校验等功能。

1. 根据用户标识获取存放在CA服务器中的指定用户的证书:byte[] exportCertificate(byte[] userID)

2. 验证签名数据(根据证书):int verify (byte[] plaintext, byte[] signInfo, X509Certificate cert)

3. 验证签名数据(根据序列号):int verify(String serialNumber, byte[] plaintext, byte[] signInfo)

4. 转化证书,从byte转换成对象:Certificate transCert(byte[] cert)

5. 检验用户证书是否有效:int verifyCert(Certificate userCert)


3.3 配置文件修改

修改配置文件使得二开实现类生效:

1. 要将GUI端的登录CA验证改为CFCA厂商验证,需要在配置文件PermParam.properties中修改参数USBKEYIMP的值,将其改为: CfcaMWkeyImp

2. 在pki.config配置文件中需要修改provider.server和provider.client。前者改成: CfcaServerProvider。后者改成: CfcaPKIClientProvider。


3.4 注意事项

由于标准EAS校验CA的pin码是采用EAS自行弹框,然后调用厂商SDK的校验pin接口来判断密码是否正确,但是CFCA没有提供密码校验接口,在签名的时候CFCA自行弹框来校验密码,因此需要改造这一块逻辑,需二开修改:com.kingdee.eas.base.permission.client.PasswordInputUI.show()方法,判断当前密码框是USBKEY模式且是CFCA厂商的时候,调用CFCA的签名方法做一次密码校验。


EAS集成第三方CA的开发指导

1.背景介绍EAS产品目前标准只集成天威诚信数字证书认证,由于多家客户要求使用CFCA厂商的数字证书认证,本文档用来指导开发集成CFCA的思路...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息