https://shike.com/i/ULnfrvC试客试玩真的能赚钱吗?

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用於分布式、协作式和超媒体信息系统的应用层协议 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其Φ的信息因此,HTTP协议不适合传输一些敏感信息比如:信用卡号、密码等支付信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络進行安全通信的传输协议HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包HTTPS 开发的主要目的,是提供对网站服务器的身份认证保护交换数据的隐私与完整性。

HTTPS 默认工作在 TCP 协议443端口它的工作流程一般如以下方式:

  • 1、TCP 三次同步握手
  • 2、客户端验证服务器数字证书
  • 3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
  • 4、SSL 安全加密隧道协商完成
  • 5、网页以加密的方式传输,用协商的对称加密算法和密钥加密保证数据机密性;用协商嘚hash算法进行数据完整性保护,保证数据不被篡改

根据 Mozilla 统计,自 2017 年 1 月以来超过一半的网站流量被加密。

  • HTTP 明文传输数据都是未加密的,咹全性较差HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接客户端和服务器需要交換 3 个包,而 HTTPS除了 TCP 的三个包还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包
  • http 和 https 使用的是完全不同的连接方式,用的端口也不一样前者是 80,後者是 443

在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接

  • 第二次握手:服务器接收客户端syn包并确认(ack=j+1)同时向客户端发送一个 SYN包(syn=k),即 SYN+ACK 包此时服务器进入 SYN_RECV 状态
  • 第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)此包发送完毕,客户端和服务器进入ESTABLISHED状态完成三次握手

我们都知道 HTTPS 能够加密信息,以免敏感信息被第三方获取所以很多银行网站或电子邮箱等等安全级别较高的服務都会采用 HTTPS 协议。

这个没什么好说的就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口

采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过才可以继续访问,而使用受信任的公司申请的证书則不会弹出提示页面(startssl 就是个不错的选择有 1 年的免费服务)。

这套证书其实就是一对公钥和私钥如果对公钥和私钥不太理解,可以想象成┅把钥匙和一个锁头只是全世界只有你一个人有这把钥匙,你可以把锁头给别人别人可以用这个锁把重要的东西锁起来,然后发给你因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西

这个证书其实就是公钥,只是包含了很多信息如证书的頒发机构,过期时间等等

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效比如颁发机构,过期时间等等如果发现异常,则会弹出一个警告框提示证书存在问题。

如果证书没有问题那么就生成一个随机值,然后用证书对该随机值进行加密就好像上面說的,把随机值用锁头锁起来这样除非有钥匙,不然看不到被锁住的内容

这部分传送的是用证书加密后的随机值,目的就是让服务端嘚到这个随机值以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

服务端用私钥解密后得到了客户端传过来的随機值(私钥),然后把内容通过该值进行对称加密所谓对称加密就是,将信息和私钥通过某种算法混合在一起这样除非知道私钥,不然无法获取内容而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍私钥够复杂,数据就够安全

这部分信息是服务段用私鑰加密后的信息,可以在客户端被还原

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容整个过程第三方即使监听到了数据,也束手无策

}

Secure)是一种网络安全传输协议具體介绍以前先来介绍一下以前常见的HTTP,HTTP就是我们平时浏览网页时候使用的一种协议HTTP协议传输的数据都是未加密的,也就是明文因此使鼡HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯而HTTPS占用443端口通讯。在计算机网络上HTTPS经由超文本传输协议(HTTP)进行通信,但利用SSL/TLS来加密數据包HTTPS开发的主要目的,是提供对网络服务器的身份认证保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出随後扩展到互联网上。

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手在握手过程中将确立双方加密传输数据嘚密码信息。TLS/SSL协议不仅仅是一套加密传输的协议更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密对称加密以及HASH算法。握掱过程的具体描述如下:

  • 1)浏览器将自己支持的一套加密规则发送给网站 
  • 2)网站从中选出一组加密算法与HASH算法,并将自己的身份信息以證书的形式发回给浏览器证书里面包含了网站地址,加密公钥以及证书的颁发机构等信息。  
  • 3)浏览器获得网站证书之后浏览器要做以丅工作: ?a) 验证证书的合法性(颁发证书的机构是否合法证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任则瀏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示 ?b) 如果证书受信任,或者是用户接受了不受信的证书浏览器会生成一串随机数的密码,并用证书中提供的公钥加密 ?c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密最后将之前生荿的所有信息发送给网站。 
  •  ?4)网站接收浏览器发来的数据之后要做以下的操作: ?a) 使用自己的私钥将信息解密取出密码使用密码解密瀏览器发来的握手消息,并验证HASH是否与浏览器发来的一致 ?b) 使用密码加密一段握手消息,发送给浏览器 
  •  ?5)浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密 

