HTTPS这样回答还拿不到offer?

简介: 每次访问一个网站的时候大家对http与htps都不陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。

前言


每次访问一个网站的时候大家对http与htps都不陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:

  1. 什么是SSL TLS HTTPS X.509?
  2. SSL只能用在HTTP上吗?
  3. HTTPS底层原理,对称加密与非对称加密?
  4. CA机构参与与CA伪造?
  5. HTTPS真的安全吗? 模拟如何破解
  6. 301,302,307跳转陷阱?


正文


1.什么是SLL,TSL


SLL数字证书是互联网安全的支柱。 安全套接字层 (SSL) 证书(有时称为数字证书)用于在浏览器或用户计算机与服务器或网站之间建立加密连接。SSL 连接可保护在每次访问(称为会话)期间交换的敏感数据(例如信用卡信息),以防被非授权方拦截。SSL 连接可保护在每次访问(称为会话)期间交换的敏感数据(例如信用卡信息),以防被非授权方拦截。 TSL是SLL的升级版。具体概念大家百度查 找百度百科就好了。我这里只给出干货!


2.通过了以上对协议证书的讲解HTTPS X.509包含了哪些数据?


除了签名外,所有 X.509 证书还包含以下数据:

  1. X.509版本号:指出该证书使用了哪种版本的X.509标准。版本号会影响证书中的一些特定信息。目前的版本是3。
  2. 证书持有人的公钥:包括证书持有人的公钥,算法(指明密钥属于哪种密码系统)的标识符和其他相关的密钥参数。
  3. 证书的序列号:由CA给予每一个证书分配的唯一的数字型编号,当证书被取消时,实际上是将此证书序列号放入由CA签发的CRL中。这也是序列号唯一的原因。
  4. 主题信息:证书持有人唯一的标识符这个名字在Internet上应该是唯一的。DN由很多部分组成,看起来像这样:CN=作者  OU=网络安全部门 O=公司地址 C=哪个国家。这些信息将支出该科目的通用名,组织单位,组织和国家或者证书持有人的姓名,服务处所等信息。
  5. 证书的有效期:证书的起始日期和时间以及终止日期和时间;指明证书在这两个时间内有效。
  6. 认证机构:证书发布者是签发该证书的实体唯一的CA的X.509名字。使用该证书意味着信任签发证书的实体。
  7. 发布者的数字签名:这是使用发布者私钥生成的签名,以确保这个证书在发放之后没用被篡改过。
  8. 签名算法标识符:用来指定CA签署证书时所使用的签名算法。算法标识符用来指定CA签发证书时所使用的公开密钥算法和HASH算法。


3.HTTPS与HTTP请求的区别,以及方式流程!


3A.HTTPS与HTTP的区别

  1. HTTPS请求的是443端口,HTTP请求的是80端口。
  2. HTTP是明文传输的,HTTPS是加密传输的,HTTPS比HTTP传输数据的时候更安全一些!
  3. HTTPS在HTTP上多了 安全套接字协议(SLL)
  4. 互联网应用中HTTP应用于下载文件不需要校验交互的网站,HTTPS应用于与服务端登录的网站,比如登录,支付等!
  5. HTTPS因为在请求前会有校验处理的这一阶段所以速度性能这一块低于HTTP的速度性能。

image.png


3B.这是我们平时应用的过程中访问的一系列节点,每经过一段都留下了一定的痕迹,所以我们传输的数据如何保证安全呢?第五块给你答案!


image.png


4.有了443端口80端口还有用吗?能改吗?


4A.80端口还是有用的

  1. 80端口只是担任在传输过程中的明文传输,所以浏览器利用443端口校验完成之后还是要回到80端口取一些明文数据的,如果没有80端口,数据是取不到的。
  2. 80端口是网站的默认端口,访问网站的时候可以直接通过域名访问,80端口的网站可以省略不写,但是如果不是80端口的网站访问的时候就要域名+端口号才能访问!(这是硬核 必须遵守)

4B.能改的,但是改了之后就没有用了!

  1. 443端口是HTTPS的专属通道端口,如果改了,协议里的配置就不支持了,所以能改但是改了没有用!(无法使用443端口的功能)
  2. 至于改了https的443端口,网站还能不能我就没有尝试过了。(时间充裕的小哥哥小姐姐尝试过之后能告诉我嘛!)

image.png


5.客户端请求服务端传输的算法,数据安全吗?


5A.客户端与服务端的传输流程(初级)

  1. 客户端先向443端口请求协商,客户端(浏览器)提交当前支持的加密算法列表
  2. 传输加密算法=>只要安全,不被拦截不就都解决了吗!!!!!!
  3. 服务器收到客户端的请求之后 下发一个加密算法
  4. 客户端收到服务端的加密算法之后 再向80端口请求得到密文,用服务端下发的加密算法.decode(密文)。最后显示在浏览器上

5B.这个时候问题来了 传输的加密算法安全吗?如果被黑客拦截的话岂不是根据这个算法就能破解你传输的数据了吗?下面就带你详解一下真正的底层原理!

