想问个关于 HTTPS 的技术上的问题

2016-11-10 23:32:40 +08:00
 xzg1993

现在 IOS 强制使用 HTTPS 连接了,正好公司业务上也需要 HTTPS ,这几天研究了下,讨论出一个情况觉得 HTTPS 应该是不安全的,不知道设想是否对,请这方面的大神解救下。 总所周知, https 在握手的时候是明文的, SSL/TLS 协议的基本流程如下: ( 1 ) 客户端向服务器端索要并验证公钥。 ( 2 ) 双方协商生成"对话密钥"。 ( 3 ) 双方采用"对话密钥"进行加密通信。

如果在第一步的时候,中间人就对数据进行拦截(可以是免费公共 wifi 网络情况下),之后中间人模拟服务器给客户端返回消息和公钥(这里的公钥假设已经被木马程序安装到 Android 手机中了)之后和客户端进行通讯,获取到用户提交的敏感信息。之后中间人拿着用户的信息在模拟客户端和服务器端进行握手通讯。这样是不是做到拦截了呢?

我想的解决办法就是每次 APP 验证的时候从手机安装包中提取公钥进行验证。

还有个问题不太懂,请教下各位:请求被拦截是否可以被重定向到一个木马网站,之后返回个一个早期被植入 Android 手机中的木马网站的可信任证书,之后伪装成客户端所要访问的服务器和客户端进行通讯呢?谢了。

2863 次点击
所在节点    HTTP
27 条回复
Quaintjade
2016-11-11 09:31:53 +08:00
能种入根证书并且能拦截到数据的话,就连 http public key pinning 都是浮云啊。

首先你要保证第一次访问的是真服务器,其次你要确保每次都能在 max-age 时间内访问真服务器,再者你要确保客户端不会提前清除数据导致 max-age 失效。
否则的话中间人直接返回个 public-key-pins 把假根证书给 pin 起来,那就 233 了
Quaintjade
2016-11-11 09:39:29 +08:00
你说的“每次 APP 验证的时候从手机安装包中提取公钥进行验证”也是同样问题,你得保证用来验证的安装包是真的,这又取决于前一次这安装包怎样来的。

以上说了这么多都假设木马只有能力植入根证书、从外部拦截数据。如果是精心设计的木马的话,可干的事情更多了。
ipconfiger
2016-11-11 10:38:44 +08:00
@des 被诈骗你用现金一样被人诈走啊, 这是智商税, 无解, 多上少上的问题, 多花点钱买个 iPhone 可以少上智商税, 当然拿个安卓小心用也行, 但是增大了心智负担, 比如说给老年人用怎么解?
VYSE
2016-11-11 10:44:42 +08:00
@xzg1993 7.0 是福音,帮你搞定一切 https://developer.android.com/training/articles/security-config.html
但无论怎样,客户端环境都是不可控的,再咋保护我直接 hook 上去把你程序内部逻辑 data 泄露出来,只能说尽量
BubbleNoodle
2016-11-11 11:45:58 +08:00
用 hsts 还有 OCSP
xzg1993
2016-11-11 14:46:35 +08:00
@VYSE 最低支持 4.0 以上怎么办。。。
xzg1993
2016-11-11 14:52:56 +08:00
@luoliwang1987 额,小弟才疏学浅,百度了下,没找到具体如何做。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/319690

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX