关于 SSL 中间人攻击问题 - V2EX
yxwzaxns
V2EX    SSL

关于 SSL 中间人攻击问题

  •  
  •   yxwzaxns 2017-05-06 21:51:18 +08:00 4038 次点击
    这是一个创建于 3135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在有一个应用用 python ssl 模块来加密服务端客户端之间的数据

    当客户端通过 ip 来连接服务器后,首先获取到服务器证书(服务端证书是用的自签名证书),然后使用这个证书来与服务器通信,现在的问题是:

    1. 在客户端获取证书和数据传输过程能被中间人攻击么,如果可以,执行中间人攻击的难度有多大?是在哪个阶段被替换证书的?
    2. 对于进行中间人攻击来说,直接 ip 访问和 https 访问有什么不一样的地方么?

    ==以上相关证书都为自签名证书==

    6 条回复    2017-05-07 06:23:04 +08:00
    billlee
        1
    billlee  
       2017-05-06 22:27:31 +08:00
    能,只要能控制链路,没有难度。没有区别。
    lianz
        2
    lianz  
       2017-05-06 22:43:27 +08:00
    客户端验证一下服务端证书就行了
    yxwzaxns
        3
    yxwzaxns  
    OP
       2017-05-06 22:50:24 +08:00
    @lianz 验证证书是要做的,我就是想知道直接通过 ip 访问的话,这个中间人攻击怎么进行的
    yxwzaxns
        4
    yxwzaxns  
    OP
       2017-05-06 22:52:03 +08:00
    @billlee 能具体说一下为什么没有难度和区别么?或者能给个相关资料链接,十分感谢
    0TSH60F7J2rVkg8t
        5
    0TSH60F7J2rVkg8t  
       2017-05-06 23:49:49 +08:00 via iPad
    1. 能。ISP 可以。在请求发起的时候就可以完成劫持。
    2. 没有不同的地方。关键问题是你如何鉴定服务器发来的证书合法性。

    基于 ip 的劫持太简单了,通讯链路上的任何路由设备都可以。anycast 技术也可以做到。

    ISP 会重点劫持自签证书。务必购买 ca 证书。实在买不了,你的客户端需要硬码自签证书的指纹和 hash,以便在发送数据之前校验证书。
    ZeroClover
        6
    ZeroClover  
       2017-05-07 06:23:04 +08:00
    SSL/TLS 机制本来就是逐层验证证书的签发机构是否为可信根,如果你直接使用了自签,那么除非你在程序内内置证书的指纹,否则验证机制就无法实现了。

    某些实在无法使用第三方 CA 证书的环节(比如内网 IP 或者内部地址),建议自建 CA,然后用自建的 CA 来进行二级或者三级证书的签发,然后在客户端把自建 CA 作为可信根,这样验证证书链的方式要方便一些,不需要写死在程序内
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2766 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 09:07 PVG 17:07 LAX 01:07 JFK 04:07
    Do have faith in what you're doing.
    ubao msn 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