https相关

发布于:2025-06-11 ⋅ 阅读:(33) ⋅ 点赞:(0)

每日任务 1:HTTPS 和 HTTP 的区别

面试官您好!HTTPS 和 HTTP 的核心区别体现在安全性、连接流程、端口和证书依赖这四个方面,其中最关键的是安全机制的差异:

首先,安全机制完全不同。HTTP 是明文传输,数据就像“裸奔”一样,存在三大风险:一是窃听风险,比如用户登录时的账号密码可能被中间人截取;二是篡改风险,传输的网页内容可能被植入恶意广告;三是冒充风险,攻击者可以伪装成合法服务器,比如钓鱼网站。
而 HTTPS 在 HTTP 基础上增加了 SSL/TLS 加密层,通过混合加密技术解决窃听问题——握手时用非对称加密(如 RSA)交换会话密钥,通信时用对称加密(如 AES)保证效率;通过摘要算法(如 SHA-256)和数字签名解决篡改风险,确保数据完整性;通过 CA 签发的数字证书解决冒充风险,客户端会验证服务器证书的合法性,比如检查证书是否过期、域名是否匹配,就像验证身份证一样。

其次,连接流程更复杂。HTTP 只需要 TCP 三次握手(约 1 个 RTT 时间)就可以传输数据,而 HTTPS 在三次握手之后,还需要进行 TLS 握手(额外 1-2 个 RTT):客户端和服务器先协商加密算法、交换随机数,服务器发送数字证书,客户端验证通过后,再生成预主密钥并加密传输,双方最终生成会话密钥开始加密通信。比如用户访问 HTTPS 网站时,首次加载会比 HTTP 慢一些,就是因为多了 TLS 握手的步骤。

然后,默认端口和证书依赖不同。HTTP 默认用 80 端口,HTTPS 则用 443 端口,而且 HTTPS 必须向 CA 申请数字证书。证书就像服务器的“电子身份证”,免费的 DV 证书适合个人博客,企业网站通常需要购买 EV 证书,成本更高但安全性更强,浏览器会显示绿色锁标,让用户更信任。

最后,性能和成本有取舍。HTTP 没有加密开销,性能更高,但不安全;HTTPS 虽然更安全,但会增加 CPU 计算开销和延迟。不过现在 TLS 1.3 优化了握手流程,首次连接延迟从 3 个 RTT 减少到 1 个 RTT,后续连接还能通过会话复用实现 0 RTT 恢复,比如用户第二次打开同一个 HTTPS 网页时,速度会明显变快。

每日任务 2:HTTPS 的工作原理(建立连接过程)

面试官您好!HTTPS 的核心是通过 SSL/TLS 协议建立安全连接,整个过程可以分为握手阶段加密通信阶段,我用一个用户访问 HTTPS 网站的例子来详细说明:

第一步:客户端发起连接请求
用户在浏览器输入网址后,客户端(浏览器)先向服务器发送一个 ClientHello 请求,里面包含支持的 TLS 版本(比如 TLS 1.3)、生成的随机数(Client Random),以及支持的加密套件列表(比如 ECDHE 密钥交换算法 + AES 加密算法)。这一步就像敲门问:“你支持哪些安全协议呀?”

第二步:服务器响应并传输证书
服务器收到请求后,会返回 ServerHello 响应,选定 TLS 版本和加密套件(比如选 TLS 1.3 和 ECDHE 算法),然后发送自己的 数字证书。这个证书里包含服务器的公钥、CA 的签名、有效期等信息,相当于服务器出示“身份证”说:“这是我的合法证明。”

第三步:客户端验证证书并生成预主密钥
浏览器拿到证书后,会用系统内置的 CA 根证书去验证证书的合法性。比如检查证书是否由受信任的 CA 签发、是否在有效期内、域名是否和当前网址一致。如果证书是伪造的,浏览器会弹出风险提示;如果验证通过,浏览器就从证书中提取服务器公钥,生成一个 预主密钥(Pre-Master Key),并用服务器公钥加密后发送给服务器。这一步就像检查身份证真伪,确认无误后,把一个秘密数字用服务器的“锁”(公钥)加密后传过去。

第四步:双方生成会话密钥
客户端和服务器都拥有三个随机数:Client Random、Server Random(服务器在响应中发的随机数)、Pre-Master Key。双方通过相同的算法,用这三个随机数生成一个相同的 会话密钥(对称加密密钥)。这个过程就像双方各自用同一组密码本,把三个随机数“翻译”成同一个密钥,之后就用这个密钥加密数据,效率很高。

第五步:加密通信与完整性校验
接下来,双方用会话密钥加密 HTTP 数据。比如浏览器请求网页内容时,数据会被分割成小块,每个小块先计算哈希值生成 消息认证码(MAC),然后连同学术一起加密传输。服务器收到后,解密并重新计算 MAC 码,确保数据没被篡改。这就像给每个快递包裹加了一个唯一的“指纹”,收到后核对指纹是否一致,保证包裹没被拆过。

最后:连接结束与密钥销毁
数据传输完成后,双方会销毁会话密钥,关闭 TCP 连接,避免密钥泄露。这样即使中间有人截取了数据,没有密钥也无法解密,而且下次连接会生成新的密钥,进一步保障安全。

总结来说,HTTPS 通过“握手认证→密钥协商→加密传输→完整性校验”这一系列步骤,确保了数据传输的安全,就像给通信过程加了一把“加密锁”,而数字证书和会话密钥就是这把锁的核心钥匙。


网站公告

今日签到

点亮在社区的每一天
去签到