我的 boss 和我说,一个 https 请求,别人抓包可以获取到明文的(假设数据自己没有加密)请求参数,和 http 没啥两样。 我惊呆了,我反复和他确认了我们彼此表达的意思,比如这里说的“别人"是不是别人,排除了其他黑科技的情况。他又习惯性的不耐烦了,说我需要补充一下基础知识。
我想我一定是太耿直了。 好心烦,于是和朋友聊了此事,朋友表示:你们领导不信任老罗捐赠的开源项目。
1
bzzhou 2016-12-29 14:50:04 +08:00
如果场景是,你抓的 HTTPS 流量的设备你可以接触到,那么是可以抓到 HTTPS 的详细内容的。
|
2
cevincheung 2016-12-29 14:52:47 +08:00
如果抓到的是加密之前的数据,那不是 HTTPS 数据。
|
3
dsphper 2016-12-29 14:56:39 +08:00
我想你 BOSS 说的是 HTTPS 下 GET 方式传输明文。
|
4
linboki 2016-12-29 14:57:55 +08:00 via Android
我向你索取公钥,把“你的 boss 是不懂非对称加密的逗逼”加密后递交给你,你的 boss 站在一旁,既知道你的公钥,也知道我的密文,但一脸蒙逼
|
5
yivanus 2016-12-29 14:58:00 +08:00
自己数据加密后再传输。。这样别人再抓包也得想办法解。
|
6
vultr 2016-12-29 15:01:34 +08:00
记得很久以前有人对我说过这么一句话:这个人没什么本事,就让他当领导吧。
|
7
greatonce 2016-12-29 15:02:24 +08:00
https 是加密从发出到接收中间这个过程的,如果你电脑上装了木马获取了明文数据那不是一回事
发送====加密(====tcp 传输====)接收====解密 加密的是 tcp 传输,不被你的 ISP 截获插入广告或修改数据,这个过程是用 TLS 保护的整个 TCP 传输过程 |
10
damean 2016-12-29 16:41:02 +08:00
https 下的包是加密的,但是对于想了解你的参数结构的人来说, https 并不会造成太大的阻碍。但是如果把攻击扩展到可以批量攻击的程度,目前还做不到,因为攻击自己容易,攻击别人前提太多了,首先要骗人家安装证书。
|
11
hahaDashen 2016-12-30 08:11:11 +08:00
那么你应该给你的 boss 一个耿直的微笑 然后问他还有啥方法
|
12
eloah 2016-12-30 12:00:01 +08:00 via Android
那你就说,猴,我们的 iOS 端都不做了,辣鸡水果
Doge |
13
imbahom OP @hahaDashen 我就是耿直的微笑了,然后估计笑得有点儿嘲讽了。。。
|
15
hahaDashen 2016-12-30 19:37:07 +08:00
@imbahom 挑事的微笑 : )
|
16
klesh 2016-12-30 21:28:59 +08:00 1
@dsphper https 之后无论是 get 还是 post / put / delete 什么鬼的都是加密的。
@bzzhou 所说的根本不成立,因为 @linboki 说的是正确的。 楼主把 https://support.google.com/webmasters/answer/6073543?hl=en 把这个发给你家 boss ! |
17
linbiaye 2017-01-01 14:15:33 +08:00
希望你的 boss 不是管技术的。 https/tls 这一套本身就是为了防中间人的。
|
18
bzzhou 2017-01-03 12:25:53 +08:00
@klesh http://security.stackexchange.com/questions/8145/does-https-prevent-man-in-the-middle-attacks-by-proxy-server
用 google 随便搜 https middle man attack 一大堆结果了 而且我备注了:可以接触到设备的前提 |
20
klesh 2017-01-03 16:36:36 +08:00
@bzzhou 感谢您的建议。我仔细地看了你发的那个链接。里面清楚地提示到, Man in the middle attack 成立是 administrator of your computer cooperates 。
A local certification authority is setup and the administrator tells your browser that this CA is trustworthy. The proxy server uses this CA to sign his forged certificates. 既然攻击者都可以在你的电脑上安装根证书了,那还有什么不可以干的呢? https 作用是在于信息在你的电脑端出来到服务器端进入这中间的链路,所有中间的设备和嗅探器都无法窃取和篡改你的信息。因此可达到防止运营商劫持的目的。 如果你说的是对的,那淘宝、腾讯等全站 https 意义何在? http / https 一样都是要经过运营的设备的。 who the fuck you are to tell me what to read ? |
21
bzzhou 2017-01-03 17:28:09 +08:00
@klesh 你没看到我备注了么,我都说明了,能够接触到设备的前提下
有很多公司会默认给所有电脑安装一个根证书的你不知道? 12306 会给很多人安装根证书的这个大家都知道吧 还有,很多程序在实现的过程中,缺乏必要的校验机制,被中间人劫持了又不是什么新鲜事 |
22
bzzhou 2017-01-03 17:43:30 +08:00 1
@klesh PS :讨论技术问题就讨论技术问题,言语难免会有让其它人不爽的地方(你一开始就忽略了我的前提条件直接下定论,我让你不爽的我道歉),直接开喷就没必要了吧。
|
23
bzzhou 2017-01-03 17:50:31 +08:00
@klesh 再补充一个实际应用场景(绝对不是脱了裤子放屁)
1. 分析 APP 协议,可以安装一个根证书,然后通过 proxy 劫持流量分析改动协议 2. 有很多程序虽然用了 HTTPS ,但是缺乏必要的校验,那么还是可以被中间人劫持的 3. 通过诱导、漏洞等方式给你安一个根证书,你的 HTTPS 还有保障么?中国 90%的电脑应该有国内几大互联网公司的根证书吧? |
24
klesh 2017-01-03 20:50:19 +08:00
@bzzhou 楼主讲的是别人抓包,在我理解中这应该是指路网中第三台机器,或者是像路由这样的中间链路节点。而我只能承认你讲的设备我不知道你指的是个什么玩意。如果你说的设备指的是终端电脑,并且该电脑已经安装了恶意的程序或者证书,这还能算是“中间人攻击”吗?
根据 https://en.wikipedia.org/wiki/Man-in-the-middle_attack 这上面的纪载,上面清楚明白地说明了避免中间人几种方法: Public key infrastructures: Transport Layer Security is an example of implementing public key infrastructure over Transmission Control Protocol. This is used to prevent Man-in-the-middle attack over a secured HTTP connection on internet. Client and server exchange PKI certificates issued and verified by a common certificate authority. 这个机制也就是 @linboki 讲的 https 的原理,如果你知道公私钥加密原理的话,应该就能明白他讲的是对的。通篇文章并没有提到终端用户电脑上需要被安装恶意软件或证书这种事情是形成“中间人攻击”的特征条件。我的点是,既然终端电脑都已经可以接触了,直接爱怎么搞都怎么搞,还费那事搞中间人干嘛?那不是 https 的锅了。 secure tunnel 是通道的安全,两边终端不关它事了。 强调一下,我并没有忽略你的“前提条件”,而是我认为你讲的根本是错的!无论你的“设备”指的是中间节点还是用户电脑,都不成立。 你说的 1 , 2 , 3 都是建立在“不正确地使用 https ” 这个前提下,并不是 https 的锅。你可以坚持你的观点但我不想再跟你讨论什么。 你不爽是因为我说你是错的。我不爽是因为我觉得你太自以为了: 第一,你自己读过 RFC 2616 和 HTTP 大头书 了吗? 第二,你如果读过了觉得这里面哪里可以用来证明我是错的或者你是对的大可以 quote 出来。大家辨论就是,而不是很中二地说,我建议你回去好好看书。 第三,我不认为弄明白 https 和 man in middle atack 这两个问题需去读你所谓的资料。 第四,这些协议,格式文档什么是最乏味最冗长的东西,建议我去读这两份资料,呵呵,你是要准备养我下半辈子吗?或者反过来我叫你去读 TCP/IP 协议,读完再回来跟我辨论,这样你觉得可以接受吗? 第五,我欢迎你说我是错的,但你要讲得有道理,有根据! |
25
bzzhou 2017-01-03 23:02:13 +08:00 via iPhone
@klesh 首先, https 的理论安全性没有人会质疑,这个是基本常识。但是我说的是工程角度,而且这个现象不是个例,而是普遍情况。大家讨论的上下文不在一个频道,也就没必要继续讨论了。
|
26
bzzhou 2017-01-03 23:07:52 +08:00 via iPhone
@klesh 还有,楼主说的抓包,我理解不是黑产,更多是做一些爬虫采集数据之类的,那么采用我提出的方案是一个非常主流,最低成本的技术方案。
|
29
wshcdr 2017-01-10 12:38:18 +08:00
如果是这样,我干嘛还花钱去买 SSL 证书呢,
|