zoukankan      html  css  js  c++  java
  • HTTPS协议

    摘抄自:http://www.chinaz.com/web/2017/0224/663236.shtml

    1.HTTPS是什么

    HTTPS(全称:Hyper Text Transfer Protocol Over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

    即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

    HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。

    这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

    传统的HTTP模式,存在着大量的灰色中间环节,相关信息很容易被窃取,

    但HTTPS确实通过认证用户与服务器,将数据准确地发送到客户机与服务器,

    并采用加密方式以防数据中途被盗取,大大降低了第三方窃取信息、篡改冒充身份的风险。

    2.HTTPS安全原理解析

    HTTPS主要有两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。

    服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

    (1)HTTP工作原理

    ①客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,一般TCP连接的端口是80。

    建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和许可内容。

    ② 服务器接到请求后,给与相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

    (2)HTTPS工作原理

    ①客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器。

    ②服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端,

      该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数。

    ③客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥。

    然后,再产生一个称做pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器。

    ④客户端和服务器根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。

    ⑤客户端将所有握手消息的MAC值发送给服务器。

    ⑥服务器将所有握手消息的MAC值发送给客户端。

    3.HTTPS的优缺点

    (1)HTTPS的优点

    在目前的技术背景下,HTTPS是现行架构下最安全的解决方案,主要有以下几个好处:

    • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
    • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整。
    • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

    (2)HTTPS的缺点

    技术方面

    • 相同网络环境下,HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电。此外,HTTPS协议还会影响缓存,增加数据开销和功耗
    • HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用
    • 最关键的,SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

    成本方面

    • SSL的专业证书需要购买,功能越强大的证书费用越高。个人网站、小网站可以选择入门级免费证书。
    • SSL 证书通常需要绑定 固定IP,为服务器增加固定IP会增加一定费用。
    • HTTPS 连接服务器端资源占用高,相同负载下会增加带宽和服务器投入成本。

    既然HTTPS有这么多缺点,那是不是就不该做呢,当然不是的,随着技术的发展很多缺点是可以优化和弥补的。比如:

    打开速度问题完全可以通过CDN加速解决,很多IDC也在着手推出免费证书和一站式HTTPS搭建服务,HTTPS成本在未来将会大大缩小!

    4.HTTPS的数据加密性

    HTTPS中数据的保密性主要是通过加密完成的。加密算法一般分为两种,一种是非对称加密(也叫公钥加密),另外一种是对称加密(也叫密钥加密)。

    HTTPS使用非对称加解密主要有两个作用,一个是密钥协商,另外可以用来做数字签名

    所谓密钥协商简单说就是根据双方各自的信息计算得出双方传输内容时对称加解密需要使用的密钥。

    非对称加密:

    对称加密:加密和解密使用同一个密钥。

    HTTS多次握手和复杂的加密机制有效的加大了网站的安全性,加密机制与认证机制可以减少网站被劫持和假冒的风险。

  • 相关阅读:
    Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
    Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)
    Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改
    Winform将FastReport的report与PreviewControl建立绑定关系
    Winform中使用FastReport实现自定义PDF打印预览
    Winform中使用FastReport实现简单的自定义PDF导出
    Docker Compose基本使用-使用Compose启动Tomcat为例
    Docker-Compose简介与Ubuntu Server 上安装Compose
    FastReport安装包下载、安装、去除使用限制以及工具箱中添加控件
    一个程序员的自白(乱中有序)
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/8608865.html
Copyright © 2011-2022 走看看