zoukankan      html  css  js  c++  java
  • HTTPS安全超文本传输协议

    一、什么是HTTPS

    简单的理解HTTPS就是使用SSL/TLS加密内容的、安全的HTTP协议

    HTTPS = HTTP + SSL/TLS 

    二、对称加密与非对称加密

    对称加密:加密和解密使用同一密钥。简单、快速、效率高

    非对称加密:加密解密密钥不同,加密使用公钥、解密使用私钥,私钥只有一人保管,公钥可以有多人知道。安全性更强、但性能消耗比对称加密大

    SSL/TLS中同时使用了两种加密方式,建立连接时使用非对称加密传输产生密钥的随机数,链接建立后使用对称加密传输通信内容

    三、SSL/TLS握手过程

     

    SSL/TLS的握手过程可以用上图描述

    1、客户端向服务端发送Client Hello,产生随机数random1,并说明客户端支持的加密方式和协议版本

    2、服务端收到客户端请求后,返回Server Hello,同时携带随机数random2与数字证书,其中公钥在数字证书中一同发送,避免篡改。

    3、客户端收到服务端Server Hello后,验证数字证书有效,使用生成随机数random3,并使用公钥加密,发送给服务端

    4、服务端使用私钥解密得到random3

    5、客户端和服务端根据约定好的加密方式,以及三个随机数生成对话密钥(session key),使用对话密钥加密内容开始双方会话

    四、私钥的作用

    当使用CDN服务器的时候出于安全考虑不能把密钥交给CDN服务器。

    回顾整个握手链接过程,密钥只在解密第三个随机数时使用一次,因此,只需要把这个过程留在自己服务器就可以。CDN服务器把客户端加密的随机数发送给业务服务器,业务服务器将数据解密后传回给CDN服务,其他流程均交给CDN服务

    具体流程如下图

    五、HTTPS与HTTP不同点

    对比内容 HTTPS HTTP
    是否付费 证书大多数需付费 无需
    传输信息方式 SSL/TLS协议加密信息,更安全 明文传输信息
    端口 443 80

    六、不使用HTTPS有那些风险

    1、窃听风险,第三方可能获取通信内容

    2、篡改风险,通信内容可能被第三方篡改

    3、冒充风险,第三方可能被冒充他人参与通信

    七、如何将HTTP站点转成HTTPS站点

     HTTPS 升级指南:http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html

    八、升级HTTPS后需要注意的问题

    注意在HTTPS访问的页面,在请求资源时也需要使用HTTPS,如果使用HTTP在IE中会出现不安全项目弹框

    可以使用协议相对URL解决这个问题

    <img src="https://www.aaa.org/logo.png" alt="" />
    
    <img src="//www.aaa.org/logo.png" alt="" /><!--协议相对URL-->

    协议相对URL,如上面代码第二行,即省略URL协议声明的方式,使用了这种方式浏览器会使用页面访问相同的协议请求页面资源

    协议相对URL可以使用在HTML中的链接中,也可以使用在css中。但是在IE6/7中link或@import资源会被下载两次,除此以外没有其他问题

    使用场景举例

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"></script>
    <link rel="stylesheet" href="//www.ludou.org/style.css" />
    <a href="//www.ludou.org/">Ludou</a>
    .logo { background: url(//www.ludou.org/logo.png); }

    参考

    图解SSL/TLS协议:http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

    与HTTP有什么区别?HTTPS的七个误解:https://www.admin5.com/article/20150523/600106.shtml

    网站是否需要HTTPS加密:https://www.admin5.com/special/https/

  • 相关阅读:
    转 进程与线程的区别与联系
    DoEvents的应用及注意事项
    转:error LNK2001 错误
    基于UDP的简单的聊天程序
    VB提示:文件未找到:'c:\windows\sytem32\ieframe.dll\1'的解决方法
    VB PopupMenu方法
    转 vb中SetWindowsHookEx详细用法及举例
    Python批量转换txt文件为excel文件
    excel自动筛选后分别复制粘贴到新文件的解决办法
    文本编辑
  • 原文地址:https://www.cnblogs.com/zs-note/p/9914067.html
Copyright © 2011-2022 走看看