LibrePass/LibrePass-Server

GitHub: LibrePass/LibrePass-Server

LibrePass Server 是一个基于 Spring Boot 和 Kotlin 构建的密码管理器云端后端,提供端到端加密、跨设备同步和安全的 RESTful API 服务。

Stars: 23 | Forks: 1

# LibrePass Server LibrePass Server 是 LibrePass 密码管理器的云端后端基础设施,构建时重点关注**安全性、可扩展性和可靠性**。该服务器提供 API、数据库服务和同步功能,能够支持跨多个设备的安全密码管理。 ## ⚠️ 项目状态 本项目是一个**业余项目**,为我提供了极佳的学习体验。它教会了我以下方面的宝贵经验: - 基于 Spring Boot 的**后端架构**和微服务模式 - 后端系统中的**密码学与安全**实现 - 针对敏感数据存储的**数据库设计**和优化 - **RESTful API 设计**和身份验证机制 - 包含共享库的**多模块项目结构** - **Docker 容器化**和部署策略 - **云端同步**协议与冲突解决 虽然该项目不再维护,但其代码库依然是这些学习成果的证明,并可作为安全后端密码管理系统的参考实现。 ## 🔐 核心功能 - ✅ **端到端加密** — 所有密码在传输前均在客户端进行加密 - ✅ **安全的 API 身份验证** — 基于 token 的身份验证与数据库存储 - ✅ **密码库管理** — 创建、读取、更新和删除加密的密码库 - ✅ **跨设备同步** — 在多个设备间同步加密数据 - ✅ **用户账户管理** — 注册、登录和账户设置 - ✅ **数据库持久化** — 通过 Spring Data JPA 实现可靠的存储 - ✅ **Docker 支持** — 开箱即用的容器化应用程序 - ✅ **RESTful API** — 为客户端应用程序提供简洁且文档完善的 API endpoint - ✅ **TOTP 支持** — 通过基于时间的一次性密码进行双因素身份验证 - ✅ **离线同步** — 通过服务器协调处理客户端的离线更改 ## 🛠️ 技术栈 ### 框架与平台 - **Spring Boot** — 现代的 Java/Kotlin Web 框架 (v3.3.2) - **Kotlin** — 用于类型安全开发的主要语言 (v2.0.0) - **Java** — JDK 21 (通过 Eclipse Temurin) ### 数据与安全 - **Spring Data JPA** — 数据库抽象与 ORM - **密码学** — 用于加密/解密的自定义 libcrypto 库 - **GSON** — JSON 序列化与反序列化 ### 部署 - **Docker** — 使用多阶段构建生成优化的容器镜像 - **Maven** — 项目构建与依赖管理 ## 📋 项目结构 本项目采用多模块 Maven 结构进行组织: ``` LibrePass-Server/ ├── server/ # Spring Boot REST API server ├── client/ # Client library for interacting with APIs ├── shared/ # Shared utilities and models ├── docker-compose.yml ├── Dockerfile # Multi-stage Docker build └── pom.xml # Parent POM configuration ``` ### 模块 - **server** — 包含 REST endpoint 和业务逻辑的主 Spring Boot 应用程序 - **client** — 供客户端与 LibrePass Server API 交互的库 - **shared** — 跨模块使用的共享代码、模型和实用程序 ## 📚 文档 有关详细的设置说明、API 文档和部署指南,请参阅 [LibrePass 文档](https://github.com/LibrePass/LibrePass-Docs/tree/main/docs)。 ## 🔐 安全考量 该后端实施了多项安全措施: 1. **端到端加密** — 密码在传输到服务器之前已加密 2. **安全的身份验证** — 使用数据库存储的 token 进行请求验证 3. **HTTPS 通信** — 所有 API 流量在传输过程中均已加密 4. **密码哈希** — 使用行业标准算法对用户凭证进行哈希处理 5. **无明文存储** — 数据库中绝不以未加密方式存储密码 6. **输入验证** — 验证并清理所有 API 输入 7. **速率限制** — 防御暴力破解和 DOS 攻击 ## 📄 许可证 本项目基于 **GNU Affero General Public License v3.0** (AGPL-3.0) 授权 ## 🔗 相关项目 - **[LibrePass Android](https://github.com/LibrePass/LibrePass-Android)** — Android 移动端客户端 ## 💡 我的收获 这个业余项目教会了我以下方面的宝贵经验: ### 后端开发 - ✅ 构建具有多模块架构的可扩展 Spring Boot 应用程序 - ✅ RESTful API 设计原则与最佳实践 - ✅ 用于数据库抽象和 ORM 的 Spring Data JPA - ✅ 依赖注入和控制反转模式 - ✅ 异常处理和错误响应标准化 - ✅ API 版本控制和向后兼容性 ### 密码学与安全 - ✅ 在后端系统中实现端到端加密 - ✅ 安全的密码处理和哈希策略 - ✅ Token 生成和基于数据库的验证 - ✅ 用户身份验证和授权流程 - ✅ HTTPS/TLS 通信安全 - ✅ 保护传输中和静态的敏感用户数据 - ✅ 速率限制和 DOS 保护机制 ### 数据库与持久化 - ✅ 针对加密数据的关系型数据库设计 - ✅ JPA 实体关系和约束 - ✅ 数据库迁移策略 - ✅ 索引和查询优化 - ✅ 处理并发访问和事务 ### DevOps 与部署 - ✅ 用于优化镜像的多阶段 Docker 构建 - ✅ 用于本地开发和测试的 Docker Compose - ✅ 环境配置和密钥管理 - ✅ 容器化应用程序部署模式 ### 架构与设计模式 - ✅ 微服务和模块化架构 - ✅ 云同步协议 - ✅ 数据一致性和冲突解决 - ✅ 关注点分离和 SOLID 原则 - ✅ 后端服务的测试策略 本项目是一次全面的学习体验,将实际的后端开发与现实世界中的安全挑战结合在一起。它让我深入了解了安全的云服务是如何运作的,以及保护敏感用户凭证所涉及的复杂性。 **怀着 ❤️ 构建,作为一次关于后端开发与安全的学习体验**
标签:Docker, RESTful API, Spring Boot, 后端开发, 安全防御评估, 密码管理器, 提示词优化, 端到端加密, 请求拦截