HTTPS与HTTP有何不同?

建站问题
2016-05-31 09:15:23
文章摘要

最近大家在使用百度、谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护。

最近大家在使用百度、谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTPS 进行保护。仔细观察,会发现这些网站已经全站使用 HTTPS。同时,iOS 9 系统默认把所有的 http 请求都改为 HTTPS 请求。随着互联网的发展,现代互联网正在逐渐进入全站 HTTPS 时代。

全站 HTTPS 能够带来怎样的优势?HTTPS 的原理又是什么?同时,阻碍 HTTPS 普及的困难是什么?

 为了解答大家的困惑,腾讯TEG架构平台部静态加速组高级工程师刘强,为大家综合参考多种资料并经过实践验证,探究 HTTPS 的基础原理,分析基本的 HTTPS 通信过程,迎接全站 HTTPS 的来临。

 

1.HTTPS 基础

 

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 协议。

 

HTTP 协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持的风险,而协议 TLS/SSL 具有身份验证、信息加密和完整性校验的功能,可以避免此类问题。

 

TLS/SSL 全称安全传输层协议 Transport Layer Security, 是介于 TCP 和 HTTP 之间的一层安全协议,不影响原有的 TCP 协议和 HTTP 协议,所以使用 HTTPS 基本上不需要对 HTTP 页面进行太多的改造。

 



2.TLS/SSL 原理

 

HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议,本节分析安全协议的实现原理。

 

TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

 



散列函数 Hash,常见的有 MD5、SHA1、SHA256,该类函数特点是函数单向不可逆、对输入非常敏感、输出长度固定,针对数据的任何修改都会改变散列函数的结果,用于防止信息篡改并验证数据的完整性;对称加密,常见的有 AES-CBC、DES、3DES、AES-GCM等,相同的密钥可以用于信息的加密和解密,掌握密钥才能获取信息,能够防止信息窃听,通信方式是1对1;非对称加密,即常见的 RSA 算法,还包括 ECC、DH 等算法,算法特点是,密钥成对出现,一般称为公钥(公开)和私钥(保密),公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开。因此掌握公钥的不同客户端之间不能互相解密信息,只能和掌握私钥的服务器进行加密通信,服务器可以实现1对多的通信,客户端也可以用来验证掌握私钥的服务器身份。

 

在信息传输过程中,散列函数不能单独实现信息防篡改,因为明文传输,中间人可以修改信息之后重新计算信息摘要,因此需要对传输的信息以及信息摘要进行加密;对称加密的优势是信息传输1对1,需要共享相同的密码,密码的安全是保证信息安全的基础,服务器和 N 个客户端通信,需要维持 N 个密码记录,且缺少修改密码的机制;非对称加密的特点是信息传输1对多,服务器只需要维持一个私钥就能够和多个客户端进行加密通信,但服务器发出的信息能够被所有的客户端解密,且该算法的计算复杂,加密速度慢。

 

结合三类算法的特点,TLS 的基本工作方式是,客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥,然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取。

 

3.PKI 体系 3.1 RSA 身份验证的隐患

 

身份验证和密钥协商是 TLS 的基础功能,要求的前提是合法的服务器掌握着对应的私钥。但 RSA 算法无法确保服务器身份的合法性,因为公钥并不包含服务器的信息,存在安全隐患:

 

客户端 C 和服务器 S 进行通信,中间节点 M 截获了二者的通信;

 

节点 M 自己计算产生一对公钥 pub_M 和私钥 pri_M;

 

C 向 S 请求公钥时,M 把自己的公钥 pub_M 发给了 C;

 

C 使用公钥 pub_M 加密的数据能够被 M 解密,因为 M 掌握对应的私钥 pri_M,而 C 无法根据公钥信息判断服务器的身份,从而 C 和 M 之间建立了”可信”加密连接;

 

中间节点 M 和服务器S之间再建立合法的连接,因此 C 和 S 之间通信被M完全掌握,M 可以进行信息的窃听、篡改等操作。

 

另外,服务器也可以对自己的发出的信息进行否认,不承认相关信息是自己发出。

 

因此该方案下至少存在两类问题:中间人攻击和信息抵赖。

 



3.2 身份验证-CA 和证书

 

解决上述身份验证问题的关键是确保获取的公钥途径是合法的,能够验证服务器的身份信息,为此需要引入权威的第三方机构 CA。CA 负责核实公钥的拥有者的信息,并颁发认证”证书”,同时能够为使用者提供证书验证服务,即 PKI 体系。

 

基本的原理为,CA 负责审核信息,然后对关键信息利用私钥进行”签名”,公开对应的公钥,客户端可以利用公钥验证签名。CA 也可以吊销已经签发的证书,基本的方式包括两类 CRL 文件和 OCSP。CA 使用具体的流程如下:

 



