当前位置: 首页 > article >正文

http、https、https原理

1. HTTP是超文本传输协议,明文传输,在传输的过程中可以对数据进行篡改或拦截
2. HTTPS是超文本传输安全协议,协议的主要功能都依赖于 SSL/TLS 协议实现的,SSL/TLS的功能实现主要涉及到三种算法:摘要算法、对称加密和非对称加密。
3. https中包含3种加密方法,对称加密、非对称加密、散列函数
4. 由于对称加密的计算量小、加密解密速度快,适合处理大量数据,因此客户端与服务端通信时传输数据使用对称加密的方式
5. 为了防止第三方也可以获取到对称加密的密钥,对密钥也需要进行加密。采用非对称加密对密钥进行加密,服务端生成一对公钥和私钥,公钥需要传递给客户端进行存储,用于对对称加密的密钥进行加密,那么如何确定该公钥是由服务端发送而不是其他人的呢?
  • 首先服务器向CA机构进行申请认证,提交服务端的公钥和服务方的相关信息。
  • CA利用单向散列函数(Hash函数)对公钥和服务方的信息进行运算,生成一串固定长度的数字摘要,同时这也是数字指纹,可用于判断数据有没有被篡改。
  • CA机构拥有一对公钥和私钥,CA使用私钥对数字摘要进行加密形成数字签名,数字签名和证书的明文信息共同组成数字证书。

‌SSL数字证书的内容包括多个关键信息,这些信息共同确保了证书的有效性和可信度。‌

  • 证书版本‌:指证书遵循的版本标准,如X.509v3。
  • 序列号‌:由CA(证书颁发机构)分配的唯一序列号,用于识别证书。
  • 签名算法‌:证书使用的签名算法,如SHA-256 with RSA。
  • 签发者‌:证书由哪个CA签发。
  • 有效期‌:证书的开始和结束日期。
  • 主题‌:证书所绑定的实体,通常是服务器的域名或IP地址。
  • 主题公钥‌:服务器用于加密通信的公钥。 ‌主题公钥算法‌:公钥使用的加密算法。
6. https的客户端向服务端发起请求后,会得到一份数字证书,客户端需要校验该证书的真实性、有效性。
  • 判断证书的有效期是否过期;
  • 判断证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构);
  • 验证证书是否被篡改,从系统中拿到该证书发布机构的公钥,对数字签名解密,得到一个hash值(称为数据摘要),然后使用与CA机构同样的单向散列函数(Hash函数)计算整个证书的hash值,对比两个hash值是否相等,如果相等,则说明证书是没有被篡改过的;(如何确保与CA机构使用的是相同的hash函数,主要是通过公钥基础设施(PKI)的标准和规范来实现的,这些标准规定了证书的格式和验证方法,包括使用的hash算法)
  • 校验证书合法后,会随机生成密钥R
7. 对需要发送到服务器的数据使用密钥R进行加密,同时使用证书中的服务器的公钥对密钥R进行加密,将加密后的数据和密钥一起发送到服务端,服务端使用私钥解密得到密钥R后对接收的数据进行解密,并将密钥进行存储,至此以该密钥开始正式的资源交换。

http://www.kler.cn/a/291131.html

相关文章:

  • JumpServer开源堡垒机搭建及使用
  • 开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述
  • 系统思考—战略共识
  • Redis篇-19--运维篇1-主从复制(主从复制,读写分离,配置实现,实战案例)
  • 音频开发中常见的知识体系
  • 【Unity】【VR开发】实现VR屏幕共享应用的几个重要插件和参考资料分享
  • UI自动化测试 —— 下拉选择框弹出框滚动条操作实践!
  • armv8 memory model概述
  • 【Redis】缓存(上)
  • 红黑树总结(RbTree)——C++版
  • 【学习笔记】SSL证书之混合加密(Hybrid Encryption)与签名(Signatures)
  • CityHash、FarmHash
  • 数据迁移文档240905
  • go语言使用defer+recover处理error
  • 工业必备:SLM34x系列SLM340CK-DG 1A兼容光耦的单通道隔离驱动器
  • 代码随想录训练营 Day50打卡 图论part01 理论基础 98. 所有可达路径
  • lua脚本保证多条命令原子性
  • 面向对象程序设计原则——里氏替换原则(LSP)
  • 【Linux操作系统】线程控制
  • 16 C语言连接
  • ***萌新6:24点(爆搜)
  • C++类与对象---日期类
  • 【陪诊系统-PC管理端】axios的二次封装
  • OpenCV图像与视频分析笔记 — 视频部分
  • python---爬取QQ音乐
  • 时序预测 | 基于MAMbaS+transformer时间序列预测模型(pytorch)