HTTPS中用到的SSL加密原理由浅入深详解

HTTPS中用到的SSL加密原理由浅入深详解

原文链接

文章目录

一,对称加密

二,非对称加密

三,对称+非对称加密

四、中间人攻击

五、CA认证

六、windows查看系统CA根证书

七、客户端认证https服务端证书过程详解——证书链

一,对称加密

对称加密是指服务器和客户端都使用相同的秘钥加密和解密数据,当用户和服务器建立加密连接时,用户会得到服务器唯一的数据加密的秘钥,所有的用户,包括服务器,都是使用这个唯一的秘钥加密自己的信息的。

如:客户A在使用秘钥K加密传输,被加密的密文被发送到服务器上后,服务器使用相同的秘钥K便可以解密出A发送的密文。

此时假如用户B也和服务器建立加密连接,这里用户B使用的秘钥也是K,也就是说用B的秘钥是可以解密A的加密信息的。这就体现出了对称加密的一个巨大的漏洞:秘钥的唯一性

在对称加密算法中,所有的加密报文都可以被同一个开放的秘钥K加解密。那么,当用户B在与服务器请求到秘钥K后,在通过对A的抓包后,便可使用秘钥K解密A的所有加密报文,从而获取A的隐私信息。

图解如下:

所以,对称加密由于秘钥K的唯一性,几乎等于明文传输,所以不可用。

二,非对称加密

因对称加密的不安全性不可用,所以有出现的新的加密方式:非对称加密。

首先,对称加密的两大缺点是,秘钥的唯一性秘钥的公开性。但是在非对称加密中,这两个缺点都得到了较好的解决。

非对称加密,顾名思义,客户与服务器双方使用的加密的秘钥是不同的。在非对称加密中,原来唯一的秘钥K,被拆分为了两个不同的秘钥。分别为服务器的私钥SK,和发给客户机的公钥PK。其中,公钥PK是公开给用户获取的,而私钥SK是一直保存在服务器端的,不向外开放的。

非对称的加密解密流程为:被私钥SK加密的报文只能被公钥PK解密,反之,被公钥PK加密的报文只能被私钥SK解密。即在非对称加密中公钥加密的密文是无法被公钥解密的!

#私钥:SK

#公钥:PK

#客户机数据:A Data

#服务器数据:S Data

#客户加密报文:Y

#服务器加密报文:Y`(AData+PK)=Y(Y+SK)=AData

(SData+SK)=Y`(Y`+PK)=SData

非对称加密流程图解:

以上,就是非对称加密的基本原理。

如此一来,每一个客户都只有公钥,黑客便无法获得用户发送的隐私信息了(因为用户发送的数据也是公钥加密的,公钥无法解密)。但是,黑客仍然有公钥,所以他仍然能够解密服务器发送的信息(服务器发送的信息是私钥加密的,可以用公钥解密)。因此非对称加密仍然是不太安全的

三,对称+非对称加密

因为非对称机密仍然是不安全的,所以,人们结合了对称与非对称加密各自的优点,并由此创建了对称+非对称加密。

首先,我们来总结一下之前两种加密方式各自的优缺点:

对称加密

客户与服务器双方使用相同的秘钥加密。

只要秘钥不被泄露,那么黑客就不能知道双方任何一方的信息。

非对称加密

客户和服务器使用不同的秘钥进行加密。

黑客只能得知服务器发送的信息。

既然对称加密的秘钥不泄露,黑客就不能获取隐私信息。非对称加密中,黑客又不能获取客户发送的信息。那么如果我使用非对称加密来加密对称加密的秘钥,再发给服务端,服务端获得这个对称加密的密钥后,使用对称加密传输数据,这样其他用户便不能得知我使用的秘钥了

这便是对称+非对称加密的创立思想。接下来我们详细介绍其原理。

客户端向服务器请求公钥,服务器下发,

客户端使用公钥加密自己随机生成的对称加密的秘钥,发送给服务器,

服务器解析后,使用对称加密与客户机进行通讯。

如此一来,黑客便不能得知客户机向服务器发送的秘钥,从而客户端和服务器端任何一方的信息黑都不能得知了。

#私钥:SK

#公钥:PK

#秘钥:K#客户机数据:A Data#服务器数据:S Data#X:非对称加密后的K#客户加密报文:Y#服务器加密报文:Y`(PK+K)=X(SK+X)=K(K+SData)=Y`(K+AData)=Y


