惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Forbes - Security
Forbes - Security
WordPress大学
WordPress大学
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
D
Darknet – Hacking Tools, Hacker News & Cyber Security
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
P
Privacy International News Feed
A
About on SuperTechFans
T
Tailwind CSS Blog
I
InfoQ
S
Securelist
云风的 BLOG
云风的 BLOG
罗磊的独立博客
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
B
Blog RSS Feed
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
The GitHub Blog
The GitHub Blog
Jina AI
Jina AI
腾讯CDC
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
S
Secure Thoughts
博客园 - 司徒正美
J
Java Code Geeks
Y
Y Combinator Blog
Google Online Security Blog
Google Online Security Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
Help Net Security
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Project Zero
Project Zero
T
Tenable Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tor Project blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
小众软件
小众软件
K
Kaspersky official blog

HTTP

用上了 Let’s Encrypt 的 IP 证书,太香了 - V2EX safari 无法打开网站,但 chrome 可以 - V2EX 大家一般如何保证服务器 set-cookie 按序保存的 - V2EX 明御 WEB 应用防火墙 如何找回密码? - V2EX 直连模式下 https 网站打不开 - V2EX 关于在其他国家访问中国国内数据出现严重丢包问题 - V2EX 求教同样的 url 参数头部 cookies, scrapy 请求返回验证码, requests 直接请求就正常,代码如下 - V2EX 什么工具适合方便的发送原始 HTTP 包? - V2EX 冷知识:.ml 域名可以注册了 - V2EX 想监测某航空余票 - V2EX http 代理,如果不支持 connect 方法,有没有办法访问 https 的网站? - V2EX 关于 tomcat 配置国密 https 后出现的问题求助 - V2EX 一个 udp 的疑问 - V2EX tradingview 上面策略的买入 卖出信号怎样发送给服务器,现在 webhook URL 现在收费 有什么办法可以解决的 - V2EX 选择重传协议疑问 - V2EX 有个用于测试 HTTPS 链接各阶段耗时的命令行工具想不起来叫啥了 - V2EX 求各位高手推荐一个 postman 的 mac 下的替代。。 - V2EX 有现成的 Http 请求批量发送和管理工具吗? - V2EX 报文主体和实体主体的差异 - V2EX 请教一下各位, http2 的头部有什么简单的方法去解码吗? - V2EX 后 911S5 时代 各路 ip 代理的对比与选择 (仅供参考) - V2EX HTTP 协议 HEAD 请求,会有查询字符串吗? - V2EX 一个 http 请求由多个 tcp 数据包组成,一个 tcp 连接可以发送多个 http 请求,是这样吗? - V2EX httpCanary 的上传服务器插件,这个应该如何配置? - V2EX 请教各位技术大大一个 websocket 消息丢失的问题 - V2EX 某些网站在特定的提交中需要手工选择 chrome 的证书,这是 https 的双向认证吗 - V2EX HTTP/2 长连接的存续期多久? - V2EX REST 祖师爷 Roy Fielding 说: RPC 就不适合 RESTful 风格。只有超文档适合用 REST - V2EX 2022 年 TLS 1.3 HTTP/2 下到底该不该开启 Gzip 压缩? - V2EX 可以不关闭服务替换证书吗? 谢谢 - V2EX 关于 HTTP 中编码一点疑问 - V2EX http 代理 vs. https 代理 - V2EX 付费求解 curl ssl/tls 突发状况,请求 https 站点均失败。 - V2EX HTTP 标准中将会增加的两个新的和缓存有关的 Response header - V2EX 请教大佬有关 http/3 支持的问题 - V2EX 如何分辨网站是伪静态还纯静态网址? - V2EX 关于 querystring 疑问 - V2EX 接口(服务端)如何判断客户端是否已经关闭此次 http 请求了 - V2EX 居然 http 还有 418 这么个状态码 - V2EX 切换到 http2 对开发人员是有感知的吗? - V2EX 关于 quic 第一次连接 需要 tcp(http2)支持的困惑 - V2EX Postman 200 然而 curl 302 - V2EX 怎么用 httpcanary 在安卓 7 抓小程序的包? - V2EX 如何安全地将局域网内的 http 服务暴露在公网? - V2EX 关于 HTTP 代理的疑惑 - V2EX 对 HTTP3 的性能疑惑 - V2EX 关于 http 处理 grpc-gateway stream 流式响应时的问题 - V2EX 关于 https 双向认证的细节 - V2EX
TLS 回顾 - V2EX
GopherDaily · 2023-11-28 · via HTTP

