随着《密码法》密码法的颁布与实施,国密的应用及推广终于有法可依。而对于应用国密其中的一个重要组成部分----国密HTTPS通信也应运而生。为了大家更好的了解国密HTTPS相关的知识,接下来打算和大家一起分享关于国密HTTPS的那些事。聊一聊关于HTTPS通信协议本身;聊一聊为什么要有这些协议;以及国密SSL协议到底又是如何对一个网站进行数据加密的;国密SSL协议中又使用了哪些国密算法;国密的双证书和传统的RSA证书单证书在握手协商中又有什么区别等等,由于篇幅较长,时间有限,所以只能选择逐步和大家分享。

为了让更多的朋友看懂和了解这个行业和领域,明白其中的内容,本文用通俗易通、轻松愉快的方式来表达解析这些枯燥的词汇。

1.关于HTTPS

讲到https通信,那就避免不了要讲到枯燥乏味的通信协议,相信大家在上网的时候肯定会有意无意的都会见到HTTP、 HTTPS、SSL、TLS等这些关键字或标签。那么我们先简单的了解一下他们代表的含义 ,然后梳理一下它们之间的关系。

HTTP:(HyperText Transfer Protocol)超文本传输协议,相信大家都不陌生,打开浏览器就能看到。

SSL:( Secure Sockets Layer )安全套件字层。可分为两层: SSL记录协议(SSL Record Protocol)和 SSL握手协议(SSL Handshake Protocol)。

TLS :( Transport Layer Security )传输层安全协议。也分为两层 TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

之所以这么表达,就是让聪明的你看出其中的端倪。细心的朋友肯定会发现,SSL和TLS怎么这么相似啊,难道?对!你的直觉就体现了他们之间的关系。TLS就是建立在SSL3.0协议规范之上的协议。所以很多时候你会发现他们俩是被绑定在一起呈现的SSL/TLS。要硬说他们的关系,用时下的网络语言描述那就是:有点像CP,又好似前浪和后浪。至于这些协议怎么用后面会介绍到。

HTTPS:就是HTTP + SSL/TLS。

理清楚了他们的关系,我们就算是入门了。至于为什么要把http协议变成https。相信大家都很清楚,因为少了s,就像光着身子在人潮涌动的人流中奔跑。只要别人想看,你的脚步,永远比不过人家看的你速度,甚至还有人会驻足,对你注目。好像还有点押韵,skr...。

所以对一个http的站点来说,毫无隐私可言,更谈不上安全了。所以赶紧给你的站点穿上“衣服”吧。

2.关于协议

前面说了https,说到这里,问题又来了。既然说部署了https,就像给网站穿了“衣服”,保护住了自己的隐私,那么这个“衣服”又是怎么来保护自己的隐私的呢?

没错,就是通过SSL/TLS协议,我们先来看看国密协议的整个流程,大家在看整个流程的时候思考一下 SSL/TLS到底解决了哪些问题,他是如果保护你数据安全的?

国密SSL通信依据的协议是中国人民共和国密码行业标准《SSL VPN技术规范GM/T 0024--2014》协议。其协议流程和传统的使用RSA证书的TLS协议流程基本一致,但是又有区别,因为传统的TLS协议中服务端使用的是单证书,而国密SSL VPN协议在双方的握手的过程中服务端使用的是双证书(签名证书和加密证书)。

下面我们来看国密SSL的主要握手流程:

根据《SSL VPN技术规范GM/T 0024--2014》协议,我们对整个握手的流程整理如下:

下面我们来分析整个过程。

1.客户端首先会发送ClientHello消息与服务端进行握手,在ClinentHello消息中包括了加密套件和随机数。

2.在服务端接收到客户端的握手请求后,会结合自己的证书选择合适的加密套件返回给客户端,并且会产生随机数一起发送。

3.服务端会继续发送Certificate消息给客户端,在Certificate消息中会包含双证书,即签名证书和加密证书,加密证书放在签名证书前面。

4.服务端根据选定的握手协议,接着发送ServerKeyExchange消息。如果选用的是ECC_SM4_SM3套件,则在消息中包含着服务端对双方随机数和服务端加密证书的签名。

5.如果服务端开启了双向认证,则会继续发送CertificateRequest消息给客户端。

6.在客户端接收到服务端的回复后,如果收到了5中发送的消息,则会先回复ClientCertificate消息给服务端,如果没有收到,则跳过此步骤。

7.如果客户端收到了5的请求, 则在发送完6的消息后紧接着发送ClientKeyExchange给服务端,否则ClientKeyExchange是客户端在收到服务端消息后回复给服务端的第一条信息。如果选用的是ECC_SM4_SM3套件,则这条消息的主要内容是用服务端加密证书公钥加密的预主秘钥。

8.如果客户端发送了6的消息,则需要发送CertificateVerify消息给服务端,这条消息用来鉴别客户端是否为证书的合法持有者。

9.最后在服务端和客户端各自在密码规格变革消息后都会发送Finished消息给对方。用于验证秘钥交换过程是否成功,并校验握手过程的完整性。

10.到此整个国密SSL握手的流程就结束了,协议双方会使用协商出来的对称秘钥对通信的数据进行加解密。

以上就是国密SSL通信的整个握手流程。

不知道大家看完之后的感受是什么?是意犹未尽,是五味杂陈,还是有些萌萌达?没关系,这些都不重要!重要的是!!!

