HTTPS

一、HTTP和HTTPS介绍

1.什么是HTTP?

        超文本传输协议(Hypertext Transfer Protocol),是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

    1.1 HTTP/0.9

        1991年,万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(IETF)制定了 HTTP 0.9 标准。因为当时互联网还在普及,该版本协议主要用来网络之间传输体积很小的HTML文件。

①.只有一个命令GET,对应到现在的GET请求和POST请求,这些叫做HTTP的命令或者方法

②.没有HEADER等描述数据的信息

③.服务器发送完毕,就关闭TCP链接。一个HTTP请求通过TCP连接发送,一个TCP连接可以发送多个HTTP请求(HTTP/0.9还不能,HTTP/1.1实现。HTTP/2有更大程度优化)

    1.2 HTTP/1.0版本

        1996年,HTTP/1.0 版本发布,在HTTP/0.9版本基础上进行了改进。

①.新增了post、put、header等命令。

②.增加了status code和header内容,通知浏览器服务器的处理结果。

③.支持多字符集支持、多部分发送、权限、缓存等,实现可以传输文字、传输图像、视频、二进制文件。

    1.3 HTTP/1.1版本

         这个版本是在HTTP/1.0的基础上增加了一些功能来优化网络连接的过程。

①.新增长连接:为了改进HTTP/1.0中连接无法复用,每次通信都需要建立一个TCP连接的问题,HTTP/1.1中增加了持久连接的方法。

②.请求头中增加了host字段。在一台物理服务器上可以存在多个虚拟主机,host可以用来表示当前的域名地址,从而使服务器可以根据不同的host值调用不同的虚拟主机。

③.在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。

    1.4 HTTP/2.0版本

①.多路复用:HTTP2.0使用了多路复用的技术,做到同一个TCP连接并发处理多个HTTP请求,而且并发请求的数量比HTTP1.1大了好几个数量级。

②.头部压缩:HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了。(HPACK:它使用一份索引表来定义常用的 HTTP Header。把常用的 HTTP Header 存放在表里。请求的时候便只需要发送在表里的索引位置即可。)

③.服务端推送:在HTTP2.0里面有了”推送”的概念,也就是说服务器端可以主动向客户端发起一些数据传输。

④.区分请求的优先级:再发送请求的时候可以标上优先级,服务端在接收请求后,可以优先处理优先级高的请求。

⑤.二进制协议:相比于HTTP 1.x基于文本的解析,HTTP/2将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式编码,这些帧可以乱序发送,然后再根据每个帧头部的流标识符(Stream_id)重新封装。

⑥.流量控制:每个 http2 流都拥有自己的公示的流量窗口,它可以限制另一端发送数据。对于每个流来说,两端都必须告诉对方自己还有足够的空间来处理新的数据,而在该窗口被扩大前,另一端只被允许发送这么多数据。

    1.5 HTTP/3.0版本

        http3.0基于UDP实现,基于UDP实现了类似TCP的多路复用、传输可靠性等功能,称为QUIC协议。


2.什么是HTTPS?

        HTTPS 的全称是 Hypertext Transfer Protocol Secure。《图解HTTP》这本书中曾提过HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。


二、SSL/TLS介绍

1.什么是SSL/TLS

        SSL(安全套接字层)是一种标准安全协议,用于在在线通信中建立Web服务器和浏览器之间的加密链接。

        TLS (Transport Layer Security)是SSL协议(Secure Sockets Layer)的升级版。TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。


        Netscape(网景通信公司)在1994年创建了SSL协议的原始规范,但是没有公开发布过。SSL 3.0协议获得互联网广泛认可和支持,因特网工程任务组(IETF)接手负责该协议,并将其重命名为传输层安全(TLS)协议。TSL1.0实质上就是SSL 3.0协议的适度改进版。

不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。

· 窃听风险(eavesdropping):第三方可以获知通信信息。

· 篡改风险(tampering):第三方可以修改通信信息。

· 冒充风险(pretending):第三方可以冒充他人身份参与通信。

SSL/TLS协议是为了解决这三大风险而设计的,希望达到

· 所有信息都是加密传播,第三方无法窃听。

· 具有校验机制,一旦被篡改,通信双方会立刻发现。

· 配备身份证书,防止身份被冒充。

2. 加密算法的历史

简述

        最早的加密算法主要用于军事,在古时候就有飞鸽传输,快马加书信的方式进行通讯,在传输的过程中如果被他人劫持,将信息内容替换,便很难对信息进行是否正确的判别。慢慢的,人们想出了一种方式,使用一种规则将文字打乱,再用同样的规则将文字复原,这便是加密解密的根源了。例如在密码学的原始的凯撒密码,据说其是凯撒在战争中与将军们交流的一种加密的方式,其原理十分的简单,就是让字母都具有统一的偏移量,使得原本正常的文字,在每个字母偏移后形成无法识别的文字。

现代加密方式

    1) 常见加密的种类

        a. 哈希(hash)算法

        b. 对称加密算法

        c. 非对称加密算法

    2) 哈希算法

        哈希算法使用的是散列值法,通过一种对应的散列公式将key转换成hash值,也是一种较为优秀的地址存储方式,一般来说,这种算法加密是无法进行破解的,网上所谓的破解一般来说只有以下三种方式:时间解法,空间解法,彩虹表法。

    具代表性的哈希加密:md5加密,sha加密

    3) 对称加密算法

    通过同一个密钥进行明文的加密和解密。当密钥泄露的时候,所有的密文都可以直接转化为明文,数据的机密性不可保持。


    4) 非对称加密算法

        非对称加密拥有一套匹配的公钥和私钥,明文可以使用公钥加密成密文,密文再用私钥进行解密成明文,也可以反过来,用私钥加密,公钥继续解密。但是非对称性加密缺点就是速度过慢。


混合加密

        混合加密方式是对称加密和非对称加密相结合。TLS就是使用混合加密方式来实现机密性。

三、中间者入侵

        假如服务器端经由中间方向客户端发送公钥的时候,中间方没有将公钥发送给客户端,而是伪造了一对公钥,并将伪造的公钥发送给客户端,此时客户端用中间方伪造的公钥对自己正确的对称秘钥加密并由中间方发送给服务器端,而中间方将用自己伪造的公钥的私钥对其进行解密,得到正确的对称秘钥,并将得到的正确的对称秘钥用服务器端发过来的公钥进行加密发给服务器端,服务器再用正确的私钥进行解密,也得到正确的对称秘钥,此时客户端、服务器端和中间方三者都拥有一套正确的对称秘钥,可以对传送的数据进行加密,解密。


四、CA证书

        服务器端会向CA申请认证书,此证书包含了CA及服务器端的一些信息,客户端校验拿到的公钥信息,中间方是伪造的是无法通过的,保证客户端拿到的公钥是服务器端的。


五、总结

        相比HTTP 协议,HTTPS 协议增加了很多握手(HTTPS 的建立过程包括 7 次握手,除了 TCP 建立连接的三次握手,还包括 TLS 四次握手过程)、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。

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

推荐阅读更多精彩内容