这是一个关于自由的帖子,保存自己的数据的自由,以及运行软件的自由。你在使用Web应用程序的时候也应当能够得到和享受这种自由。
如果你是自由软件运动的支持者,你可以很容易的选择Gimp代替Photoshop,或者用Firefox代替Internet Explorer。你也可以通过使用各种可以获得的加密工具(GPG,TrueCrypt,……)来保护自己的隐私。但是对于Web应用程序,情况就变得复杂了。
Web应用程序有很多好处(随处访问,无缝升级,可靠存储,……),但是用户却往往会失去学习、修改和讨论那些驱动Web应用程序的代码的自由。
不仅如此,我们还被迫将自己的数据(书签、文本文档、聊天记录、财务信息,……还有健康记录)托付给Web应用程序的提供商,这些数据已经不再保存在我们自己的硬盘上了,而是存储在“云中”某处。
必须在便捷和自由之间做出选择,这不是一种好的处境。
让我说得更明白一些:Web应用程序很棒,我很喜欢它们。但是我认为是应该争取更多自由和隐私的时候了。这里有一个同时达到两种结果的三步计划。
1. 选择AGPL
为什么AGPL很重要?因为它意味着:如果你是应用服务提供商并且你的服务是基于采用AGPL许可证的软件,你必须对使用该服务的所有人公开自己的源码!FSF指南建议在Web应用程序的界面上添加一个"Source"链接来指引用户到代码的归档。
(不要问我为什么自由软件社区解决这个问题花了那么长时间!)
行动点
这个套件应该包括:文字处理器,Web聊天程序,密码管理器,Wiki,地址簿,计划列表,日历,书签管理,……每个Web 程序都必须以AGPL许可证发布!因此忘掉Google,del.icio.us,Plaxo,Meebo……至少在它们换用AGPL之前。
现在已经有一些候选者(Ajax Chat作为Web聊天程序,当然Clipperz作为密码管理程序),但是这个套件中的大多数位置仍然空缺!
2. 添加0知识辅助
大部分Web开发者和用户仍然忽略了基于浏览器的加密算法带来的在Web应用程序引入传统软件的隐私和安全性的机会。
在Clipperz,我们设想了一种新的称作“0知识Web应用程序”的结构模型(这里有更细致的描述),它结合了host-proof管理和一系列关注于“一无所知”的规则。
这个名字既是对加密算法(“0知识证明”是一种标准加密协议)的致敬,也是对服务提供商和用户之间特定关系的一种约定。管理Web应用程序的服务器可以对其用户一无所知,甚至不知道他们的用户名!Clipperz使用这种模型来实现它的在线密码管理。
行动点
我们最终将可以尽情的使用一个不能读取我们文档的基于Web的文字处理器,一个真正远离记录的网络聊天程序,一个我们可以在那儿快乐的存储有用信息的Wiki,等等。
3. 构建一个更智能的浏览器
我们几乎要完成了,但是我们仍然需要在一个更加灵活和安全的环境下向用户提供Web应用程序。事实上,有了0知识Web应用程序的架构,服务器典型的只执行下面任务:
自由软件意味着对运行在自己电脑上的一切拥有完全控制。因此产生了两个问题:
我最近极其荣幸的跟那位Richard Stallman交流了关于这些问题的想法,他对两个问题都提出了很聪明的解决办法。
Stallman建议为浏览器增加一项新功能,允许用户说:“当你得到URL X,把URL Y的Javascript当作是从URL X而来的那样使用。”如果用户调用了这个功能,他就可以运行他的Javascript拷贝并且仍然可以和管理Web应用程序的服务器交换数据。
一个有这种功能的浏览器也可以很容易的验证URL X的Javascript是否跟保存在URL Y的Javascript相同。如果用户信任URL X当前的Javascript代码发布,他可以拷贝一份到URL Y,这样无论发生任何改变他都能得到提示。
这种解决方案保护用户不受那些在浏览器中不知不觉运行的,窃取他的数据,破坏整个0知识架构的恶意代码的侵害。
行动点
如何贡献
最后但是同样重要的一点:你想怎样命名这个伟大的工程?
在评论里告诉我们!
【本文翻译仅为外语学习及阅读目的,原文作者个人观点与译者及译言网无关】