1.软文推荐

2.软文推荐

3.软文推荐

大多使用HTTPS协议的原因是因为HTTP在使用上是不如HTTPS安全的。比如当我们在往服务器发送比较隐私的数据时,如果使用HTTP进行通信,安全性没办法得到保障。数据在传输的过程中,是比较容易被中间人抓包窃取的。

其次,如果在不安全的环境下发送数据,数据也有可能在传输过程被篡改,当接收数据的服务器收取数据时,也没办法确定数据是否有被修改和替换过。当然,服务器也没办法判断数据就是真的来源于客户端。

<<阿里云SSL证书,2年仅需567元

目前,HTTP是存在一些弊端的,例如无法保证保密性,没法保证消息的完整、准确性,没法保证消息的可靠性。对比于这些问题,HTTPS是可以解决掉的。可以间接的把HTTPS理解为HTTP的升级版,包容了HTTP的功能,并逐步在HTTP的基础上增加了安全性能。

为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了,他还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。最简单容易理解的就是对称加密 。

为了保证消息的保密性,就会涉及到加密和解密的问题。目前主流的分为对称加密和非对称加密两种。

什么是对称加密?

就是有一个密钥,它可以对一段内容加密,加密后只能用它才能解密看到原本的内容,和我们日常生活中用的钥匙作用差不多。

用对称加密可行吗?

如果通信双方都各自持有同一个密钥,且没有别人知道,这两方的通信安全当然是可以被保证的(除非密钥被破解)。

然而最大的问题就是这个密钥怎么让传输的双方知晓,同时不被别人知道。如果由服务器生成一个密钥并传输给浏览器,那这个传输过程中密钥被别人劫持弄到手了怎么办?之后他就能用密钥解开双方传输的任何内容了,所以这么做当然不行。

换种思路?试想一下,如果浏览器内部就预存了网站A的密钥,且可以确保除了浏览器和网站A,不会有任何外人知道该密钥,那理论上用对称加密是可以的,这样浏览器只要预存好世界上所有HTTPS网站的密钥就行啦!这么做显然不现实。

什么是非对称加密?

有两把密钥,通常一把叫做公钥、一把叫做私钥,用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开。

用非对称加密可行吗?

鉴于非对称加密的机制,我们可能会有这种思路:服务器先把公钥直接明文传输给浏览器,之后浏览器向服务器传数据前都先用这个公钥加密好再传,这条数据的安全似乎可以保障了!因为只有服务器有相应的私钥能解开这条数据。

其实HTTPS的加密原理,主要在于充分利用了对称加密和非对称加密的优点,以及数字证书的作用。根据加密的特点,将HTTP进行了一次升级,升级到HTTPS的形态,就具备了一层加密的外壳了。

非对称加密+对称加密?

既然非对称加密耗时,非对称加密+对称加密结合可以吗?而且得尽量减少非对称加密的次数。当然是可以的,而且非对称加密、解密各只需用一次即可。

请看一下这个过程:

某网站拥有用于非对称加密的公钥A、私钥A’。

浏览器像网站服务器请求,服务器把公钥A明文给传输浏览器。

浏览器随机生成一个用于对称加密的密钥X,用公钥A加密后传给服务器。

服务器拿到后用私钥A’解密得到密钥X。

这样双方就都拥有密钥X了,且别人无法知道它。之后双方所有数据都用密钥X加密解密。

完美!HTTPS基本就是采用了这种方案。完美?还是有漏洞的。

为什么制作数字签名时需要hash一次?

我初学HTTPS的时候就有这个问题,似乎以上过程中hash有点多余,把hash过程去掉也能保证证书没有被篡改。

最显然的是性能问题,前面我们已经说了非对称加密效率较差,证书信息一般较长,比较耗时。而hash后得到的是固定长度的信息(比如用md5算法hash后可以得到固定的128位的值),这样加密解密就会快很多。