a.服务方 S 向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证;

 

b.CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;

 

c.如信息审核通过,CA 会向申请者签发认证文件-证书。

 

证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名;

 

签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名;

 


 


d.客户端 C 向服务器 S 发出请求时,S 返回证书文件;

 

e.客户端 C 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法;

 

f.客户端然后验证证书相关的域名信息、有效时间等信息;

 

g.客户端会内置信任 CA 的证书信息(包含公钥),如果CA不被信任,则找不到对应 CA 的证书,证书也会被判定非法。

 

在这个过程注意几点:

 

a.申请证书不需要提供私钥,确保私钥永远只能服务器掌握;

 

b.证书的合法性仍然依赖于非对称加密算法,证书主要是增加了服务器信息以及签名;

 

c.内置 CA 对应的证书称为根证书,颁发者和使用者相同,自己为自己签名,即自签名证书;

 

d.证书=公钥+申请者与颁发者信息+签名;


扫码关注我们
小程序二维码

查看演示

微信公众号二维码

关注微信公众号

你觉得这篇文章怎么样?

关于小二CMS

高端定制网站领域著名服务商

我们立足合肥,业务覆盖安徽、全国及全球市场。我们凭借一支经验丰富、创意独特、协作无间的专业技术团队,专注于将最优技术通过高效简捷的途径呈现给客户,量身打造最佳解决方案。我们致力于通过持续努力,成为客户在信息化领域值得托付、共创价值的长期战略合作伙伴,协助客户在新经济时代敏锐捕捉商机,拓展发展空间,构筑强大竞争力。

小程序开发
公众号开发
高端网站开发
系统开发
商城开发
外贸网站建设
网站优化推广
安全运维

扫描二维码与小二CMS创始人沟通

7×24小时专业技术支持

高端网站定制
系统开发(OA、CRM)
商城开发
外贸网站建设
公众号/小程序
安全运维
创始人微信二维码

扫一扫添加微信

关于我们

建站190一家专注于高端网站建设、微信小程序开发、移动端应用研发及企业数字化转型服务的技术驱动型企业。我们致力于通过前沿技术研发实力与匠心独运的创意设计,为客户提供从策划、设计到开发、部署运维的一站式数字化解决方案。

自2013年成立以来,我们已成功交付3000+个精品项目,服务客户遍布金融、零售、制造、教育、医疗、互联网等多个行业领域。我们拥有资深的技术团队与丰富的实战经验,擅长复杂业务逻辑梳理与建模、高性能系统架构设计、跨平台应用开发、用户体验(UX/UI)深度优化及企业级系统安全保障。

我们相信,每一个成功的项目都源于对客户需求的深刻理解与极致追求。选择建站190,就是选择一个懂技术、懂设计、更懂您业务痛点的数字化成长伙伴,让我们携手将您的品牌愿景与市场机遇转化为可落地的数字现实,共同驱动业务增长与品牌价值升级。

致力于通过数字化技术赋能企业,帮助客户实现业务增长与品牌升级,成为您值得信赖的技术合作伙伴。

我们的优势
01

十四年专注高端网站建设

02

服务上千企业积淀厚口碑

03

资深策划洞悉行业与用户

04

前沿技术栈紧跟时代发展

05

前端代码深度优化SEO友好

06

千家成功案例品质可信赖

07

精英团队高效协同创精品

08

多重防护保障数据安全

09

独家源码出售握牢自主权

10

完善售后体系全程护无忧

11

快速响应需求变更迭代

12

架构灵活支持二次开发

13

云服务器部署稳定可靠

14

免费提供一年技术支持

15

项目按期交付信誉保障

16

数据定期备份安全无忧

我们的不同

我们是一支年轻而充满激情的团队,痴迷代码,沉醉设计,坚信设计与编程不仅是工作,更是生活的信仰——"非设计,不生活;无兄弟,不编程!"

团队成员来自国内外顶尖设计公司与软件企业,精通网站设计与开发,已成功交付数百个项目,涵盖品牌官网、电商平台、小程序及移动端应用。

使命 以技术之力,助力改变命运
宗旨 客户第一,品质至上
信念 客户的成功,才是我们真正的成功

产品演示

产品演示二维码

请使用微信扫描二维码

查看产品演示

QQ客服

扫码添加好友,随时为您解答

QQ二维码

扫描二维码添加客服

QQ号:460623785
或保存二维码在QQ中识别

微信客服

扫码添加好友,随时为您解答

微信二维码

扫描二维码添加客服

微信号:yanboss0901
或保存二维码在微信中识别

微信咨询
QQ咨询
电话咨询
在线客服
回到顶部