19 HTTPS 中的 S

Posted by CodingWithAlice on April 28, 2021

19 HTTPS 中的 S

  • 总结

    1、因为 HTTP 是明文传输,所以不安全,容易被黑客窃听或窜改

    2、通信安全必须同时具备 机密性、完整性,身份认证和不可否认 这四个特性

    3、HTTPS 的语法、语义仍然是 HTTP,但把 下层的协议由 TCP/IP 换成了 SSL/TLS

    image-20210428095835317

    4、SSL/TLS 是信息安全领域中的权威标准,采用多种先进的加密技术保证通信安全

    5、OpenSSL 是著名的开源密码学工具包,是 SSL/TLS 的具体实现

安全特性的详解

  • 机密性(Secrecy/Confidentiality)

    指对 数据 的保密,只能由可信的人访问,对其他人是不可见的秘密,简单来说就是不能让不相关的人看到不该看的东西

  • 完整性(Integrity,也叫一致性)

    指数据在传输过程中 没有被窜改,不多也不少,完完整整地保持着原状

  • 身份认证(Authentication)

    指确认对方的真实身份,也就是证明你真的是你,保证消息只能发送给可信的人

  • 不可否认(Non-repudiation/Undeniable) 也叫不可抵赖,意思是不能否认已经发生过的行为,不能说话不算数、耍赖皮

HTTPS vs HTTP

HTTPS:新的协议名 https,默认端口号 443

  • 至于其他的什么请求 - 应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西

HTTPS 名字里的“S”

HTTP 下层的传输协议由 TCP/IP 换成了 SSL/TLSHTTP over TCP/IP 变成了 HTTP over SSL/TLS,让 HTTP 运行在了安全的 SSL/TLS 协议上,收发报文不再使用 Socket API,而是调用专门的安全接口

SSL/TLS

  • SSL 即安全套接层(Secure Sockets Layer),在 OSI 模型中处于第 5 层(会话层)

  • SSL 发展到 v3 时,官方把它改名为 TLS(传输层安全,Transport Layer Security),正式标准化【TLS1.0 实际上就是 SSLv3.1】

TLS记录协议、握手协议、警告协议、变更密码规范协议、扩展协议 等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。

  • 这些算法的组合被称为密码套件

    基本形式:密钥交换算法 + 签名算法 + 对称加密算法 + 摘要算法,例如:

      ECDHE-RSA-AES256-GCM-SHA384
    

    解释:握手时使用 ECDHE 算法进行密钥交换,用 RSA 签名和身份认证,握手后的通信使用 AES 对称算法,密钥长度 256 位,分组模式是 GCM,摘要算法 SHA384 用于消息认证和产生随机数