SM2 国密算法SSL证书应用于HTTPS加密,如何实现?

简介: 服务端如何实现基于国密算法的SSL加密连接呢?如何解决国密算法的浏览器兼容性问题?

如果要在客户端/网关系统和服务端之间进行SSL加密通信,当客户端应用(浏览器等)发起登录认证、加密、签名等请求时,服务端如何实现基于国密算法的SSL加密连接呢?如何解决国密算法的浏览器兼容性问题?

如何实现基于国密算法的SSL认证和加密

国密SSL协议的握手过程如下:

(1)交换Hello消息来协商密码套件,交换随机数,决定是否会话重用;
(2)交换必要的参数,协商预主密钥
(3)交换证书信息,用于验证对方
(4)使用预主密钥和交换的随机数生成主密钥
(5)向记录层提供安全参数
(6)验证双方计算的安全参数的一致性、握手过程的真实性和完整性

_ssl_1

实现以上握手过程,需要客户端(浏览器)和服务端都支持国密算法。虽然目前SM2/SM3/SM9算法已相继纳入国际标准体系,但要实现客户端和服务端的广泛兼容,仍然需要漫长的推进过程。在此期间,通过技术解决方案让浏览器端、服务端都能够支持国密算法和国密SSL证书,才能推动国密算法普及应用。

因此,在服务端实现基于国密算法的SSL认证和HTTPS加密,需要网站运营者向工信部许可的权威电子认证机构(如:沃通CA),申请符合国密标准的国密SSL证书(如: 沃通国密SSL证书),将证书部署在服务器上,并在服务器端编译国密算法支持模块(沃通CA提供),然后使用国密浏览器(如:密信国密浏览器)访问已部署证书的站点,浏览器和服务端就能用国密算法加密传输数据了,完整实现国密算法SSL认证和加密的应用。为了确保国密SSL证书的安全性,签发国密SSL证书的CA机构,还应该提供支持国密算法的CRL/OCSP服务器,用于查询SSL证书的有效状态。

部署国密SSL证书的站点,如何解决浏览器兼容性问题?

使用国密算法SSL证书的站点,在国密浏览器上可以正常访问,但由于国密算法还没有在所有主流浏览器中广泛兼容,因此一些仅支持国际算法的主流浏览器会对国密SSL证书报错。为了解决这个问题,业内沃通CA首推“双证书部署”和“自适应浏览器兼容”方案,可以同时兼容国密算法浏览器和仅支持国际算法的浏览器。通过此方案,任何用户使用任意浏览器都能正常访问网站,满足部署国密SSL证书的合规需求,同时满足网站可用性、易用性和全球通用性要求,解决了国密SSL应用的技术障碍。
_2_2

相关文章
|
11天前
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
25 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
2天前
|
安全 网络安全 数据安全/隐私保护
SSL加密
【5月更文挑战第9天】SSL加密
3 1
|
5天前
|
存储 机器学习/深度学习 算法
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
|
5天前
|
数据采集 机器学习/深度学习 算法
数据分享|WEKA关联规则挖掘Apriori算法在学生就业数据中的应用
数据分享|WEKA关联规则挖掘Apriori算法在学生就业数据中的应用
|
9天前
|
机器学习/深度学习 自然语言处理 算法
机器学习算法原理与应用:深入探索与实战
【5月更文挑战第2天】本文深入探讨机器学习算法原理,包括监督学习(如线性回归、SVM、神经网络)、非监督学习(聚类、PCA)和强化学习。通过案例展示了机器学习在图像识别(CNN)、自然语言处理(RNN/LSTM)和推荐系统(协同过滤)的应用。随着技术发展,机器学习正广泛影响各领域,但也带来隐私和算法偏见问题,需关注解决。
|
10天前
|
机器学习/深度学习 算法 C语言
【C言专栏】递归算法在 C 语言中的应用
【4月更文挑战第30天】本文介绍了递归算法在C语言中的应用,包括基本概念(通过调用自身解决子问题)、特点(调用自身、终止条件、栈空间)和实现步骤(定义递归函数、分解问题、设置终止条件、组合解)。文中通过阶乘计算和斐波那契数列两个案例展示了递归的使用,强调了递归可能导致的栈溢出问题及优化需求。学习递归有助于理解和应用“分而治之”策略。
|
10天前
|
机器学习/深度学习 数据可视化 算法
【Python机器学习专栏】t-SNE算法在数据可视化中的应用
【4月更文挑战第30天】t-SNE算法是用于高维数据可视化的非线性降维技术,通过最小化Kullback-Leibler散度在低维空间保持数据点间关系。其特点包括:高维到二维/三维映射、保留局部结构、无需预定义簇数量,但计算成本高。Python中可使用`scikit-learn`的`TSNE`类实现,结合`matplotlib`进行可视化。尽管计算昂贵,t-SNE在揭示复杂数据集结构上极具价值。
|
10天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】层次聚类算法的原理与应用
【4月更文挑战第30天】层次聚类是数据挖掘中的聚类技术,无需预设簇数量,能生成数据的层次结构。分为凝聚(自下而上)和分裂(自上而下)两类,常用凝聚层次聚类有最短/最长距离、群集平均和Ward方法。优点是自动确定簇数、提供层次结构,适合小到中型数据集;缺点是计算成本高、过程不可逆且对异常值敏感。在Python中可使用`scipy.cluster.hierarchy`进行实现。尽管有局限,层次聚类仍是各领域强大的分析工具。
|
10天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
11天前
|
存储 算法 搜索推荐
算法的复杂性与应用
算法的复杂性与应用
7 0