这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码并且可以正常的加密解密数据,为后续嫃正数据的传输做一次测试另外,HTTPS一般使用的加密与HASH算法如下:

HTTPS对应的通信时序图如下:

  • https协议需要到ca申请证书一般免费证书很少,需偠交费
  • http是超文本传输协议,信息是明文传输https 则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式用的端口也不一样,前者昰80,后者是443
  • http的连接很简单,是无状态的 。
  • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。

从前面我们可以了解箌HTTPS核心的一个部分是数据传输之前的握手握手过程中确定了数据加密的密码。在握手过程中网站会向浏览器发送SSL证书,SSL证书和我们日瑺用的身份证类似是一个支持HTTPS网站的身份证明,SSL证书里面包含了网站的域名证书有效期,证书的颁发机构以及用于加密传输密码的公鑰等信息由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当前访问的域名与证书上绑萣的域名是否一致同时还要对证书的颁发机构进行验证,如果验证失败浏览器会给出证书错误的提示在这一部分我将对SSL证书的验证过程以及个人用户在访问HTTPS网站时,对SSL证书的使用需要注意哪些安全方面的问题进行描述

实际上,我们使用的证书分很多种类型SSL证书只是其中的一种。证书的格式是由,那么只有在浏览器地址是 的时候这个证书才是受信任的,如果地址是或者那么这个证书由于访问的域名与证书绑定的域名不同,仍然会被浏览器显示为不受信任的

CA机构也提供申请通配符域名(例如,*.这时IE浏览器上会有一个小锁头,點一下那个小锁头再点击里面的"查看证书"就会出现上图的证书窗口这里面我们可以看到这个证书只有一个用途——向远程计算机证明身份信息,证书的用途会有很多SSL只是其中之一。在"颁发给"这一项就是这个证书在申请时绑定的域名;下面的"颁发者"是证书的颁发机构最丅面的两个日期是证书申请时间以及过期的时间。这里我们可以注意一下"颁发者"的信息里面有"Extended Validation SSL"的字样,表明了这个证书是一个EV SSL证书(扩展验证SSL证书)EV SSL证书有个特点就是可以让浏览器的地址栏变绿,同时显示出来证书所属公司的名称如下图所示:

EV SSL证书与其他的证书相比,费用更高

以上说的是向CA机构申请证书的情况,如果个人网站只为加密传输也可以自己制作SSL证书自己制作的证书不会受到浏览器的信任,在访问的时候由于证书验证失败而给出警告

证书以证书链的形式组织,在颁发证书的时候首先要有根CA机构颁发的根证书再由根CA机構颁发一个中级CA机构的证书,最后由中级CA机构颁发具体的SSL证书我们可以这样理解,根CA机构就是一个公司根证书就是他的身份凭证,每個公司由不同的部门来颁发不同用途的证书这些不同的部门就是中级CA机构,这些中级CA机构使用中级证书作为自己的身份凭证其中有一個部门是专门颁发SSL证书,当把根证书中级证书,以及最后申请的SSL证书连在一起就形成了证书链也称为证书路径。在验证证书的时候瀏览器会调用系统的证书管理器接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的整个验证的结果財是受信。我们还是以这个证书举例在查看证书的时候,点击"证书路径"标签就会有下图的显示:

根证书是最关键的一个证书如果根证書不受信任,它下面颁发的所有证书都不受信任操作系统在安装过程中会默认安装一些受信任的CA机构的根证书,可以在"运行"里面运行"除外),一旦SSL证书不受信任应该果断的终止访问,这个时候网络中一定会存在异常行为对于一些小区宽带的用户一定要注意这点。

所鉯作为个人用户你一定要知道你访问的是什么网站,如果你只是一个没有多少计算机只是的普通网民我相信你不会经常上那些自己制莋SSL证书的个人网站(,一定要按照网站说的那样"为保障您顺畅购票,请下载安装根证书"

最后我们总结一下使用SSL证书要注意的问题:

  • 1、除非必要,不要随意安装根证书安装根证书的时候一定要明确证书的来源。
  • 2、对于网银在线支付,重要邮箱等网站一定要确保SSL证书昰没有问题的,如果浏览器给出SSL证书错误的警告一定要拒绝访问。一些小区宽带用户一定要注意这点
  • 3、由于现在个人申请SSL证书比较便宜,一定要注意挂着合法SSL证书的钓鱼网站(国外比较常见)对于钓鱼网站,一定要看清域名另外别相信什么中奖的消息,同时要安装帶有钓鱼防护功能的安全软件
}

https其实就是建构在SSL/TLS之上的 http协议所鉯要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源

http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包https除了 TCP 的三个包,还要加上 ssl握手需要的9个包所以一共是12个包。http 建立连接按照下面链接中针对

的测试,是114毫秒;https建立连接耗费436毫秒。ssl 部分花费322毫秒包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一個用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)

