聊聊HTTPS协议那些事儿

说起HTTPS,就不得不先说HTTP。HTTP(HyperText Transfer Protocol,超文本传输协议)是TCP/IP协议簇中应用层的一种协议。通常我们把TCP/IP协议簇分为四层,应用层,传输层,网络层,链路层。HTTP属于应用层协议的一种,它规定了客户端和服务器通信的标准。HTTP协议下必须先由客户端发起请求,然后服务器端才能响应,一次完整的HTTP请求过程是这样的:

  • 首先客户端和服务器端建立TCP连接,这个过程就是通常我们所说的三次握手,这里不再详述。
  • 之后,客户端按照一定的格式发送请求给服务器端。具体包含请求行(请求的方法,协议的版本,统一资源标识符),请求的header以及可能的请求实体。
  • 再后,服务器端对请求做出响应。具体包含状态行(服务器端协议版本,状态码,状态码原因短语),响应的header以及可能的响应实体。
  • 最后,客户端收到响应,通信结束,断开连接。

HTTP通信的过程中是不加密的,所有内容明文传输,这样就不免会有安全的隐患,例如:

  • 通信内容明文传输,随时可能被窃听。
  • 无法确定通信双方的身份。客户端是否是期望通信的客户端,服务器是否是期望通信的服务器。
  • 无法保证通信内容的完整性,可能被篡改。

HTTPS就是用来解决上述安全问题的。HTTPS并不是新的协议,它的实质是在HTTP的基础上加了一层SSL协议(Secure Sockets Layer,安全套接层),用以保证通信的安全。我们可以说,HTTPS是身披了SSL外壳的HTTP。通常HTTP直接和TCP通信,现在则是HTTP和SSL通信,SSL和TCP通信。

HTTP与HTTPS对比

HTTPS的工作机制
在接下来讲HTTPS的工作机制之前,我们先了解两种加密方法,对称加密和非对称加密。
1. 对称加密
对称加密又称共享密钥加密,是指通信的一方使用密钥加密,另一方使用同样的密钥解密。使用这种方式加密需得把密钥发给通信的对方,可是通信的过程可能被窃听,一旦密钥被窃取,加密也就失去了意义。于是有了另一种加密方式。
2. 非对称加密
非对称加密又称公开密钥加密。是指使用一对匹配的公钥和私钥,通信的一方使用公钥加密,另一方则使用私钥解密。私钥不会公开,公钥则可以发给对方,对方使用公钥加密后,自己使用私钥解密,即便公钥被窃取,根据加密的算法和目前的技术,使用密文和公钥来解密获取原本的信息是不太现实的。不过,由于非对称加密比对称加密更为复杂,如果通信完全使用非对称加密,效率就会很低。

HTTPS则是综合使用了以上两种加密方法,首先通过非对称加密交换一个对话密钥(master secret),然后在之后的通信过程中,用之前获得的对话密钥,使用对称加密进行通信。只要可以保证密钥是通过安全的方式获得的,不会被窃取,那么之后的通信也就实现了安全。可是使用非对称加密交换密钥,我们仍面临一个安全问题,如何保证非对称加密过程中收到的公钥是真实可信的呢?比如公钥在途中可能被篡改。解决的方式是将公钥放在公开密钥证书里,这个证书是由客户端和服务器均信任的第三方数字证书认证机构颁发的。服务器将公钥证书发给客户端,客户端使用数字认证机构的公开密钥对证书的签名进行验证,验证通过则表明服务器的公钥是可信的。

HTTPS的工作机制是这样的:

  • 客户端发送Client Hello请求开始SSL通信。信息包括SSL协议版本号,加密组件列表(加密方法,密钥长度等)和一个客户端生成的随机数。
  • 服务器端收到请求如果可以进行SSL通信,会发送Server Hello响应。信息包括SSL协议版本号,加密组件(从客户端发送的列表中选定),公开密钥证书和一个服务器端生成的随机数。
  • 客户端收到公开密钥证书后,使用数字认证机构提供的公钥对证书的签名进行验证,验证通过后,客户端会做三件事。第一,生成第三个随机数(pre-master secret),并使用服务器端发来的公钥加密发给服务器。第二,发送ChangeCipherSpec通知,以告知服务器接下来将使用协商好的加密方法和密钥加密通信。第三,计算前面的所有消息的哈希值,使用pre-master secret加密提供给服务器做验证。(客户端此时会使用前面三个随机数生成master secret,这个密钥即为后面的对称加密密钥)
  • 服务器使用私钥解密拿到pre-master secret,并用它解密数据验证其哈希值,同样发送ChangeCipherSpec通知,以告知客户端将要用协商好的加密方法和密钥加密通信,并将前面的消息的哈希值使用密钥加密发给客户端。(同样地,服务器端也会用和客户端同样的方式生成相同的master secret用于后面的加密通信)
  • 客户端收到数据后解密,验证无误则SSL连接正式建立,后面就是普通的HTTP通信过程了,只不过会用master secret加密通信内容。

单向认证与双向认证
事实上,上面的过程只是做了单向认证。也就是说,只对服务器的证书做了认证,可以确认与客户端通信的服务器身份是可信的,但是并没有认证通信的客户端是否是可信的客户端。通信过程中对服务器和客户端均做证书认证称为双向认证,双向认证要求客户端也要有一张数字证书,服务器在上面的第二步会发送Cerficate Request通知,要求客户端发送公开密钥证书进行验证,客户端可以在第三步发送自己的公开密钥证书给服务器做认证。这种认证常见于一些金融机构,比如网银用户通常会有一个USB密钥,这里面就是一张客户端的证书。

HTTPS的优势与不足
HTTPS解决了前面提到的HTTP通信的弊端,通过加密防止通信内容被窃听,通过证书确认通信双方的身份,通过校验码确保通信内容的完整性。不过,HTTPS也有不足之处,比如,HTTPS通信相比HTTP会慢很多,一是因为通信多了一层SSL,二是加密解密本身会消耗很多硬件资源,因此负载增加,处理变慢。同时,使用HTTPS服务器通常需要向数字认证机构购买证书,经济成本也会增加,这也是目前并不是所有网站都是用HTTPS的原因。

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

推荐阅读更多精彩内容