• HTTPS协议入门


    HTTPS协议入门

    1. HTTPS出现的背景

    虽然HTPP协议很优秀并且方便,但是不得不正视HTTP协议存在的一些问题:

    • 通信使用明文(不加密),内容可能会被窃听;
    • 不验证通信双方的身份,因此有可能遭遇伪装;
    • 无法证明报文的完整性,所以有可能已遭篡改;

    这些问题不仅在HTTP协议上出现,其他未加密的协议中也会存在这类问题。

    由于这些问题的存在,HTTPS协议就应运而生,HTTPS,超文本传输安全协议,是和SSL(Secure Socket Layer,安全套接层)或者TLS(Transport Layer Security,安全传输层协议)组合使用的,通常HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。

    2. HTTPS的三大功能

    上面提到了HTPP协议的不足,下面说一下HTTPS是如何解决这三个问题的。

    2.1 通信使用明文(不加密),内容可能会被窃听

    在网络上传输信息,本身就是可以被他人截获的,比如通过抓包工具,第三者就可以在同局域网的一台主机,或者路由器或者互联网的任何地方都可能被截获数据。HTPP使用明文传输,相当于你传输的数据完全暴露在了网络上。

    HTTPS传输数据的时候会对通信进行加密,使用SSL建立安全线路之后,就可以在这条线路上进行HTTP通信了。相当于单独建立了一条安全信道。

    2.2 不验证通信双方的身份,因此有可能遭遇伪装

    HTTP协议中的请求和响应不会对通信双方进行确认,也就是说存在“服务器是否就是发送请求中URI真正的主机,返回的响应是否是真的返回到实际提出请求的客户端”等类似问题。并且,由于不存在通信双方的处理步骤,任何人都可以发起请求。可能会出现DOS攻击等问题。

    HTTPS中SSL就可以确认确认通信方,它提供了一种被称为证书的手段,证书由值得信赖的第三方机构颁发,用以证明服务器和客户端是实际存在的,另外伪造证书从技术角度说是异常困难的一件事,所以只要能确认通信方持有的证书就可以判断通信方的真实意图。

    2.3 无法证明报文的完整性,所以有可能已遭篡改

    HTTP协议无法确认客户端发出的请求和服务端接收到的请求是相同的,同样,也无法确认服务端发送的响应和客户端接收的响应是相同的。很容易出现中间人攻击。

    虽然HTTP协议可以使用md5等信息摘要算法保证数据完整性,但是MD5本身都可能被篡改,也就无法保证其安全性。SSL提供了摘要功能。可以保证数据的完整性。

    从HTTPS的功能来看,可以总结为:HTTP+加密+认证+完整性保护=HTTPS。

    3. HTTPS的混合加密机制

    首先先来谈谈两种加密方法:

    • 共享密钥加密:加密和解密使用相同的密钥,但是在通信的时候需要把密钥也一并发送,这样有可能被别人截获;
    • 公开密钥加密:加密和解密使用不同的密钥,服务器提供公开密钥,客户端使用公开密钥对数据进行加密,然后服务器使用私有密钥对密文进行解密,这样就保证密文不会被破解。

    但是使用公开密钥加密方式传输数据比较慢,所以HTTPS结合了两者的优点,使用混合加密机制,首先在交换密钥的时候使用公开密钥加密方式,确认连接后,传输数据使用共享密钥加密方式。

    4. HTTPS使用场景

    当使用HTTPS时,通信会变慢,导致通信变慢的原因有两个,一是网络负载,当使用HTTPS进行通信时,网络负载比HTTP要高2-100倍。而是由于HTTPS每次通信都要加解密,对CPU的消耗也很大。所以一般只有在传输机密信息时使用HTTPS,比如用户密码,银行信息等。

    再有就是使用HTTPS需要支付购买证书的费用,一些机构考虑到这点也可能优先选择HTTP协议。

    参考:

    《图解HTTP》

  • 相关阅读:
    在mac系统上安装Eclipse,编写java程序
    显示和隐藏Mac隐藏文件的终端命令
    iOS中UIKit——UIDataDetectors(数据检测器)它将电话、邮件、网址等变为链接
    C语言中的关键字
    IOS基础——静态方法(类方法)和实例方法
    IOS基础——alloc、init和new方法
    IOS基础——实例变量四种范围类型
    iOS中UIKit——UIFont得到iOS设备上的系统字体
    iOS中UIKit——UIButton设置边框
    IOS中获取屏幕尺寸
  • 原文地址:https://www.cnblogs.com/scuwangjun/p/10022736.html
Copyright © 2020-2023  润新知