新手请教下,如何实现基于国密sm2/sm3算法的SSL认证?

qq_38030647 2017-04-06 05:29:17
现在要做一个网关系统,客户端(windows系统)设一个驻留程序,可以和服务端(linux服务器)进行SSL通讯。

当客户端的应用(浏览器或其他client程序)发起登录认证、加密、签名等请求操作时,驻留程序接收到该请求,和服务端进行基于国密SM2/SM3的SSL通讯,服务端完成相应业务操作后,由驻留程序最终将服务端返回的结果送回浏览器或其他client程序。

请教下:
1、如何在原有的无SSL模块的网关系统中,集成进去 基于国密SM2/SM3的SSL模块?
2、基于国密SM2/SM3的SSL模块,有现成的开源代码吗?

谢谢谢谢!
...全文
2286 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
沃通WoTrus 2019-03-28
  • 打赏
  • 举报
回复
国密SSL协议的握手过程如下:
(1)交换Hello消息来协商密码套件,交换随机数,决定是否会话重用;
(2)交换必要的参数,协商预主密钥
(3)交换证书信息,用于验证对方
(4)使用预主密钥和交换的随机数生成主密钥
(5)向记录层提供安全参数
(6)验证双方计算的安全参数的一致性、握手过程的真实性和完整性

在服务端实现基于国密算法的SSL认证和HTTPS加密,需要向工信部许可的权威电子认证机构(如:沃通CA),申请符合国密标准的国密SSL证书,将证书部署在服务器上,并在服务器端编译国密算法支持模块,然后使用国密浏览器访问已部署证书的站点,浏览器和服务端就能用国密算法加密传输数据了,完整实现国密算法SSL认证和加密的应用。为了确保国密SSL证书的安全性,签发国密SSL证书的CA机构,还应该提供支持国密算法的CRL/OCSP服务器,用于查询SSL证书的有效状态,沃通国密方案完整支持以上实现。
qq_38030647 2017-04-06
  • 打赏
  • 举报
回复
补充下,如果有基于c的实现最好了。
先看效果: https://pan.quark.cn/s/416b2d60deb6 GmSSL CMake-Ubuntu/macOS CMake-Windows CMake-Android CMake-iOS GmSSL是由北京大学自主开发的国产商用密码开源库,实现了对国密算法、标准和安全通信协议的全面功能覆盖,支持包括移动端在内的主流操作系统和处理器,支持密码钥匙、密码卡等典型国产密码硬件,提供功能丰富的命令行工具及多种编译语言编程接口。 主要特性 超轻量:GmSSL 3 大幅度降低了内存需求和二进制代码体积,不依赖动态内存,可以用于无操作系统的低功耗嵌入式环境(MCU、SOC等),开发者也可以更容易地将国密算法SSL协议嵌入到现有的项目中。 更合规:GmSSL 3 可以配置为仅包含国密算法国密协议(TLCP协议),依赖GmSSL 的密码应用更容易满足密码产品型号检测的要求,避免由于混杂非国密算法、不安全算法等导致的安全问题和合规问题。 更安全:TLS 1.3在安全性和通信延迟上相对之前的TLS协议有巨大的提升,GmSSL 3 支持TLS 1.3协议和RFC 8998的国密套件。 GmSSL 3 默认支持密钥的加密保护,提升了密码算法的抗侧信道攻击能力。 跨平台:GmSSL 3 更容易跨平台,构建系统不再依赖Perl,默认的CMake构建系统可以容易地和Visual Studio、Android NDK等默认编译工具配合使用,开发者也可以手工编写Makefile在特殊环境中编译、剪裁。 下载 GmSSL的主分支版本为 GmSSL-3.1.1,主要增加跨平台特性,特别是对Windows/Visual Studio的支持,Windows、Android、iOS...

9,513

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