HTTPS-RSA握手

RSA握手过程

HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密

RSA握手是HTTPS连接建立过程中的一个关键步骤,用于确保通信双方的身份验证和生成对称加密所需的密钥

通过RSA握手过程,客户端和服务器可以协商出一个共享的对称密钥,并确保通信双方的身份验证和数据传输的安全性

通过Wireshark抓包,一共经历了四次握手

TLS第一次握手

  • 客户端向服务器发出Client Hello,客户端向服务器发送一个包含加密套件列表随机数和其他参数的消息,以表示自己支持的加密算法和通信参数
  • Random随机数是生成会话秘钥的材料之一

TLS第二次握手

  • 服务器发送ServerHello:服务器从客户端发送的加密套件列表中选择最合适的加密套件,并返回给客户端一个包含自己的证书(包含公钥)、随机数和其他参数的消息。

  • 服务端的密钥套件为:Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256

  • 一般WITH前面有两个算法,这只有RSA,说明密钥交换算法和签名算法都是RSA

  • 握手后使用AES对称算法

  • 随机数是产生会话秘钥的第二个材料

  • 返回给客户端的证书是包含服务器的公钥的,客户端通过CA的公钥来解密获得服务器的公钥

  • 数字证书的签发和验证流程

TLS第三次握手

  • 客户端生成一个随机数(pre-master),再用服务器的RSA公钥加密该随机数,通过Client key Exchange消息传给服务器
  • 因此,客户端,服务器都有了三个随机数,分别是Client Random,Server Random和pre-master
  • 双方通过这三个随机数生成会话秘钥,用于对后续的HTTP请求响应的加密
  • 生成完会话秘钥后,客户端发送change cipher spec消息给服务端,开始使用会话秘钥进行加密通信
  • 客户端最后再发Encrypted Handshake Message消息把之前数据做一个摘要处理,使用会话秘钥加密发送给服务器,让服务器做验证

TLS第四次握手

  • 服务器也发送一样的消息给客户端,让客户端做验证,如果都没问题,那么握手就完成了,之后就使用会话秘钥进行加密通信了
相关推荐
2501_915921431 小时前
iOS App 电耗管理 通过系统电池记录、Xcode Instruments 与克魔(KeyMob)组合使用
android·ios·小程序·https·uni-app·iphone·webview
老邓计算机毕设1 小时前
SSM学生选课系统xvbna(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生选课系统·ssm 框架·高校教学管理
枷锁—sha2 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全
东城绝神2 小时前
《Linux运维总结:基于ARM64+X86_64架构使用docker-compose一键离线部署MySQL8.0.43 NDB Cluster容器版集群》
linux·运维·mysql·架构·高可用·ndb cluster
逍遥德4 小时前
PostgreSQL 中唯一约束(UNIQUE CONSTRAINT) 和唯一索引(UNIQUE INDEX) 的核心区别
数据库·sql·postgresql·dba
工业甲酰苯胺4 小时前
字符串分割并展开成表格的SQL实现方法
数据库·sql
科技块儿4 小时前
IP定位技术:游戏反外挂体系中的精准识别引擎
数据库·tcp/ip·游戏
衫水5 小时前
[特殊字符] MySQL 常用指令大全
数据库·mysql·oracle
卓怡学长5 小时前
m115乐购游戏商城系统
java·前端·数据库·spring boot·spring·游戏
小句5 小时前
SQL中JOIN语法详解 GROUP BY语法详解
数据库·sql