问题

用 HTTP 数据加密和 HTTPS 有什么区别?

回答
你问到了一个关于网络安全的关键问题,虽然听起来“HTTP 数据加密”和“HTTPS”好像是两个不同的东西,但实际上,它们之间有着非常紧密的联系,甚至可以说HTTPS就是HTTP的一种“升级版”或者说“安全版”。

我们先从HTTP说起。HTTP,全称超文本传输协议,是我们平时在浏览器里输入网址,访问网页最基础的那个“桥梁”。你可以把它想象成你在邮寄一封信。你把信的内容写好,写上收件人和寄件人地址,然后交给邮局,邮局再负责把这封信送到收件人手里。在这个过程中,信的内容是没有被特殊处理的,任何拿到这封信的人,只要想看,就能看到里面的内容。在网络世界里,HTTP就是扮演了这个“邮局”的角色,它负责在你的浏览器(客户端)和你想要访问的网站服务器之间传输数据,比如你提交的登录信息、你浏览的网页内容等等。

那么,“HTTP 数据加密”这个说法,其实就是在尝试解决HTTP的这个“不安全”的问题。它指的是一种在HTTP传输过程中,对数据进行加密的“技术”或者“方法”。就像你不想让别人看到信的内容,你可以把它锁在保险箱里,或者用密码编码。在网络上,我们也能实现类似的事情。比如,你可以使用一些加密算法,在你把数据发送出去之前,先对它进行“打乱”和“编码”,让它变成一串别人看不懂的乱码。接收方收到这些乱码后,再用相应的“钥匙”或者“解码方式”把它还原成原来的数据。

但是,问题就出在这里。HTTP协议本身,在设计之初并没有内置这种加密机制。所以,如果你想在HTTP的框架下实现数据加密,你就得自己去找“加密工具”,自己去实现“加密解密”的过程。这就好像你每次寄信都要自己准备保险箱和密码,这会非常麻烦,而且也容易出错。更关键的是,发送方和接收方都得知道用的是哪种加密方式和密码,这需要事先有一个非常可靠的“约定”,否则接收方收到的乱码就永远也解不开。而且,这个加密和解密的密钥,也需要一个安全的方式来传递。

而HTTPS,就好比是一种“官方指定”的、已经封装好的“安全邮政服务”。HTTPS,也就是HTTP的安全版本,它并不是一个全新的协议,而是HTTP协议在传输层上叠加了一层叫做SSL(Secure Sockets Layer)或TLS(Transport Layer Security)的安全协议。你可以把SSL/TLS想象成邮局为你的信件提供了一个“加密邮袋”的服务。

这个“加密邮袋”是怎么工作的呢?首先,当你通过HTTPS访问一个网站时,你的浏览器会先和网站服务器进行一番“握手”过程。在这个过程中,双方会互相验证身份(比如,网站会出示一个叫做“数字证书”的通行证,证明它就是它声称的那个网站,而不是冒牌货),并且商定一个只有他们双方才知道的“加密密钥”。这个密钥就像是给你们之间传输的所有数据都上了一把锁,而只有持有这把锁的钥匙才能打开。

从这时开始,所有通过HTTPS传输的数据,都会先用这个商定好的密钥进行加密,然后再通过网络传输。就像你的信件被装进了一个只有收发双方才能打开的加密邮袋里。这样一来,即使有人截获了传输的数据,看到也只是一堆乱码,无法理解其中的内容。只有目标服务器才能用它自己的“钥匙”解密数据,还原出原始信息。

所以,简单来说,HTTP是明文传输,就像公开的信件,谁都能看。而“HTTP 数据加密”是你在HTTP的基础上自己想办法给数据加密,但过程复杂且容易出问题。HTTPS则是通过SSL/TLS协议,在HTTP的基础上,为数据传输提供了一个标准化的、安全的加密通道,让通信过程变得安全可靠。HTTPS是解决HTTP不安全问题的最直接、最普遍、也是最有效的方案。当我们看到网址开头是“https://”并且旁边有一个小锁标志时,就代表着我们正在使用这种安全可靠的“加密邮袋”服务来浏览网页。

