今天给大家分享下HTTPS的相关知识。作为前端工程师,对于天天打交道的HTTP我们肯定都熟得不能再熟了,每一次通过浏览器发出的请求都是需要符合HTTP协议的。那么HTTPS和HTTP的区别大家了解吗?
这是一个经典的面试题,大部分人会这么回答
1 . HTTPS比HTTP多了一个S(Secure),也就是说HTTPS是安全版的HTTP
2 . 端口号不同。HTTP使用80端口,HTTPS使用443端口
3 . HTTPS用的是非对称加密算法
上面的回答能给几分?等看完本文我们可以再回头来看下这个回答
那么,HTTPS是如何实现安全的数据传输呢?想彻底搞明白这个问题,就需要了解HTTP的发展历程、HTTP遇到的问题、对称与非对称加密算法、数字签名、第三方证书颁发机构等概念。
所以,想要全面了解HTTPS,还是要从HTTP的发展历程说起......
HTTP是Hypertext Transfer Protocal 的缩写,中文全称是超文本传输协议。
超文本是指包含但不限于文本外的图片、音频、视频等多媒体资源。
协议是通信双方约定好的数据传输格式以及通信规则。
HTTP是TCP/IP协议簇的最高层--应用层协议。
浏览器和服务器在使用HTTP协议相互传递超文本数据时,将数据放入报文体内,同时填充首部(请求头或响应头)构成完整HTTP报文并交到下层传输层,之后每一层加上相应的首部(控制部分)便一层层的下发,最终由物理层将二进制数据以电信号的形式发送出去。HTTP报文结构如下
版本 | 产生时间 | 内容概括 | 发展现状 |
---|---|---|---|
HTTP/0.9 | 1991年 | 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 | 非正式标准 |
HTTP/1.0 | 1996年 | 传输内容、格式、首部和数组大小不限制,增加POST、PUT、PATCH、HEAD、 OPTIONS、DELETE方式 | 正式标准,广泛使用 |
HTTP/1.1 | 1997年 | 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 | 最为广泛 |
HTTP/2 | 2015年 | 最为广泛 | 逐渐兴起 |
由HTTP的发展历程来看,最开始版本的HTTP(HTTP1.0)在每次建立TCP连接后只能发起一次HTTP请求,请求完毕就释放TCP连接。我们都知道TCP连接的建立需要经过三次握手的过程,而每次发送HTTP请求都需要重新建立TCP连接,毫无疑问是很低效的。所以HTTP1.1改善了这一点,使用长连接的机制,也就是“一次TCP连接,N次HTTP请求”。
HTTP协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接。
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。
(HTTP1.0若要开启长连接,需要加上Connection: keep-alive请求头)
随着HTTP越来越广泛的使用,HTTP的安全性问题也逐渐暴露。
回忆一下多年前遍地都是的运营商劫持,当你访问一个本来很正常的网页,但页面上却莫名其妙出现了一些广告标签、跳转脚本、欺骗性的红包按钮,甚至有时候本来要下载一个文件,最后下载下来却变成了另外一个完全不同的东西,这些都是被运营商劫持了HTTP明文数据的现象。
HTTP有以下3点安全性问题:
数据保密性问题
因为HTTP无状态,而且又是明文传输,所有数据内容都在网络中裸奔,包用户括身份信息、支付账号与密码。这些敏感信息极易泄露造成安全隐患。
数据完整性问题
HTTP数据包在到达目的主机前会经过很多转发设备,每一个设备节点都可能会篡改或调包信息,无法验证数据的完整性。
身份校验问题
有可能遭受中间人攻击,我们无法验证通信的另一方就是我们的目标对象。
因此,为了保证数据传输的安全性,必须要对HTTP数据进行加密。
加密方式分为三种:对称加密、非对称加密、数字摘要。前两种适合数据传输加密,而数字摘要不可逆的特性常被用于数字签名。
对称加密也称为密钥加密或单向加密,就是使用同一套密钥来进行加密和解密。密钥可以理解为加密算法。对称加密图示如下
广泛使用的对称加密有:
DES(Data Encryption Standard) | 数据加密标准,速度较快,适用于加密大量数据的场合。目前DES已经不是一种安全的加密方法,主要因为它使用的56位密钥过短 |
---|---|
3DES(Triple DES) | 基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。可以解决因计算机运算能力的增强,DES容易被暴力破解的问题 |
AES(Advanced Encryption Standard) | 高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512位密钥的加密 |
优点:算法公开、简单,加密解密容易,加密速度快,效率高。
缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。
适用场景:加解密速度快、效率高,因此适用于大量数据的加密场景。由于如何传输密钥是较为头痛的问题,因此适用于无需进行密钥交换的场景,如内部系统,事先就可以直接确定密钥。
可以在线体验对称加密[1]
P.S. base64编码也属于对称加密哦
非对称加密使用一对密钥(公钥和私钥)进行加密和解密。非对称加密可以在不直接传递密钥的情况下,完成解密,具体步骤如下:
1 . 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
2 . 甲方获取乙方的公钥,然后用它对信息加密。
3 . 乙方得到加密后的信息,用私钥解密。
以最典型的非对称加密算法--RSA算法举个例子:
想要彻底搞懂RSA,需要了解数论的知识,全部推导过程 RSA加密算法[2]。本文简单介绍思路:使用两个超大质数以及其乘积作为生成公钥和私钥的材料,想要从公钥推算出私钥是非常困难的(需要对超大数因式分解为两个很大质数的乘积)。目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。
优点:强度高、安全性强于对称加密算法、无需传递私钥导致没有密钥泄露风险
缺点:计算量大、速度慢
适用场景:适用于需要密钥交换的场景,如互联网应用,无法事先约定密钥。可以与对称加密算法结合:
利用非对称加密算法安全性较好的特点来传递对称加密算法的密钥。
利用对称加密算法加解密速度快的特点,进行数据内容比较大的加密场景的加密。如HTTPS。
想要治本,就要找到一个第三方公证人来证明公钥没有被替换,因此就引出了 CA 的概念
CA就是 Certificate Authority,颁发数字证书的机构。作为受信任的第三方,CA承担公钥体系中公钥的合法性检验的责任。证书就是源服务器向可信任的第三方机构申请的数据文件。这个证书除了表明这个域名是属于谁的,颁发日期等,还包括了第三方证书的私钥。服务器将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。下图是飞书域名的证书中部分内容的信息
摘要算法一般用哈希函数来实现,可以理解成一种定长的压缩算法,它能把任意长度的数据压缩到固定长度。这好比是给数据加了一把锁,对数据有任何微小的改动都会使摘要变得截然不同。
通常情况下,数字证书的申请人(服务器)将生成由私钥和公钥以及证书请求文件(Certificate Signing Request,CSR)组成的密钥对。CSR是一个编码的文本文件,其中包含公钥和其他将包含在证书中的信息(例如域名,组织,电子邮件地址等)。密钥对和CSR生成通常在将要安装证书的服务器上完成,并且 CSR 中包含的信息类型取决于证书的验证级别。与公钥不同,申请人的私钥是安全的,永远不要向 CA(或其他任何人)展示。
生成 CSR 后,申请人将其发送给 CA,CA 会验证其包含的信息是否正确,如果正确,则使用颁发的私钥对证书进行数字签名,然后将签名放在证书内随证书一起发送给申请人。
在SSL握手阶段,浏览器在收到服务器的证书后,使用CA的公钥进行解密,取出证书中的数据、数字签名以及服务器的公钥。如果解密成功,则可验证服务器身份真实。之后浏览器再对数据做Hash运算,将结果与数字签名作对比,如果一致则可以认为内容没有收到篡改。
对称加密和非对称加密是公钥加密,私钥解密, 而数字签名正好相反,是私钥加密(签名),公钥解密(验证)
《图解HTTP》书中提到HTTPS就是身披SSL外壳的HTTP。
SSL 在1999年被更名为 TLS
所以说,HTTPS 并不是一项新的应用层协议,只是 HTTP 通信接口部分由 SSL 和 TLS 替代而已。HTTP 会先直接和 TCP 进行通信。而HTTPS 会演变为先和 SSL 进行通信,然后再由 SSL 和 TCP 进行通信。SSL 是一个独立的协议,不只有 HTTP 可以使用,其他应用层协议也可以使用,比如FTP、SMTP都可以使用SSL来加密。
HTTPS请求全流程如下图
1 . 用户在浏览器发起HTTPS请求,默认使用服务端的443端口进行连接;
2 . HTTPS需要使用一套CA 数字证书,证书内会附带一个服务器的公钥Pub,而与之对应的私钥Private保留在服务端不公开;
3 . 服务端收到请求,返回配置好的包含公钥Pub的证书给客户端;
4 . 客户端收到证书,校验合法性,主要包括是否在有效期内、证书的域名与请求的域名是否匹配,上一级证书是否有效(递归判断,直到判断到系统内置或浏览器配置好的根证书),如果不通过,则显示HTTPS警告信息,如果通过则继续;
5 . 客户端生成一个用于对称加密的随机Key,并用证书内的公钥Pub进行加密,发送给服务端;
6 . 服务端收到随机Key的密文,使用与公钥Pub配对的私钥Private进行解密,得到客户端真正想发送的随机Key;
7 . 服务端使用客户端发送过来的随机Key对要传输的HTTP数据进行对称加密,将密文返回客户端;
8 . 客户端使用随机Key对称解密密文,得到HTTP数据明文;
9 . 后续HTTPS请求使用之前交换好的随机Key进行对称加解密。
HTTPS确实解决了HTTP的三个安全性问题:
(1) 保密性:结合非对称加密和对称加密实现保密性。用非对称加密方式加密对称加密的秘钥,再用对称加密方式加密数据
(2) 完整性:通过第三方CA的数字签名解决完整性问题
(3) 身份校验:通过第三方CA的数字证书验证服务器的身份
最后我们总结一下HTTPS的优缺点
HTTPS优点 | HTTPS缺点 |
---|---|
使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器 | HTTPS时间是HTTP的2-100倍,因为需要经历SSL(TLS)握手,且非对称加密速度较慢 |
安全可靠,防止数据在传输过程中被窃取、改变,确保数据的完整性 | HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用 |
HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大 | SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA根证书的情况下,中间人攻击一样可行 |
可以看到,HTTPS的确是当今安全传输HTTP的最优解,但他并不是完美的,仍会有漏洞
[1]对称加密: http://www.jsons.cn/textencrypt/
[2]RSA加密算法: https://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html
[3]RSA算法原理: https://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
[4]HTTPS升级指南: http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html
[5]SSL/TLS协议运行机制的概述: https://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
本文由哈喽比特于2年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/mpoDKIsQbNdpuBNhnvvf-g
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。