跳至正文
Wener Notes

TLS

约 3 分钟阅读

ClientHello

ClientHello 是明文的

  • 协议版本 (Version) - 指明客户端期望使用的 TLS 协议版本(例如 TLS 1.2、TLS 1.3)
  • 随机数 (Random) - 32 字节随机数据,用于生成会话密钥,其中可能包含时间戳等信息
  • 会话 ID (Session ID) - 用于标识可复用的会话,方便后续会话恢复
  • 密码套件 (Cipher Suites) - 客户端支持的加密算法组合列表,供服务器选择合适的套件
  • 压缩方法 (Compression Methods) - 客户端支持的数据压缩算法(通常仅包含"无压缩"选项)
  • 扩展 (Extensions) - 包含各种可选扩展:
    • SNI(服务器名称指示)
    • ALPN(应用层协议协商)
    • 支持组(支持的椰圆曲线等)
    • 签名算法
    • Key Share(用于 TLS 1.3 密钥交换)
    • 支持版本(用于协商实际使用的 TLS 版本)等

implementations

OCSP

OCSP是Online Certificate Status Protocol的缩写,即在线证书状态协议。它是一种用于验证数字证书是否有效的协议,可以检查证书是否被吊销或过期。当客户端与服务器建立TLS/SSL连接时,客户端会向证书颁发机构(CA)的OCSP服务器发送请求,以获取证书的状态信息。如果证书被吊销或过期,客户端将会收到一个无效的证书警告,从而保护用户的安全。OCSP协议可以提高证书验证的效率和安全性,避免了客户端需要下载整个证书撤销列表(CRL)的问题。

bash
# server certificate
openssl s_client -servername wener.me -connect wener.me:443 < /dev/null 2>&1 |  sed -n '/-----BEGIN/,/-----END/p' > certificate.pem
# intermediate certificate
openssl s_client -showcerts -servername wener.me -connect wener.me:443 < /dev/null 2>&1 |  sed -n '/-----BEGIN/,/-----END/p' > chain.pem
# 去掉第一个 server cert
nano chain.pem

# http://e1.o.lencr.org
# http://r3.o.lencr.org
# ocsp.digicert.cn 百度
openssl x509 -noout -ocsp_uri -in certificate.pem
OCSP_URL=$(openssl x509 -noout -ocsp_uri -in certificate.pem)

openssl x509 -text -noout -in certificate.pem

openssl ocsp -issuer chain.pem -cert certificate.pem -text -url $OCSP_URL
text
ocsp-lb.apple.com.akadns.net
ocsp-cn-lb.apple.com.akadns.net
ocsp.apple.com.cdn20.com
ocsp.g.aaplimg.com
ocsp.apple.com
ocsp.digicert.com
text
ocsp.apple.com.download.ks-cdn.com
k128-mzstatic.gslb.ksyuncdn.com

ocsp stapling

OCSP Stapling(也称为TLS Stapling)是一种TLS/SSL协议的优化技术,它可以减少客户端与证书颁发机构(CA)服务器之间的通信次数,提高网站的性能和安全性。

  • HAProxy 2.8
    • 支持设置 ocsp-update on

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • 安全事件
    笔记 · TLS

    跨产品、证书信任、软件供应链和大规模安全事件;单个漏洞的技术细节继续放在 CVE,互相链接 · 每个事件单独记录时间线、成因、影响范围、各方响应、处置和来源;按首次报告日期倒序索引 · 时间注明来源和时区;已确认事实、厂商声明、推断与待验证项分别记录,公告日期不等于事件开始时间

参考资料

GitHub1 条
Wikipedia2 条
其他外链7 条
最近更新commit 346d308编辑