V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tmtstudio
V2EX  ›  程序员

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

  •  
  •   tmtstudio · 2024-03-12 08:57:57 +08:00 · 4377 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。
    27 条回复    2024-03-13 08:41:15 +08:00
    pota
        1
    pota  
       2024-03-12 09:00:23 +08:00
    没啥好办法吧。
    zsmatrix62
        2
    zsmatrix62  
       2024-03-12 09:03:05 +08:00
    我之前也这么想过
    hanxiV2EX
        3
    hanxiV2EX  
       2024-03-12 09:04:03 +08:00 via Android
    把流程逻辑也写到 wasm 里吧
    xinyu391
        4
    xinyu391  
       2024-03-12 09:06:37 +08:00
    - 获取加密结果有什么用
    - 用公钥加密
    nomagick
        5
    nomagick  
       2024-03-12 09:06:45 +08:00
    敝帚自珍
    passon
        6
    passon  
       2024-03-12 09:06:56 +08:00   ❤️ 1
    前端从后端获取临时 token ,传给 wasm ,wasm 里面校验临时 token 是否合法
    fregie
        7
    fregie  
       2024-03-12 09:15:42 +08:00
    防止不了。
    afeiche
        8
    afeiche  
       2024-03-12 09:17:40 +08:00
    wasm 应该有跨域保护的吧
    lulinchuanllc
        9
    lulinchuanllc  
       2024-03-12 09:19:38 +08:00
    没办法防止,退一步来说,即使 wasm 里有校验,我直接度 html 的内容呢,我直接截屏再 ocr 识别呢,我拍照再 ocr 识别呢,归根到底是成本问题,只要获取成本大于获利成本,别人就不会费这功夫了
    hperfect
        10
    hperfect  
       2024-03-12 09:21:23 +08:00
    @passon 获取临时 token 又套另一个加密算法,哈哈哈哈。
    xuanbg
        11
    xuanbg  
       2024-03-12 09:25:13 +08:00
    前端没有办法。除非有加密芯片。
    shilyx
        12
    shilyx  
       2024-03-12 09:30:10 +08:00
    我能做这种加密,我写的前端加密算法浏览器自己都解不出来

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