图解:

如上图,

服务器先下发公钥给客户端(黑客可以得知)

客户端指定秘钥K,并用公钥PK加密后发送给服务器(黑客不能解密)

服务器收到密文用私钥SK解密,使用K加密信息发送给客户端(黑客没有K所以不能得知)。

客户端继续用K加密信息进行通信。(黑客不可得知)

至此,黑客只能获得服务器的公钥,其它信息都无法获取

如此一来,对称+非对称加密的加密方式已经可以保证用户的信息不会被其他用户解密了,无论是服务器的信息还是客户端的信息。

四、中间人攻击

虽然对称+非对称加密已经看似十分安全了,但是仍然存在漏洞。

试想一下,如果黑客在客户访问访问服务器之前,对客户进行DNS劫持,使得客户访问到黑客自己建立的伪装服务器,伪装服务器拥有自己的私钥公钥对,客户所申请到的公钥是伪装服务器的伪公钥(FPK),当客户端使用FKP与伪装服务器建立连接后,此时,黑客可以通过自己的伪公钥和伪私钥对客户端发送的所有加密报文进行解密。再通过使用客户端发送的信息去与真正的服务器进行通讯,并将服务器响应的信息通过自己的伪服务器返还给客户端。如此,伪装服务器就能获取到用户和服务器传输的所有信息

图解:

如此一来,黑客可以通过自己的伪造服务器得知客户端的所有隐私信息,而客户端却无法察觉到黑客的存在,仍然认为自己在与真正的服务器进行通讯。

五、CA认证

既然对称+非对称加密也是不安全的,那么我们仍然需要一项新的技术来保证我们http通讯的安全。

首先,我们来分析一下中间人攻击所利用的漏洞:客户端向服务器发起连接,服务器下发秘钥,进行连接。如此一来,客户端其实并不能判断自己是否是在与真正的服务器端进行连接。这也就给了黑客伪造服务器的机会。

那么我们明白了,黑客利用了自己的公钥替换了真正网站的公钥来达到的目的,那如果能保证自己获得的公钥确实是真正网站的公钥,就可以确保自己在与真正的服务器进行连接了。

那么,我们该如何使公钥可以验证服务器的身份呢?

这里我们引入一个第三方验证机构,所有的公网服务器都要向这个第三方验证机构进行身份核实,然后第三方验证机构向他发送一个证书,证明这个服务器是真实的。

在真实环境中,这个所谓的第三方验证机构叫做CA证书机构(Certificate Authority),而服务器的身份是指服务器所使用的DNS域名。

CA提供一套非对称加密系统,所有希望被CA认证的服务器都要将自己的公钥发送给CA,当CA认证了服务器的身份(DNS域名)后,就就会用自己的私钥(CSK)来加密服务器的公钥PK,加密后的文件便是该服务器的证书(Lience),并返还给该服务器。

当客户端要与服务器通讯时,客户端先向服务器请求证书,收到证书后,由于证书是有CA证书颁发中心的私钥CSK加密的,所以需要公钥CPK解密,但是如果客户端向CA证书服务器请求的话,就又会被中间人攻击。所以,为了防止这种情况的发生,所有有效的CA证书颁发机构的公钥CPK都是被预安装在操作系统中的(一般通过安装浏览器或者安装/更新操作系统这些可信的方式将这些CPK安装到系统中),客户端不用向CA中心申请,直接使用本地操作系统内的CPK,这样就避免了被中间人攻击。

在解密证书(Lience)后,客户端得到了公钥PK,同时由于证书可以被信任的CPK解密,所以该服务器是可信任的,之后,便可和服务器进行通讯了。

图解:

至此,CA证书验证系统的基础原理已经讲完了。

现在几乎所有的https加密协议都是使用CA证书的验证。

六、windows查看系统CA根证书

上一节提到了系统预安装的CA证书,那么如何查看这些证书呢,windows系统的朋友可以查看笔者的另外一篇文章:windows查看系统证书

七、客户端认证https服务端证书过程详解——证书链

客户端浏览器从收到服务端发送过来的证书开始,是怎么验证证书的合法性,并从里面获取到服务端的公钥的呢,这个涉及到证书链的概念,详情可见两外一篇文章:客户端认证https服务端证书过程详解——证书链

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

推荐阅读更多精彩内容