前端面经 关于http和https(基本概念、区别、优点及缺点、加密、数字签名

  1. 被窃听的风险:第三方可截获并查看你的内容

  2. 被篡改的危险:第三方可截获并修改你的内容

  3. 被冒充的风险:第三方可伪装成通信方与你通信;

正是因为http存在三大风险,所以才需要https。

而https可以做到加密传输、完整性校验、身份认证,三大优势:

  1. 建立安全信息通道,进行加密传输,保证数据隐私性、安全性;

  2. 内容传输经过完整性校验,保证数据完整性;

  3. 对网站服务器进行真实身份认证;

https解决http的三大风险

===============================================================================

在了解https工作原理之前,先了解几个重要内容:加密、数字签名、数字证书。 从而理解https是如何解决http的三大风险:被窃听、被篡改和被冒充;并且理解https的三大优势,加密传输、完整性校验、身份认证。

其实这些是一一对应的:

  1. 加密——加密传输——解决被窃听的风险

  2. 数字签名——完整性校验——解决被篡改的危险

  3. 数字证书——身份认证——解决被冒充的风险。

关于加密——解决风险一“被窃听”


加密有三种方法,逐一介绍

方法一、对称加密

所谓对称加密就是说:对信息的加密和解密都需要用到密钥,而且是同一个密钥。 即没有密钥就没法解密,但只要有密钥就可以解密。

在对称加密这种方式中,要把密钥也转交接收方。但是如何保证转交这个过程中,密钥的安全性呢?有可能密钥会被人窃取,那窃取方手持密钥就可以解密信息了。

方法二、非对称加密

非对称加密方法,是使用一对非对称的密钥。其中一把是”公开密钥“,另一把是”私有密钥“。公开密钥可以随意发布,而私有密钥不能让其他人知道。

  1. 私钥只有一把,并且是服务器“拿着”。

  2. 公钥可以有很多把,是客户端“拿着”。

首先,客户端A想要和服务器B进行通信:A可以将自己的内容(明文)通过B送的公钥做一次加密,然后将加密后的内容传送给B。这时候B就可以拿自己唯一的私钥去解密,从而读取加密后的内容。

简单来说:

  1. 公钥有多把,给多个客户端用;而私钥只有一把,服务器自己用;

  2. 某个客户端拿公钥对内容加密,服务器拿唯一的私钥对内容解密。

如果是服务器向客户端通信,非对称加密也有缺点:

  1. 公钥是公开的,私钥加密的信息,坏人可以截获公钥来解密;

  2. 公钥不包含服务器的信息,不能保证服务器身份的合法性;

  3. 同时,非对称加密算法在加密解密过程中耗时长,降低效率。

方法三、对称加密+非对称加密(https所采用的)

通过上面的讲解,我们可以发现对称加密的优点在于解密效率高,但它不安全;非对称加密的优点在于安全,但是加密解密过程复杂,降低了效率。

对称加密为什么不安全

在方法一中也有讲到:对称加密对信息的加密和解密都是用同一把密钥,需要把密钥也转交给对方。转交的时候有可能出现密钥被窃取的情况。然而任何拿到密钥的人都可以解密内容!所以是不安全的。

相比之下,非对称加密就显得安全很多。在交换信息这个过程中,不用怕信息被窃取篡改。

新思路:对称加密+非对称加密

既然对称加密是在转交密钥时不安全,那就用非对称加密来保证安全性;既然非对称加密在解密加密的过程中耗时长,就用对称加密来简化这一过程,提高效率。优势互补!

对称加密+非对称加密的实现

客户端和服务器先传输一对“对称的密钥”,这对对称的密钥是采用的就是对称加密方法,是用于后续报文交换的。传输这对“对称的密钥”这个过程,则用的是一对非对称密钥来加密解密,采用的是非对称加密方法。

通过非对称加密方式传输“对称的密钥”,就能保证传输的这对“对称密钥”是安全的!传输完成后,在加密解密交换信息的过程,就用这对“对称密钥”来加密解密,使用的是对称加密方式,提高效率!

概括如下:

  1. 传输“对称的密钥”的过程,使用非对称加密方式(保证安全)

  2. 交换报文信息的过程,使用的是对称加密方式(保证效率)

具体做法:客户端拿服务器给的公钥,对“对称密钥”进行加密处理,传输给服务器。服务器用自己的私钥,对传输过来的“对称密钥”做解密处理。这样保证了交换密钥是安全的,再用对称密钥,使用对称加密方式来通信。

关于数字签名——解决风险二“被篡改”


即使通过加密传输,保证数据不能被窃听,数据无法被坏人解密,但是有可能在传输过程中被坏人篡改。所以需要用“数字签名”signature来解决被篡改的风险。

数字签名的作用

  1. 能确定消息是发送方签名且发送出来的,因为签名无法被冒充

  2. 进行完整性校验,证明数据有无被篡改。

服务器发送方—数字签名的生成和发送

1.把一段内容作Hash算法处理,得到一个Hash值;

2.发送者用私钥对Hash值进行加密,得到数字签名signature。

3.发送方将原文明文和数字签名signature一起发送出去。

客户端接收方—数字签名的校验

1.接收方使用发送者提供的公钥对接收到的数字签名signature进行解密,得到一个哈希值A;

2.然后用同样的Hash算法对接收到的明文作处理,得到哈希值B

3.比较哈希值A和B是否相同,若相同,则能保证数据没有被篡改。

但是接收方得保证自己拿到的公钥就是发送方服务器所提供的。

关于数字证书——解决风险三“被冒充”


数字证书认证机构是客户端和服务器双方都可信赖的第三方机构。

数字证书认证流程:

  1. 服务器向第三方机构CA提交公钥、组织信息、个人信息等并申请认证;

  2. CA通过多种手段去验证服务器申请者提供信息的真实性,如组织是否存在,是否合法等

  3. 若审核通过,CA会向申请者签发数字证书。数字证书包含:申请者公钥,申请者的组织和个人信息、有效时间等等。

  4. 客户端client向服务器Server发出请求,Server返回证书文件;

最后

中年危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。

  • 技术要深入到什么程度?

  • 做久了技术总要转型管理?

  • 我能做什么,我想做什么?

  • 一技之长,就是深耕你的专业技能,你的专业技术。(重点)

  • 独立做事,当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。(创业)

  • 拥有事业,选择一份使命,带领团队实现它。(创业)

一技之长分五个层次

  • 栈内技术 - 是指你的前端专业领域技术

  • 栈外技术 - 是指栈内技术的上下游,领域外的相关专业知识

  • 工程经验 - 是建设专业技术体系的“解决方案”

  • 带人做事 - 是对团队协作能力的要求

  • 业界发声 - 工作经验总结对外分享,与他人交流

永远不要放弃一技之长,它值得你长期信仰持有

主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等。

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值