5C.摘要算法是什么?

举个例子参考百度热搜图:热搜第六的新闻,整个新闻介绍的事情经过详情等等一系列。最后都可以归纳为【央视春晚语言类节目已审定】。所以服务端对数据经过摘要算法之后会出来一段摘要,客户端收到数据后用摘要算法再校验一遍。如果服务端摘要出来的数据跟客户端摘要算法校验的数据是一样的那就说明数据没有被篡改!

5D.签名是什么

通过摘要算法。得到了摘要的这个值就是这个数据的签名

5E.客户端与服务端的传输流程(中级)

  1. 服务端下发的数据包
  2. 通过Hash算法取一个内容的摘要
  3. 通过摘要算法,得到了摘要的值就是这个数据的签名
  4. 在服务端下发的数据包中包含了(原文+摘要+摘要算法)
  5. 客户端接收的时候利用摘要算法对原文再进行一次摘要处理。用客户端摘要的数据与服务端传输过来的摘要数据作一个对比
  6. 如果不同说明被篡改过,如果相同,说明数据未改过


image.png

image.png


5F.解决一下5B传输算法的问题

  1. 在客户端与浏览器传输过程中选择的加密算法一定要是通用的加密算法,要不然会出现 浏览器不支持或者服务端不支持的情况。
  2. 在选择通用加密算法的时候可以在算法里加盐(密钥),两个浏览器两个用户请求同一个服务端,盐是不一样的,如果是一样的黑客拦截者拦截一个就等于拦截了所有的请求!
  3. 盐(密钥)再用加密算法加密已经不行了,所以不能再使用对称加密算法加密了,只能使用非对称加密算法加密。
  4. 盐的作用是混合到之前的数据里,让他生成个性化不一样的东西!才能改变加密之后的密文。解密的时候呢 只要有密钥的参与就能解开,密钥要是不对就解不开了。

5G.继续解决5E留下来的新问题!通过摘要算法+签名可以防止篡改保证数据的真伪!那签名就一定是真的吗?

  1. 举个例子:一个出差报销单,上面报销的金额的9个亿。前提是要找老板签字,是不是可以自己签老板的名字达到一个伪造签名的情况呢?
  2. 答案是对的  下面将解决签名真伪的问题!
  3. 有任何不明白的 微信搜【欢少的成长之路】 联系博主1V1语言讲解!


6. 以上解决了防篡改的问题,那签名如何保证真伪呢?


签名的真伪问题暂时遗留一下,跟着我的思路走

算法

  1. 对称加密算法:加密跟解密都是一个算法。比如RSA算法。(对RSA不熟悉的自己补一下,我这里讲的是底层原理我是默认你已经掌握了这些知识了的,这里不是基础干货)
  2. 非对称加密算法:加密跟加密不是一个算法。而且非对称加密算法的私钥是不能传的,一旦传了私钥,黑客拦截者可以利用私钥伪造一切。回到正题!非对称加密算法用私钥生成新的密钥。公钥与私钥配套使用!

流程

  1. 客户端拿着公钥加密数据
  2. 数据变成密文
  3. 服务端(下图的接收者长方形的框子)用私钥解密数据还原
  4. 变成原文
  5. 服务端拿着私钥加密数据
  6. 数据变成密文
  7. 客户端(下图的接收者长方形的框子)用公钥解密还原
  8. 变成原文

讲解一下中间人(黑客拦截者)

  1. 服务端私钥加密的数据传送给客户端的时候,不仅包含数据包内容,还包含了服务端的公钥(这里先记得 下面CA的地方会把上面笼统的讲解一遍,先这样记住,后面会让你恍然开朗的)
  2. 中间的黑客拦截者可以生成一套公钥和私钥。重点是:黑客拦截者的公钥在解服务端的私钥的时候,解开了但是传给客户端的时候,客户端不收,因为客户端是公钥,公钥解公钥是解不开的。所以黑客可以看,但是不能篡改!

image.png


7. 如果黑客拦截者用真的公钥跟服务器通信,假的私钥跟客户端通信。如何解决?


在我们现实生活中,公钥加密,私钥解密,公钥不传的话不就可以了吗?的确是这样的,但是在互联网中做不到!于是就引出了第三方CA。

