http、https介绍、对称加密、非对称加密、SSL/TSL

65 阅读3分钟

HTTP和HTTPS是两种不同的网络协议,其中存在一些显著的区别。

HTTPS相比于HTTP多了一层SSL/TSL,其构造如下 image.png

HTTP

  • 80端口
  • 信息传输是明文的,这使其存在安全风险

HTTPS

  • 使用443端口
  • 报文能够加密传输 安全性好
    • 它在TCP和HTTP网络层之间加入了SSL/TLS安全协议
  • 性能开销
    • 由于需要进行加密和解密操作,HTTPS的速度相较HTTP会稍慢一些

HTTPS介绍

Hyper Text Transfer Protocol Secure

它基于HTTP协议,通过加入SSL/TLS安全层,使得报文能够加密传输

请求过程介绍

image.png

step1 客户端 --> 服务端 发起HTTPS的请求,连接服务器的443端口

step2 服务端 会返回一个证书 这个证书包含了公钥以及由CA(证书认证机构)对服务器身份的签名。

  • 非对称加密的公钥

step3 客户端验证证书的有效性

  • 是否由信任的CA签发
  • 是否在有效期内,以及证书中列出的网站地址是否和正在访问的地址一致。

step4 客户端随机生成一个 客户端私钥(client key) 用于对称加密数据

使用前面的服务端公钥对 客户端私钥(client key) 进行非对称加密

step5 客户端进行第二次HTTP请求,将加密之后的 客户端私钥client key 传递给服务器

step6 服务端 使用服务端私钥进行解密,得到 客户端私钥client key

step7 服务端 使用 客户端私钥client key 对数据进行对称加密 将数据返回给客户端

step8 客户端 非对称解密 获取服务端返回的数据

对称加密和非对称加密是两种常见的加密方式,它们在网络安全和数据保护中都有广泛的应用。

对称加密

  • 加解密使用的是同一个密钥 使用相同的密钥进行加密和解密。
    • 例如,用一个密钥K加密数据,那么只有这个密钥K才能用于解密。 场景: 对称加密的速度通常比非对称加密快得多,适合对大量数据进行加解密。

非对称加密

  • 使用两个不同的密钥,分别为公钥(Public Key)和私钥(Private Key)。
    • 公钥用于加密数据
    • 私钥用于解密数据

这种加密方式解决了密码配送问题,因为公钥可以公开发布,任何人都可以使用公钥来加密数据,但只有拥有私钥的人才能解密这些数据。

场景: 非对称加密经常用于数字签名、身份验证和密钥交换等场景。

SSL/TSL 是什么

SSL(Secure Socket Layer)和TLS(Transport Layer Security)是一种密码通信框架SSL(Secure Socket Layer)和TLS(Transport Layer Security)是一种密码通信框架,是世界上使用最广泛的密码通信方法,综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。