1
zpfhbyx 2020-05-26 17:44:58 +08:00
建议了解下 https
|
2
wnpllrzodiac 2020-05-26 17:45:41 +08:00 via Android
对称加密 非对称加密了解下
|
3
richard1122 2020-05-26 17:46:00 +08:00
请搜索 PKI
|
4
wnpllrzodiac 2020-05-26 17:46:26 +08:00 via Android 1
推荐 日本人 结城浩 的图解密码学。非常有帮助。
|
5
villivateur 2020-05-26 17:47:02 +08:00 via Android
建议了解下,证书颁发商、受信任、本地证书等概念
|
6
xiri 2020-05-26 17:49:07 +08:00 1
公钥加密的数据,只能用私钥解密,而私钥又不会经过网络传输
|
7
marcushbs 2020-05-26 17:51:01 +08:00
128 位量子计算机上线以后就危了
|
9
AngryMagikarp 2020-05-26 17:53:55 +08:00 8
HTTPS 使用的是非对称加密,交换的只是公钥。比如小白拿到网站的公钥后,用这个公钥加密,那么加密后的数据只能用网站的私钥才能解开。
因此,黑客获取数据是无法解密的。不过黑客可以作为一个中间人,把他的公钥给你,然后把他自己的公钥给网站,中间做一次转发。但这样子浏览器会发现他的公钥和“备案”在证书提供商上的不一样,然后给用户危险警告。 |
10
ruixue 2020-05-26 17:54:57 +08:00 3
吾尝终日不食,终夜不寝,以思,无益,不如学也
|
11
momocraft 2020-05-26 17:55:47 +08:00
你都知道协商这个词了,再补上密钥协商的过程就知道了
|
12
warcraft1236 2020-05-26 17:59:04 +08:00
我去,https 不就是防范这种事的吗
|
13
Vegetable 2020-05-26 18:01:20 +08:00
@lxk11153 #8 web 场景的中间人攻击原理就是,中间人和浏览器说自己是服务器,和服务器说自己是浏览器。
https 的目的就是通过无法被外界获取的证书,确保浏览器不会被中间人蒙蔽,知道自己连接的人是否可信。 |
14
miyuki 2020-05-26 18:12:28 +08:00
|
15
eGlhb2Jhb2Jhbw 2020-05-26 19:09:41 +08:00 12
看了 append 以为 lz 会被喷的很惨,有一瞬间有点心疼 lz,结果翻了翻,发现大家都还好吧。。。不知道哪里伤害到了 lz 。
|
16
PHPer233 2020-05-26 19:13:54 +08:00 via Android
建立 SSL 连接时浏览器要验证 12306 网站的证书是否合法,显然黑客作为中间人无法获取到 12306 的 SSL 证书,所以小白在打开网站时浏览器会提示证书错误并终止访问。
|
17
gefranks 2020-05-26 19:25:16 +08:00
如果黑客(组织)有足够的能力让浏览器信任的 CA 签了一张有效的证书的话,那还是能被中间人攻击的
|
18
Newyorkcity OP @PHPer233 额,证书这个我还没看过。即便使用证书,小白和 60321 之间的通讯的 TCP 包正常情况下总是要经过一些路由器之类的中间节点中转的吧?张三把自己的主机加入这个网络中伪装成一个路由器,这个使用证书什么的应该 i 防不了吧?
|
19
Windelight 2020-05-26 19:35:24 +08:00 via Android
你应该了解一下为什么 Wireshare 或者 charles 抓包软件抓 https 时为什么要安装证书?
|
20
uTOmOuk3L6sb4MSI 2020-05-26 19:36:00 +08:00 via iPhone
@miyuki #14 不是客户端,只是浏览器访问 web,那怎么办?
|
21
woodensail 2020-05-26 19:39:05 +08:00
我看了开头还以为楼主想说 HSTS 的事儿,结果楼主竟然试图破解 rsa……
|
22
uTOmOuk3L6sb4MSI 2020-05-26 19:39:58 +08:00 via iPhone
|
23
rrfeng 2020-05-26 19:42:08 +08:00 via Android 3
看了 append 以为大家都在喷…然后发现并不是,实际上 90% 人都说错了。
这部分不涉及证书,非对称加密 RSA 等等,更贴切的的是密钥交换算法例如 DH,还有完美前向加密 PFS 。 |
24
rrfeng 2020-05-26 19:44:32 +08:00 via Android
另外还有一点很重要,张三对数据流是只读的,还是可以篡改。
如果只读,上面的回答(除了我)全是错的。 如果可篡改,那么可以伪装成 server,才需要涉及到 CA 相关知识。 HTTPS 有两个作用:身份验证,传输加密。要分开看哦 |
25
uTOmOuk3L6sb4MSI 2020-05-26 19:48:02 +08:00 via iPhone 1
|
26
djs 2020-05-26 19:55:41 +08:00 via iPhone
只要信任了他的假证书,我觉得是可以的
|
27
grimpil 2020-05-26 20:34:52 +08:00 via iPhone
12306 是被敏感词了还是有啥梗,为啥要倒过来说
|
28
Newyorkcity OP @grimpil 额,就是尽量脱离具体场景,避免回答一些 12306 才有的特性。
|
29
ljpCN 2020-05-26 21:59:42 +08:00 via Android
比如你用 charles 或者 fiddler 代理 https 请求,你想要解密报文内容的话,计算机需要信任证书。至于你说中间节点可以读取,它能读取的是加密后的内容而已。
|
30
CEBBCAT 2020-05-26 22:04:01 +08:00 via Android 1
这不算嘲讽或秀优越,这种蠢问题没人直接骂你算是不错的了。
只要顺着 HTTPS 搜索一下,很快就有帖子教给你机密性、完整性、真实性,教给你为什么沃通不被采信。你就是自以为想得很多,其实闭门造车。 |
31
liuminghao233 2020-05-26 22:18:08 +08:00 via iPhone
有点奇怪
你看完 https 的百度百科不就知道有 rsa 了嘛 你百度搜索 https 第一个就是 https 的百度百科嘛 你百度都没有用过吗?( ??? |
32
wshcdr 2020-05-26 22:32:09 +08:00
HTTP 主要防范 中间人攻击, 且能保证服务器的真实性
|
33
otakustay 2020-05-26 23:03:17 +08:00 1
这里的关键点是:
1. 如果张三不劫持 HTTPS 的握手,那么他理论上无法算出 60321 网站的私钥,所以他无法解密小白的请求并得到里面的内容 2. 如果帮三试图劫持 HTTPS 的握手(包括劫持 DNS 的手段),那么他理论上无法造出一个符合 60321 这个域名的合法证书来,过不了浏览器的证书信任 所以理论上是安全的,只要小白看到证书不受信任的提示别傻子一样强行继续访问。张三知道怎么加密(算法公开),只是他拿不出这个加密用的私钥,签不出这个证书,浏览器会直接不信任而中止发送请求 |
34
otakustay 2020-05-26 23:05:02 +08:00
在 HTTPS 的场景下,要攻击小白最好的办法就是骗小白装一个浏览器插件或者送他一个干掉了证书信任校验的套壳浏览器,反正都小白了,有挺大概率是能骗的
|
35
shadeofgod 2020-05-27 00:00:27 +08:00 1
|
36
misaka19000 2020-05-27 00:03:12 +08:00
V 站现在这么友善啊,楼主这种伸手党大家也回答的的这么有耐心
|
37
ZRS 2020-05-27 00:07:14 +08:00
不能,当然如果你的计算能力足够指的是接近无穷的话,可以。不过不存在现实意义
|
38
systemcall 2020-05-27 01:53:53 +08:00 via Android 1
在现有的算力下不能,现在的加密足够应对产品生命周期内在已知科技树下发展出来的技术了
不过如果 SHA256 之类的可以破解了的话,确实是什么都可以做到的 如果有办法让对方信任自己的证书的话是可以的,已信任的证书颁发机构颁发的证书会被浏览器信任 在现有科技树下的话,假设是正常的较新的浏览器,可以路由层面拦截 https 跳转,不过现在的浏览器会有警告。或者用自己的证书来中间人攻击,不过如果那个证书对方没有信任的话是不行的,信任过的话确实是可以发起中间人攻击,发生过这种事。更简单的方法是骗用户装个自己的套壳浏览器,或者是想办法让用户装了的软件里面的套壳浏览器帮忙完成这些事。如果是普遍可以提权的 Windows,让一些程序帮忙在内核态做些微小的工作都没有什么问题,比如某杀软的驱动就经常被拿来用 利用证书来加密在现在是十分常见的事,利用已经信任的证书来作恶也的确是发生过 |