【计算机网络专题】HTTPS相关问题

本问题对应的项目链接:高频题回答模版训练

1、介绍一下 HTTPS?

2、HTTPS 和 HTTP 有啥区别?有啥优劣势?

3、HTTPS 是如何保证安全的?

4、对称加密与非对称加密是什么?介绍一下

5、数字证书是什么?数字证书包含什么?

6、如果一个域名加了 HTTPS,我们在访问的时候,用了 HTTP 访问,会发生什么?

共以下 3 个回答

  • 終达·斯维达尼亚 永久会员 2024年3月25日 下午11:44

    1、介绍一下 HTTPS?

    HTTPS 将下层的 TCP/IP 换成了 SSL/TLS,让 HTTP 运行在了安全的传输协议上,解决了http协议存在的安全性问题。

    2、HTTPS 和 HTTP 有啥区别?有啥优劣势?

    HTTP 的优势在于协议本身很简单,相较于 HTTPS 传输数据时需要加解密运算来说,速度要快。缺点就在于不安全,不具备安全通信的四个特点。

    HTTPS 的优势就在于安全,引入了各种加密方式与数字证书验证等等,提供了数据传输时更高的安全性。缺点就在于会有一定的性能开销,部署也相对复杂。

    3、HTTPS 是如何保证安全的?

    主要是为 HTTP 增加了四个方面的特性:机密性,完整性,身份认证、不可否认。下面分别说一说:

    首先机密性的实现,就是发送方使用密钥来加密报文信息,接收方再使用密钥来解密,以此来保证通信过程中报文是加密后的乱码,也就保证了私密性。具体根据密钥的使用方式,加密又可分为对称加密和非对称加密,

    完整性的话,就是要确保接受方在接收到信息后,能确定这些信息没有被篡改,也就是完整的。实现完整性的手段主要是摘要算法,也就是常说的散列函数。具体的,发送方在发送信息时,会附带这段信息经摘要算法计算后的字符串,接收方收到后,会再次给原文用摘要算法计算一遍,将结果与附带的那个字符串比对,就能确保信息的完整性。

    身份认证和不可否认特性,是通过数字签名来实现的。它其实就是非对称加密里面的私钥再加上摘要算法。将摘要算法计算后的结果利用私钥加密,这样接收方解密的时候就能知道是不是对应的发送方发送的。

    6、如果一个域名加了 HTTPS,我们在访问的时候,用了 HTTP 访问,会发生什么?

    如果是第一次用 HTTP 访问这个 HTTPS 网站的话,需要看网站是否配置了 HTTP 到 HTTPS 的自动重定向,如果没有就会报连接请求错误。有就会自动跳转。

    另外即使网站没有配置 HTTP 到 HTTPS 的重定向,假如我们已经在浏览器中用 HTTPS 访问过一次这个网站,后续用 HTTP 的话,浏览器会自动帮我们跳转成 HTTPS,主要还是为了连接的安全。

    0 赞同 0 条回复
  • Everglow 永久会员 2023年11月4日 下午4:39

    1、介绍一下 HTTPS?

    HTTPS是基于HTTP的安全协议,他在HTTP和TCP之间增加了一层SSL/TLS安全协议层,解决了HTTP出现的各类安全问题

    2、HTTPS 和 HTTP 有啥区别?有啥优劣势?

    首先HTTP是明文传输的HTTPS通过混合加密的方式,来保证数据在信道传输的安全性

    还有HTTP报文可能在传输过程中被恶意替换和篡改,HTTPS就采用通过哈希算法生成一个消息摘要的方法解决数据完整性的问题

    并且HTTPS通过数字证书来确保服务端的认证性。

    3、HTTPS 是如何保证安全的?

    首先通过TLS四次握手交换会话密钥,在通信过程中使用会话密钥对数据加密,并且为数据生成消息摘要,保证消息在信道中不会被恶意替换和篡改。

    我简述一下四次握手的主要流程

    1. clienthello 客户端主动发出TLS连接请求,生成一个随机数用于会话密钥的生成,并声明自己的TLS版本 以及支持的密码套件列表(例如RSA等)
    2. serverhello 服务器也生成一个随机数,并对TLS版本确认和对密码套件的选择(以RSA为例),并且将服务器信息,公钥匙等信息交给CA CA认证后将CA的信息,数字证书序列号,有效期等信息打包成一个数字证书,并通过哈希函数生成一个消息摘要,用CA的私钥对消息摘要进行加密。服务器将该数字证书也发送给客户端

    3. 客户端收到第二次握手后,再生成一个名为pre master的随机数,此时客户端拥有了三个随机数,用这三个随机数生成一个会话密钥,并且对收到的数字证书使用相同的哈希算法生成一个哈希值,并使用CA的公钥对数字证书的消息摘要进行解密,后与自己生成的哈希值比较如果一致代表该公钥具有认证性,之后就用这个公钥对premaster进行加密,发送给服务器,并声明以后的消息都会用会话密钥加密,并对之前的消息进行一个摘要,用会话密钥进行加密,让服务器验证之前的消息是否有被篡改。

    4. 服务器通过自己的私钥对pre master进行解密,并用三个随机数生成会话密钥后,通知客户端此后的消息都会被加密,并对发送过的消息进行摘要并用会话密钥加密

    在这之后发送的所有消息都将被会话密钥加密

    4、对称加密与非对称加密是什么?介绍一下

    对称加密指的是加密和解密用的是同一个密钥,优点就是加解密效率比较高,缺点就是交换密钥的过程必须要保证绝对安全

    非对称加密指加密和解密用两个密钥,公钥和私钥公钥是可以公开给外界的私钥必须要安全的保存在服务器端,公钥加密私钥解密一般为了保证数据的安全性。私钥加密,公钥解密一般用于对服务器的验证

    5、数字证书是什么?数字证书包含什么?

    数字证书通俗的来说是对服务器是安全的一个证明,由CA颁发,包含服务器的公钥,CA的信息,证书的有效期等等信息

    6、如果一个域名加了 HTTPS,我们在访问的时候,用了 HTTP 访问,会发生什么?

    HTTP默认的访问端口是80 HTTPS是443 如果使用HTTP访问一个HTTPS域名浏览器会给出安全提示,并自动重定向到HTTPS

    0 赞同 0 条回复
  • 秊 永久会员 2023年9月19日 上午10:20

    1、介绍一下 HTTPS ?

    由于 HTTP 天生明文,缺少安全通信所需的机密性,完整性,身份认证和不可否认这四个大的特性。HTTPS 就基于 HTTP,在这四个方面上增加了新的特性。但整体在语法和语义上都和 HTTP 完全一样,两者最大的区别在于 HTTPS 将下层的 TCP/IP 换成了 SSL/TLS,让 HTTP 运行在了安全的传输协议上,收发报文不再使用 Socket API,而是调用专门的安全接口。

    2、HTTPS 和 HTTP 有啥区别?有啥优劣势?

    区别见 1、

    HTTP 的优势在于协议本身很简单,相较于 HTTPS 传输数据时需要加解密运算来说,速度要快。缺点就在于不安全,不具备安全通信的四个特点。

    HTTPS 的优势就在于安全,引入了各种加密方式与数字证书验证等等,提供了数据传输时更高的安全性。缺点就在于会有一定的性能开销,部署也相对复杂。

    不过 HTTPS 中关于性能的问题,TLS 1.2 使用了混合加密同时兼顾安全与性能,TLS 1.3 中又把握手时间减少到了 1-RTT,某些情况甚至能做到 0-RTT。

    3、HTTPS 是如何保证安全的?

    主要是为 HTTP 增加了四个方面的特性:机密性,完整性,身份认证和不可否认。下面分别说一说:

    首先机密性的实现,就是发送方使用密钥来加密报文信息,接收方再使用密钥来解密,以此来保证通信过程中报文是加密后的乱码,也就保证了私密性。具体根据密钥的使用方式,加密又可分为对称加密和非对称加密,以及现在普遍使用的混合加密。

    完整性的话,就是要确保接受方在接收到信息后,能确定这些信息没有被篡改,也就是完整的。实现完整性的手段主要是摘要算法,也就是常说的散列函数。具体的,发送方在发送信息时,会附带这段信息经摘要算法计算后的字符串,接收方收到后,会再次给原文用摘要算法计算一遍,将结果与附带的那个字符串比对,就能确保信息的完整性。常见的算法有 MD5,SHA-1 等等。

    身份认证和不可否认特性,是通过数字签名来实现的。它其实就是非对称加密里面的私钥再加上摘要算法。具体来说,以前是公钥加密私钥解密,现在是发送信息时,将信息的摘要用自己的私钥加密,接收方收到后只能用发送端的私钥对应的公钥来解密,这样接收端就能通过这把公钥来确定信息是不是某个实体发的,同时实现身份认证和不可否认的特性。

    4、对称加密与非对称加密是什么?介绍一下

    对称加密就是指发送方加密所使用的密钥,与接收方解密使用的密钥相同。但双方如何进行“密钥交换”是个问题。常见的对称加密算法有 AES 或者 ChaCha20 等等;

    非对称加密是指发送方用于加密的密钥与接收方解密所用的密钥不同,前者用于加密的叫公钥,可以在网上任意分发,后者用于解密的密钥叫私钥,必须保密。非对称加密所用的算法就比对称加密的算法要难得多,也少的多,相应的计算时间也比较长,比如 RSA 等等。

    混合加密同时结合了对称加密速度快,和非对称加密用于“密钥交换”的优点。具体来说,在通信刚开始时,先生成一个后续使用的对称密钥,也叫会话密钥。然后使用非对称算法来解决这个对称密钥的交换问题。等到接收方拿到密文,用私钥取出会话密钥,整个密钥交换的过程就结束了。虽然这个过程稍微有点慢,但后续双方在通信时,就直接使用这个会话密钥,全程使用对称加密,速度就快上来了。

    5、数字证书是什么?数字证书包含什么?

    数字证书是用来解决“公钥的信任”问题,因为谁都可以发布公钥,我们还缺少一个防止黑客伪造公钥的手段,也就是怎么确认这个公钥是你发出的?

    这就需要证书认证机构 CA 来给各个公钥签名,由于 CA 就像网络世界的公安局,具有极高的可信度,它是用自身的信誉来保证公钥无法伪造,是可信的。具体的,就是将公钥与公钥的用途,序列号,有效时间等等,打成一个大的包,再签名,最终得到一个数字证书。数字证书可以分为三个等级,可信度从低到高是 DV,OV,EV 三种。EV 是可信度最高的证书。

    6、如果一个域名加了 HTTPS,我们在访问的时候,用了 HTTP 访问,会发生什么?

    HTTP 默认使用 80 端口,HTTPS 默认使用 443 端口,如果是第一次用 HTTP 访问这个 HTTPS 网站的话,需要看网站是否配置了 HTTP 到 HTTPS 的自动重定向,如果没有就会报连接请求错误。有就会自动跳转。

    还注意到一个现象,即使网站没有配置 HTTP 到 HTTPS 的重定向,假如我们已经在浏览器中用 HTTPS 访问过一次这个网站,后续用 HTTP 的话,浏览器会自动帮我们跳转成 HTTPS,主要还是为了连接的安全。

    0 赞同 0 条回复

# 回答此问题

后才能回答