想问个关于 HTTPS 的技术上的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
httpbin - 协议调试工具
httpstatuses - 协议状态码查询
httpie - cURL-like tool for humans
Fiddler
xzg1993
V2EX    HTTP

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

  •  
  •   xzg1993 2016-11-10 23:32:40 +08:00 3243 次点击
    这是一个创建于 3257 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    第 1 条附言    2016-11-11 14:46:13 +08:00
    Android 的 webview 可以对 https 连接的 服务器证书进行验证吗?

    在 HttpsURLConnection 中可以在 checkServerTrusted 中对证书进行比对,防止与中间人握手。 webview 有解决方案吗。。。。。各位大神们。
    27 条回复    2016-11-11 14:52:56 +08:00
    nopy
        1
    nopy  
       2016-11-10 23:35:30 +08:00 via Android
    手机既然已经中了木马病毒了当然就不安全了。
    JohnLou
        2
    JohnLou  
       2016-11-10 23:36:45 +08:00 via iPhone
    不安全那么多人用,脑子锈逗了?
    iyaozhen
        3
    iyaozhen  
       2016-11-10 23:39:29 +08:00 via Android
    你这个就是中间人攻击。
    这里的公钥假设已经被木马程序安装到 Android 手机中了。这样的话基本安全已经没有了,其它都是空谈。

    你既然是 iOS 开发者,肯定用过 charls 抓包工具,要抓 https 的包需要手机端装证书。就是这个原理
    xfspace
        4
    xfspace  
       2016-11-10 23:45:09 +08:00 via Android   1
    这就有请 Certificate Transport 上场了。从根源治疗 MITM.
    xfspace
        5
    xfspace  
       2016-11-10 23:47:28 +08:00 via Android
    @xfspace 不好意思打错了。应是 Certificate Transparency
    zomco
        6
    zomco  
    &bsp;  2016-11-10 23:49:09 +08:00
    很多抓包工具就是这样玩的
    lhbc
        7
    lhbc  
       2016-11-10 23:51:30 +08:00
    贼已经爬窗 /翻墙进你家了,你还担心家里的门安不安全……
    ipconfiger
        8
    ipconfiger  
       2016-11-11 00:06:56 +08:00
    中木马一切玩完, 所以别用安卓
    bdbai
        9
    bdbai  
       2016-11-11 00:15:55 +08:00 via Android
    @ipconfiger 碰上猪队友, iOS 也没辙。按照“提示”点开证书,安装描述文件,指纹确认,然后...
    ipconfiger
        10
    ipconfiger  
       2016-11-11 00:49:36 +08:00
    @bdbai 试试, 手把手指导还差不多. 都这样了就别提安全二字了
    kkzxak47
        11
    kkzxak47  
       2016-11-11 00:54:58 +08:00 via Android
    不理解,我的疑问: 客户端手机系统都沦陷了,失去了公钥鉴别能力,中间人躺着收钱就行了,还要攻击?那个木马能给系统装上伪造公钥,不能伪造你 APP 的验证?
    mornlight
        12
    mornlight  
       2016-11-11 03:04:41 +08:00 via iPhone
    在符合使用规范和大环境安全的前提下, HTTPS 可以保证通信过程不被窃听或篡改。
    能随便在客户端安装 CA 已经破坏这个前提了。
    abellee
        13
    abellee  
       2016-11-11 04:09:45 +08:00 via iPhone
    @bdbai 这么多步都能中的人 还拿来跟猪猪比 你有考虑过二师兄的感受吗
    xenme
        14
    xenme  
       2016-11-11 05:37:40 +08:00 via iPhone
    certificate pinning ,代码验证证书就好了
    des
        15
    des  
       2016-11-11 08:05:55 +08:00 via Android
    @ipconfiger 你这逻辑有点迷啊。
    类似的可以有,中了病毒,一切玩完,所以别用 Windows
    被诈骗,一切玩完,所以别用银行卡
    finian
        16
    finian  
       2016-11-11 08:23:13 +08:00
    关键字: MITM, SSL Pinning
    VYSE
        17
    VYSE  
       2016-11-11 08:25:43 +08:00 via Android
    可以不用系统 CA ,自带增加攻击难度
    xzg1993
        18
    xzg1993  
    OP
       2016-11-11 08:26:52 +08:00
    @iyaozhen 是的,我用了 charles 它代理 https 就是这个原理在手机中安装证书。
    xzg1993
        19
    xzg1993  
    OP
       2016-11-11 08:27:39 +08:00
    @VYSE 考虑了自带 ca ,自带 ca 的话,安卓的 webview 不还是走的系统的么
    xzg1993
        20
    xzg1993  
    OP
       2016-11-11 08:27:51 +08:00
    @finian 尝试下,谢谢
    Quaintjade
        21
    Quaintjade  
       2016-11-11 09:31:53 +08:00 via Android
    能种入根证书并且能拦截到数据的话,就连 http public key pinning 都是浮云啊。

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

    以上说了这么多都假设木马只有能力植入根证书、从外部拦截数据。如果是精心设计的木马的话,可干的事情更多了。
    ipconfiger
        23
    ipconfiger  
       2016-11-11 10:38:44 +08:00
    @des 被诈骗你用现金一样被人诈走啊, 这是智商税, 无解, 多上少上的问题, 多花点钱买个 iPhone 可以少上智商税, 当然拿个安卓小心用也行, 但是增大了心智负担, 比如说给老年人用怎么解?
    VYSE
        24
    VYSE  
       2016-11-11 10:44:42 +08:00
    @xzg1993 7.0 是福音,帮你搞定一切 https://developer.android.com/training/articles/security-config.html
    但无论怎样,客户端环境都是不可控的,再咋保护我直接 hook 上去把你程序内部逻辑 data 泄露出来,只能说尽量
    BubbleNoodle
        25
    BubbleNoodle  
       2016-11-11 11:45:58 +08:00
    用 hsts 还有 OCSP
    xzg1993
        26
    xzg1993  
    OP
       2016-11-11 14:46:35 +08:00
    @VYSE 最低支持 4.0 以上怎么办。。。
    xzg1993
        27
    xzg1993  
    OP
       2016-11-11 14:52:56 +08:00
    @luoliwang1987 额,小弟才疏学浅,百度了下,没找到具体如何做。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1205 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:28 PVG 01:28 LAX 10:28 JFK 13:28
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86