HTTP与HTTPS的区别(二)补充 --小丑

CA认证

电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任

Heartbleed
Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。

SEO
SEO(Search Engine Optimization):汉译为搜索引擎优化。是一种方式:利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是:为网站提供生态式的自我营销解决方案,让其在行业内占据领先地位,获得品牌收益;SEO包含站外SEO和站内SEO两方面;为了从搜索引擎中获得更多的免费流量,从网站结构、内容建设方案、用户互动传播、页面等角度进行合理规划,还会使搜索引擎中显示的网站相关信息对用户来说更具有吸引力。
九、站长如何搭建HTTPS站点?

说到HTTPS站点的搭建,就不得不提到SSL协议,SSL是Netscape公司率先采用的网络安全协议,它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术,SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。

1、SSL的作用

(1)、认证用户和服务器,确保数据发送到正确的客户机和服务器;

(2)、加密数据以防止数据中途被窃取;

(3)、维护数据的完整性,确保数据在传输过程中不被改变。

而SSL证书指的是在SSL通信中验证通信双方身份的数字文件,一般分为服务器证书和客户端证书,我们通常说的SSL证书主要指服务器证书,SSL证书由受信任的数字证书颁发机构CA(如VeriSign,GlobalSign,WoSign等),在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能,分为扩展验证型(EV)SSL证书、组织验证型(OV)SSL证书、和域名验证型(DV)SSL证书。

SSL证书申请的3个主要步骤

对于SSL证书的申请,主要有以下3个步骤:

(1)、制作CSR文件

所谓CSR就是由申请人制作的Certificate Secure Request证书请求文件,制作过程中,系统会产生2个密钥,一个是公钥就是这个CSR文件;另外一个是私钥,存放在服务器上。

要制作CSR文件,申请人可以参考web SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。

(2)、CA认证

将CSR提交给CA,CA一般有2种认证方式:

①、域名认证:一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称。

②、企业文档认证:需要提供企业的营业执照,一般需要3-5个工作日。

也有需要同时认证以上2种方式的证书,叫EV证书,这种证书可以使IE7以上的浏览器地址栏变成绿色,所以认证也最严格。

(3)、证书的安装

在收到CA的证书后,可以将证书部署上服务器,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPD.CONF文件;TOMCAT等,需要将CA签发的证书CER文件导入JKS文件后,复制上服务器,然后修改SERVER.XML;IIS需要处理挂起的请求,将CER文件导入。

而需要复杂证书的往往是大中型网站,诸如个人博客之类的小型站点完全可以先尝试免费SSL证书。

从商业机构到政府部门再到个人家庭,越来越多的用户使用网络来处理事务,交流信息和进行交易活动,这些都不可避免地涉及到网络安全问题,尤其是认证和加密问题,特别是在网上进行购物交易活动中,必须保证交易双方能够互相确认身份,安全地传输敏感信息,事后不能否认交易行为,同时还要防止他人截获篡改宝贵信息或假冒交易方。

那么,我们该如何提高站点信息的安全性呢?目前最简单的解决方案就是利用SSL安全技术来实现WEB的安全访问。
HTTPS的工作原理

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

1、客户端发起HTTPS请求

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

2、服务端的配置

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

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

3、传送证书

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

4、客户端解析证书

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

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

5、传送加密信息

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

6、服务端解密信息

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

7、传输加密后的信息

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

8、客户端解密信息

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

搜索引擎对HTTPS的态度

百度推出了全站HTTPS加密搜索服务,以此解决“第三方”对用户隐私的嗅探和劫持,其实,早在2010年5月份,谷歌便开始提供HTTPS加密搜索服务,在HTTPS页面的抓取问题上,百度在2014年9月份的一份公告中表示“百度不会主动抓取HTTPS页面”,谷歌在算法更新中则表示“同等条件下,使用HTTPS加密技术的站点在搜索排名上更具优势“。

那么,在这种大环境下,站长是否该采用“具有风险”的HTTPS协议呢?HTTPS对搜索引擎的SEO影响又如何呢?

1、谷歌的态度

谷歌在HTTPS站点的收录问题上与对HTTP站点态度并无什么不同之处,甚至把“是否使用安全加密”(HTTPS)作为搜索排名算法中的一个参考因素,采用HTTPS加密技术的网站能得到更多的展示机会,排名相对同类网站的HTTP站点也更有优势。

而且谷歌曾明确表示“希望所有的站长都能够将使用HTTOS协议,而非HTTP”更是表明了其对达到“HTTPS everywhere”这一目标的决心。

2、百度的态度

虽然百度曾表示“不会主动抓取HTTPS网页”,但对于“很多HTTPS网页无法被收录”也是“耿耿于怀”,去年9月份,百度就“HTTPS站点如何建设才能对百度友好”问题发布了一篇文章,给出了“提高HTTPS站点的百度友好度”的四项建设及具体操作。

此外,近日的“百度全站HTTPS加密搜索”事件也在此彰显了百度对HTTPS加密的重视,可见,百度并不“反感”HTTPS站点,所以“不主动抓取”应该只是暂时的。
五、HTTPS要比HTTP多用多少服务器资源?

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

HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,HTTPS除了了TCP的三个包,还要加上SSL握手需要的9个表,所以一共是12个包。

HTTP建立连接,按照下面连接中针对Comptter Science House的测试,是114毫秒;HTTPS建立连接,耗费436毫秒,SSL部分花费322毫秒,包括网络延时盒SSL本身加解密的开销(服务器根据客户端的信息确定是否需要生成的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器想客户端请求数字签名和公开密钥)。

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

那采用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在实现这个心跳扩展时,犯了一个低价的错误,没有对收到的心跳请求进行长度检查,直接根据心跳请求长度拷贝数据区,导致简单的心跳应答中可能包含了服务器的核心数据区内容,用户名,密码,信用卡信息,甚至服务器的私有密钥都有可能泄露。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

HTTP与HTTPS的区别(二)补充    --小丑