# GM-CA **Repository Path**: coderEasy/gmpki ## Basic Information - **Project Name**: GM-CA - **Description**: 高并发高稳定性的数字证书认证服务,该服务基于PKI安全体系,基于国密算法SM2、SM3、SM4,实现过程符合国家密码局相关技术规范要求,签发符合国密规范的SM2数字证书。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 37 - **Created**: 2023-06-11 - **Last Updated**: 2023-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GMPKI #### 介绍 支持高并发高稳定性的数字证书认证服务,该服务基于PKI安全体系,基于国密算法SM2、SM3、SM4,实现过程符合国家密码局相关技术规范要求,签发符合国密规范的SM2数字证书。 KM-SERVER 密钥生成服务,生成SM2密钥对; CA-SERVER 数字证书签发服务,签发数字证书; CA-CLIENT CA服务测试客户端,向CA发起数字证书申请请求; 采用springboot作为基础框架,服务之间使用netty作为通讯框架,支持服务之间的心跳、断线重连机制。 服务之间数据协议遵从国密规范,包含CA-KM、CMP协议。 密码算法只支持SM2、SM3、SM4。 #### 定义 PKI:公钥基础设施 SM2:商用密码非对称密码算法 SM3:商用密码HASH密码算法 SM4:商用密码对称密码算法 CA认证:即电子认证服务,是指为电子签名相关各方提供真实性、可靠性验证的活动 CA:即颁发数字证书的机构 KM:密钥生成机构 Netty:基于NIO的客户、服务器端的编程框架 #### 参考资料 《数字证书认证系统密码协议规范》 《GB-T 19714-2005 信息技术 安全技术 公钥基础设施 证书管理协议》 《SM4分组密码算法》 《SM2椭圆曲线公钥密码算法—第2部分:数字签名算法》 《SM2椭圆曲线公钥密码算法—第4部分:公钥加密算法》 《SM2密码算法加密签名消息语法规范》 《基于SM2密码算法的数字证书格式规范》 #### 软件架构 业务流程说明: ![业务流程说明](%E4%B8%9A%E5%8A%A1%E6%B5%81%E7%A8%8B.png) 代码层次结构: ![代码层次结构](%E7%BB%93%E6%9E%84.png) #### 测试性能 pc单机测试,TPS≈1000 #### 安装教程 1. 通过KM-SERVER中Application类中的main,启动服务 2. 通过CA-SERVER中Application类中的main,启动服务 3. 通过CA-CLIENT中Application类中的main,发起证书申请请求 #### 使用说明 目前只实现了数字证书的申请流程。 #### 特技 1.服务之间的数据协议符合国密相关协议规范 2.服务之间的通讯采用TCP长连接,包含心跳检测、断线重连机制 3.签发的数字证书符合国密SM2数字证书相关规范 4.生成的密钥为国密SM2密钥对