7

轻松隐私过去,安全地存储和传输机密信息需要安装专用软件。新的 Mega 可以在您的浏览器中即时透明地加密和解密您的数据。您掌握存储在云中的内容的密钥,而不是我们。

此报价来自新的 MegaUpload 文件托管服务的网站,该服务计划于本月 1 月 19 日推出。

作为一名网络开发人员,我自然对背后的技术感兴趣和好奇。

我所能找到的只是屏幕截图和声明,它们看起来很真实,数据真的永远不会让客户端未加密!

使用 AES 保护文件和传输。

每个客户端都有一个非对称密钥对,我只能猜测为什么,但我认为它将用于加密 AES 初始化向量和密钥,以供您要与之共享文件的其他客户端。

然而我的问题是这样的:

如何在技术上拦截文件上传/下载?

我知道 RSA 和 AES 都有在 javascript 中运行并且非常高效的加密算法。

但是似乎支持在文件系统内操作的唯一浏览器是 chrome。

数据如何从硬盘驱动器传输到客户端浏览器以进行加密?它如何从那里到达硬盘驱动器上的文件?

我不知道文件系统 API 之类的东西。甚至 html5 也只支持某种对象存储。

我想它对于某些浏览器插件或可能是一个 java 或 adobe air 小程序来说非常微不足道,但他们声称不会有需要安装的第 3 方软件之类的东西。

还有其他方法吗?

4

1 回答 1

7

如何在技术上拦截文件上传/下载?

你不拦截它。用户使用一个元素选择一个文件(或多个文件)<input type="file">,然后 JavaScript 读取文件输入的值并对其进行加密。上传可能会通过 Ajax 完成。

但是似乎支持在文件系统内操作的唯一浏览器是 chrome。

Chrome 是第一个实现文件系统API的,这与文件API不同。文件系统 API 管理沙盒文件系统(不是用户真正的操作系统文件系统);文件 API 从<input type="file">元素中读取文件。在大多数现代浏览器中,文件 API 具有更广泛的支持(但不是完美的支持)。

对于加密和上传,JavaScript 可以读取用户使用文件输入专门选择的文件,并通过 Ajax 将加密值发送到服务器。对于下载,浏览器可以执行资源的 Ajax 获取、解密并提示用户保存文件(例如,通过重定向到data:URI)。无需对文件系统进行编程访问。

于 2013-01-11T14:21:22.413 回答