【前端面试题-08】简单说一下 http和https的区别,再说一下https是如何加密的

HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol
Secure)的主要区别如下:

  1. 安全性

    • HTTP是非加密协议,数据以明文形式在网络上传输,容易受到中间人攻击(MITM)、窃听和篡改。
    • HTTPS是在HTTP的基础上添加了一个SSL/TLS(Secure Sockets Layer / Transport Layer Security)安全层,能够对客户端和服务器之间的通信进行加密,从而保护用户的隐私和数据安全。
  2. 连接方式

    • HTTP是无状态的,不支持默认的身份验证或加密功能。
    • HTTPS使用SSL/TLS握手过程来建立安全连接,这个过程包含了身份认证、协商加密算法和生成会话密钥等步骤。
  3. 端口

    • HTTP通常运行在TCP端口80上。
    • HTTPS运行在TCP端口443上。
  4. 信任和认证

    • HTTP没有强制的信任机制,任何服务器都可以声称自己是目标网站。
    • HTTPS通过证书颁发机构(CA)签发的SSL/TLS证书来验证服务器身份,用户可以在浏览器中查看证书详情,确认服务器的真实性。

HTTPS加密过程
HTTPS加密主要依赖于SSL/TLS协议的工作流程:

  • 握手阶段
    客户端与服务器首先进行握手过程,这个过程中包括:
    a. 服务器向客户端发送其数字证书,包含公钥和证书链。
    b. 客户端验证服务器证书的有效性和可信性。
    c. 双方协商一致的加密套件(包括加密算法、散列函数和密钥长度等)。

  • 密钥交换
    根据协商的加密套件,可能采用RSA、DH/ECDH等算法进行密钥交换,也可以利用TLS 1.3以后的密码套件进行前向安全密钥协商。

  • 会话加密
    在握手完成后,双方将使用协商好的密钥(通常是通过交换信息导出的一个对称密钥)对实际传输的数据进行加密。常用的加密算法有AES、ChaCha20等,而消息验证码(MAC)用于保证数据完整性。

通过这种方式,即使数据在传输过程中被截获,攻击者也无法直接读取其内容,因为数据已被高强度的加密算法所保护。同时,HTTPS还通过证书和签名机制确保了服务器身份的真实可靠,避免了钓鱼网站和中间人攻击的风险。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值