无尘阁日记

无尘阁日记

在浏览器里分发并执行的 JS/WASM,仍然做不到“真正不可破解”
2025-12-11

先把底线讲清楚

在浏览器里分发并执行的 JS/WASM,仍然做不到“真正不可破解”。
原因没变:代码必须到达用户端并在本地可执行,最终会以明文或可还原的形式出现。所谓“最新手段”,更多是把关键价值转移到远端 + 加强鉴别与追责,而不是让前端本身变成“打不开的黑盒”。这一点至今没有被任何新技术推翻。

2024–2025 的“新东西”,能解决什么、不能解决什么

1) 设备绑定会话(DBSC)

  • 能做:把登录会话硬件绑定(防 cookie/令牌被窃后在别的机器复用),提升盗用成本滥用追踪能力。Chrome 在 2025 年面向网站推出 DBSC 集成指引,并已在 Workspace 等开始实践与试点。(Chrome for Developers)

  • 不能做保护你的前端代码机密。它解决的是会话劫持/盗用,而非代码逆向。

2) Private State Tokens(前身 Trust Token)

  • 能做:在不跨站跟踪的前提下携带“可信度”信号,帮助区分真人/机器人、降低欺诈。对抗批量盗刷/脚本化滥用有价值。(Privacy Sandbox)

  • 不能做:仍然不能阻止别人阅读或修改你发到客户端的代码

3) Android WebView Media Integrity(针对 App 内 WebView)

  • 能做:如果你的前端运行在 Android App 的 WebView 里,可拿到设备/应用完整性信号,让媒体/受限资源只在“合规环境”播放或调用。2024 起面向开发者可用,并有相应的 WebKit/Play Integrity 配置项。(Android Developers Blog)

  • 不能做:这不是开放 Web 的通用解;对普通浏览器页面无效

4) 机密计算(Confidential Computing)+ 远端证明(Attestation)

  • 能做:把“值钱逻辑/模型/规则/密钥”放到云端 TEE(SGX / SEV-SNP / Nitro 等),用户侧拿不到算法和数据;通过远端证明让调用方确信“只与指定、未被篡改的代码在受硬件隔离环境内交互”。这是今天唯一能“从根上”保护核心的路线。(Duality Technologies)

  • 不能做:仍需设计调用鉴权、限流计费、接口签名等防滥用链路;不能让纯前端离线代码不可逆向

5) Web Environment Integrity(WEI)现状

  • 结论:作为开放 Web API 的 WEI 已被 Chrome 团队放弃;不要把它当做“未来能封死前端”的抓手。(9to5Google)

如果目标是“实战可售卖、对抗破解”,推荐的2025 版组合拳

方案一:云端托管核心 + 远端证明 + 强鉴权(最稳)

  1. 把核心算法/模型上云,跑在 TEE/机密容器里(GCP Confidential Space、Nitro/SEV 等),对外仅暴露最小 API。

  2. 启用远端证明:客户端在调用前验证你后端的测量值/证书链,确认代码确实在预期 TEE 内运行。(Google 开发者博客)

  3. 通道路由:所有付费功能经由该 API;前端只是 UI 壳。

  4. 接口加固:短命令牌 + 请求体签名(HMAC/RSA)+ 速率限制 + 异常检测 + 日志留证(便于法务)。

  5. 配套:DBSC 绑定登录态,PST 传递可信度信号,显著降低批量盗用与账号共享套利。(Chrome for Developers)

适用:涉及算法资产/付费能力/数据服务/AI 推理/规则引擎等,要“真防护”只能走这条

方案二:前端 SDK/框架售卖的“抗性升级版”(能卖、可追责)

当你必须把一部分逻辑下发给客户(B 端嵌入/离线场景)时:

  • 核心逻辑 WASM 化(提升逆向成本),但对真正的逆向者仍非绝对安全。

  • 许可证采用“前端公钥验签 + 在线核验”:证书由你后端私钥签发,前端只放公钥;定期在线校验吊销/并发/域名或硬件绑定。

  • 水印与指纹:每个客户构建变体唯一,可在泄露时溯源。

  • 对运行环境做“软约束”:若运行在 Android WebView,可叠加 Media Integrity 信号;桌面/内网场景配合 OS 证书与代理层签名校验。(Android Developers Blog)

适用:可离线 UI 组件、行业 SDK、可插拔图表/编辑器等,目标是提高破解成本 + 便于追责


“朋友说都过时了”?——哪些观念需要更新

  • ✅ 新增的“强信号”:DBSC、PST、(Android)WebView Media Integrity 这类环境/会话完整性信号是 2024–2025 年的主线;它们不是加密前端,而是让“盗用/批量滥用”更难与可溯。(Chrome for Developers)

  • ✅ 真正“保密算法”的路径仍然只有把东西放在你控制的机器上,而且现在能加码到机密计算 + 远端证明,这点相较几年前确实是“升级版”的硬保障。(Google 开发者博客)

  • ❌ 期望“前端出现不可破解的加密”:这在开放 Web 的执行模型下依旧不可实现,WEI 也不再是选项。(9to5Google)

给你一套快照式落地清单

  1. 产品拆分:把值钱逻辑全部移到 TEE 后端;前端只剩 UI 和最小胶水层。(Google 开发者博客)

  2. 调用安全

    • 登录/会话用 DBSC

    • 反滥用用 Private State Tokens

    • API 层用 短期签名 Token + 限流 + 异常监控。(Chrome for Developers)

  3. B 端/离线补丁:核心路径 WASM 化 + 公钥验签的 License + 水印;若在 Android WebView,再叠 Media Integrity。(Android Developers Blog)

  4. 法务与运营:EULA 限定用途与反编译、证据留存(构建哈希/访问日志/水印回溯)。

结论(直话直说)

  • “不可破解”的前端不存在,这点没被任何“最新技术”推翻。

  • “真正做到防护”,在 2025 年的现实做法是:机密计算 + 远端证明托管核心能力;浏览器侧用 DBSC/PST 加固账号与流量质量;必要时在 Android WebView 内用 Media Integrity 增强环境信号。

  • 如果你愿意,我可以按你的业务形态(纯 Web / WebView / Electron / B 端 SDK)给出具体的架构图与接口签名/验证示例,把这套组合拳细化到“可直接集成的清单”。