Kyle8973/Daemon-Vault
GitHub: Kyle8973/Daemon-Vault
Daemon Vault 是一个基于 MEN 栈的数字证据管理系统,通过 SHA-256 哈希、AES-GCM 加密及不可变审计日志保障证据完整性与合规性。
Stars: 0 | Forks: 0
## 🛡️ Daemon Vault: 数字证据管理系统 (DEMS)
**开发者:** Kyle ([@Kyle8973](https://github.com/Kyle8973))
**学术背景:** 网络安全与数字取证理学士(荣誉)(计算项目 / 学位论文)
## 📖 概述
Daemon Vault 是一个零预算、取证可靠的 DEMS,保证不可否认性、严格的基于角色的访问控制 (RBAC) 和数学证据完整性。它在应用层直接强制执行首席警官协会 (ACPO) 数字取证原则,为资源受限的调查团队实现安全证据存储的普及化。
### ⚡ 核心取证能力
* **🔐 加密摄取:** 文件摄取后立即在服务器端计算 **SHA-256** 哈希值。
* **📦 安全信封加密:** 所有数字证据均使用 **AES-GCM** 进行静态加密。主解密密钥严格隔离在易失性内存中。
* **📜 不可变监管链:** 仅追加的 MongoDB 集合 (`caselogs`, `systemlogs`) 确保不可否认性(ACPO 2012 原则 3)。不暴露删除/更新 API 路由。
* **🛡️ 严格访问控制:** 在 API 和 UI 层面均强制执行基于角色的访问控制 (RBAC)(经理、贡献者、查看者)。
* **📄 法律报告:** 根据聚合的审计日志自动生成可被法庭采纳的 PDF 监管链报告。
## 🛠️ 技术栈
* **运行时:** [Node.js](https://nodejs.org/)
* **数据库:** [MongoDB Community](https://www.mongodb.com/)
* **前端:** 原生 HTML5 / CSS3 / JavaScript
* **部署:** 本地 Node.js 服务器
## 🚀 安装与设置
### 1. 前置条件
Daemon Vault 旨在本地运行。请确保您的主机上安装了以下软件(首选 Windows x86):
* **Node.js**(v18.x 或更高版本)
* **MongoDB Community**(v7.0 或更高版本)作为本地服务运行在端口 `27017` 上。
### 2. 获取源代码
```
git clone https://github.com/Kyle8973/Daemon-Vault.git
cd Daemon-Vault
```
### 3. 安装依赖项
```
npm install
```
### 4. 环境配置
找到项目根目录下的 `.env.example` 文件,并将其重命名/复制为 `.env`。配置以下变量:
```
# Server Configuration
PORT=3000
# Database Connection
MONGODB_URL=mongodb://localhost:27017/daemon_vault
# Session Security (Login System)
# Replace with a long random string of text
SESSION_SECRET=
# Allow User Registration (true / false)
DISABLE_REGISTRATION=false # Set To True To Disable
# Security: Login Rate Limiting
RATE_LIMIT_MAX_ATTEMPTS=5
RATE_LIMIT_WINDOW_MINUTES=5
RATE_LIMIT_BLOCK_MINUTES=1
# DB Log Configuration
ENABLE_DB_LOGS=true
# How long to keep logs in seconds?
# 3600 = 1 Hour
# 86400 = 1 Day
# 604800 = 1 Week
# 0 = Never Delete
LOG_RETENTION_SECONDS=172800 # 2 Days
```
## 🔑 运行应用程序
### 主解锁密钥
为了确保绝对的加密唯一保管权,Daemon Vault 在首次运行时会生成一个动态 **主解锁密钥**。
1. 启动服务器:
```
npm start
```
2. **停止并阅读控制台:** 服务器将输出一个 32 字符的主解锁密钥。在控制台清除之前,**您只有 10 秒钟的时间复制并安全存储此密钥**。
3. _警告:如果此密钥丢失,您将永久失去对保险库中所有加密数据的访问权限。_
### 访问系统
一旦服务器运行且主解锁密钥已通过控制台提示输入,请导航至:
```
http://localhost:3000
```
创建您的初始账户,登录,并可选择更新您的 `.env` 文件以设置 `DISABLE_REGISTRATION=true` 来加固周边安全。
## 👥 角色权限参考 (RBAC)
| 操作 | 经理 | 贡献者 | 查看者 |
|-------------------------------------|:-------:|:----------:|:------:|
| 添加用户 / 管理现有案件用户 | Yes | No | No |
| 上传证据文件 | Yes | Yes | No |
| 验证证据文件完整性 | Yes | Yes | Yes |
| 查看 / 下载证据文件 | Yes | Yes | Yes |
| 删除证据文件 | Yes | No | No |
| 生成完整案件 / 单个文件 PDF| Yes | Yes | Yes |
## 🛑 故障排除
- **服务器启动时出现 `MongoNetworkError`:** MongoDB 未运行。打开 `services.msc` 并启动 MongoDB 服务。
- **启动时出现 `Cannot find module`:** 缺少依赖项。从项目目录运行 `npm install`。
- **主密钥丢失:** 如果您正在测试并且丢失了密钥,您必须通过 MongoDB Compass 删除 `daemon_vault` 数据库并重新启动服务器以生成新密钥(注意:这将永久删除所有现有数据)。
_**免责声明:** 本仓库包含的软件 artefact 仅作为大学学位论文项目的一部分而开发。它是一个**概念验证**,并**不打算部署**在任何现实的数字取证环境中。_
_该软件**不予维护**,我对本项目的任何使用、托管或部署**不承担任何责任**,包括将其用作数字证据管理系统 (DEMS) 或在任何操作环境中的使用。使用本软件的风险完全由您自行承担。_
标签:ACPO原则, AES-GCM, DEMS, DNS解析, GNU通用公共许可证, MEN栈, MITM代理, MongoDB, Node.js, PDF报告生成, RBAC, SHA-256, TruffleHog, 不可变日志, 云存储安全, 加密存储, 取证合规, 取证工具, 司法鉴定, 哈希校验, 基于角色的访问控制, 学术论文, 安全助手, 审计日志, 开源项目, 数字取证, 数据加密, 数据可视化, 数据泄露, 本地部署, 权限管理, 模型越狱, 毕业设计, 法庭报告, 电子取证, 电子证据, 网络安全, 网络安全审计, 网络扫描, 自动化脚本, 自定义脚本, 证据管理系统, 链式保管, 防篡改, 隐私保护, 零预算, 非否认性