ZeroDB 是一个端到端的加密数据库,它是基于 ZODB 使用 Python 实现的,在设计时大量借鉴了 Django ORM 和 SQLAlchemy 的经验。ZeroDB 让应用程序能够查询加密的数据,让开发人员能够更容易地开发安全性更好、更能保证隐私的应用程序。最近,该数据库宣布开源,代码托管到了GitHub 上,目前开源的是Python 实现,后续还会开源一个JavaScript 客户端。
对于ZeroDB,数据能被存储到不受信任、甚至是没有暴露加密密钥的数据库服务器上。客户端负责数据库逻辑,数据的加密、解密和压缩都发生在客户端,服务器端对数据一无所知,无论是结构还是顺序。客户端能够对加密数据执行远程查询,不需要下载它们,也没有过多的性能损失。另外,客户端还有一个可调节的缓存,它存储了数据结构中最常用的那部分,极大地提高了查询的速度。
ZeroDB 提供了一个 Python egg 包zerodb-0.91.1-py2.7.egg
,用户能够使用easy_install
命令安装它。在 server 目录下,ZeroDB 提供了运行服务器和管理用户的 Python 脚本,其目录结构如下:
conf/ authdb.conf server.zcml db/ manage.py mkpub.py runserver.py
其中,authdb.conf 配置文件包含了数据库默认的管理用户,这些管理用户能够创建、删除其他用户,或者更改其他用户的公共密钥。server.zcml 脚本用于设置服务器的参数,manage.py 脚本用于用户管理,mkpub.py 脚本用于创建安全密钥,runserver.py 脚本用于启动服务器。
另外,ZeroDB 还提供了一个 API 服务器,要启动它,只要导航到api_server
目录并运行python api_server.py
命令即可。如果想要了解更多与 ZeroDB 相关的信息,请查看项目博客。
感谢魏星对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。
评论