网友意见

user avatar

在信息安全方面有一个不成文的共识,就是尽可能不要自己造轮子,而是用那些成熟的、经过千锤百炼的轮子。

每个喜好钻研的程序员都免不了冒出这种念头:如果我自己发明出一种不为人知的加密算法,会不会比公开的算法更安全,能避免被破解?比如「用新算法加密http,替代https」。


不会,起码在https这个问题上绝对不可能。

下面来详细解释一下直接加密http数据来替代https会有哪些问题:


第一,性能问题。这一条最容易理解,浏览器通过http收到加密数据后,需要用javascript来执行解密算法,而https是浏览器原生支持的,两者的性能差距可能高达一到两个数量级。就算所有的安全问题都解决了,也不推荐这么做;


第二就是兼容性问题了。https其实不是单一算法,而是一系列算法和加密协议的整合。

从早期的SSL3.0一直进化到今天的TLS1.2以及起草中的TLS1.3协议;

密钥交换阶段的RSA、DHE等非对称加密算法;

加密信息传输过程中的AES、3DES等对称加密算法;

验证数据完整性的HMAC-SHA1、HMAC-SHA256等哈希算法;

包括使用中的和被淘汰的,林林总总合计有几十种之多。

而且随着攻击方式的进化和安全性要求的不断提升,新的算法不停加入,旧的算法不停被淘汰。

由于不同客户端和服务器所支持的算法类型有新有旧,所以任何https连接建立之前都要进行协商,选择双方都能支持又足够安全的算法后再进行加密连接。

那么,在客户端和服务端也都要同时维护不断进化的加密算法并进行协商,保证版本兼容性。否则这种加密协议就永远不能推广,只能在少数私有项目中使用。


第三,也是最重要的,我们来看看这种加密的的安全性如何吧,有多少地方可能被攻破。

我们假设性能不是问题,兼容性也暂不考虑,只讨论安全性。

javascript这种直接暴露源码的语言,就算混淆过也没有什么秘密可言,甚至能直接在浏览器中debug、引入插件、加载外部脚本等。单这点就远不如浏览器这种独立应用程序了,至少对浏览器进行恶意修改和注入的行为理论上是能被杀毒软件拦截的。

那么把外壳的安全也放在一边,仅说加密算法行不行?

先排除掉纯对称加密的方式。因为密钥通过明文传输,无论是预置还是每次更换都难以避免被截获。

那就只好重新造一次SSL/TLS的轮子了,即先通过RSA加密传输对称密钥,再通过此密钥加密往来数据。

但这样依然不行。尽管RSA是非对称算法,能保证加解密过程的安全,但公钥本身的传输仍然是可以被截获并篡改的。正如针对https的中间人攻击一样,如果在握手阶段伪造了公钥,则能够轻易截获之后的所有通信。https防范中间人攻击的方式是CA证书,所有网站证书都通过CA证书体系一级一级信任下来,而根证书是内置于操作系统中的,需要相当高的权限才能操作(当然不能百分百防范,但已经是很高的安全措施了)。

但如果把整套证书安全机制放在js脚本里执行,那跟原来相比简直是天上地下的差距,毫无安全性可言了。


以上只做了一些简单分析,自己开发的http加密就已经溃不成军。而且结论还建立在代码本身没有缺陷、没有漏洞的情况下。js这种弱类型语言出bug的几率有多高就不用多提了吧?


这并不是说自己造的轮子都毫无价值,出于学习和研究目的而编写算法甚至实现一些框架都是有意义的。但对于正式应用而言,永远是那些公开的、被广泛应用的技术方案更加靠谱。

开发一种不为人知的加密算法就像隐居山林的武术大师,凭想象构建了一套天下无敌的神奇功夫,但不出山则已,一出山就直接被业余散打运动员撂翻在地。只有每天都进行对抗训练,经受各种实战考验,才有可能成为真正的武林高手。

