首页 » 科技 » 云中的自由和隐私:呼唤行动

云中的自由和隐私:呼唤行动

随着Web2.0的出现,Web应用程序变得越来越流行,这篇文章对自由和开源软件(FOSS)如何应对这种趋势给出了详细的建议。

Tags:Web | software | free

这是一个关于自由的帖子,保存自己的数据的自由,以及运行软件的自由。你在使用Web应用程序的时候也应当能够得到和享受这种自由。

如果你是自由软件运动的支持者,你可以很容易的选择Gimp代替Photoshop,或者用Firefox代替Internet Explorer。你也可以通过使用各种可以获得的加密工具(GPG,TrueCrypt,……)来保护自己的隐私。但是对于Web应用程序,情况就变得复杂了。

Web应用程序有很多好处(随处访问,无缝升级,可靠存储,……),但是用户却往往会失去学习、修改和讨论那些驱动Web应用程序的代码的自由。

不仅如此,我们还被迫将自己的数据(书签、文本文档、聊天记录、财务信息,……还有健康记录)托付给Web应用程序的提供商,这些数据已经不再保存在我们自己的硬盘上了,而是存储在“云中”某处。

必须在便捷和自由之间做出选择,这不是一种好的处境。

让我说得更明白一些:Web应用程序很棒,我很喜欢它们。但是我认为是应该争取更多自由和隐私的时候了。这里有一个同时达到两种结果的三步计划。

1. 选择AGPL

为什么AGPL很重要?因为它意味着:如果你是应用服务提供商并且你的服务是基于采用AGPL许可证的软件,你必须对使用该服务的所有人公开自己的源码!FSF指南建议在Web应用程序的界面上添加一个"Source"链接来指引用户到代码的归档。

(不要问我为什么自由软件社区解决这个问题花了那么长时间!)

行动点

  • 帮助Clipperz组装一个“AGPL套件”:一个提供满足常见需求的工具的Web应用程序集合。

这个套件应该包括:文字处理器,Web聊天程序,密码管理器,Wiki,地址簿,计划列表,日历,书签管理,……每个Web 程序都必须以AGPL许可证发布!因此忘掉Google,del.icio.us,Plaxo,Meebo……至少在它们换用AGPL之前。

现在已经有一些候选者(Ajax Chat作为Web聊天程序,当然Clipperz作为密码管理程序),但是这个套件中的大多数位置仍然空缺!

  • 加入到Clipperz努力向开源Web项目维护者传播AGPL好处的行列中来。让他们专用AGPL。

2. 添加0知识辅助

大部分Web开发者和用户仍然忽略了基于浏览器的加密算法带来的在Web应用程序引入传统软件的隐私和安全性的机会。

在Clipperz,我们设想了一种新的称作“0知识Web应用程序”的结构模型(这里有更细致的描述),它结合了host-proof管理和一系列关注于“一无所知”的规则。

这个名字既是对加密算法(“0知识证明”是一种标准加密协议)的致敬,也是对服务提供商和用户之间特定关系的一种约定。管理Web应用程序的服务器可以对其用户一无所知,甚至不知道他们的用户名!Clipperz使用这种模型来实现它的在线密码管理。

行动点

  • 为“AGPL套件”的每个组件采用0知识技术。将一个现有的Web应用程序转换为0知识结构并不容易,但是在Clipperz,我们对这个问题有着相当丰富的经验,我们也很愿意分享自己的知识和代码。

我们最终将可以尽情的使用一个不能读取我们文档的基于Web的文字处理器,一个真正远离记录的网络聊天程序,一个我们可以在那儿快乐的存储有用信息的Wiki,等等。

  • 建立和维护一个管理整个“AGPL套件”的ASP列表。这对那些尊重自由软件和隐私,但是没有在自己的服务器运行Web应用程序所必需的技能和资源的人来说将是一个很有用的参考。

3. 构建一个更智能的浏览器

我们几乎要完成了,但是我们仍然需要在一个更加灵活和安全的环境下向用户提供Web应用程序。事实上,有了0知识Web应用程序的架构,服务器典型的只执行下面任务:

  • 加载Javascript代码到用户的浏览器(实际的程序);
  • 可选地验证用户(使用一种0知识协议);
  • 获取并保存用户浏览器请求的加密过的数据。

自由软件意味着对运行在自己电脑上的一切拥有完全控制。因此产生了两个问题:

  • 怎样才能执行修改过的Javascript代码而不是由服务器加载的?
  • 怎样才能知道服务器加载到我的浏览器的Javascript代码的改变?

我最近极其荣幸的跟那位Richard Stallman交流了关于这些问题的想法,他对两个问题都提出了很聪明的解决办法。

Stallman建议为浏览器增加一项新功能,允许用户说:“当你得到URL X,把URL Y的Javascript当作是从URL X而来的那样使用。”如果用户调用了这个功能,他就可以运行他的Javascript拷贝并且仍然可以和管理Web应用程序的服务器交换数据。

一个有这种功能的浏览器也可以很容易的验证URL X的Javascript是否跟保存在URL Y的Javascript相同。如果用户信任URL X当前的Javascript代码发布,他可以拷贝一份到URL Y,这样无论发生任何改变他都能得到提示。

这种解决方案保护用户不受那些在浏览器中不知不觉运行的,窃取他的数据,破坏整个0知识架构的恶意代码的侵害。

行动点

  • 为主流自由浏览器(Mozilla,Webkit,……)编写实现Stallman的方案的附加软件。
  • 宣传在GNU/Linux发行版中加入“AGPL套件”和上述加强过的浏览器。

如何贡献

  • 继续阅读这个博客,我会在这里发布常规更新。
  • 发送你的评论和建议。
  • 写进博客、论坛发贴来传播本文。
  • 捐款。

最后但是同样重要的一点:你想怎样命名这个伟大的工程?

在评论里告诉我们!

【本文翻译仅为外语学习及阅读目的,原文作者个人观点与译者及译言网无关】

0

返回正文评论