美文网首页web后台开发
浅谈 HTTP 和 HTTPS

浅谈 HTTP 和 HTTPS

作者: 宝宝家的隔壁老王 | 来源:发表于2018-02-07 23:08 被阅读35次
    • HTTP

    HTTP 是应用层协议,用于web浏览器和网站服务器之间传递信息,该协议是明文发送不提供加密,所以如果攻击者截取了传输报文,就可以直接读懂其中的信息。

    • HTTPS

    安全套接字超文本传输协议,在 HTTP 的基础上加入了SSL或TLS(靠整数验证服务器的身份,并为浏览器和服务器之间的通信加密)


    HTTPS 涉及的加解密方式
    • 1、对称加密
      • 同一秘钥可以用作信息的加密和解密,也称为单秘钥加密;
      • 常用的算法 DES, AES 等;
      • 优点:算法公开、计算量小、加密速度快、加密效率高;
      • 缺点:
        • 数据传输前,双方需要约定好秘钥
        • 如果一方的秘钥泄露,加密信息不再安全
        • 同一服务对不同用户要使用唯一秘钥,造成秘钥数量巨大,管理负担
    • 2、非对称加密
      • 需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密;
      • 常用的算法 RSA, Elgamal, 背包算法 (算法的实现尚未深入学习);
      • 优点:
        • 公钥是公开的,秘钥自己保存
        • 不需要通信双方前同步秘钥
        • 不需要针对不同用户使用不同秘钥,维护简单
      • 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密

    HTTPS 为什么比 HTTP 安全?

    HTTPS 会将 应用层 和 传输层 之间传输的数据进行加密;加密基础是 SSL, 加密相关的算法也在 SSL 层完成

    网络传输协议划分
    • 物理层:以太网,调制解调器,光纤等
    • 数据链路层
    • 网络层:IP等
    • 传输层:TCP,UDP,SSL/TLS等
    • 应用层:HTTP,SSH,DNS,FTP,SMTP,RPC等
    HTTP 和 HTTPS 在网络传输中的差异
    • 相同:在物理层,数据链路层,网络层,传输层 数据传输方式相同
    • 差异:HTTPS 会将应用层的数据,使用 SSL 进行加密后传给传输层。
    什么是 SSL
    • SSL (security socket layer安全套接层),由 Netscape(网景) 公司研发,后使用 TLS 代替。
    • SSL 加密的流程(一次 web 请求示例)
      • 1、浏览器从服务器获取其公钥,协商加密算法等
      • 2、双方协商生成对话秘钥(对称)
      • 3、浏览器使用秘钥对传输的数据进行加密,然后数据经由传输层,网络层 ... 到达服务器
      • 4、服务器使用秘钥将数据解密,并将响应的数据加密返回给浏览器
    备注
    • 非对称加解密比较耗时,因此实际传输中使用的是对称秘钥,而服务器的公钥和秘钥仅仅是用来生成数据传输使用的秘钥
    • 加密操作发生在传输层和应用层,因此安全性主要体现在传输层以下网络传输层
    • 为保证浏览器从服务器获取的公钥准确性,一般从第三方公证机构提供的 CA 证书中获取公钥

    相关文章

      网友评论

        本文标题:浅谈 HTTP 和 HTTPS

        本文链接:https://www.haomeiwen.com/subject/cipnzxtx.html