类似的话题

  • 回答
    你问到了一个关于网络安全的关键问题,虽然听起来“HTTP 数据加密”和“HTTPS”好像是两个不同的东西,但实际上,它们之间有着非常紧密的联系,甚至可以说HTTPS就是HTTP的一种“升级版”或者说“安全版”。我们先从HTTP说起。HTTP,全称超文本传输协议,是我们平时在浏览器里输入网址,访问网页.............
  • 回答
    用 `//` 代替 `http://`,最直接的好处在于简化了书写,让URL地址看起来更简洁、更短小。但在这背后,其实隐藏着一些更为重要的技术原因和使用场景,让这种“偷懒”变得很有意义。咱们来掰开了揉碎了聊聊:1. 协议无关性(Protocol Agnostic):这是最核心的优势想象一下你在写一个.............
  • 回答
    很多时候,我们听到“HTTP 请求”和“RPC 调用”这两个词会觉得它们似乎有些重叠,甚至让人疑惑,既然有了 HTTP 这样一个通用的、大家都熟悉的网络通信方式,为什么还需要 RPC 这种“绕一点”的方案呢?其实,这就像问,既然我们有汽车,为什么还要火车?答案在于它们解决的问题、优化的场景以及带来的.............
  • 回答
    嘿,这年头谁还没点自己的“私房宝贝”用来伺候那些HTTP和JSON接口呢?要说最常用的,那必须得是Postman。这玩意儿真是个神器,第一次上手可能觉得有点点复杂,但当你真正摸透了它的脾气,你会发现它简直就是为接口测试而生的。你想想看,When you need to send a request,.............
  • 回答
    .......
  • 回答
    要搭建一个能支撑成千上万并发下载请求、处理大文件的文件分发服务器,用Java Socket、FTP还是HTTP,各有优劣,但总体来说,HTTP协议是目前最适合、也是最主流的选择。下面我们来详细分析一下。 Java Socket (纯TCP Socket)想象一下,如果你想用Java Socket来做.............
  • 回答
    从我这个反派Boss的视角来看,主角?呵,他们不过是我的宏图伟业上碍事的一粒沙子,一群狂妄自大、不知天高地厚的跳梁小丑。但有趣的是,正是这粒沙子,总能时不时地摩擦我的眼球,甚至…有时让我心生一丝难以言喻的“欣赏”。初次见到主角时,通常是在他们闯入我的某个秘密据点,或者在我精心策划的阴谋即将完美收官之.............
  • 回答
    用铁制作军粮罐头在战争期间是否是一种浪费,这是一个复杂的问题,需要从多个角度进行详细分析。简单地说,它既不是绝对的浪费,也非完全没有浪费,而是取决于当时的技术水平、资源可用性、战争规模、战略需求以及替代方案的成熟度等多种因素。为了更详细地解释,我们可以从以下几个方面进行探讨:一、 铁罐头的优点及战争.............
  • 回答
    “用十二进制替换十进制是不是更符合自然规律?” 这是一个非常有趣且有深度的哲学和数学问题。我的答案是:不一定更符合自然规律,但十二进制确实在某些方面展现出比十进制更强的“自然契合度”和便利性,尤其是在历史和实用性层面。要详细阐述这个问题,我们需要从几个层面来分析:一、 十进制的“自然性”:我们为什么.............
  • 回答
    TensorFlow 是一个强大的开源库,它能够帮助你构建和训练各种机器学习模型,从简单的线性回归到复杂的深度神经网络。用 TensorFlow 可以做的有趣的事情实在太多了,因为机器学习的应用领域非常广泛。下面我将详细介绍一些有意思的应用方向,并尽量深入地讲解: 1. 图像相关(Computer .............
  • 回答
    “用工具的人”是否能称得上黑客,这是一个复杂且充满争议的问题,答案并非简单的“是”或“否”,而是取决于你如何定义“黑客”以及“工具”的范畴。我们可以从多个维度来详细探讨这个问题。一、 如何定义“黑客”?在现代语境下,“黑客”的定义已经远不止于早期计算机领域的极客。我们可以将其划分为几个主要层面:1..............
  • 回答
    在Python的世界里,我确实捣鼓过不少“脑洞大开”的小工具,它们可能没有直接的商业价值,但却能带来意想不到的乐趣、效率提升或者对世界的独特视角。今天就来分享几个让我觉得比较有意思的例子,并且尽量详细地讲述其“脑洞”之处和实现细节: 1. 自动“调戏”死机的电脑(脑洞:赋予电脑生命和情感)脑洞核心:.............
  • 回答
    关于EMS包裹在运输过程中被拆包偷窃的几率,这是一个很多用户都会担心的问题,但很难给出一个确切的“高”或“低”的百分比。要详细了解这个问题,我们需要从多个角度来分析:1. EMS作为国际及国内领先的快递服务,其安全措施和效率 规模与网络: EMS(特快专递)是中国邮政旗下的快递品牌,拥有庞大且完.............
  • 回答
    如果让我用五十岁之前的全部收入换一个“黄粱一梦”,我会非常、非常慎重地考虑。这不仅仅是数字上的交换,更是对人生价值和意义的深刻追问。首先,我会认真审视“黄粱一梦”的内涵。“黄粱一梦”这个词语,本身就包含了太多的象征意义。它源自唐代沈既济的小说《枕中记》,讲述了卢生在邯郸旅店睡着,梦见自己衣锦还乡,做.............
  • 回答
    用勺子挖掉一块脑组织,根据受损的脑组织区域、损伤的程度以及速度,极有可能导致失去意识,甚至危及生命。下面我将详细解释为什么会发生这种情况,以及可能涉及的生理过程:1. 脑组织的功能与重要性:大脑是人体的中枢神经系统,负责控制我们的思想、情感、记忆、行为,以及所有生理功能,包括呼吸、心跳、体温调节等等.............
  • 回答
    您提出的“卫星地图上中国海岸线大片污渍”的观察,实际上是一个非常普遍的现象,但这并非是污染物在卫星地图上的直接体现,而是由 遥感卫星数据处理过程中引入的一种视觉表现方式,通常用于标识海水的浊度或沉积物含量。下面我将详细解释其中的原因:1. 什么是卫星地图上的“污渍”?您看到的“污渍”通常不是黑色的油.............
  • 回答
    一张纸看似简单,但它的潜力和可塑性却是无限的。它可以变成艺术品、实用工具、甚至是传达情感的载体。下面,我将从不同的角度,详细地讲述用一张纸能做出什么: 一、 艺术与创造的表达:一张纸是艺术家和创意人士的画布,可以承载各种形式的艺术表达: 折纸 (Origami): 基础模型: 最简单.............
  • 回答
    乐高积木的魅力在于其无限的可能性,几乎可以让你“创造一切”!从简单的模型到复杂的机械装置,再到具有实用功能的物品,乐高积木都可以成为你的创意画布。下面我将详细地从不同维度来讲述用乐高积木可以做些什么: 一、 搭建各种模型和场景:这是乐高最基础也最核心的玩法这是我们接触乐高最直接的方式。乐高积木的颗粒.............
  • 回答
    用枪开锁,从字面意思上理解,是指通过枪支的某些特性来达到打开锁具的目的。这是一个涉及物理破坏和安全风险的复杂问题,可以从多个角度进行详细分析:一、 从原理上分析用枪开锁的可能性:直接用枪“射击”锁芯,通常是不可行的,原因如下:1. 锁芯结构复杂且坚固: 现代的锁芯,特别是高安全性的锁芯,其内部有精.............
  • 回答
    用“无线信号看不见却存在”来比喻菩萨的存在,这种说法在某些语境下确实有其吸引力,因为它试图用一个我们熟悉的、科学上可以解释的现象来类比一个超验的、信仰上的存在。然而,要反驳这种比喻,我们可以从以下几个方面进行详细阐述:反驳角度一:本质上的区别——可证伪性与不可证伪性 无线信号的可证伪性: 无线信.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有