Android开发知识学习——HTTPS

文章目录

  • 定义
  • HTTPS连接
  • HTTPS 连接建立的过程
  • 课后题

定义

  • HTTP Secure / HTTP over SSL / HTTP over TLS

  • SSL:Secure Socket Layer -> TLS Transport Layer Security

  • 定义:在HTTP之下增加的一个安全层,用于保障HTTP的加密传输

  • 本质:在客户端和服务器之间用非对称加密协商出一套对称密钥,每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输

  • 为什么不直接用非对称加密?
    非对称加密由于使用了复杂了数学原理,因此计算相当复杂,如果完全使用非对称
    加密来加密通信内容,会严重影响网络通信的性能

HTTPS连接

  1. 客户端请求建立TLS连接
  2. 服务器发回证书
  3. 客户端验证服务器证书
  4. 客户端信任服务器后,和服务器协商对称密钥
  5. 使用对称密钥开始通信

HTTPS 连接建立的过程

  1. Client Hello 请求建立信息
    Android开发知识学习——HTTPS_第1张图片

  2. Server Hello 服务端把消息发回客户端
    Android开发知识学习——HTTPS_第2张图片

  3. 服务器证书 信任建立
    Android开发知识学习——HTTPS_第3张图片

  4. Pre-master Secret 算出Master Secret算出对称加密用的密钥
    Android开发知识学习——HTTPS_第4张图片

  5. 客户端通知:将使用加密通信
    Android开发知识学习——HTTPS_第5张图片

  6. 客户端发送:Finished
    Android开发知识学习——HTTPS_第6张图片

  7. 服务器通知:将使用加密通信
    Android开发知识学习——HTTPS_第7张图片

  8. 服务器发送:Finished
    Android开发知识学习——HTTPS_第8张图片

课后题

1.【单选题】HTTPS 的消息传输为什么要用对称加密,而不是非对称加密?
A. 因为对称加密更安全
B. 因为对称加密性能更好
C. 因为非对称加密的历史太短,不是所有服务器都兼容非对称加密

答案: B
答案解析:HTTPS 的消息传输使用对称加密而不是非对称加密,主要是因为对称加密的性能更好。非对称加密虽然安全性更高,但由于其算法复杂度较高,导致加密和解密的速度较慢。相比之下,对称加密的算法简单,加密和解密的速度更快,可以更好地满足 HTTP 协议对消息传输的实时性要求。因此,在 HTTPS 中使用对称加密可以更好地保障消息传输的效率和安全性。

2.【单选题】HTTPS 连接建立过程中,证书的作用在于?
A. 让客户端确信和自己通信的对象确实是自己认为的对象
B. 让客户端确信自己访问的网站不是非法网站
C. 让客户端确信自己的计算机是足够安全的,没有被入侵

答案: A
答案解析:HTTPS 连接建立过程中,证书的主要作用是让客户端确信和自己通信的对象确实是自己认为的对象。证书是由权威的第三方机构颁发的,包含了服务器的公钥和相关信息,其中包含证书颁发机构(CA)、主题、公钥、有效期等。客户端在建立 HTTPS 连接时,会首先获取服务器证书,通过验证证书的合法性和有效性来确认服务器的身份。因此,证书在 HTTPS 连接建立过程中起着至关重要的作用,可以确保通信的安全性和可信度

3.【多选题】HTTPS 的连接建立过程的证书验证这一步,主要是验证证书的哪些内容?
A. 证书的合法性
B. 证书持有方近期无犯罪史
C. 证书持有方近期无网络犯罪史
D. 证书的 Host 归属与客户端期望的一致性

答案: A、D
答案解析:HTTPS 的连接建立过程的证书验证这一步,主要是验证证书的以下内容:
A. 证书的合法性:证书是否由权威的第三方机构颁发,是否在有效期内。
D. 证书的 Host 归属与客户端期望的一致性:证书是否与客户端期望访问的网站或服务相关联。
B和C选项关于证书持有方的犯罪史与网络犯罪史的内容并不属于HTTPS连接建立过程中证书验证的主要内容。

你可能感兴趣的:(学习,https,网络协议)