V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
zhng920823

既然有 SSL pinning, 那么有没有针对静态资源尤其是 js 脚本的 pinning

  •  
  •   zhng920823 · Aug 21, 2024 · 1976 views
    This topic created in 617 days ago, the information mentioned may be changed or developed.

    参考前文 供应链投毒后,我们的选择还剩下哪些?

    最近做了个匿名加密可 WebRTC 视频的聊天室

    填昵称即可进的匿名聊天室

    • 这个聊天室的一大特点就是, 前端加密后再发送, 服务端看不聊天内容.
    • 而且前端代码量不大, 用户可借用工具或 AI 分析验证这个说法.
    • 但是如果需要长期保持信任, 那么需要验证前端代码从上次检验过后没有被修改过.
    • 那个前端只通过 websocket 和后台交互, 如果能保证前端没有被修改, 能保证通信是安全的.
    • 这个验证工作能否由浏览器或插件自动进行呢?

    如果这个特性能被浏览器标准化, 那么基于浏览器的应用能更好发展

    能成为互联网除了 TLS 外最基础的一个信任环节, 一个人/公司开始可能不坏, 但是后面会变坏.

    毕竟如文章开头提到的那件事, 现在对 cdn 和公共资源提供者无底线信任是最薄弱的环节.

    • 这个东西就是类似 script 标签的 integrity 属性, 但是工作在更底层的部分.
    7 replies    2024-08-21 19:07:54 +08:00
    0o0O0o0O0o
        1
    0o0O0o0O0o  
       Aug 21, 2024 via iPhone   ❤️ 2
    不记得是第几次复制粘贴这个链接
    https://news.ycombinator.com/item?id=39436238

    去年吵翻天的 WEI 风波证明了人们不接受这样的东西,我认为不用抱这种期待了
    https://en.wikipedia.org/wiki/Web_Environment_Integrity

    做应用的话可以参考 fb 的做法,相当于信任 Google 和 Mozilla 的市场这样的分发渠道
    https://chromewebstore.google.com/detail/code-verify/llohflklppcaghdpehpbklhlfebooeog
    zhng920823
        2
    zhng920823  
    OP
       Aug 21, 2024
    @0o0O0o0O0o #1 大佬果然博学
    qweruiop
        3
    qweruiop  
       Aug 21, 2024
    wei 已经不行了,现在最好的办法就是信任 Google/Apple 的分发渠道啦,web 的东西就算了吧。。。
    iqoo
        4
    iqoo  
       Aug 21, 2024
    全站静态资源 Hash 锁定,几年前就写过: https://github.com/EtherDream/freecdn/blob/master/docs/feature/README.md#%E5%85%A8%E7%AB%99-Hash-%E6%A0%A1%E9%AA%8C

    都快忘了这个项目了,好久没更新。
    0o0O0o0O0o
        5
    0o0O0o0O0o  
       Aug 21, 2024
    @iqoo #4 SRI 或者说目前浏览器网页的所有方案都满足不了 OP 的需求,毕竟只是 Subresource ,也就是你提到的第三方站点,OP 设想中应用则是连自己的站点也无法信任
    zhng920823
        6
    zhng920823  
    OP
       Aug 21, 2024
    @iqoo #4
    @0o0O0o0O0o #5

    只是全站静态资源 hash 固定还不够 也不够灵活

    还要要求原始的代码够简单, 不说能完全让人读懂, 但至少能粗略审核保证没有主观恶意或漏洞/后门

    要保证从服务器动态获取的只有数据, 不能有执行代码, eval 和动态加 script 标签肯定不行.
    (注: 我的 webd 网盘的早期版本就是远程加载 js 文件, 当时想的是将来灵活加广告.
    近期版本都改成了请求远程数据, 解析成链接加上去, 即便服务器被攻陷了, 用户也很安全.)

    如果浏览器发现网站代码更新了, 做一次简单的分析, 改颜色改大小改文字图片这种, 可默认放过.

    js/wsam 代码则用 AST 语法树分析, 给高级用户们显示个比较直观的 diff 代码, 给麻瓜们显示这次修改的风险等级.

    这个原则下的网站/APP 需要做到真正小而美, 一坨坨的东西肯定不行.

    Q: 如果依赖了太多东西整体庞大分析起来费劲怎么办?
    A: 被依赖的东西做成标准模块, 带上签名, 避免重复分析.

    下面的贴提到一些杀毒软件在做类似的工作, 但不是标准化行为.
    /t/1064948 火绒 SSL 流量嗅探?

    我觉得以后浏览器应该考虑这个东西, 毕竟现在浏览器已经是操作系统了.
    如果有认识 chrome 或 ladybird 浏览器的大佬, 可以提一下这个想法.
    0o0O0o0O0o
        7
    0o0O0o0O0o  
       Aug 21, 2024
    > 还要要求原始的代码够简单, 不说能完全让人读懂, 但至少能粗略审核保证没有主观恶意或漏洞/后门

    这是优点,但我认为和要讨论的浏览器提供的特性没有太大关系,因为这样的特性应当是通用的,而且我对未经训练的人士能审计出精心构造的漏洞持怀疑态度。这个特性需要确保应用在被专业机构审计后,用户一定可以原封不动地拿到审计过的版本,浏览器网页欠缺这个保障。

    > 如果有认识 chrome 或 ladybird 浏览器的大佬, 可以提一下这个想法

    它们是开源项目,你可以自己去提 proposal 。但我建议先了解 WEI 风波期间对它的那些激烈批评,了解它为什么广受批评:浏览器是一个“通用”的运行环境,你当然可以借助这个特性保护用户的安全,但别人也可以借助这个特性剥削用户。我认为 Chromium 数年内是没机会再(往所有平台)加入这类特性了,ladybird 的定位则让它天然抵制这类特性。我坚持我的观点:不要在**浏览器网页**中解决这些问题,既不要试图在现在用各种思路实现(也不可能实现),也不要期待未来会增加这样的特性。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2413 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:53 · PVG 23:53 · LAX 08:53 · JFK 11:53
    ♥ Do have faith in what you're doing.