网络安全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证书的过程。

相关推荐
fangzhanpeng1682 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心4 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552710 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552710 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝12 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552712 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552713 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552715 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552715 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552716 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节