网络安全https

http是明文的,相当于在网上裸奔,引出了https,大多数网站都转为了https,连非法的赌博网站有的都是https的。

1.https的网站是不是必须让用户装数字证书?

答:分两种,一种是单向认证,像访问普通网站比如百度(https),百度网站上安装有网站证书(私钥),用户端的计算机预装有根证书(公钥),也就是签发那个百度网站证书的上级CA的证书,用来验证网站证书,这是单向认证。另一种是双向认证,客户端要验证服务器的证书,反过来服务器也要验证客户端的证书,像访问网上银行比如工行企业网银(https),网站上有证书,用户端的计算机预装有(签发网站证书的CA的)证书,此外,用户持有的U盾帮助提供用户端证书,这是双向认证。

token 是客户端账户密码登录后,服务器会根据用户信息加密生成的token,不用每次传递用户名和密码,区分客户,每次请求要携带token,服务器会检测,保证信息安全。

2.为什么在电脑/手机上信任抓包软件的证书就可以抓取HTTPS请求?

抓包程序将服务器返回的证书截获 ,然后给客户端返回一个它自己的证书;现在的抓包工具findler,wireshark都支持创建证书。

所以看到明文的原因,主要就是如下过程:

抓包工具伪装作为客户端和服务端交互,交互用的是【服务端的证书】,相互知道明文

自己的https请求被抓包工具(伪装成服务器)截获,交互用的是【findler生成的证书】,相互知道明文。

简单的的说 就是中间人无法伪造出一个可信的证书(橡皮印章是由权威机构颁发的),他拿不到也伪造不了,因为权威ca之所以是权威,就是他不能滥发证书,如果他滥发会被操作系统和浏览器群殴(我朝衙门有前科哦)。然后所有的电脑和浏览器都内置了这些权威机构的清单,所以中间人拿不到和你访问的域名绑定的证书。这时候中间人介入后,他只能自己造一个证书。但是你浏览器或者其他客户端会发现证书的不可信是伪造的,就阻断并警告你。就是下面图中的这个

但是,你导入了并信任他的证书,那么电脑肯定听的你的,毕竟你是电脑的主人你说了算。(如果你的电脑中毒了,自动导入了证书,那么你连弹框警告都没有,无感了)浏览器或者其他客户端也就不会去阻断这个被中间人介入的https连接。所以抓包软件就能介入做这个中间人。

流程图:客户端下载公钥证书,对对称秘钥进行非对称加密,这样只有服务器私钥可以解析出来,然后双方再进行对内容的对称加密,这样做的原因是对称加密比非对称加密的效率高,两种加密一起使用既解决了效率问题,安全性也变的更高。

下图左边是ca数字签名的过程,右边是客户端验证ca证书的过程。

相关推荐
CoderYanger4 分钟前
优选算法-队列+宽搜(BFS):72.二叉树的最大宽度
java·开发语言·算法·leetcode·职场和发展·宽度优先·1024程序员节
CoderYanger8 小时前
优选算法-字符串:63.二进制求和
java·开发语言·算法·leetcode·职场和发展·1024程序员节
CoderYanger17 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
讨厌下雨的天空1 天前
网络基础
网络·1024程序员节
金融小师妹2 天前
基于NLP语义解析的联储政策信号:强化学习框架下的12月降息概率回升动态建模
大数据·人工智能·深度学习·1024程序员节
mjhcsp2 天前
C++ 动态规划(Dynamic Programming)详解:从理论到实战
c++·动态规划·1024程序员节
金融小师妹3 天前
基于机器学习框架的上周行情复盘:非农数据与美联储政策信号的AI驱动解析
大数据·人工智能·深度学习·1024程序员节
渣渣盟3 天前
Flink分布式文件Sink实战解析
分布式·flink·scala·1024程序员节
CoderYanger3 天前
优选算法-栈:69.验证栈序列
java·开发语言·算法·leetcode·职场和发展·1024程序员节
金融小师妹5 天前
基于机器学习与深度强化学习:非农数据触发AI多因子模型预警!12月降息预期骤降的货币政策预测
大数据·人工智能·深度学习·1024程序员节