国密SSL通信协议详细介绍与抓包分析

这篇具有很好参考价值的文章主要介绍了国密SSL通信协议详细介绍与抓包分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近研究有关SSL协议的物联网安全协议,看了很多资料并且结合TASSL在ubuntu上跑了一个简单的demo,因此有了一些自己的理解,那么就详细讲解一下我所知道的SSL,相信这一篇文章就可以让你全面了解SSL。
国密SSL通信协议详细介绍与抓包分析

什么是SSL?

SSL:Secure Sockets Layer 安全套接字协议,位于 TCP/IP 协议与各种应用层协议之间,基于HTTP之下,TCP之上的一个可选协议层,为数据通讯提供安全支持。

最开始HTTP在传输数据时使用的是明文,是不安全的。为了解决这个隐患,网景(Netscap)公司推出了SSL。HTTPS之所以安全就是因为加持了SSL这个外挂来对传输的数据进行加密。(HTTP+SSL)。

HTTPS = HTTP(超文本传输协议) + SSL(安全套件字层)/TLS(传输层安全协议)
国密SSL通信协议详细介绍与抓包分析
那么一定会有人有疑惑,SSL和TLS到底是什么关系,为什么他俩总是一起出现,那是因为HTTPS的推出受到了很多人的喜爱,所以SSL就要不断的更新换代,当SSL更新到3.0时, 互联网工程任务组(IETF)对SSL3.0进行了标准化,并添加了少数机制,并将其更名为TLS1.0 安全传输层协议(Transport Layer Security),目前最新的是TLS1.3。

国密SSL通信协议详细介绍与抓包分析

SSL的体系结构

SSL 协议可分为两层:记录协议和握手协议

握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

记录协议:它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

国密SSL

中国的最新相关安全标准,就是要把其中的安全实现更换成国密算法。简而言之,国密SSL就是SSL/TLS协议的国密版本
国密SSL通信依据的协议是中华人民共和国密码行业标准《SSL VPN技术规范GM/T 0024–2014》协议。这可是个好东西,有条件的可以自己下载看一下。

国密SSL协议包括:握手协议密码规格变更协议报警协议、网关到网关协议,记录层协议

握手协议:用于身份鉴别和安全参数协商

密码规格变更协议:用于通知安全参数的变更,这个很重要,解释一下,例如当双方协商好加密密钥,接下来要更换密钥或者使用协商好的密钥进行通信时就需要密码变更协议,更通俗来讲就是你说四川话,我说上海话,我们之间交流需要规定一种双方听得懂的语言才行。

报警协议:用于关闭通知和对错误进行报警

网关到网关协议:用于建立网关到网关的传输层隧道

记录层协议:用于传输数据的分段、压缩及解压缩、加密及解密、完整性校验等

SSL加密方式

SSL加密主要使用非对称加密方式

非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。

数字证书

数字证书:互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印。

数字证书包括:签发证书的机构,加密算法,Hash算法,公钥,证书到期的时间等。

SSL通信过程

国密SSL通信协议详细介绍与抓包分析

第一步:客户端提供:
1.支持 SSL 协议版本号
2.一个客户端随机数(这是第一个随机数)
3.客户端支持的加密方法等信息;

第二步:服务端收到信息后,确认双方使用的加密方法,并返回:
1.数字证书
2.一个服务器生成的随机数(这是第二个随机数)等信息;

第三步:客户端确认数字证书的有效性,然后生成一个新的随机数,然后使用数字证书中的公钥,加密这个随机数,发给服务端;

第四步:服务端使用自己的私钥,获取客户端发来的随机数;

第五步:客户端和服务端通过约定的加密方法(通常是AES算法),使用前面三个随机数,生成对话密钥,用来加密接下来的通信内容;

SSL通信demo示例

国密SSL通信协议详细介绍与抓包分析

国密SSL通信协议详细介绍与抓包分析

1.Client_Hello

国密SSL通信协议详细介绍与抓包分析

该消息是客户端Hello消息,作为握手协议的第一条消息。
Handshake type 1个字节
length 3个字节
version 2个字节,客户端在这个会话中使用的协议版本,在本协议中是1.1
random 32个字节,客户端产生的随机信息
session_id_length 1个字节,这是一个可变长字段,其值由服务端决定。如果没有可重用的会话标识或希望协商安全参数,该字段为空,否则表示希望客户端希望重用该会话。
Cipher suit length 2个字节,密码套件的长度
Cipher suit 10个字节,客户端所支持的密码套件列表,每个密码套件包括一个密钥交换算法,一个加密算法,和一个校验算法,服务端会在密码套件列表中选择一个与之匹配的密码套件。
Compression_methods_length 1个字节
Compression_methods 1个字节 客户端所支持的压缩算法列表

2.Server_Hello

国密SSL通信协议详细介绍与抓包分析

Server Hello 该消息为服务端Hello消息,如果能够从client_hello中找到匹配的密码套件,服务端就会发送这个消息。
session_id_length 1个字节
session_id 32个字节,服务端使用的会话标识,如果客户端hello消息中的会话标识不为空,且服务端存在匹配的会话标识,则服务端重用与该标识对应的会话建立连接,并回应一样的会话标识,否则服务端产生一个新的会话标识,建立一个新的会话。

国密SSL通信协议详细介绍与抓包分析

Server Certificate 服务端证书消息

服务端必须发送证书给客户端,紧跟着hello消息之后。本消息的内容为服务端的签名证书和加密证书。
服务器证书:签名证书在前,加密证书在后。
签名: 防伪造,防抵赖
加密:防偷窥

国密SSL通信协议详细介绍与抓包分析

version 版本号 1个字节 ,后面多出2个字节
serialNumber 序列号, 20个字节 ,由发行者给予每一个证书的分配编号
signature 签名算法标识(基于SM3的SM2签名算法)
Algorithm Id : 算法id: 1.2.156.10197.501

