3个不稳定版本
0.2.0 | 2023年7月4日 |
---|---|
0.1.1 | 2023年6月25日 |
0.1.0 | 2023年6月25日 |
#2382 in 密码学
107每月下载
用于 liserk-client
25KB
513 行
Liserk零知识数据库
介绍
该项目是一个针对安全通信和数据存储设计的零知识数据库系统。它由各种模块组成,协同工作以通过TCP在客户端和服务器之间建立安全通信,主要关注保护传输和存储的数据。
模块
证书机构
证书机构模块负责处理用于确保客户端和服务器之间通信完整性和真实性的证书。此模块生成、验证和管理用于安全交换的证书和密钥。
服务器
服务器模块负责监听来自客户端的连接。它处理客户端请求并做出相应响应。服务器确保只有授权客户端可以建立连接并交换数据,维护安全和数据完整性。
客户端
客户端模块用于连接到服务器。它可以向服务器发送请求并接收响应。客户端使用加密来确保传输的数据是安全的,并且无法被未经授权的第三方读取。
顺序保持加密(OPE)
此模块负责使用顺序保持加密(OPE)加密数据。OPE是一种允许在不解密的情况下比较加密数据的加密类型。此模块对于确保数据的机密性同时允许某些操作(如比较)至关重要。
共享
共享模块用于在不同模块之间共享公共数据结构和实用程序。这防止了代码重复,并确保模块之间的一致性。
测试
测试模块包含集成测试,以确保系统的各个组件正确协同工作。这些测试对于确保系统的可靠性和安全性至关重要。
通信协议
在此项目中使用的通信协议简单而有效,基于TCP构建。它不使用额外的层,因为传输的数据已经加密,从而确保其安全性。
该协议使用CBOR(简洁二进制对象表示)进行数据序列化,允许高效地编码数据。该协议使用枚举消息以及serde进行编码和理解所传输的内容。
第一个字节包含消息类型,接下来的四个字节表示消息大小,然后是实际的消息内容。
系统使用tokio处理同时的多重连接
零知识数据库
本项目的特色之一是实现了零知识数据库。这意味着服务器以这种方式存储数据,以至于它不知道存储数据的实际内容。这是通过加密和特定的协议实现的,允许客户端在不将数据暴露给服务器的情况下与数据交互。
这种方法特别适用于保护用户隐私和确保数据安全,尤其是在数据敏感且不应向服务提供商暴露的场景中。
一些构成EPO系统使用来源的文档
- Boldyreva, A.,Chenette, N.,Lee, Y.,& O'Neill, A. (2009). 顺序保持对称加密。在年度国际密码学技术理论与应用会议(第224-241页)。Springer,柏林,海德堡。
- Popa, R. A.,Redfield, C. M.,Zeldovich, N.,& Balakrishnan, H. (2011年6月)。CryptDB:通过加密查询处理保护机密性。在第二十三届ACM操作系统原理会议论文集(第85-100页)。
- Roche, D. S.,Aviv, A. J.,& Choi, S. G. (2017)。针对WPA企业身份验证的实用、有针对性的隐蔽攻击。在NDSS。
- Naveed, M.,Kamara, S.,& Wright, C. V. (2015年10月)。对属性保持加密数据库的推理攻击。在第22届ACM SIGSAC计算机和通信安全会议论文集(第644-655页)。
- Kerschbaum, F. (2007年4月)。频率隐藏顺序保持加密。在电子社会隐私研讨会论文集(第47-51页)。
- Boneh, D.,Lewi, K.,& Wu, D. J. (2015)。来自格的顺序保持加密。在年度国际密码学技术理论与应用会议(第172-193页)。Springer,柏林,海德堡。
依赖项
~6.5MB
~128K SLoC