SSL/TLS协议到底解决了哪些问题?它又是如果通过这个流程来保障数据安全的呢?我们下回接着聊!

七夕将至!下文我会带大家一起的聊聊关于牛郎(客户端)和织女(服务端)这对鸳鸯的爱情故事(通信协议)。他们是如果通过约定(握手协商),在七夕通过鹊桥(对称秘钥)走到一起(加密通信)的,敬请期待!

关于国密HTTPS的那些事(一)相关推荐

  1. httpclient 不支持国密ssl_关于国密HTTPS 的那些事(三)

    承接上期内容:关于国密HTTPS的那些事(二) [作者简介] 探花郎-高级软件工程师,从事PKI相关技术研发工作多年,熟悉Linux网络编程,擅长C/C++语言.现任职沃通CA,负责国密ssl相关库的 ...

  2. 关于国密HTTPS 的那些事(三)

    关于国密HTTPS 的那些事(三) 前面我们和大家一起聊了一下加密套件,为什么这么详细的叙述加密套件呢,因为它的身份特殊啊,它可是连接通信双方的桥梁,也是月老手中的红绳. 言归正传,接下来我们再继续看 ...

  3. 关于国密HTTPS的那些事(三)

    前面我们和大家一起聊了一下加密套件,为什么这么详细的叙述加密套件呢,因为它的身份特殊啊,它可是连接通信双方的桥梁,也是月老手中的红绳. 言归正传,接下来我们再继续看看国密vpn协议中列举的基于国密算法 ...

  4. 2023,国密HTTPS加密普及元年

    "2018网站空间可信峰会"(2008.12.17)首次提出了"中国网络空间可信生态建设框架"的构想,并提出了国密SSL证书的应用思路--先"双轨制& ...

  5. 坚持自主可控,长安链ChainMaker全面拥抱国密的技术实践

    密码技术作为与核技术.航天技术并列的国家三大安全核心技术之一,在保障信息安全,增强我国行业信息系统的"安全可控"等方面具有关键作用.长期以来国际上较为通用的商用算法是由美国安全局发 ...

  6. 国密浏览器是什么?有哪些?有什么特点?

    国密浏览器是什么?有哪些?有什么特点?今天我们小编就给大家详细回答这三个问题. 国密浏览器是什么? 国密浏览器就是指支持国密SSL协议和加密证书的浏览器,使用国密算法SSL证书的站点,在国密浏览器上可 ...

  7. 主流CA吊销俄罗斯数字证书启示:升级国密算法SSL证书,助力我国网络安全自主可控

    随着国际和民间黑客组织的加入,俄乌的战争快速蔓延成一场全球化的网络信息战.国际上主流CA机构不再为俄罗斯提供数字证书服务,甚至吊销俄罗斯相关的一些国家基础设施网站的证书.这让俄罗斯不得不开始建立国家C ...

  8. 新手入坑GMSSL(三)GMSSL双证书与360国密浏览器通讯

    首先申明,我不是密码学的专业人员,没有这方面知识基础,这个以及接下来的博客都是我根据网上能找到的资料.博客,一点点摸索总结出来的.但项目必须得做身不由己,无奈只能自己试一试了. 如果有哪里不对的地方, ...

  9. JumpServer国密支持配置

    1. 环境说明 HTTPS 国密证书配置在JumpServer前端的Nginx服务器,用户通过本地的国密支持的浏览器访问到Nginx服务器,此链路为国密HTTPS加密链路,Nginx服务器进行HTTP ...

最新文章

  1. 如何卸载 python setup.py install 安装的包?
  2. 关于服务器中毒的预防与治疗
  3. abp框架java,【Net】ABP框架学习之正面硬钢
  4. 中国可燃冰储量世界第一,2030年能实现商业性开发吗?多难开采?
  5. 牛!Python 全栈必备的 150 个实战案例,一次性获得!
  6. Flask wtforms
  7. sass webpack_如何在Visual Studio和Webpack中编译Sass文件
  8. 2021年中国单硝酸异山梨酯市场趋势报告、技术动态创新及2027年市场预测
  9. JavaScript知识点总结 1
  10. 安卓ViewFlipper跑马灯效果
  11. 360系统修复过程中卡慢问题的解决方案
  12. Java SSM 项目实战 day08 方法级别的权限操作 服务器端的权限控制(JSR-250注解)(支持表达式的注解)(@Secured)以及页面端的权限控制
  13. 2008年SP产业发展趋势
  14. JAVA中两个char类型相加_5.16--java数据类型转换及杂记
  15. Java面试八股文整理
  16. Excel数据透视表经典教程十《值的汇总及显示方式》
  17. ubuntu安装微信,解决网页版微信不能登陆问题
  18. STM32F1单片机零基础学习(1)
  19. 面试官问的最后一个问题应该怎么回答?
  20. 阿里云购买学生机镜像多种选择

热门文章

  1. 老男孩教育春节假期安排
  2. 洛谷P5633 最小度限制生成树 题解
  3. DevOps之自动化测试
  4. Python人工智能实例 │ 使用Haar级联进行人脸检测、使用CAMShift算法、光流法进行人脸追踪
  5. python文本txt词频统计_python实例:三国演义TXT文本词频分析
  6. 使用beeline/hive时,该如何停止打印INFO日志
  7. [附源码]java毕业设计校园快递管理系统
  8. TCP/IP原理浅析
  9. 工具分享:图片水印工具(WaterMarker)
  10. 将栅格影像转换为CAD/GIS矢量的3种方法