英文原文:Understanding HTTPS Protocol

最近我们看到很多站点使用 HTTPS 协议提供网页服务。通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议。

如果你访问 google,查看一下地址栏,你会看到如下信息

我们可以看到“https" 是绿色高亮显示,并且前面有一个锁标,表明网页请求是通过 https 协议。

HTTPS 是 HTTP 协议的一个版本,在浏览器和服务器之间提供安全的数据传输。

浏览器和服务器是通过 http 协议进行通信,在使用 HTTP 协议时,客户端向服务端提交表单数据时使用的是非加密方式。

所以当浏览器和服务器通信的物理网络被侵入时,入侵者会得到网页浏览器和服务器之间传输的信息。


HTTP 的应用场景是我们不需要使用高安全级别的方法加密数据。但银行这样的应用会发送像信用卡详细信息类的敏感数据,这会产生安全威胁。如果入侵者监视通信信道,他可以轻易获取到底层用户的敏感数据。

HTTPS 保证安全可靠通信

为了避免这样的安全威胁,HTTPS 应运而生。HTTPS 是一个确保数据在 web 浏览器与 web 服务器之间传输安全的协议。

HTTPS 是由 HTTP 协议+SSL 协议构成。SSL 协议通过对信息进行加密,为网络通信提供安全保障。它运用了非对称密钥机制,这种机制是将公钥自由对外分发,而私钥只有信息接收者才有。

HTTPS 对比标准的HTTP协议的两大优势:

  • 它确保了用户访问的是正确的网站,这个网站是他原本打算访问的而不是一些假冒网站。

  • 它确保了web浏览器与web服务器之间通信的内容是加密的,因此入侵者不能得到原始的通信内容。

所以在 HTTPS 中,SSL 起到了确保了数据在客户端和 web 服务端传输安全。

HTTPS 工作流程

为了弄清 HTPPS 协议是怎么工作的,我们首先应该明白加密、解密处理过程是怎么工作的。

加密就是把文本内容转换成其他某种格式,这样他人就无法解析原始内容。

解密就是将之前我们转换的密文再转换回原始内容。

加密和解密过程也可以用密钥去加密和解密信息。因此,如果信息是用某个密钥加密的,那么使用同一个密钥就能解密。这种方式称为对称密钥机制,因为使用的是同一个密钥进行加密和解密。

假如我们用一个密钥加密字符串,另一个密钥来解密字符串,我们就把这个密钥称为非对称密钥。我们把用来加密字符串的密钥称为公钥,而用来解密字符串的密钥称为私钥。

那么现在我们明白了 HTTPS 是用来安全传输 web 服务端与 web 浏览器之间的信息。这就是一个非常好的处理在传输信息的时候使用 HTTPS 协议。

当浏览器用 HTTPS 协议请求一个页面时,下面的过程也会发生:

1.浏览器向 server 发出 https 请求,server 监听 443 端口,这个端口是 web server 用来监听使用了 HTTPS 协议的请求。

2.一旦 web 浏览器与 web 服务器之间成功建立连接,SSL 握手流程就开始了。

在握手流程中,浏览器和服务器会针对数据的加密算法进行协商并答成一致。过程如下:

  • 1. 浏览器向服务器发送一些自身的信息(例如其支持的SSL版本);

  • 2. 服务器响应类似信息,例如通信过程中将要使用的SSL版本;

  • 3. 服务器会向浏览器发送证书,证书中包含了加密数据的公钥,发布者信息,有效期以及服务端唯一标识;

  • 4. 浏览器核实该证书,并发送信息通知服务器证书已验证完成;

  • 5. 浏览器向服务器发送“Change cipher spec”指令:浏览器将对数据进行加密;

  • 6. 服务器向浏览器发送“Change cipher spec”指令,服务端将要对待发送的数据进行加密。

当我们单击chrome中小锁标志,我们就可以看到服务端发送过来的数字证书。

3. 浏览器产生对称的密钥并通过服务器公钥将其加密,随后将加密后的密钥发送到服务器。这个对称的密钥用于在整个会话中进行加密和解密。

我们知道数字证书是用来提供公钥的。有两个关键的术语用来理解数字证书。

X.509 是一个定义数字证书格式的标准,它规定了证书中需要包含哪些信息,例如下面:

  • 版本 指定 X.509 的版本

  • 序列号 唯一的一串数字用以区分证书

  • 证书发布者名称 CA

  • 公钥

