HTTPS

1. HTTPS为什么会出现?

  1. HTTP(80端口)明文传输。在HTTP的传输过程中,任何人都可能截取、修改或者伪造请求发送。
  2. HTTP不支持用户验证。在HTTP在传输过程中不会验证通信方的身份,因此,HTTP信息交换的双方可能会遭到伪装。
  3. 接收方和发送方都不会验证报文的完整性。

综合上述三个原因,认为HTTP传输协议是不安全的。故,引出HTTPS(443端口)。

2. 什么是HTTPS?

HTTPS:Hypertext Transfer Protocol Secure,即 安全的超文本传输协议。HTTPS 是HTTP协议的一种扩展,它本身不保证传输的安全性,而是利用传输层安全(TLS)或者安全套接字层(SSL)对通信协议进行加密,即:HTTP+SSL(TLS)=HTTPS.

通常情况下,HTTP会直接和TCP进行通信,在使用SSL的HTTPS后,则会先和SSL进行通信,然后再由SSL和TCP进行通信。

3. HTTPS做了什么?

  1. 加密:HTTPS通过对数据加密来使其免受窃听者对数据的监听。
  2. 数据一致性:数据在传输的过程中不会被窃听者所修改,用户发送的数据会完整的传输到服务端,保证用户发送什么,服务器就接收什么。
  3. 身份认证:是指确认对方的真实身份,他可以防止中间人攻击并建立用户信任。

4. 什么是TLS/SSL?

TLS是SSL的后续版本,他们是用于在互联网两台计算机之间用于身份验证和加密的一种协议。

SSL即安全套接字层,他在OSI七层网络模型中处于第五层,SSL在1999年被IEIF更名为TLS,即传输层安全。

TLS用于两个通信应用程序之间提供保密性和数据完整性。TLS由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。

5. 加密

首先指出,TLS是使用对称加密非对称加密混合加密方式来实现的。

对称加密:加密和解密使用相同的密钥。只要保证密钥的安全性,那么整个通信过程也就具有了机密性。加密算法:DES/3DES/AEF/AES/…
但是,对称加密的加密方必须对原始数据进行加密,然后再把密钥交给解密方进行解密。即,如果密钥被拦截,就会暴露数据信息。所以,对称加密存在风险。

非对称加密:也称公钥加密。非对称加密中有两个密钥,一个是公钥,一个是私钥,公钥进行加密,私钥进行解密。公钥可以供任何人使用,私钥只有解密方知道。非对称加密可以解决密钥交换的问题。非对称加密算法:RSA/ECC/DSA…

混合加密:用对称密码来加密明文,用公钥密码来加密对称密码中所使用的密钥。通过使用混合密码系统,就能够将在通信中对称密码与公有密码的优势结合起来。

6. 数据一致性

摘要算法:可以理解为一种特殊的压缩算法,它可以把任意长度的数据压缩成固定长度的字符串。通过对比接收的数据生成的文件摘要和原始的文件摘要来判断数据是否完整。
MD5 (Message Digest Algorithm 5) 可用于从任意长度的字符串创建128位字符串值。
常用的算法:MD5/SHA-2/MAC/HMAC…

7. 身份认证

公开密钥加密的方式仍存在一些问题,那就是无法验证公开密钥本身的真实性。例如,A在与B通信时,A如何证明拿到的公开密钥就是B发行的公开密钥,很有可能在公开密钥传输过程中被攻击者替换掉。 为了解决上述问题,可以使用由数字证书认证机构(CA)和其相关机构颁发的公开密钥证书。

  1. 服务器向CA申请公开密钥
  2. CA人员在判明申请者身份后,对已申请的公开密钥做数字签名
  3. 将该公开密钥与公钥证书绑定在一起

附:HTTP和HTTPS常问面试题

附一:HTTP和HTTPS的区别?

附二:HTTP Get和Post的区别?

附三:什么是无状态协议,HTTP是无状态协议吗,怎么解决?

附四:UDP和TCP的区别?

附五:TCP 三次握手和四次挥手

附六:地址栏输入URL发生了什么?

附七:HTTPS的工作原理?

你可能感兴趣的:(计算机基础,https,计算机网络)