国密SSL通信协议详细介绍与抓包分析

3.Client_Certificate

国密SSL通信协议详细介绍与抓包分析

Certificate: 客户端证书消息
有三个证书: 签名证书,CA根证书,加密证书

4.1 Change Cipher Spec

4.2 Encrypted handshake Message

国密SSL通信协议详细介绍与抓包分析

Change Cipher Spec: 在后续的连续发送过程中,服务端都可以采用该报文通知客户端,后续将采用新秘钥进行数据加密通信。
Encrypted handshake Message: 该报文的目的就是,服务端告诉客户端,自己在整个握手过程中收到了什么数据,发送了什么数据。来保证中间没人篡改报文。该数据采用刚才协商好的秘钥进行加密,顺带验证秘钥。

一些额外的小知识

消息摘要

消息摘要也称为散列,是通过单向散列函数对消息的指印或汇总,用于验证数据完整性(即保证消息在发送之后和接收之前没有被篡改)

国密SSL通信协议详细介绍与抓包分析

消息摘要一般有两个基本要求:首先,给定一个消息,应很容易求出消息摘要,而且给定某个消息,消息摘要应该相同。对一个消息(M1)及其消息摘要(MD),不太可能找到另一个消息(M2),使其产生完全相同的消息摘要。散列函数(又称杂凑函数)是对不定长的输入产生定长输出的一种特殊函数。

消息认证码(MAC)

消息认证码 MAC(Message Authentication Code)是一种实现消息认证的方法,也叫数据鉴别码 DAC,它是带有密钥的单向散列函数。MAC 是由消息和密钥的一个函数值 MAC=Ck(M)产生。其中 M 是变长的消息,K 是仅由收发双方共享的密钥,MAC 是定长的认证码。通信双方 A 和 B 共享密钥,当 A 要向 B 发消息时,计算 MAC 并将它附加在消息的后面,发往预定的接收者 B,B 使用共享密钥,对收到的消息计算得出新的 MAC’,判断 MAC 是否与 MAC’相等,若相等说明消息完整。文章来源地址https://www.toymoban.com/news/detail-415801.html

到了这里,关于国密SSL通信协议详细介绍与抓包分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSL/TLS介绍以及wireshark抓包TLS Handshake报文

    SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是一种安全协议,用于在计算机网络上实现加密通信。SSL最初由美国Netscape开发,随后发展为TLS,并得到了广泛应用,成为互联网上保护通信安全的标准协议。 TLS 位于 TCP 之上(也有基于 UDP 的,称为DTLS,这里不讨论它),如

    2024年02月03日
    浏览(25)
  • 可信通信(TLS/SSL协议)

            比特币,以太坊,超级账本在建立网络连接保证节点间可靠通信的时,都直接采用了 传输层安全性协议(Transport Layer Security) ,TLS协议自从1999年发布以来已经广泛的应用在浏览器,电子邮件等应用中了,经过了大规模的验证,已经成为了互联网上保密通信的工业

    2024年04月17日
    浏览(23)
  • 接口协议之抓包分析 TCP 协议

    TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 环境准备 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy 分析工具:curl,postman,chrome Devtool 抓包分析TCP协议 tcpd

    2023年04月08日
    浏览(23)
  • 【抓包分析tcp协议】

    1、网络监听:TcpDump + WireShark(适用偏底层的协议分析) 2、代理Proxy(适用偏高层的协议分析,如http) ① 推荐工具:手工测试charles[全平台]、安全测试burpsuite[全平台java] ② 自动化测试:mitmproxy ③ 其他代理:fiddler[仅windows、AnyProxy[全平台] 3、协议客户端工具:curl、postman

    2024年02月07日
    浏览(31)
  • 抓包分析 TCP 协议

    TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy 分析工具:curl,postman,chrome Devtool tcpdump tcpdump 是一款将网络中传送

    2024年02月19日
    浏览(24)
  • Wireshark抓包分析IP协议

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」: 此文章已录入专栏《计算机网络零基础快速入门》 试验目的:抓包分析IP协议的传输过程和数据分片 操作系统:Windows 10 企业版 抓包工具:W

    2024年02月06日
    浏览(35)
  • Wireshark抓包分析ICMP协议

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 分析目的:分析ICMP协议的数据格式、报文类型及作用。 操作系统:Windows

    2024年02月08日
    浏览(29)
  • 使用Wireshark抓包分析TCP协议

    wireshark数据包详细栏每个字段对应的分层。 我们点开这个字段,从该字段中可以看到相邻两个设备的MAC地址 本层主要负责将TCP层传输下来的数据加上目标地址和源地址。 这一层用到了TCP协议 tcp包头 每个字段对应的TCP包头 TCP三次握手示意图 第一次握手 :客户端向服务器发

    2023年04月13日
    浏览(32)
  • Wireshark数据抓包分析之传输层协议(TCP协议)

            通过使用wireshark对TCP协议的数据包的抓取分析TCP协议的具体内容         1.需要了解TCP协议的三次握手过程         2.需要了解TCP协议的四次挥手的过程 part1:3次握手和4次挥手的数据包的获取 1.通过使用TCP测试工具在机器一中创建服务器,并且进行相应的配置,然

    2024年02月11日
    浏览(30)
  • 常见网络通信协议(http、https、ws)及安全协议(SSL、TLS、XTLS)

    文章内容删除了一大半不合适的内容,发不出来,你懂得。🥰 HTTP和HTTPS都属于 应用层协议 ,它们都是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议。它们都是 基于 TCP/IP 协议 来传递数据的,支持 客户端-服务器模式 的通信。 HTTP和HTTPS的区别主要在于HTT

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包