Http与Https区别

1、区别:

1.1 概念

Https是一种通过计算机网络进行安全通信的传输协议。Https经由Http进行通信,利用SSL/TLS进行加密数据包。旨在提供对网络服务器的身份认证,同时,保护交换数据的的隐私与完整性。坦白讲,以安全为目标的Http通道,即Http的安全版。以一个简单的公式来表达:Http + 加密 + 身份认证 + 完整性保护 = Https

Http是一种详细规定了浏览器和万维网服务器之间相互通信的规则,通过因特网传输万维网文档的数据传送协议。

Http有以下几点问题:

  • 重要信息明文传输;

  • 通信双方可能被伪冒;

  • 数据泄密和被篡改;

    针对支付交易部分,https显得尤为重要。

    1.2 区别

    Http Https
    身份认证 无,易伪冒 需要申请CA证书
    端口 80 443
    SSL/TLS 无,明文传输,不安全 加密传输,安全完整

    从OSI7层模型来看,尤为明显。在Http应用层和TCP传输层增加了一层SSL/TLS安全层.

    Https与Http比较

2、SSL/TLS是如何加密的:

2.1 加密方法

共享密钥方式加密 = 对称加密 = 处理速度快

公开密钥方式加密 = 非对称加密 = 处理速度较慢

共享密钥方式加密只要密钥足够安全,服务器将密钥交给客户端,然后通信过程中和客户端使用同一把密钥进行加解密。毕竟通信过程肯定是速度尽量快才最好,达到用户请求,快速响应返回并交互的目的。

那么问题来了,服务器如何将密钥安全的传递给客户端呢?

此时,就需要公开密钥加密方式登场了。公开密钥加密方式就是使用公钥加密,私钥解密的方式对加密信息解密,从而恢复信息。发送方(服务器)使用接收端(客户端)的公钥对数据进行加密,然后接收方使用私钥对接收到的数据进行解密。从而上述问题就解决了,通信双方持有对方的公钥,发送共享密钥使用公钥加密,就不怕共享密钥被获取了。

那么,新的问题又来了,公钥是发放出去的,如何证明发给客户端的过程中,公钥没有被替换掉呢?假如公钥被替换掉,伪冒者可以代替服务器接收客户端发送的数据,从而代替服务端和客户端通信。

这时候就要用到数字证书认证机构。Https中,服务端将公钥给数字认证机构进行安全认证并对公钥进行数字签名,公钥和签名组成数字证书。在和客户端通信时,服务端将数字证书发送给客户端,客户端通过第三方认证机构发布的公钥(一般会在浏览器开发时,内置在浏览器中)对数字证书上的签名进行验证,如果验证通过,则证明一下事实:

  • 认证该服务器的公钥机构是真实有效的数字证书认证机构

  • 该服务器发过来的公钥是值得信赖的

因为通信双方都需要证明自己发出的公钥真实可靠,所以也就存在两种目的性不同的数字证书:可证明组织真实性的EV SSL证书,来确认客户端证书。

2.2 工作流程

因此,SSL/TLS协议基本过程是这样的:

  1. 客户端向服务端索要并验证公钥;

  2. 双方协商生成“对话密钥”;

  3. 双方采用"对话密钥"进行加密通信;

上述过程前两步又称为"握手阶段"

握手的详细过程:

握手阶段

2.2.1 客户端发出请求(Client Hello)

首先,客户端(通常是浏览器)先向服务器发出加密通信的请求,称作ClientHello请求。

客户端主要向服务器提供以下信息:

  1. 支持的协议版本 如TLS 1.0;

  2. 一个客户端生成的随机数,稍后用于生成“对话密钥”;

  3. 支持的加密方法,如RSA公钥加密;

  4. 支持的压缩方法;

需要注意的是,客户端发送的信息之中不包括服务器的域名。也就是说,理论上服务器只能包含一个网站,否则会分不清应该向客户端提供哪一个网站的数字证书。这就是为什么通常一台服务器只能有一张数字证书的原因。

2.2.2 服务器回应(Server Hello)

服务器收到客户端请求后,向客户端发出回应,称作ServerHello。服务器向客户端回应一下内容:

  1. 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。

  2. 一个服务器生成的随机数,稍后用于生成"对话密钥"。

  3. 确认使用的加密方法,比如RSA公钥加密。

  4. 服务器证书。

除了上面这些信息,如果服务器需要确认客户端的身份,就会再包含一项请求,要求客户端提供"客户端证书"。

2.2.3 客户端回应

客户端收到服务器回应以后,首先验证服务器证书。如果证书不是可信机构颁布、或者证书中的域名与实际域名不一致、或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

如果证书没有问题,客户端就会从证书中取出服务器的公钥。然后,向服务器发送下面三项信息。

  1. 一个随机数。该随机数用服务器公钥加密,防止被窃听。

  2. 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。

  3. 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验

上面第一项的随机数,是整个握手阶段出现的第三个随机数,又称“pre-master key”。有了它以后,客户端和服务器就同时有了三个随机数,接着双方就用事先商定的加密方法,各自生成本次会话所用的同一把“会话密钥”。

至于为什么一定要用三个随机数,来生成“会话密钥”?

不管客户端还是服务器,都需要随机数,这样生成的密钥才不会每次都一样。由于SSL协议中证书是静态的,因此十分有必要引入一种随机因素来保证协商出来的密钥的随机性。

对于RSA密钥交换算法来说,pre-master-key本身就是一个随机数,再加上hello消息中的随机,三个随机数通过一个密钥导出器导出一个对称密钥。

pre master 的存在在于SSL协议不信任每一个主机都能产生完全随机的随机数。如果随机数不那么随机,那么pre master secret就有可能被猜出来,那么仅使用pre master secret 作为密钥就不适合了,因此必须引入新的随机因素,那么客户端和服务器加上 pre master secret 三个随机数一同生成的密钥就不容易被猜出了,一个伪随机可能完全不随机,但三个伪随机就十分接近随机了,每增增加一个自由度,随机性就大增。

此外,如果上一步服务器要求客户端证书,客户端会在这一步发送证书及相关信息。

2.2.4 服务器的最后响应

服务器收到客户端的第三个随机数pre-master key之后,计算生成本次会话所用的"会话密钥"。然后,向客户端最后发送下面信息。

  1. 编码通知改变,表示随后的信息都将使用双方商定的加密方法和密钥发送。

  2. 服务器握手结束通知,表示服务器握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。

至此整个握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用的普通的Http协议,只不过使用"会话密钥"加密内容。

3.参考链接

​1.SSL/TLS协议运行机制的概述

​2.Https与Http --TLS/SSL

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