开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
理解 HTTPS 协议 - 技术翻译 - 开源中国社区

理解 HTTPS 协议 【已翻译100%】

标签: HTTPS
oschina 推荐于 2年前 (共 8 段, 翻译完成于 05-30) 评论 21
收藏  
210
推荐标签: HTTPS 待读

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

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

HTTPS protocol

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

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

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

wancheng
 翻译得不错哦!

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

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


wancheng
 翻译得不错哦!

HTTPS 保证安全可靠通信

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

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

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

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

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

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

macsokolot
 翻译得不错哦!

HTTPS 工作流程

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

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

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

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

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

ENCRYPTION IN HTTPS

macsokolot
 翻译得不错哦!

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

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

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

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

macsokolot
 翻译得不错哦!

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

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

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

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

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

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

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


开源中国首席蛤蟆精
 翻译得不错哦!

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

Digital Certificate HTTPS

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

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

开源中国首席蛤蟆精
 翻译得不错哦!

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

  • 版本 指定 X.509 的版本

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

  • 证书发布者名称 CA

  • 公钥

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

开源中国首席蛤蟆精
 翻译得不错哦!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
评论(21)
Ctrl/CMD+Enter

感觉讲解不是很详细,我看了下github的证书,里面好多内容文章没有提到
HTTPS协议的特征字符是什么?怎么用iptables禁用HTTPS协议 ?
感觉读到一半没有了
关键的密匙交换过程没有说清楚,以及其安全性评价,shal1算法为什么会被取代,https的缺点,攻破方法也该有所提及吧。
浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?
浏览器和服务器用会话过程中协商好的对称密钥加密
能在文章开始贴出原文出处吗?

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“xiaohui_hubei”的评论

浏览器和服务器用会话过程中协商好的对称密钥加密
也可以服务器私钥加密,浏览器公钥解密

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“xiaohui_hubei”的评论

浏览器和服务器用会话过程中协商好的对称密钥加密

引用来自“-卓然-”的评论

也可以服务器私钥加密,浏览器公钥解密
请问一下,大家的公钥都是一样的吗?

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“xiaohui_hubei”的评论

浏览器和服务器用会话过程中协商好的对称密钥加密

引用来自“-卓然-”的评论

也可以服务器私钥加密,浏览器公钥解密
使用非对称加密也可以,但是很慢,一般只用来加密关键数据
没说完哎

引用来自“xiaohui_hubei”的评论

能在文章开始贴出原文出处吗?
web 页面有
好歹说下报文结构啊~
我朝cnnic还会给GFW颁发伪造的中间人攻击证书

引用来自“xiaohui_hubei”的评论

能在文章开始贴出原文出处吗?

引用来自“叶秀兰”的评论

web 页面有
嗯,之前是在 APP 上浏览的没有显示原文出处,现在在 Web 页面上浏览有

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“xiaohui_hubei”的评论

浏览器和服务器用会话过程中协商好的对称密钥加密

引用来自“-卓然-”的评论

也可以服务器私钥加密,浏览器公钥解密

引用来自“China首席吹牛官”的评论

请问一下,大家的公钥都是一样的吗?
一般公钥是不同的,可以了解下RSA加解密原理http://blog.csdn.net/q376420785/article/details/8557266

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“xiaohui_hubei”的评论

浏览器和服务器用会话过程中协商好的对称密钥加密

引用来自“-卓然-”的评论

也可以服务器私钥加密,浏览器公钥解密

引用来自“xiaohui_hubei”的评论

使用非对称加密也可以,但是很慢,一般只用来加密关键数据
是的

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?

引用来自“xiaohui_hubei”的评论

浏览器和服务器用会话过程中协商好的对称密钥加密

引用来自“-卓然-”的评论

也可以服务器私钥加密,浏览器公钥解密

引用来自“China首席吹牛官”的评论

请问一下,大家的公钥都是一样的吗?

引用来自“-卓然-”的评论

一般公钥是不同的,可以了解下RSA加解密原理http://blog.csdn.net/q376420785/article/details/8557266
那我拿到你的密钥,是否可以解密?
https 为啥安全需要了解tcp/ip那四层,在哪一层加了密,公钥私钥的问题,还有证书的认定。https 首先了解ssl吧,网上能搜到的。

引用来自“China首席吹牛官”的评论

浏览器公钥加密,服务器私钥解密。服务器用什么加密,浏览器怎么解密?
他们先用非对称加密算法交换密钥,握手成功后的通讯都是基于对称加密的,密钥就是刚开始交换的。
顶部