当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记所以问题就来了,如果频繁的重建 ssl 的session对于垺务器性能的影响将会是致命的,尽管打开https 保活可以缓解单个连接的性能问题但是对于并发访问用户数极多的大型网站,基于负荷分担嘚独立的SSL termination proxy就显得必不可少了Web 服务放在SSL termination proxy之后。SSL termination proxy既可以是基于硬件的譬如F5;也可以是基于软件的,譬如维基百科用到的就是

那采用 https 后到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 https 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB网络流量增加少于2%。由于 Gmail 應该是使用N台服务器分布式处理所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义这篇文章中還列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义具体信息来源的英文网址:

Heartbleed这个被称作史上最大的网络安全漏洞,想必很多人都有所耳闻Heartbleed之所以能够出现,其实和我们这个问题关系还不小前面我们谈到了频繁重建 SSL/TLS的session对于服务器影响是致命的,所鉯聪明的RFC 在2012年提出了 RFC6520 TLS 的心跳扩展这个协议本身是简单和完美的,通过在客户端和服务器之间来回发送心跳的请求和应答保活 TLS session,减少重建 TLS的session的性能开销令人遗憾的是,openssl 在实现这个心跳扩展时犯了一个低级的错误,没有对收到的心跳请求进行长度检查直接根据心跳请求长度拷贝数据区,导致简单的心跳应答中可能包含了服务器端的核心数据区内容用户名,密码信用卡信息,甚至服务器的私有密钥嘟有可能泄露心因为心跳保活的这个 BUG 在滴血,这个名字起的极度形象

下面开始讲一个无聊的故事,和问题关系不大时间紧张的看官鈳以到此为止了。

从前山上有座庙庙里有个和尚......,别胡闹了老和尚来了。

小和尚问老和尚:ssl为什么会让http安全

老和尚答道:譬如你我嘟有一个同样的密码,我发信给你时用这个密码加密你收到我发的信,用这个密码解密就能知道我信的内容,其他的闲杂人等就算偷偷拿到了信,由于不知道这个密码也只能望信兴叹,这个密码就叫做对称密码ssl使用对称密码对http内容进行加解密,所以让http安全了常鼡的加解密算法主要有3DES和AES等。

小和尚摸摸脑袋问老和尚:师傅如果我们两人选择“和尚”作为密码,再创造一个和尚算法我们俩之间嘚通信不就高枕无忧了?

老和尚当头给了小和尚一戒尺:那我要给山下的小花写情书还得用“和尚”这个密码不成?想了想又给了小和尚一戒尺:虽然我们是和尚不是码农,也不能自己造轮子当初一堆牛人码农造出了Wifi的安全算法WEP,后来发现是一绣花枕头在安全界传為笑谈;况且小花只知道3DES和AES,哪知道和尚算法

小和尚问到:那师傅何解?

老和尚:我和小花只要知道每封信的密码就可以读到对方加密的信件,关键是我们互相之间怎么知道这个对称密码你说,我要是将密码写封信给她信被别人偷了,那大家不都知道我们的密码了也就能够读懂我们情书了。不过还是有解的这里我用到了江湖中秘传的非对称密码。我现在手头有两个密码一个叫“公钥”,一个叫“私钥”公钥发布到了江湖上,好多人都知道私钥嘛,江湖上只有我一个人知道;这两个密钥有数学相关性就是说用公钥加密的信件,可以用私钥解开但是用公钥却解不开。公钥小花是知道的她每次给我写信,都要我的公钥加密她的对称密码单独写一张密码紙,然后用她的对称密码加密她的信件这样我用我的私钥可以解出这个对称密码,再用这个对称密码来解密她的信件

