前端把加密算法写进 wasm 内,如何防止别人直接调用 wasm 获取加密结果 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
tmtstudio

前端把加密算法写进 wasm 内,如何防止别人直接调用 wasm 获取加密结果

  •  
  •   tmtstudio Mar 12, 2024 5265 views
    This topic created in 786 days ago, the information mentioned may be changed or developed.
    27 replies    2024-03-13 08:41:15 +08:00
    pota
        1
    pota  
       Mar 12, 2024
    没啥好办法吧。
    zsmatrix62
        2
    zsmatrix62  
       Mar 12, 2024
    我之前也这么想过
    hanxiV2EX
        3
    hanxiV2EX  
       Mar 12, 2024 via Android
    把流程逻辑也写到 wasm 里吧
    xinyu391
        4
    xinyu391  
       Mar 12, 2024
    - 获取加密结果有什么用
    - 用公钥加密
    nomagick
        5
    nomagick  
       Mar 12, 2024
    敝帚自珍
    passon
        6
    passon  
       Mar 12, 2024   1
    前端从后端获取临时 token ,传给 wasm ,wasm 里面校验临时 token 是否合法
    fregie
        7
    fregie  
       Mar 12, 2024
    防止不了。
    afeiche
        8
    afeiche  
       Mar 12, 2024
    wasm 应该有跨域保护的吧
    lulinchuanllc
        9
    lulinchuanllc  
       Mar 12, 2024
    没办法防止,退一步来说,即使 wasm 里有校验,我直接度 html 的内容呢,我直接截屏再 ocr 识别呢,我拍照再 ocr 识别呢,归根到底是成本问题,只要获取成本大于获利成本,别人就不会费这功夫了
    hperfect
        10
    hperfect  
       Mar 12, 2024
    @passon 获取临时 token 又套另一个加密算法,哈哈哈哈。
    xuanbg
        11
    xuanbg  
       Mar 12, 2024
    前端没有办法。除非有加密芯片。
    shilyx
        12
    shilyx  
       Mar 12, 2024
    我能做这种加密,我写的前端加密算法浏览器自己都解不出来

    先别管渲染效果怎么样,你就说加密有没有用吧
    wang4012055
        13
    wang4012055  
       Mar 12, 2024
    wasm 也是可以被逆向的
    tool2d
        14
    tool2d  
       Mar 12, 2024
    那么折腾,不如直接把加密算法放后端。
    gps949
        15
    gps949  
       Mar 12, 2024
    从本地的 CSP/P11 读取密钥进行解密
    dododada
        16
    dododada  
       Mar 12, 2024
    防个啥,又不是 app 还能加固
    Navee
        17
    Navee  
       Mar 12, 2024
    如果是为了防止反推明文可以用非对称加密
    shadowyue
        18
    shadowyue  
       Mar 12, 2024
    不如先说说你的场景,想访谁
    liberize
        19
    liberize  
       Mar 12, 2024 via Android
    wasm 调用 js 读取加密数据源,而不是暴露加密接口给 js
    dyv9
        20
    dyv9  
       Mar 12, 2024 via Android
    让操作系统保存密码比较合适,像浏览器保存的密码想看需要输入 windows 账户密码,那样。
    kaiserzhang123
        21
    kaiserzhang123  
       Mar 12, 2024
    和后端一样,上一些手段,做一些请求参数安全认证并混淆提高安全等级,但依然会存在被破解的风险
    sampeng
        22
    sampeng  
       Mar 12, 2024
    为啥老有人想着浏览器是绝对安全的?任何场景下就不要相信接入方不就完了。wasm 读去就读去了。。他愿意折腾折腾呗
    sampeng
        23
    sampeng  
       Mar 12, 2024
    比如我想研究 aws 的登录。。。好家伙。真的好家伙。10 多个变量和头。再见。。没那本事
    dayeye2006199
        24
    dayeye2006199  
       Mar 12, 2024 via Android
    非对称加密
    dearmymy
        25
    dearmymy  
       Mar 12, 2024
    用 wasm 已经拦住大部分人了。剩下的在策略上折腾把,前端折腾不出花来,特别还是浏览器。
    yankebupt
        26
    yankebupt  
       Mar 13, 2024
    js 加密太累了,这样吧。
    已知存在多个 xorhash1(xorhash2(data))=xorhash3(data)
    服务端 xorhash1(encrypteddata),客户端 xorhash2 二次加密后拿去 wasm 验证 xorhash3 。
    如果发现被破解,直接同时换 hash1 和 hash2 ,这样客户端被破解的 js 必须替换,否则无法过 hash3 。
    好处是 wasm cache 可以不用重新加载。(如果你的加密算法很重很大的话)
    Lockroach
        27
    Lockroach  
       Mar 13, 2024
    不要把有关安全的东西放在前端
    About     Help     Advertise     Blog     API     FAQ     Solana     3154 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 158ms UTC 00:24 PVG 08:24 LAX 17:24 JFK 20:24
    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