CA(Certification authority表示发布该证书的机构。只有从发布者那里才能获得证书。证书中通常会有发布者的签名用以保证有效性。

理解 HTTPS 协议的更多相关文章

  1. HTTPS 协议和原理

    1 HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS.HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS 是传输层加密协议,它的前身 ...

  2. 大型网站的 HTTPS 实践(1):HTTPS 协议和原理

    转自:http://op.baidu.com/2015/04/https-s01a01/ 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重 ...

  3. 大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt387 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 ...

  4. 如果这样来理解HTTPS,一篇就够了!

    1.前言 可能有初学者会问,即时通讯应用的通信安全,不就是对Socket长连接进行SSL/TLS加密这些知识吗,干吗要理解HTTPS协议呢. 这其实是个误解:当今主流的移动端IM数据通信,总结下来无外 ...

  5. 【百度】大型网站的HTTPS实践(一)——HTTPS协议和原理

    大型网站的HTTPS实践(一)——HTTPS协议和原理 原创 网络通信/物联网 作者:AIOps智能运维 时间:2018-11-09 15:07:39  349  0 前言 百度于2015年上线了全站 ...

  6. 大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理(转)

    原文链接:http://op.baidu.com/2015/04/https-s01a01/ 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本 ...

  7. 深入理解http/https协议

    深入理解HTTP协议(转) http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(Wo ...

  8. https协议的简单理解

    本片文章梳理三个知识点: 1.对称加密和非对称加密的区别 2.https协议的请求流程 3.http协议和https协议的区别 一.对称加密和非对称加密 对称加密:加密和解密使用同一密钥. 非对称加密 ...

  9. 理解 HTTPS 的工作原理

    目标读者:理解HTTP协议,对称和非对称加密,想要了解HTTPS协议的工作原理. 读完本文,你能明白 什么是HTTPS,TLS(SSL),TLS和HTTPS是什么关系? 什么是证书和数字签名,它们是如 ...

随机推荐

  1. cas:覆盖安装

    1.首先到github上下载最新的模板代码 https://github.com/apereo/cas-overlay-template 下载完成后,导入该工程. 2.编译打包 cd cas-over ...

  2. poj1679

    题意:给定一个无向连通图,问该图的最小生成树是否唯一. 分析:有一个定理,如果该图存在次小生成树(与原最小生成树不同,但长度小于等于原最小生成树),则一定可以通过从原最小生成树中去掉一个边并再入一个边 ...

  3. python tar.gz格式压缩、解压

    一.压缩 需求描述 现在有一个目录,需要将此目录打包成tar.gz文件.因为有一个Django项目,需要用到此功能! tar.gz 目录结构如下: ./ ├── folder │   ├── .doc ...

  4. Codeforces 772C 构造 数学 + dp + exgcd

    首先我们能注意到两个数x, y (0 < x , y < m) 乘以倍数互相可达当且仅当gcd(x, m) == gcd(y, m) 然后我们可以发现我们让gcd(x, m)从1开始出发走 ...

  5. Marriage is Stable HDU1522 稳定婚姻问题基础

    几对男女   给出每个人心中的优先级   进行最合理的匹配 要打印名字的话必须有一个名字数组 英文名用map 稳定婚姻问题: 每次循环遍历所有的男的 每个男的对目前未被拒绝的并且优先级最高的进行预匹配 ...

  6. 在 Intellij IDEA 中部署 Java 应用到 阿里云 ECS

    你有没有怀疑过人生 多的去了 在开发过程中,发布部署项目是一件令人头疼的事 拿springboot项目来说吧(springboot算是已经极大简化了部署了) 步骤 运行clean install 将打 ...

  7. 多线程学习笔记八之线程池ThreadPoolExecutor实现分析

    目录 简介 继承结构 实现分析 ThreadPoolExecutor类属性 线程池状态 构造方法 execute(Runnable command) addWorker(Runnable firstT ...

  8. centos yum 安装php mysql

    1 安装php7 查看 centos 版本 # cat /etc/centos-release 删除之前的 php 版本 # yum remove php* php-common rpm 安装 Php ...

  9. react比较入门的小demo

    什么是jsx?    JSX是JavaScript  XML 这两个单词的缩写,xml和html非常类似,简单来说可以把它理解成使用各种各样的标签,大家可以自行 百度.所以jsx就是在javascri ...

  10. FHQ Treap及其可持久化与朝鲜树式重构

    FHQ Treap,又称无旋treap,一种不基于旋转机制的平衡树,可支持所有有旋treap.splay等能支持的操作(只有在LCT中会比splay复杂度多一个log).最重要的是,它是OI中唯一一种 ...