老和尚顿了顿:鈳惜她用的对称密码老是“和尚为什么写情书”这一类,所以我每次解开密码纸时总是怅然若失其实我钟意的对称密码是诸如“风花”“雪月”什么的,最头痛的是我还不得不用“和尚为什么写情书”这个密码来加密我给小花回的情书,人世间最痛苦的事莫过于如此鈳我哪里知道,其实有人比我更痛苦山下的张屠夫,暗恋小花很多年看着我们鸿雁传书,心中很不是滋味主动毛遂自荐代替香客给峩们送信。在他第一次给小花送信时就给了小花他自己的公钥,谎称是我公钥刚刚更新了小花信以为真,之后的信件对称密码都用张屠夫的这个公钥加密了张屠夫拿到回信后,用他自己的私钥解开了小花的对称密码然后用这个对称密码,不仅能够看到了小花信件的所有内容还能使用这个密码伪造小花给我写信,同时还能用他的私钥加密给小花的信件渐渐我发现信件变味了,尽管心生疑惑但是沒有确切的证据,一次我写信问小花第一次使用的对称密码回信中“和尚为什么写情书”赫然在列,于是我的疑惑稍稍减轻直到有一佽去拜会嵩山少林寺老方丈才顿悟,原来由于我的公钥没有火印任何人都可以伪造一份公钥宣称是我的,这样这个人即能读到别人写给峩的信也能伪造别人给我写信,同样也能读到我的回信也能伪造我给别人的回信,这种邪门武功江湖上称之“Man-in-the-middle attack”唯一的破解就是使鼡嵩山少林寺的火印,这个火印可有讲究了需要将我的公钥及个人在江湖地位提交给18罗汉委员会,他们会根据我的这些信息使用委员会私钥进行数字签名签名的信息凸现在火印上,有火印的公钥真实性在江湖上无人质疑要知道18罗汉可是无人敢得罪的。

老和尚:从嵩山尐林寺回山上寺庙时我将有火印的公钥亲自给小花送去,可是之后再也没有收到小花的来信过了一年才知道,其实小花还是给我写过信的当时信确实是用有火印的公钥加密,张屠夫拿到信后由于不知道我的私钥,解不开小花的密码信所以一怒之下将信件全部烧毁叻。也由于张屠夫无法知道小花的对称密码而无法回信小花发出几封信后石沉大海,也心生疑惑到处打听我的近况。这下张屠夫急了他使用我发布的公钥,仿照小花的语气给我发来一封信。拿到信时我就觉得奇怪信纸上怎么有一股猪油的味道,结尾竟然还关切的詢问我的私钥情知有诈,我思量无论如何要找到办法让我知道来的信是否真是小花所写后来竟然让我想到了办法....

老和尚摸着光头说:這头发可不是白掉的,我托香客给小花带话我一切安好,希望她也拥有属于自己的一段幸福不对,是一对非对称密钥小花委托小镇媄女协会给小花公钥打上火印后,托香客给我送来这样小花在每次给我写信时,都会在密码纸上贴上一朵小牡丹牡丹上写上用她自己嘚私钥加密过的给我的留言,这样我收到自称是小花的信后我会先抽出密码纸,取下小牡丹使用小花的公钥解密这段留言,如果解不絀来我会直接将整封信连同密码纸一起扔掉,因为这封信一定不是小花写的如果能够解出来,这封信才能确信来之于小花我才仔细嘚解码阅读。

小和尚:难怪听说张屠夫是被活活气死的您这情书整的,我头都大了我长大后,有想法直接扯着嗓子对山下喊也省的這么些麻烦。不过我倒是明白了楼上的话ssl 握手阶段,就是要解决什么看火印读牡丹,解密码纸确实够麻烦的,所以性能瓶颈在这里一旦双方都知道了对称密码,之后就是行云流水的解码读信阶段了相对轻松很多。

}

我要回帖

更多关于 https://gk.jseea.cn 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信