HTTPS协议

什么是HTTPS协议呢?如果大家还没有深刻理解HTTP协议,请查找一下我的HTTP协议的文章。

HTTP协议是一个明文传输的协议,也就是说在整个链路中传输的话,可以理解问数据在“裸奔”,在任意一个节点上数据都有可能被人截取,串改。最明显的表现就是访问一个网页的时候,明明网页没有广告,但是在浏览器打开后却又很多广告,这就是串改了响应报文,如果是请求报文被串改那就更严重了,如果操作是银行转账请求,你们的钱可能就会被转到别人的钱包了。

所以HTTPS协议就是在HTTP协议上加了个安全层。

HTTPS协议

由于HTTP天生“明文”的特点,整个传输过程完全透明,任何人都能在链路中截取、修改或者伪造请求/响应报文,数据不具有可信性。因此就诞生了为安全而生的HTTPS协议。

以前使用HTTP协议的时候,应用程序往往直接通过内核提供的一些API去完成数据的传输,和TCP进行交互。

HTTPS并没有对HTTP协议进行任何的修改,而是应用程序不直接和TCP进行交互了,变为和SSL/TSL安全套接层进行交互,然后安全层在和TCP进行交互。

SSL/TSL

SSL即安全套接层(Secure Sockets Layer),由网景公司于1994年发明,IEIF在1999年把它改名为TLS(传输层安全,Transport Layer Security),正式标准化,到今天TLS已经发展出了主流的三个版本,分别是 2006 年的 1.1、2008 年的 1.2 ,2018的 1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

HTTPS是利用了几个算法来完成加密通道的一个建设的,下面来看一下都有哪些算法

摘要算法

摘要算法能够把任意长度的数据“压缩”成固定长度,而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。任意微小的数据差异,都可以生成完全不同的摘要。所以可以通过把明文信息的摘要和明文一起加密进行传输,数据传输到对方之后再解密,重新对数据进行摘要,在对比就能发现数据有没有被篡改。这样就保证了数据的完整性。

加密算法

对称密钥加密算法:

编、解码使用相同密钥的算法,如(AES,RC4,ChaCha20)。

非对称加密算法:

它有两个密钥,一个叫“公钥”,一个叫“私钥”。两个密钥是不同的,公钥可以公开给任何人使用,而私钥必须严格保密。非对称加密可以解决“密钥交换”问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以无法破解密文。非对称密钥加密系统通常需要大量的数学运算,比较慢。如(DH,DSA,RSA,ECC)。

私钥和公钥都部署在服务器上,但是私钥不参与网络传输,公钥加密的数据只能用私钥解密,私钥加密的数据只能用公钥解密,所以浏览器给服务器发送用公钥加密的数据是安全的,但服务器给浏览器发送用私钥加密的数据是不安全的,因为公钥是可以被人窃取到的。

TLS里使用的混合加密方式,即把对称加密和非对称加密结合起来,两者互相取长补短,既能高效的加密解密,又能安全的密钥交换。大致流程如下:

通信开始的时候使用非对称加密算法如RSA,ECDHE先解决密钥交换的问题

用随机数产生对称算法使用的“会话密钥”,再用公钥加密。会话密钥很短,所以即便使用非对称加密算法也可以很快完成加解密

对方拿到密文后用私钥解密,取出会话密钥。完成对称密钥的安全交换,后续就使用对称算法完成数据传输

身份验证

数字证书组成:

CA信息,公钥用户信息,公钥,权威机构签名,有效期

数字证书作用:

通过数字证书向浏览器证明身份

数字证书里面包含了公钥

数字证书的申请和验证:

如何申请:

生成自己的公钥和私钥,服务器自己保留私钥

向CA机构提交公钥,公司,域名信息等待验证

CA机构通过线上,线下多种途径验证你提交信息的真实性,合法性

信息审核通过,CA机构则会向你签发认证的数字证书,包含了公钥,组织信息,CA信息,有效时间,证书序列号,同时生成一个签名

签名步骤:

hash(你用于申请证书所提交的明文信息)= 信息摘要,CA再使用私钥对信息摘要进行加密,密文就是证书的数字签名

浏览器如何验证呢?

有了CA签名过的数字证书,当浏览器访问服务器时,服务器会返回数字证书给浏览器,浏览器收到证书后会对数字证书进行验证。

首先浏览器读取证书中相关的明文信息,采用CA签名时相同的hash函数计算得到信息摘要A,再利用对应的CA公钥解密数字签名数据得到信息摘要B,如果摘要A和摘要B一致,则可以确认证书是合法的。

下面我们来解析一下这张图:

首先服务器上面会部署公钥和私钥,浏览器和服务器进行数据交互的时候,会先进行三次握手,三次握手完成之后,会进行安全层的握手也就是HTTPS的握手。

那么什么是HTTPS的握手呢?

客户端会发送请求给服务器,会发送客户端支持的加密套件列表,也就是客户端支持哪些加密算法,服务端同样的,在进行加密通道构建的时候,一定是双方都要支持才能进行加解密,所以服务器端会看一下本地的实现,看客户端提供的加密算法服务器都支不支持,支持的话会从中选择最安全的一个算法,然后告诉客户端选择了哪个加密套件,并且会把公钥数字证书发送给客户端,客户端验证证书合法性,生成一个随机密钥(用于对称加密密钥),并用传过来的公钥进行加密,发送给服务器端,服务器端就可以用私钥进行解密,这样就安全的拿到了对称加密的密钥,这时就可以使用对称加密算法完成数据的双向传输。

到这大家是不是有这样一个疑问,为什么要使用数字证书呢,直接传公钥不行吗?

现在我来解释一下,在之前TCP三次握手的时候我说过,客户端要去拿到服务器端的ip,那如果在拿服务器端ip的时候被人截获了我们的DNS信息,修改了DNS中的ip地址,指向了一个黑客自己的服务器,这时候请求和数据就都到达了黑客的服务器,因此要去验证访问的服务器是真的我们要访问的那台服务器,这时候数字证书就派上了用场。

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

推荐阅读更多精彩内容

  • 转自:详解https是如何确保安全的? Https 介绍 什么是Https HTTPS(全称:Hypertext ...
    Conan_222f阅读 351评论 0 0
  • 一、准备知识 在开始介绍前,需要首先了解一下消息摘要、数字签名、数字证书的知识 1、消息摘要 - Message ...
    浪够_阅读 2,723评论 1 2
  • 本文主要讲述SSL协议中数据加密的过程,对称加密、非对称加密、SSL握手过程和数字证书等概念,最后总结下http和...
    s大司令阅读 2,077评论 0 5
  • HTTPS协议讲解 1、前言 http是非常常见的应用层协议,是超文本传输协议的简称,其传输的内容都是明文的。如果...
    王王王王王景阅读 828评论 0 2
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,535评论 28 53