https权威指南读书笔记

简介: 配合加解密实战的一期分享, 补充相关基础知识, 既知道「怎么做」, 也了解「为什么这样做」
https权威指南
github/bulletproof-tls
SSL Labs
作者blog - Ivan Ristić

SSL 和 TLS 傻傻分不清楚

SSL和TLS都是加密协议,旨在基于不安全的基础设施提供安全通信
非常不幸,本身相同的协议却有两个名称(各位读者可能不会注意到这些,那也没关系)

SSL: secure socket layer 安全套接字层
TLS: transport layer security 传输层安全

SSL1 Netscape公司开发
SSL2 Netscape 1994
SSL3 Netscape 1995

TLS 工作组成立, 开始将SSL从Netscape迁移至IETF 1996
TLS1.0 1999
TLS1.1 2006
TLS1.2 2008
TLS1.3 draft(草案) 19[8] 2017.3

PKI: public key infrastructure 公钥基础设施; SSL和TLS依赖PKI, 确保不能解密数据和篡改数据

osi: open systems interconnection 开放系统互联, 常见的两种说法 OSI 7层网络模型 + tcp/ip 4层网络模型

  • 安全协议从哪里融入互联网基础设施

安全协议从哪里融入互联网基础设施

密码学

安全的三个核心需求:

  • 保持秘密(机密性)
  • 验证身份(真实性)
  • 保证传输安全(完整性)

工作方式

  • 各种加密基元cryptographic primitive, 完成特定功能(加密/完整性检查)
  • 加密基元组合成方案(scheme)和协议(protocol)
  • 方案/协议完成加密任务

加密时通常会使用到三个术语

  • 明文(plaintext,即原始数据)
  • 密钥(cipher,用于加密)
  • 密文(ciphertext,即加密后的数据)

密码可以分为两大类

  • 序列密码(stream cipher): 密钥 + 序列密码(比如 RC4) -> 密钥序列; 密钥序列 + 明文 -> 密文
  • 分组密码(block cipher): 每次加密一整块数据(比如128位); 人们通过称为分组密码模式(block cipher mode)的加密方案来使用分组密码; 世界上最流行的分组密码是高级加密标准(advanced encryption standard,AES); 填充, 数据不足数据块大小(比如128位)的情况

散列函数(hash function)

  • 将任意长度的输入转化为定长输出的算法
  • 指纹、消息摘要,摘要
  • SHA1(160位) -> SHA256
  • 生日悖论(概率论中的常见问题)-> 散列函数的强度最多只是散列长度的一半
  • 散列函数可以用于验证数据完整性: 消息验证代码(message authentication code,MAC) 基于散列的消息验证代码(hash-based message authentication code,HMAC)

分组密码模式

  • 为了加密任意长度的数据而设计的密码学方案; ECB、CBC、CFB、OFB、CTR、GCM 等; ECB是设计一种分组加密模式的反面例子, CBC则仍是SSL和TLS的主要模式, GCM是TLS中相对较新(TLS1.2)的模式
  • 电码本(electronic codebook,ECB)模式
  • 加密块链接(cipher block chaining,CBC)模式, 为了解决ECB天生的确定性,CBC引入了初始向量(initialization vector,IV)的概念。即使输入相同,IV也可以使每次的输出都不相同

对称加密/非对称加密

  • 对称加密(symmetric encryption), 又称私钥加密(private-key cryptography): 在高速处理大量数据方面做得非常好; 相同团体的成员必须共享相同的密钥; 为了更好的安全性,你可以在每两个人之间使用不同的密钥,但是这个方法不可扩展 (1+n)*n/2
  • 非对称加密(asymmetric encryption)又称为公钥加密(public key cryptography): 公钥公开, 私钥自己保管; 公钥加密私钥解密 -> 加密数据; 私钥加密公钥解密 -> 数字签名
  • RSA是目前最普遍部署的非对称加密算法, 现在推荐的RSA强度是2048位,强度等同于112位的对称密钥; 可以同时用于加密和数字签名
  • 数字签名(digital signature): 验证一条电子消息或者一篇电子文档的真实性; 比如 RSA, DSA, ECDSA

随机数生成

  • 计算机按指令执行 -> 可能做不好生成随机数这项工作 -> 真正的随机数只能通过观测特定的物理处理器才能得到 -> 没有的话,计算机将关注于收集少量的熵(entropy)
  • 通过这种方式收集熵是一种真随机数生成器(true random number generator,TRNG) -> 你可能需要生成一个4096位的密钥,但是系统可能只有数百位的熵可用
  • 基于上面的原因,我们在实际使用中依靠的是伪随机数生成器(pseudorandom number generator,PRNG) -> PRNG也要利用少量真正的随机数使系统运转起来。这个过程被称为种子设定(seeding) -> 普通用途的PRNG被常常用于编程,但它们并不适用于密码学 -> 加密安全伪随机数生成器(cryptographically secure pseudorandom number generator,CPRNG)是不可预测的PRNG

衡量强度
常用密钥长度的加密强度映射

接下来还有什么

  • 协议
  • 公钥基础设施
  • 攻击PKI
  • http和浏览器问题
  • 实现问题
  • 协议攻击
  • 部署
  • 性能优化
  • http严格传输安全/内容安全策略和钉扎
  • openSSL
目录
相关文章
|
缓存 网络协议 算法
《HTTP权威指南》读书笔记
《HTTP权威指南》读书笔记
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
149 18
|
5月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
124 19
|
5月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
435 20
|
5月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
190 1
|
6月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
305 3
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
8月前
|
网络协议 安全 网络安全
HTTP与HTTPS协议入门
HTTP协议是互联网的基石,HTTPS则是其安全版本。HTTP基于TCP/IP协议,属于应用层协议,不涉及数据包传输细节,主要规定客户端与服务器的通信格式,默认端口为80。
257 25
HTTP与HTTPS协议入门
|
10月前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
507 3