工具程序员技术干货

为什么要用 HTTPS

2017-09-19  本文已影响78人  GhostStories

欢迎访问我的博客查看原文:http://wangnan.tech

前言

HTTP 是一种超文本传输协议,它是无状态的、简单快速的、基于 TCP 的可靠传输协议。

缺点: HTTP 是明文传输的,这就造成了很大的安全隐患

让自己变得更安全,从源头来控制风险。这就诞生了 HTTPS 协议

HTTP 三大风险:

  1. 窃听风险(eavesdropping):第三方可以获知通信内容。
  2. 篡改风险(tampering):第三方可以修改通信内容。
  3. 冒充风险(pretending):第三方可以冒充他人身份参与通信。

HTTPS 解决方案

  1. 所有信息都是加密传播,第三方无法窃听。
  2. 具有校验机制,一旦被篡改,通信双方会立刻发现。
  3. 配备身份证书,防止身份被冒充。

HTTPS

HTTP 不就是因为明文传输,所以造成了安全隐患。那让数据传输以加密的方式进行,不就消除了该隐患

从网络的七层模型来看,原先的四层 TCP 到七层 HTTP 之间是明文传输,在这之间加一个负责数据加解密的传输层(SSL/TLS),保证在网络传输的过程中数据是加密的,而 HTTP 接收到的依然是明文数据,不会有任何影响。

http<->SSL/TLS<->TCP

SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。

HTTPS 是如何做到数据的加密传输

加密算法

常用的有两种:对称加密与非对称加密

过程

见原文图,
几个概念:

证书

按验证级别分类

按覆盖级别分类

从Http迁移的注意点

server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/证书文件.pem;
    ssl_certificate_key  cert/证书私钥.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}

原文

https://github.com/jasonGeng88/blog/blob/master/201705/https.md

欢迎关注我的微信订阅号:



欢迎关注我的开发者头条独家号搜索:269166

上一篇下一篇

猜你喜欢

热点阅读