怎么证明CA机构的公钥是可信的?

你们可能会发现上文中说到CA机构的公钥,我几乎一笔带过,“浏览器保有它的公钥”,这是个什么保有法?怎么证明这个公钥是否可信?

让我们回想一下数字证书到底是干啥的?没错,为了证明某公钥是可信的,即“该公钥是否对应该网站/机构等”,那这个CA机构的公钥是不是也可以用数字证书来证明?没错,操作系统、浏览器本身会预装一些它们信任的根证书,如果其中有该CA机构的根证书,那就可以拿到它对应的可信公钥了。

实际上证书之间的认证也可以不止一层,可以A信任B,B信任C,以此类推,我们把它叫做信任链或数字证书链,也就是一连串的数字证书,由根证书为起点,透过层层信任,使终端实体证书的持有者可以获得转授的信任,以证明身份。

另外,不知你们是否遇到过网站访问不了、提示要安装证书的情况?这里安装的就是跟证书。说明浏览器不认给这个网站颁发证书的机构,那么没有该机构的根证书,你就得手动下载安装(风险自己承担XD)。安装该机构的根证书后,你就有了它的公钥,就可以用它验证服务器发来的证书是否可信了。

HTTPS必须在每次请求中都要先在SSL/TLS层进行握手传输密钥吗?

这也是我当时的困惑之一,显然每次请求都经历一次密钥传输过程非常耗时,那怎么达到只传输一次呢?用session就行。

服务器会为每个浏览器(或客户端软件)维护一个session ID,在TSL握手阶段传给浏览器,浏览器生成好密钥传给服务器后,服务器会把该密钥存到相应的session ID下,之后浏览器每次请求都会携带session ID,服务器会根据session ID找到相应的密钥并进行解密加密操作,这样就不必要每次重新制作、传输密钥了!

本文来源:yuntue.com/post/4848.html,若侵权,请联系删除。

相关文章 8

1

浙江丽水高端网站设计(丽水文化休闲频道) 3分钟前

合优网络自成立以来一直秉承着"诚信、责任、团队、敬业"的服务宗旨,成立至今获得了5万多家企业的认可并建立起长期合作的伙伴关系。...

2

丽江域名快速备案安全的网络公司(昆明域名备案) 5分钟前

广州合优网络科技有限公司 让您的网站走在互联网的前端!以最佳的用户体验,让客户随时随地找到您!所谓响应式网页建设,是指可以自...

3

Linux常用命令—awk命令 6分钟前

awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出,下面良...

4

【香港VPS】70元每月 1G内存 400G流量 50M带宽 荣耀云 8分钟前

荣耀云是一家国人开的IDC商,主要销售KVM虚拟构架的VPS,近期荣耀云香港机房上线了,线路走hkbn hkix,主打大宽带的VPS,高配可以达到百兆...

5

山东聊城SEO网站优化(山东聊城网上推广) 10分钟前

合优网络成立至今已有14年,一直秉承着"诚信、责任、团队、敬业"的服务宗旨,成立至今获得了5万多家企业的认同并建立起长期合作的伙伴...

6

什么是万词霸屏? 12分钟前

有引流的朋友咨询百度 万词霸屏 是什么,都有哪些优劣势,今天我给大家统一解答下。 万词霸屏:利用一套智能霸屏推广系统来进行批量...

7

wordpress缓存插件:WP Rocket v3.8[已激活版](wordpress清理插件) 15分钟前

WP?Rocket 是WordPress很流行的付费缓存插件。还有许多其他免费的流行缓存插件,例如W3 Total Cache和WP Super Cache。wp rocket不仅仅是一个简单的缓存...

8

Linux下使用jpegoptim压缩图片 16分钟前

jpegoptim 是一个用来优化 JPEG 文件的工具,提供无损的优化(基于哈夫曼表),同时也可设置质量因子实现的有损优化,下面为大家详细讲解...