Secure Sockets Layer(SSL) 是网景(Netscape) 在 1995 年提出的一种安全加密协议, 包括 1.0, 2.0 和 3.0 三个版本.

Transport Layer Security(TLS) 是由 IETF 主导的, 对 SSL 的更新. TLS 的初始版本和 SSL 3.0 基本相同. TLS 1.2/1.3 是当前的主流版本, 1.3 相对 1.2 在安全和性能上都有明显的提高.

Encrypt, Digest and Sign

数据经过加密后(Encrypt), 仅拥有对应密钥的人, 经过解密后可以看到数据的内容. 密钥的形式分为对称密钥和非对称密钥, 非对称密钥下, 常由第三方用公钥对数据进行加密, 随后仅私钥的持有者可以解密对应数据.

摘要(Digest)是指将不定长的数据映射到固定长度, 如 MD5 就会产生 128 比特的字符串. 数据发布者主动公布摘要后, 数据使用者可以按相同规则计算数据的摘要, 通过比对, 校验数据的完整性, 避免使用的数据被篡改.

签名(Sign)是指使用非对称密钥中的私钥计算数据对应签名, 使用者可以使用对应公钥验证数据和签名的关联性, 进而确保数据是由公钥对应方发布或认证的.

TLS 1.2

基于 RSA 交换密钥的 TLS 握手流程如下, 常见于 TLS 1.2:

  • 客户端连接到服务端的端口, 并发送 ClientHello, 主要包括: 支持的 TLS 版本, 支持的加密套件(cipher suite) 和 32 个字节的客户端随机数.
  • 服务根据收到的信息, 返回 ServerHello, 主要包括: 选择的 TLS 版本, 选择的加密套件和 32 个字节的服务端随机数; 以及服务端的 TLS 证书.
  • 客户端基于预先配置的可信 CA, 校验 TLS 证书中的主机名和预期相符.
  • 客户端生成 pre-master secret, 用收到证书中的公钥加密后发送给服务端, 即 ClientKeyExchange.
  • 服务端用私钥解密 ClientKeyExchange, 获的 pre-master secret, 配合前文的客户端随机数, 服务端随机数生成会话密钥.
  • 客户端使用 pre-master secret, 客户端随机数, 服务端随机数生成会话密钥.
  • 服务端用会话密钥加密本次握手的数据, 发送给客户端供其确认会话密钥.
  • 客户端用会话密钥加密本次我所的数据, 发送给服务端供其确认会话密钥.

客户端确认服务端身份依赖于 Certificate Authority (CA), 即证书颁发机构. 其工作机制可以简单的理解为:

  • 存在一些总所周知的证书颁发机构, 如 DigiCert, Let's Encrypt.
  • 服务端提供主机名向这些 CA 申请公私钥证书, 公钥证书中含有服务端对应主机名, 并由 CA 的私钥签名.
  • 操作系统预先内置了这些 CA 的公钥证书, 客户端在和服务端建立链接时使用预置的 CA 的公钥来验证服务端的证书是可信.

基于 RSA 的密钥交换中, 由客户端生成 pre-master secret 后, 使用服务端的公钥加密后传输给服务端. 理论上, 仅服务端使用严密保护的私钥可以解密这部分数据获取到 pre-master secret. 随后, 客户端和服务端用 pre-master secret, 客户端随机数和服务端随机数生成相同的密钥, 用于后续数据的对称加解密.

TLS 1.3 相较于 TLS 1.2 在安全性和握手效率上都要较大的提高, 具体可以参考 为什么要使用 TLS 1.3 ?.

SNI

Server Name Indication (SNI) 是 TLS 的一个扩展, 允许客户端在 ClientHello 中指定想要连接的主机名. SNI 主要用于同一 IP 的服务器承载多个主机名的场景.

诸如 Istio 这样的 Mesh 方案, 会大量使用 SNI 来做路由.

Source: https://github.com/j2gg0s/j2gg0s/blob/main/_posts/2023-11-27-TLS%20%E5%9B%9E%E9%A1%BE.md