6 个版本
0.2.4 | 2023年7月4日 |
---|---|
0.2.3 | 2023年7月4日 |
0.2.1 | 2023年6月25日 |
0.1.0 | 2023年6月20日 |
#1907 在 解析实现
33 每月下载量
72KB
1K SLoC
Liserk 零知识数据库
简介
本项目是一个专为安全通信和数据存储设计的零知识数据库系统。它包含各种模块,协同工作以通过 TCP 在客户端和服务器之间建立安全通信,主要关注保护传输和存储的数据。
模块
证书机构
证书机构模块负责处理用于确保客户端和服务器之间通信完整性和真实性的证书。此模块生成、验证和管理用于安全交换的证书和密钥。
服务器
服务器模块负责监听来自客户端的连接请求。它处理客户端请求并做出相应响应。服务器确保只有授权客户端才能建立连接并交换数据,维护安全和数据完整性。
客户端
客户端模块用于连接到服务器。它能够向服务器发送请求并接收响应。客户端使用加密确保传输的数据安全,防止未经授权的第三方读取。
有序加密 (OPE)
此模块负责使用有序加密 (OPE) 加密数据。OPE 是一种允许在不解密的情况下比较加密数据的加密类型。此模块对于确保数据机密性同时允许某些操作(如比较)至关重要。
共享
共享模块用于在不同模块之间共享公共数据结构和实用程序。这避免了代码重复并确保了模块之间的一致性。
测试
测试模块包含集成测试,确保系统的各个组件协同工作正确。这些测试对于确保系统可靠和安全至关重要。
通信协议
本项目使用的通信协议简单而有效,基于 TCP 构建。它不使用额外的层,因为传输的数据已经加密,确保其安全性。
本协议使用CBOR(简洁二进制对象表示)进行数据序列化,这使得数据的编码效率更高。该协议使用枚举类型Message以及serde进行编码和解析传输内容。
第一个字节包含消息类型,接下来的四个字节表示消息大小,然后是实际的消息内容。
系统使用tokio来同时处理多个连接
零知识数据库
本项目的一个显著特点是实现了零知识数据库。这意味着服务器以某种方式存储数据,使其不知道所存储数据的内容。这是通过加密和特定协议实现的,允许客户端与其数据交互,而不将其暴露给服务器。
这种方法特别适用于保护用户隐私和确保数据安全,特别是在数据敏感且不应暴露给服务提供商的情况下。
一些原始文档,这些文档是使用EPO系统的依据
- Boldyreva, A., Chenette, N., Lee, Y., & O'Neill, A. (2009). Order-preserving symmetric encryption. In Annual International Conference on the Theory and Applications of Cryptographic Techniques (pp. 224-241). Springer, Berlin, Heidelberg.
- Popa, R. A., Redfield, C. M., Zeldovich, N., & Balakrishnan, H. (2011, June). CryptDB: protecting confidentiality with encrypted query processing. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles (pp. 85-100).
- Roche, D. S., Aviv, A. J., & Choi, S. G. (2017). A practical, targeted, and stealthy attack against WPA enterprise authentication. In NDSS.
- Naveed, M., Kamara, S., & Wright, C. V. (2015, October). Inference attacks on property-preserving encrypted databases. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (pp. 644-655).
- Kerschbaum, F. (2007, April). Frequency-hiding order-preserving encryption. In Proceedings of the 2007 ACM workshop on Privacy in electronic society (pp. 47-51).
- Boneh, D., Lewi, K., & Wu, D. J. (2015). Order-preserving encryption from lattices. In Annual International Conference on the Theory and Applications of Cryptographic Techniques (pp. 172-193). Springer, Berlin, Heidelberg.
依赖关系
~12–20MB
~279K SLoC