Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

文段严谨性探讨 #75

Closed
xyohn opened this issue Mar 2, 2023 · 3 comments
Closed

文段严谨性探讨 #75

xyohn opened this issue Mar 2, 2023 · 3 comments

Comments

@xyohn
Copy link
Contributor

xyohn commented Mar 2, 2023

作者好。
关于在文章 《HTTP 常见面试题》中,_HTTPS 一定安全可靠吗?_模块里中子模块 为什么抓包工具能截取 HTTPS 数据?
有一段这样的描述

中间人要拿到私钥只能通过如下方式:

去网站服务端拿到私钥;
去CA处拿域名签发私钥;
自己签发证书,切要被浏览器信任;

不用解释,抓包工具只能使用第三种方式取得中间人的身份。

使用抓包工具进行 HTTPS 抓包的时候,需要在客户端安装 Fiddler 的根证书,这里实际上起认证中心(CA)的作用。

抓包工具能够抓包的关键是客户端会往系统受信任的根证书列表中导入抓包工具生成的证书,而这个证书会被浏览器信任,也就是抓包工具给自己创建了一个认证中心 CA,客户端拿着中间人签发的证书去中间人自己的 CA 去认证,当然认为这个证书是有效的。

个人觉得可以修改的几个点:

  1. 此处「切要被浏览器信任」应该为 且要被浏览器信任 ?
  2. 文段上下文中均使用 抓包工具 作为代称,此处是否将Fiddler(具体的工具)也使用代称 抓包工具 较好
  3. 第二段和第三段的第一句话有一些重复;「而这个证书会被浏览器信任」,应该跟前一段话是因果关系,此处用「而」有点像转折关系,整体理解起来语义怪怪的..同时,整体的流程应该为抓包工具导入根证书,通过该根证书签发访问域名的证书,浏览器向根证书(CA)验证后认为该证书可信

以下是个人的修改

中间人要拿到私钥只能通过如下方式:

去网站服务端拿到私钥;
去CA处拿域名签发私钥;
自己签发受浏览器信任的证书;

不用解释,抓包工具只能使用第三种方式取得中间人的身份。

因此使用抓包工具进行 HTTPS 抓包的时候,抓包工具会生成根证书,导入到客户端系统的 受信任的根证书列表 中,这里的根证书实际上起认证中心(CA)的作用。

随后抓包工具使用该根证书签发域名的证书,因为根证书受信任,域名的证书同样会被浏览器信任。也就是抓包工具给自己创建了一个认证中心 CA,客户端拿着中间人(抓包工具)签发的证书去中间人(抓包工具)自己的 CA 做认证,这个证书当然被认为是有效的。
@xyohn
Copy link
Contributor Author

xyohn commented Mar 2, 2023

以上修改已提PR #76 ,请作者斟酌,谢谢

@xiaolincoder
Copy link
Owner

可以,你修复后语句的逻辑会更加清晰了,没什么问题,我已经合入了,感谢指正。

@xyohn
Copy link
Contributor Author

xyohn commented Mar 6, 2023

可以,你修复后语句的逻辑会更加清晰了,没什么问题,我已经合入了,感谢指正。

好的 那这个issue我关闭了哈

@xyohn xyohn closed this as completed Mar 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants