代理能够重发消息吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jimmyismagic
V2EX    程序员

代理能够重发消息吗?

  •  
  •   jimmyismagic 2020-12-04 21:39:16 +08:00 2544 次点击
    这是一个创建于 1776 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假如你连了一个恶意的代理,连上一个 https 服务,一般代理是看不到你发送的内容的

    但是,代理能不能劫持你的加密内容,重复发送给对应服务,我感觉不太可能,因为 http 是无状态的,链接建立处理完消息就断了,一般不能在一个链接内处理两个 POST 请求,我这个看法不知道对不对?

    但如果我连的是一个 websocket(wss)服务,使用了中间代理,这个代理能不能劫持我的消息多次重发?

    假设链接的服务是买卖股票,那有没有可能在买股票的时候被代理恶意重发而重复购买?

    19 条回复    2020-12-05 18:28:25 +08:00
    superrichman
        1
    superrichman  
       2020-12-04 21:49:07 +08:00 via iPhone
    代理看不到明文但可以抓包重放。
    服务端没事防重放处理就有可能会重复购买。
    不要用无法信任的代理服务。
    lujjjh
        2
    lujjjh  
       2020-12-04 22:21:20 +08:00
    你也太小看 TLS 协议了。

    「因为 http 是无状态的,链接建立处理完消息就断了,一般不能在一个链接内处理两个 POST 请求」也是错误的。
    neteroster
        3
    neteroster  
       2020-12-04 22:24:23 +08:00 via Android   1
    关键词: https replay attack
    des
        4
    des  
       2020-12-04 22:50:24 +08:00 via iPhone
    不仅不能重放,而且还能向前保密,确保私钥泄漏也不能解密
    http://wmaintw.github.io/2015/03/07/perfect-forward-secrecy.html
    iceheart
        5
    iceheart  
       2020-12-04 23:04:18 +08:00 via Android
    理论上是可能的,-----比如说大整数质因数分解被攻破,或者 AES 对称加密被破解。
    carlclone
        6
    carlclone  
       2020-12-04 23:26:25 +08:00 via Android
    @des 这么恐怖吗,真没想过还能录制下来等以后解密的神操作
    ZRS
        7
    ZRS  
       2020-12-04 23:46:40 +08:00 via iPhone
    TLS 是防重放的
    baobao1270
        8
    baobao1270  
       2020-12-04 23:52:16 +08:00   2
    HTTPS 可以防止重放攻击,HTTP 若服务端无防御措施无法防御
    xcstream
        9
    xcstream  
       2020-12-05 02:45:41 +08:00
    应该不能
    deorth
        10
    deorth  
       2020-12-05 09:54:22 +08:00
    甚至不需要代理,只要路由转发链路上的某一台机器部署了相应服务就可以实现重放。
    要是和钱相关的服务连防重放都做不到可以赶紧倒闭了
    jimmyismagic
        11
    jimmyismagic  
    OP
       2020-12-05 10:36:54 +08:00
    @superrichman https 服务端真的需要防止吗?
    @lujjjh 举个例子?
    @neteroster 多谢,有没有权威的论述?
    @des 所以你们到底谁正确?
    @iceheart 嗯,被破解当然可以,假如加密无法破解的情况下,用 https 可以防止重放吗?
    @ZRS 所以你们到底谁对?说说原因
    @baobao1270 我感觉也是,websocket(wss)呢?
    @xcstream websocket(wss)呢?
    @deorth 不止和钱相关,各种操作都有对个人的数据造成风险,不可能每次写个接口都要考虑是否要防止重放吧
    baobao1270
        12
    baobao1270  
       2020-12-05 10:55:36 +08:00
    @jimmyismagic Websocket 好像无法防止,WSS 可以。或者说任何使用 TLS 的应用都能防止重放

    但是,在设计程序时,会在 HTTP 应用层再做一次防重放。不过 Websocket 做防止重放的比较少,一般来说 WS 不涉及重要操作,比如聊天,重复一句也是可以的。
    jimmyismagic
        13
    jimmyismagic  
    OP
       2020-12-05 11:12:40 +08:00
    @des 看了你的文章,才知道密钥协商还有这个功能,怪不得我看到很多私有服务都采用 DH 算法,原先以为一个随机密钥就可以了,现在相当于该次连接中在内存中保留了随机私钥没有传输。那么 https 默认是否使用了 DH 这个方式呢?还是哪里需要配置,或者需要在双方应用层协商?
    jimmyismagic
        14
    jimmyismagic  
    OP
       2020-12-05 11:14:28 +08:00
    @baobao1270 wss 感觉应该也无法防止啊,因为你的链接没有断开,服务端直接收消息处理就行了
    superrichman
        15
    superrichman  
       2020-12-05 12:24:33 +08:00
    tls1.3 0-RTT replay
    译文 (可重复性 章节)
    https://www.oschina.net/translate/rfc-8446-aka-tls-1-3?lang=chs&p=3
    原文 (Replayability 章节)
    https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/

    还是要在应用里做防重放.
    jimmyismagic
        16
    jimmyismagic  
    OP
       2020-12-05 13:05:39 +08:00
    @des
    @superrichman
    你们两个各有道理,所以到底能不能重放?
    des
        17
    des  
       2020-12-05 18:14:18 +08:00 via iPhone
    @jimmyismagic
    我认为你都没有好好看,能不能要看服务端和客户端的具体配置
    如果你非要一个结果,那就是可以
    des
        18
    des  
       2020-12-05 18:23:00 +08:00 via iPhone
    @des
    在没有指定场景的情况下,我可以假定客户端服务端能接受不安全的加密。
    甚至可以假定客户端能接受任何不安全的证书,这种情况都可以中间人攻击
    jimmyismagic
        19
    jimmyismagic  
    OP
       2020-12-05 18:28:25 +08:00
    @des 当然不考虑中间人攻击和客户端安全证书的问题,就是在正常的情况下,你说了一个是保留历史,等未来拿到私钥或者算法破解了,还有一个是用 DH 算法,可以做到完全向前保密,那么在正常的一个 https 链接下,能不能发两次 POST,http 中的 keep-alive 能不能做到呢?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5403 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 08:48 PVG 16:48 LAX 01:48 JFK 04:48
    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