HTTPS 安全通信原理

随着人们网络安全意识的提高,人们对信息的安全传输越来越重视。各大公司也逐步将网站升级成 HTTPS。那么,相较于HTTP,HTTPS是怎么保证信息的安全传输的? 此文介绍了 HTTPS 的信息安全传输原理。

一、HTTP 为什么不安全?

HTTP 是明文传输,存在三大风险:窃听风险、篡改风险、冒充风险
窃听风险:由于 HTTP 明文传输,中间人可以轻易获取到通信内容。
篡改风险:中间人可以篡改信息传输内容
冒充风险:中间人可以伪装成与 Client 通信的 Server,也即是钓鱼网站。

二、安全通信的四大原则

安全通信需要包括:机密性、完整性、身份认证以及不可否认
机密性:即中间人无法获取通信的真正内容
完整性:通信内容在传输过程中不被篡改
身份认证:确认通信双方的真实身份,不被钓鱼网站冒充身份通信
不可否认:不可否认已发生的行为

三、HTTPS 通信原理

1、对称加密:使用密钥对报文加密

HTTP 是明文传输的,而 HTTPS 采用对称加密对传输的报文加密。对称加密具有加密解密速度快、性能高的特点。HTTPS 确保通信双方使用同一把密钥对通信内容加密,以保证安全通信的机密性。


image.png

但是,对称加密的密钥是怎么获取的?如果 Server 像 Client 直接传输密钥,这个密钥仍然会被中间人截取甚至替换,如此一来,安全通信的机密性和完整性依然不能得到保证。

2、非对称加密:用于对称密钥传输

非对称加密:加密和解密双方使用不同的密钥,一把作为公钥,可以公开;一把作为私钥不能公开。使用公钥加密,则只能私钥解密;使用私钥加密,则只能公钥解密。
对于 Server 而言,保管好私钥,将公钥发布给其他 Client。对于 Client 而言,将对称密钥通过公钥加密,传输给Client。Client 再通过自己保留的私钥解密获取对称密钥。然后通信双方就能通过对称密钥加密通信内容了。


image.png

但是, Server 如何做到将公钥安全地传输给 Client 呢?直接传输公钥,也会存在被中间人窃取甚至掉包的风险。

3、数字证书:解决公钥传输信任问题

为了解决公钥传输的信任问题,第三方权威机构(Certificate Authority,简称 CA)应运而生。 Server 可以向 CA 申请证书,在证书中附上公钥,然后将证书传给 Client。Server 申请证书时,会提交 DNS 主机名等信息,CA 会根据这些信息生成证书。


image.png

但是,如果证书被篡改,Client 拿到了假证书,同样会有风险。

如何验证证书的真实性?
image.png

1、首先使用摘要算法(如 MD5等),将证书明文内容生成摘要,然后再用 CA 的私钥对摘要进行非对称加密(这里不直接使用私钥对明文内容进行加密,是因为使用非对称加密是十分耗时的。所以先将明文内容压缩成小得多的定长字符串,再用私钥加密,公钥解密会快得多)
2、Client 获取证书后,首先使用同样的摘要算法对明文内容生成摘要。然后将传输的加密后的摘要通过 CA 的公钥解密,获取传输过来的摘要。再将两份摘要进行对比,就能够判断证书内容是否被修改过。
这里采用 CA 私钥加密,Client 公钥解密,是保证了 身份认证 的安全性。因为只有 CA 私钥加密,Client 才能公钥解密成功。

Server 将证书传给 Client 后,Client 验签过程:


image.png

注意,这里存在两个公钥:一个是附在证书上的,站点的公钥,用于加密对称密钥;一个是 CA 的公钥,用于解密证书的签名。
那么,这里的 CA 的公钥又是怎么传输的呢?实际上,此公钥是存在与 CA证书上,而此证书(也成为 Root CA 证书)被操作系统信任,内置与操作系统上的,不存在传输过程。这样一来,Server 传输 CA 颁发的证书,客户收到证书后使用内置的 CA 证书中的公钥解密签名即可。就不再存在 CA 公钥被掉包的危险。

如何保证证书不被掉包?

正常站点和中间人都可以向 CA 申请证书,并且申请的证书都是合法的。那么如果中间人在传输过程中,将 Server 传输给 Client 的证书替换成中间人自己的证书呢?
实际上,这种操作是不可行的,因为 Client 校验证书是否合法,不仅要校验签名,保证证书不被篡改,还要校验证书上的域名和自己请求的域名是否一致。如果 Client 发现域名不一致,同样会校验不通过。

但是,如果 Client 在一开始,信任了一些非法的第三方机构(称为 charles),安装了 charles 的证书,那么中间人就可以将 Server 传给 Client 的证书掉包成自己的证书,因为此时的证书不是向 CA 申请的,charles 可以自主修改证书上的域名等信息。Client 在拿到此证书后,可以使用 charles 证书的公钥验签,并校验通过,继而将对称密钥发送给中间人,如下图:


image.png

所以,中间人能够抓取 HTTPS包的前提,是 Client 信任了非法的CA证书,通过替换证书的方式使 Client 实际和中间人通信。所以,我们千万不要随便信任第三方的证书,避免安全风险。

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

推荐阅读更多精彩内容