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, 不可变日志, 云存储安全, 加密存储, 取证合规, 取证工具, 司法鉴定, 哈希校验, 基于角色的访问控制, 学术论文, 安全助手, 审计日志, 开源项目, 数字取证, 数据加密, 数据可视化, 数据泄露, 本地部署, 权限管理, 模型越狱, 毕业设计, 法庭报告, 电子取证, 电子证据, 网络安全, 网络安全审计, 网络扫描, 自动化脚本, 自定义脚本, 证据管理系统, 链式保管, 防篡改, 隐私保护, 零预算, 非否认性