Brave浏览器开始支持星际文件系统IPFS

由JavaScript主要创造者Brendan Eich所创立的Brave Software,利用Chromium网页浏览器及其Blink排版引擎,开发的浏览器Brave,宣布从Brave 1.19.x开始,添加支持星际文件系统(IPFS),这使Brave成为第一个深度集成IPFS的浏览器。

IPFS为一个用来创建分布式存储与共享文件的网络传输协议,能够让内容创作者,不需要付出高带宽成本,就能够发布内容。借由IPFS发布内容,可以获得地理分散群集网络的性能优势,用户之前查看的内容可以脱机访问,而且即便网络内容受到企业或是国家审查,通过IPFS网络仍然可以照常取用。

由于IPFS的支持,Brave桌面用户将可以利用内容散列,也就是内容识别码(Content Identifier,CID)来下载内容,与HTTPS不同的是,IPFS的内容没有特定的存储位置,IPFS网络中的每个节点,都是提供内容的潜在主机,当节点中没有请求的内容,该节点就会从大量对等节点中检索该内容,而检索到的内容,会在本地进行验证,因此也不需要第三方完整性验证。

而HTTPS则使用统一资源定位符(URL)来指定特定的内容位置,由于内容是由单一实体托管,因此很容易受到审查以及DDoS攻击的影响,而IPFS是借由统一资源识别码(URI)中的内容路径或是CID(Content Identifier)来识别内容,而非与HTTPS相同使用URL。

Brave 1.19.x开始让用户可以在浏览器的网址列,使用IPFS URI加载内容,在默认的情况,Brave会通过公共HTTP网关加载请求的URI,但也会让用户选择以本地端节点来解析IPFS URI(下图),在使用本地端节点的状态下,Brave会自动下载go-ipfs组件,并使用该节点路由之后的流量。用户不需要手动管理IPFS节点或是使用扩展组件,但可以选择安装IPFS Companion扩展组件,以使用建议的Brave托管节点。

使用IPFS与诸如HTTPS等传统协议,隐私和安全管理都不尽相同,通常浏览器使用同源政策(Same-Origin Policy,POS),将来源作为隐私和安全的边界,限制程序代码和不同域名资源的交互,但是利用IPFS加载网站时,Brave会改用CID作为来源边界,此外,在IPFS加载主要页面的时候,Brave就只允许通过IPFS加载子资源,页面能以自己的CID设置Cookie,但不能替另一个CID设置Cookie。

使用IPFS所带来的风险以及好处,根据Brave设置而有所不同,当用户将Brave配置为本地端IPFS节点,则访问IPFS内容时,Brave便会成为该内容的临时主机,IPFS节点拥有一个PeerID,这个PeerID可以在分布式散列表(DHT)中被查询到,其他人可以观察用户所发出的请求和提供的内容。而当用户设置Brave使用公共IPFS网关,则该网关可以查看用户通过IPFS请求加载的内容,而且可能提供造假内容。

官方提到,Brave支持IPFS的设计,能够最大程度减少对系统资源的影响,当用户将Brave配置成为本地端节点,只有在第一个IPFS URI被访问时,节点才会消极地被加载。系统管理员可以使用管理员政策,来完全禁用IPFS功能。