第三方CA

  1. 第三方CA拿私钥生成对应的公钥。
  2. CA公钥能解CA私钥加密的数据
  3. CA的公钥又是内置在浏览器里的(想看效果的话 查看证书方法
  4. 目前为止CA加密里面套了3层加密第一个是对称加密,第二个是服务端加密,第三个是CA非对称加密

第三方CA加密处理流程

  1. 服务端生成一个公钥
  2. CA用CA的私钥生成一个公钥(内置在浏览器,方法如上)
  3. 再用CA的私钥加密服务器端的公钥最后得到一个密文
  4. CA私钥加密的数据用CA的公钥就能解,浏览器又有内置的CA公钥,传给浏览器之后就ok了。
  5. 有涉及到了公钥传输的问题!如果黑客拦截者取到了CA的公钥,那怎么办?CA是怎么再次处理加密的


8.黑客拦截者如果取到了CA公钥,CA是怎么再次处理加密的?


解决流程

  1. 用CA私钥进行加密的时候掺杂一些因素!
  2. 加密的时候掺杂网站的域名+服务器端公钥的摘要就OK了
  3. 最后加密后生成的密文。
  4. 这个密文里包含摘要,公钥等也就是相当于一个证书了!
  5. 查看证书的可以  查看证书方法


image.png


9.301,302,307陷阱跳转又是什么?


第一次请求浏览器的时候默认是http,也就是302请求,请求完之后会跳转到https界面也就是307(这里我理解的不深待优化)image.png


面试技巧流程


自我介绍什么的我就不说了,只说一下技术,拿Socket举例

常见的小白场景就是

面试官:简单的介绍一下Socket 应聘人:你好面试官,不好意思我没用过,好像是通信用的。

常见的初级场景就是。

面试官:简单的介绍一下Socket 应聘人:你好面试官,Socket是一个安全套接字,用于通信。一个发送点一个接收点,有多种通信协议比如UDP/TCP,TCP是三次握手,UDP是不用握手的。UDP比TCP更高效。如果需要交互判断的选择TCP,如果不需要交互判断的选择UDP。

以上没有加分项,或许你可以这样,中级场景

面试官:简单的介绍一下Socket 应聘人:你好面试官,Socket我了解的是: A=>安全套接字,要想聊Socket就要深入计算机底层我们可以从OSI7层模型说起,描述每一层的作用。 B=>TCP是什么,告诉面试官为什么是面向连接的可靠的传输协议。TCP三次握手都做了哪些事情比如Syn包,Ack包,Syn+Ack包。 C=>  通过交互流程可以展开ddos简单介绍一下表明你懂的比较多。你是个有干货的人,你是个对技术敏感的人。乐于学习的人

告诉面试官Socket在每一层都做了什么以及Socket通信的时候是如何和外界联系的【加分项】


相关文章
|
缓存 网络协议 前端开发
【前端面试知识点】- 1. http&https
http: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。
【前端面试知识点】- 1. http&https
|
6月前
|
网络协议 算法 安全
[面试宝藏]之详解HTTP&HTTPS协议
[面试宝藏]之详解HTTP&HTTPS协议
73 0
|
算法 安全 网络安全
面试官:“你知道什么情况下 HTTPS 不安全么”
面试官:“你知道什么情况下 HTTPS 不安全么”
|
存储 算法 安全
我们来谈谈https
HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层。而Http协议的内容是按照文本的明文方式传输,当数据在网路中进行传输时,可能会发生泄漏甚至是被篡改的情况!
|
自然语言处理 安全 网络安全
讲讲HTTPS那些事儿
前言最近在做 CSB 网关的过程中,开发了一个需求,支持 ”TLS 双向认证“。双向认证听起来比较高级,其实也不难,不过是单向认证的“加强版”。单向认证是客户端认证服务端,而双向认证则是在单向认证的基础上,增加了服务端认证客户端这一过程。单说单向认证这个词,你可能不是很熟悉,但是提到 HTTPS,应该会恍然大悟吧,经典的 HTTPS 协议中,其实就是用到了 TLS 单向认证。正好借这个机会,我对 
|
网络协议 算法 Java
面试官:你觉得HTTPS能防止重放攻击吗?
面试官:你觉得HTTPS能防止重放攻击吗? 2021-09-07 13:45·java互联网架构 引言 先来一段面试情景再现~~ 最后的结局自然就是 OK,带着上面的疑问,开始我们今天的文章! 正文 协议流程 我们先来回忆一下HTTPS的通信流程,HTTPS协议 = HTTP协议 + SSL/TLS协议,摘取一下网上一些八股文的回答(以RSA密钥交换的为例)! (1)客户端生成一个随机数client_random,TLS版本号,发
|
设计模式 安全 算法
HTTPS 终于搞懂了 ! 下
HTTPS 终于搞懂了 ! 下
|
安全 JavaScript 小程序
HTTPS 终于搞懂了 ! 上
HTTPS 终于搞懂了 ! 上
|
存储 Web App开发 安全
面试题之 HTTPS 为什么是安全的?
我们在浏览器中通信用的比较多的是 HTTP 和 HTTPS 两种协议,但是用 HTTPS 时浏览器总是会有一个小锁的标志,提醒我们这是安全链接,而 HTTP 它就会提醒我们这是不安全的链接,好家伙,只
|
1月前
|
弹性计算 负载均衡 安全
一文带你搞懂阿里云上HTTPS配置
目前绝大多数网站都已经实现了HTTPS,不过云上HTTPS的SSL证书在哪配、怎么配是一个值得讨论的问题,在大型企业复杂的部署架构下,一个Web应用访问路径可能经过CDN->WAF->SLB->NGINX等多层,下面就带大家了解云上服务如何启用HTTPS。
445 0
一文带你搞懂阿里云上HTTPS配置