网络篇:朋友面试之https认证加密过程
码农沉思录
共 2135字,需浏览 5分钟
· 2021-05-24
前言
上次朋友关于TCP/IP面试的后续,主要是https的相关面试要点,请看下文
面试官:HTTPS它的认证加密过程是怎样,它怎么保证内容不会被篡改
朋友:1,https是基于tcp协议的,客户端先会和服务端发起链接建立 朋友:2,接着服务端会把它的证书返回给客户端,证书里面包括公钥S.pub、颁发机构和有效期等信息 朋友:3,拿到的证书可以通过浏览器内置的根证书(内含C.pub)验证其合法性 朋友:4,客户端生成随机的对称加密秘钥Z,通过服务端的公钥S.pub加密发给服务端 朋友:5,客户端和服务端通过对称秘钥Z加密数据来进行http通信
面试官:那根证书怎么保证签发的证书是有安全有效的
朋友:1-服务器会预先生成非对称加密密钥,私钥S.pri自己保留;而公钥S.pub则发给CA机构进行签名认证 朋友:2-CA也会预先生成一非对称加密密钥,其私钥C.pri用来对服务器的公钥S.pub进行签名生成CA证书 朋友:3-CA机构会把签名生成的CA证书返回给服务器,也就是刚才服务端给客户端那个证书 朋友:4-因为CA(证书颁发机构)比较权威,所以很多浏览器会内置包含它公钥(C.pub)的证书,称之为根证书。然后可以使用根证书来验证其颁发证书的合法性了
面试官:如果发生无限套娃的情况,根证书都被篡改怎么办?
朋友:无解,这需要CA根证书是准确无误,不手动强制修改本地根证书就没事,因为不经过原有根证书认证的证书是无法自动被加入根证书
面试官:你讲得有些快,画下图看看
朋友:https加密过程 朋友:服务端证书通过CA机构签名认证的过程如下
面试官:前面你说到CA机构会用密钥对服务器的公钥进行签名,签名和加密,你是怎么理解
朋友:使用非对称加密算法时,签名是用来表示使用私钥的加密过程 朋友:如果用公钥对数据加密,是加密 朋友:反之用私钥对数据加密,则称之为签名
面试官:那CA证书是什么?
朋友:CA证书是为了确保服务端的公钥是准确无误,没被修改过的 朋友:证书通常包含这些内容(1) 服务端的公钥;(2) 证书发行者(CA)对证书的数字签名;(3) 证书所用的签名算法;(4) 证书发布机构、有效期、所有者的信息等其他信息
面试官:你讲到HTTPS用到了加密算法,加密算法都有哪些类型,说说看
朋友:加密算法分三大类:单向加密,对称加密算法和非对称加密算法
面试官:对称加密和非对称加密有什么区别吗
朋友:使用对称加密时,加密和解密用的都是同一个密钥;而非对称加密,则是两个密钥,公钥加密则需要私钥解密,私钥加密则需要公钥解密。不能私钥加密,私钥解密
面试官:MD5、SHA、Base64和RSA属于什么类型的算法,对称还是非对称?
朋友:MD5、SHA,称为摘要算法,可以归类为单向加密算法,其计算出的摘要信息,是不可逆向恢复成原来的数据 朋友:RSA属于非对称加密算法 朋友:而Base64并不算是加密算法,它更多时候是被称为一种数据编码方式
面试官:用过哪些HTTP客户端工具类?
朋友:apache的CloseableHttpClient、jdk9的httpClient和spring clould体系里的ribbon、feign
面试官:有没有遇到过使用https证书问题,如果有,是什么问题呢?
朋友:当然,有一次使用apache-httpClient加载自定义证书时(没经过CA认证),测试服抛出证书无法信任,然而本地运行却没问题 朋友:原因是证书在本地生成的,那时已经默认加入到根证书下了,而测试服jre的根证书目录(/lib/security/cacerts)是没有这个证书,放在项目resource下的证书也无法没生效
面试官:哦,那你是怎样解决的
朋友:三种解决方案。1-重写TrustManager,无条件信任证书;2-把证书加到jre的根证书目录;3-通过CA认证
面试官:网络数据抓包了解不
朋友:在linux系统可以使用tcpdump命令对tcp请求数据抓包,抓到的数据输出到一个文件;然后可以在window使用wireshark软件加载tcp数据文件,它可以提供界面分析
面试官:讲得还不错,那下面我们换个话题,聊聊mysql事务....
朋友:可以啊,我也稍微了解过一些事务的知识...
欢迎指正文中错误(故事纯属虚构,如有雷同纯属巧合)
参考文章
图解HTTPS建立过程[1] 摘要、签名与数字证书都是什么?[2] 数字签名是什么?[3]
Reference
图解HTTPS建立过程: https://www.cnblogs.com/softidea/p/6958394.html
[2]摘要、签名与数字证书都是什么?: https://www.jianshu.com/p/b2774634041a
[3]数字签名是什么?: http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
评论
一个朋友
一个朋友,在深圳奋斗7年,和女友在去年合力在龙华买了一套房,总价600万,首付3成。但就在昨天,他们崩溃了。深圳推出可售型人才住房,就在他们新房附近,同样面积,总价不到400万,售价近乎腰斩。他们想不明白,同样是深圳人,买房人为什么都要被当成炒房客对待?二手房冰封,卖不出,新房不断打着,像极了上世纪
嵌入式Linux
0
英伟达Blackwell平台网络配置分析
本文来自“英伟达Blachwell平台网络配置详解”。GTC大会英伟达展示了全新的 Blackwell 平台系列产品,包括 HGX B100 服务器、NVLINK Switch、GB200Superchip Computer Node、Quantum X800 交换机和 CX8 网卡(InfiniB
架构师技术联盟
0
好未来测开一面,挺简单!(0428面试原题解析)
大家好,我是二哥呀。今天继续给大家分享春招面试题《好未来测开一面原题》,附详细答案,我会用通俗易懂+手绘图的方式,让天下所有的面渣都能逆袭 😁二哥的 Java 面试指南内容较长,建议正在冲刺 24 届春招和 25 届暑期实习、秋招的同学先收藏起来,面试的时候大概率会碰到,1、二哥的 Linux 速查
沉默王二
0
AI数据中心网络架构需求:400/800G光模块
随着AI技术和相关应用的不断发展,大模型、大数据和AI计算能力在AI发展中的重要性日益凸显。大模型和数据集构成AI研究的软件基础,而AI算力是关键的基础设施。在本文中,我们将探讨AI发展对数据中心网络架构的影响。下载链接:AI数据中心网络架构需求:400/800G光模块Fat-Tree数据中心网络架
架构师技术联盟
0
超大规模数据中心网络架构及其技术演变
本文所讲的数据中心网络架构和技术范围是针对典型的大型互联网和云计算公司的超大规模数据中心(Hyperscale Data Center),不一定适合其他类型的数据中心网络。业界对于什么规模才算是“超大规模(Hyperscale”并没有一个精确的定义。一般来说,一个数据中心网络集群至少有 5000台服
数据中心运维管理
0
了解加密货币到加密货币的互换
1、什么是加密货币互换?加密货币到加密货币的互换是指以现行市场汇率将一种加密货币直接兑换为另一种加密货币。与需要法定货币存款和较长流程的传统交易所不同,加密货币到加密货币的互换可以无缝地促进交换。掉期在提高加密货币的流动性和效率方面发挥着重要作用。该功能使用户能够将他们的加密货币与钱包中的其他代币进
区块链头条
0
【送书福利】《Java面试八股文:高频面试题与求职攻略一本通》
先来唠唠最近粉丝面试回来跟我聊天,基本上都提到一个点,在面试过程中八股文占比很高(八股文70%、项目20%、10%算法)除了一些搞算法突出的厂除外。其实现在很多厂八股都是逐渐深入的方式来问,所以大家在学习的过程中,针对一些重点的内容,最好深入去学习,不然还是比较难应对这种追问式的问题。最近刚好从一位
Java后端技术
0
朋友,你也不想一个人孤孤单单的上班吧?
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0