[关闭]
@ensis 2015-06-15T13:46:18.000000Z 字数 2231 阅读 1494

ShadowCrypt: Encrypted Web Applications for Everyone


发表:CCS'14
作者单位:UC Berkeley(Dawn Song etc.), University of Mariland(Elaine Shi)


摘要

本文提出了一个叫做ShadowCrypt的方案,可以在不信任网络应用其他部分的前提下,将用户的输入加密后在网络上传输。

背景

目前,用户都面临隐私扩散问题。网络应用程序处理用户的数据,但是用户对其数据却没有太大的控制权,在提交给应用程序后,便无法控制谁能够访问、修改那些数据。

一种可行的解决方法是用户将提交给网络应用的数据加密,解密密钥只提供给用户信任的实体。但这类方案很少被广泛采用,主要是需要应用的重写,在部署和可用性上都存在困难。此外,应用重写也就意味着控制权仍在开发者手上。

因此,需要一种安全、可用、控制权在用户手上的加密网络应用数据的方案。Virtu公司就做了这样的事情,他们提供了一个浏览器插件,用于电子邮件加密,像Gmail等服务提供商便无法看到明文信息。但是这只算是一种针对于单一应用解决方案,无法用于其他网络应用。

本文作者提出ShadowCrypt,一个通用的加密网络应用数据的解决方案。

问题和方法概述

arch
一般来说,对于一个典型的web应用,服务器端包括数据库和前端,客户端是一个web浏览器,将HTML转换成DOM(应用UI的树形表示),用户通过DOM与应用进行交互,HTML中还包括JS,用户通过DOM与JS进行交互。

所有加密web应用数据的方案,都是试图减少可以访问明文数据的代码量,在一些检查点上保证不该访问到明文的代码的确不能访问到。图1中的a,b,c三点就是检查点,在检查点左边的代码只能访问到加密数据,右边的代码就是应用的信任计算基(Trusted Computing Base,TCB)。

ShadowCrypt

shadowcrypt
如图2所示,用户与页面正常交互,ShadowCrypt无缝地将Shadow DOM中的明文数据替换为页面中的加密数据,令ShadowCrypt JS运行在浏览器扩展提供的隔离环境中,并将可跨越Shadow DOM和DOM的JS对象列表设为空之间,此外,键盘敲击事件可以穿过DOM和Shadow DOM之间的边界,因此ShadowCrypt JS还要保证给Shadow DOM的输入不会触发应用程序的listener。

Example

example

性能评估

performance
测试对象
obj
表2是使用了ShadowCrypt后,主要功能还完好保留的应用。主要影响的功能包括目标营销(广告)、富文本输出、应用实现的数据共享(相反只有与用户共享了密钥的用户才能共享数据)

总结

本文提出了一个叫做ShadowCrypt的系统能够,透明地将web应用的文本转为加密文本,与之前的工作相比,它不需要信任web应用的任何部分,相反,它将用户数据的控制权交还给用户,只有共享了密钥的实体才能看到明文数据。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注