聊一聊 HTTPS(一)—— 概述

https 顾名思义,就是安全版的 http。既然说 https 是安全的,那么为什么它安全呢?原因是相比于 http ,htttps 在 http 之下加了一层 SSL/TLS(Secure Socket Layer/Transport Layer Secure)。SSL/TLS 是用来加密传输信息的。

1、http发送的消息都是未经过加密的,而且直接通过下层 TCP 直接发送。这样如果有人在发送途中,截获到信息,由于信息是未加密的,攻击人轻易地就能得知信息的内容。

2、而对于 https 来说,它并不是将信息直接交由 TCP 来发送。而需要经过 SSL/TLS 层的加密,加密后的内容,再由 TCP 来发送。相当于在 TCP 层上,HTTP 之下,构建了一层 SSL/TSL 。

3、这个加密过程中

  • 首先,需要验证数字证书是否签发自可信的 CA(Certificate Agent) ,以此来验证站点的合法性。
  • 在确认站点是可信之后,client 和 server 会协商一个会话密钥(session key)。会话密钥(session key)来加密双方通信信息。会话的加密一般采用对称加密。目的是为了降低加密解密运算的复杂度

4、SSL/TLS 的加密对用户是透明,感受的不到它的存在,在浏览体验上和 http 并无二致。对于中间人,就算是截获报文,由于没有私钥,无法对报文进行解密

SSL

SSL.png

https 通信的过程

步骤1,在端口号 443 建立 TCP 连接
步骤2,进行站点身份验证,和加密方法的协商
步骤3,http 发送信息给 SSL ,SSL 使用协商的加密算法加密信息后,发送给 TCP
步骤4,接收使用协商的加密算法加密的信息,并解密后发给 http 层
步骤5,关闭 SSL 连接
步骤6,关闭 TCP 连接

下图左侧a为 http 连接建立过程,右侧b为 https 连接建立过程

https建立连接、请求和释放连接.png

说一说关键步骤2

步骤 2 可以分为两个步骤
1、进行站点的身份认证
2、会话加密算法的协商、会话秘钥的生成

在建立 TCP 连接后,就可以进行站点身份的验证和会话内容加密算法的协商。

在说明身份验证的过程,需要先简单了解一下由 CA 签发的数字证书。 数字证书的一般形式(x.509 v3 certificate)如下图所示。

https 证书形式.png

来看一下知乎的证书chrome->开发者工具->security

包含了,证书序列号、证书过期时间、站点所有者、域名、公钥、签发 CA和证书的签名。

证书的签名是用来验证证书的完整性和防止被篡改。它生成过程是,通过一种非对称加密算法(如RSA),使用私钥对证书所有域进行加密运算后得到的一串数字签名。

进行站点身份验证的过程是这样的:

首先,client 获得 server 发来的数字证书。
然后验证数字证书是否过期、是否签发自可信的CA、证书是否完整是否被篡改,再验证证书的发来站点和证书上的站是否一致。如果以上,验证都通过。那么站点就是可信的。可以进一步协商,进行会话所需要的密钥。然后使用此密钥对会话内容进行加密解密

首先,验证数字证书
  • 日期验证(Date check),通过和证书中的过期字段对比,判断证书是否有效
  • 签发者验证(Signer trust check),判断证书中的 CA 是否在本地 CA 信任列表上
  • 签名验证(Signature check),通过使用证书中的公钥和加密方法,对signature进行反向解密,来验证证书的内容是否和解密出的内容一致
  • 站点身份认证(Site identity check),将站点的域名和证书域名比较,来验证数字证书发自可信任的站点


    SSLhandshake

数字证书的签名验证中,使用的非对称加密。signature = d(cert,private),通过使用公式 e(d(cert,private),pub) = cert,即可验证证书的真伪。

然后,协商对会话加密的密钥

在上面那张图中可以看到,client 在请求连接站点时,会向服务器请求数字证书,同时发送可选的加密方式。
站点在接收到请求后,会选择一种加密方式。此时,client 和站点就拥有了加密和解密的密钥。接下来,双方的通信就可以使用这个协商的密钥的进行加密。
一般情况下,对会话进行加密使用的是对称加密。原因是对称加密的加密和解密速度快于非对称加密。

在验证成功后,就可以进行加密会话
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容