带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(1)

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(1)

HTTPS的原理浅析与本地开发实践

image.png作者:陈超(揽辰)

image.png出品:大淘宝技术

 

 

日常的开发过程中本地环境保持登录状态是前置条件,在校园B端业务模块的日常研发过程中,一般先通过预发环境登录,将登录态保存在taobao.com的domain下,然后在本地通过Vite/Webpack Server + Nginx + host的方式构造自定义域名(一级域名与登录态的domain一致),进而做下一步的开发工作。但是目前预发/生产的域名都是https协议,本地自定义的域名默认协议是http。因此,为了读取登录态信息,需要将本地的访问地址也配置成https协议。实现的过程主要是在本地通过OpenSSL工具按照x509证书标准生成自签证书,并将这个自签证书添加  到电脑的证书配置项中即可(具体操作过程可以关注明天的推送)。这个配置过程引起了我对数字证书与HTTPS议关系的好奇,因此做了下面的原理探究,下面就对这个探究的过程就一下记录,浅析HTTPS的实现原理,并将两 种配置证书的方式的具体操作步骤做了记录。

 

关键词

 

加密算法、数字签名、秘钥交换、Wireshark、OpenSSL

 

引言

 

首先就需要抛出一个问题,为什么HTTP协议的网址越来越少?我们可以通过下面这个典型的HTTP数据传输流程  看出它的问题 —— 即数据在Client/Server之间不加识别的明文传输。

image.png

 

 

 

明文传输和匿名发送对象也体现了互联网信息不可靠的典型特性:

  1. 篡改数据(伪造 —— 破坏数据一致性;
  2. 嗅探(偷窥 —— 破坏数据的安全性;

 

问题解法

 

—— 如果想解决http的这两个问题,我们需要如何改良它?

 

方案一:通过对称加密的方式传输数据

 

场景一:客户端与服务端交互,通过约定的对称秘钥加密传输数据,在前端资源加载时,仍然可以从数据中找出想要的秘钥;

场景二:客户端/服务端交互如果临时生成随机秘钥,在传输过程中仍然有被截获的风险;

问题:秘钥在网络中传输容易被拦截,假设秘钥泄露,密文全会被破解且无法确定发送方是否安全;

 

方案二:通过非对称加密的方式传输数据

 

场景:服务端产生秘钥对,公钥交给客户端,私钥自己保存,不会在互联网传输,安全性更高; 问题:

  1. 由于公钥是公开的,中间人可以篡改上行或者下行内容。该方案能解决上行数据安全性(密文传输,无法破解) 问题,但是无法解决下行数据的安全性问题(公开的公钥可以解密服务端返回的密文)。此外,数据一致性问题业务法保证,因为中间人可以假借公钥加密自己的数据给服务端,可以修改上行数据,或者中间人告知客户端的公钥为自己的秘钥对,进行修改下行数据。
  2. 非对称加密的效率偏低,不适合用于数据传输;

 

方案三:先客户端/服务端间通过非对称加密协商秘钥,然后用协商的秘钥  做后续的数据传输

 

场景:先客户端/服务端双方通过约定的某种秘钥协商算法在客户端计算出秘钥K,并通过公钥加密K传输给服务端,服务端通过私钥解密后,开始基于秘钥K做数据的对称加密传输。

问题:

  1. 固定的秘钥对和网络中传输的秘钥存在被窃取的可能,安全性并不牢固;
  2. 客户端/服务端在数据传输前没有做合法性校验,无法避免中间人攻击;

 

 

带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(2)https://developer.aliyun.com/article/1340629?groupCode=taobaotech

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
13天前
|
安全 网络协议 网络安全
HTTPS:保护你的网站免受中间人攻击的关键技术
【6月更文挑战第13天】HTTPS是抵御中间人攻击的关键技术,通过数据加密、身份验证和完整性保护保障网络安全。它基于SSL/TLS协议加密通信,防止数据被窃取或篡改,并使用数字证书确认服务器身份,避免伪造。要确保HTTPS安全,需使用有效数字证书,启用强制HTTPS,定期更新维护并限制访问范围。
|
21天前
|
网络协议 前端开发 Java
网络原理 - HTTP / HTTPS(4)——构造http请求
网络原理 - HTTP / HTTPS(4)——构造http请求
16 1
|
21天前
|
存储 JSON 安全
网络原理 - HTTP / HTTPS(2)——http请求
网络原理 - HTTP / HTTPS(2)——http请求
20 1
|
6天前
|
监控 小程序 前端开发
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
|
1月前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
21天前
|
JSON 缓存 前端开发
网络原理 - HTTP / HTTPS(3)——http响应
网络原理 - HTTP / HTTPS(3)——http响应
12 0
|
21天前
|
前端开发 网络协议 JavaScript
网络原理 - HTTP / HTTPS(1)——http请求
网络原理 - HTTP / HTTPS(1)——http请求
11 0
|
1月前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
27 0
|
1月前
|
网络协议 网络安全
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
148 0
|
1月前
|
安全 搜索推荐 数据安全/隐私保护
深入探讨HTTPS协议的原理和工作流程
【2月更文挑战第10天】
91 4
深入探讨HTTPS协议的原理和工作流程