PassIt 1.25.0 介绍与选型指南

PassIt 自托管密码管理器的项目身份、零知识加密架构、功能边界与同类量化选型对比,与 Passbolt 严格区分;信息溯源官方仓库,查询日期 2026-10-24。

PassIt密码管理自托管安全2026/10/24

PassIt 1.25.0 介绍与选型指南

目标:讲清自托管密码管理器 PassIt 的项目身份、零知识加密架构、功能边界与同类选型差异,帮助读者判断"要不要用 PassIt";本文全部信息来自官方仓库与官方站点联网溯源(查询日期 2026-10-24),不含本地实测数据。

项目身份速览:PassIt 是 Burke Software and Consulting 开发的开源自托管密码管理器,源码托管在 GitLab(不是 GitHub),前后端均为 AGPL-3.0 许可,当前处于"维护模式"(不再接受新功能,但持续发布安全修复),最新稳定版 1.25.0 发布于 2026-10-16。注意:PassIt 与本平台已有专栏的 Passbolt 是两个完全不同的项目,名字相似但架构、技术栈、许可与商业形态均不同,选型时切勿混淆。

一、环境信息

本文是纯联网溯源的认知篇,未做任何本地部署实验;溯源环境与信息来源如下:

  • 溯源日期:2026-10-24
  • 官方站点:passit.io(含安装指南 /install/、安全模型页 /security-model/)
  • 后端源码仓库:gitlab.com/passit/passit-backend(GitLab API 可匿名查询)
  • 前端源码仓库:gitlab.com/passit/passit-frontend
  • 项目主页仓库:gitlab.com/passit/passit
  • 镜像发布:Docker Hub passit/passit(stable 标签);GitLab Container Registry registry.gitlab.com/passit/passit-frontend(精确版本标签)
  • 版本与提交信息:GitLab API repository/commits、repository/tags、registry/repositories 接口(查询日期 2026-10-24)
  • 社区数据:GitLab 项目接口 star_count 字段、shields.io GitHub star 徽章(查询日期 2026-10-24)

💡 说明:PassIt 的"最新稳定版"以前端仓库的 Git tag 为准(前后端同日协同发版);Docker Hub 上的 stable 标签更新滞后于 GitLab Registry 的精确版本标签,选型时以 GitLab Registry tag 为准(详见《PassIt 1.25.0 Docker Compose 部署指南》镜像选型一节)。

二、软件概述

2.1 项目定位与发展沿革

Passit 官网(passit.io)对自己的定位是"Peace of mind for passwords"——一个在任意设备的浏览器里就能使用的密码管理器。项目由美国 Burke Software and Consulting(burkesoftware.com)开发并维护,自咨询业务收入自筹资金,没有风险投资背景。首次发布可追溯到 2016 年(后端仓库最早 tag v0.1.0 为 2017-03,官网与 Awesome-Selfhosted 收录时间均为 2016-2018 年间,来源:project-awesome.org、GitLab tags,查询日期 2026-10-24)。

后端仓库 README 明确了当前的项目状态(来源:gitlab.com/passit/passit-backend README.md,查询日期 2026-10-24):

"Passit is a finished and production ready application. It is in maintenance mode and does not accept new feature requests at this time."

即:Passit 是一个已完成、可上生产的成熟应用,处于维护模式,不再接受新功能请求。这与"停止维护"不同——GitLab 提交记录显示 2026-10-15/16 仍在合并安全修复(Tighten lockouts、Throttle email sending endpoints、Remove modulo bias from password generator 等),最新版本 1.25.0 正是这批安全修复的载体。

2.2 版本发布节奏(量化)

以下为前端仓库 Git tag 实查记录(来源:GitLab API repository/tags,查询日期 2026-10-24):

版本发布日期间隔备注
1.18.22022-02-15-长期稳定版,Docker Hub 同步此版本号标签
1.19.02022-09-157 个月
1.20.02022-11-282.5 个月
1.21.02023-03-133.5 个月
1.22.02023-07-264.5 个月
1.23.02024-08-0512 个月维护模式放缓
1.23.12025-09-2313.5 个月小修版
1.24.02026-04-076.5 个月Docker Hub stable 镜像 2026-04-10 更新
1.25.02026-10-166 个月安全修复批次,GitLab Registry 已有镜像

关键差异解读:PassIt 的版本节奏是"年更级别的小步慢跑",每次发版集中在安全修复与依赖升级;这与 Bitwarden/Passbolt 每月级的功能迭代节奏完全不同。对选型的含义是:PassIt 适合追求"稳定不折腾"、功能已够用的自托管用户,不适合期望持续获得新特性的团队。

2.3 开源许可与维护方

  • 许可:前后端仓库 LICENSE 均为 GNU Affero General Public License v3.0(AGPL-3.0),来源:GitLab 仓库 LICENSE 文件,查询日期 2026-10-24。AGPL 要求修改后的服务端代码对外提供服务时同样开源,商用闭源改造受限。
  • 维护方:Burke Software and Consulting,同时提供官方托管版 app.passit.io(付费订阅模式)。
  • 资助渠道:Liberapay(README 徽章)。

三、核心架构

3.1 技术栈与运行形态

PassIt 采用"单后端服务 + 外部数据库"的最简形态(来源:GitLab 仓库 compose.yml、Dockerfile、passit.io/install/,查询日期 2026-10-24):

层技术说明
后端Python 3.14 + Django(Django REST Framework)apps/access、secrets、mfa、organizations、ldap 等独立应用模块
应用服务器granian(ASGI)bin/start.sh 以 granian 监听 8080 端口
前端Angular(TypeScript)构建为静态资源,由后端经 WhiteNoise 直接内嵌服务,无独立前端进程
数据库PostgreSQL(官方 compose 使用 postgres:17)唯一持久化存储,支持 hstore 扩展
缓存/任务队列Valkey(Redis 兼容)1.25.0 起默认必需(django_vcache + django_vtasks),默认地址 redis://redis:6379/1
加密libsodium.js(客户端)Argon2id 密钥派生 + RSA 密钥对 + AES 对称加密
认证Session + Token(django-rest-knox)Token 有效期 12 周;可选 MFA(django_rest_mfa,TOTP/FIDO2)与 LDAP

💡 技术拓展:密码管理器的"零知识"加密方案不止一种,主流自托管产品对比——

方案代表产品原理特点
libsodium(Argon2id + RSA/AES)PassIt客户端用主密码派生密钥加密数据,RSA 密钥对实现分享现代密码学原语组合,浏览器端性能好
OpenPGP(每用户 GPG 密钥环)Passbolt每用户一对 GPG 密钥,秘密用接收者公钥逐个加密密钥交换语义清晰,但客户端计算重
AES-256 位派生(PBKDF2)Bitwarden/VaultwardenPBKDF2/Argon2 派生主密钥,AES 加密 Vault生态最广,客户端矩阵最全
纯本地数据库加密KeePass 系列数据库文件级加密,无服务端无同步/分享能力,最简信任模型

PassIt 采用 libsodium 方案:主密码只在客户端使用 Argon2id 派生密钥,服务端存储的私钥与秘密均为密文;用户间分享通过"用对方 RSA 公钥加密对称密钥"完成(来源:passit.io 首页与安全模型页、后端仓库 passit_sdk,查询日期 2026-10-24)。

3.2 数据流与信任模型

PassIt 的核心安全主张(来源:passit.io 首页"Security that works"一节,查询日期 2026-10-24):

  1. 所有密码学操作在客户端(浏览器)完成,使用成熟的 libsodium 做公钥加密、私钥加密与安全哈希;
  2. 服务端"无法读取数据,甚至不会在内存中保存关键数据"(后端 README 原文:"Have no way to read the data ever - not even storing critital data in ram");
  3. 即使攻击者拿下服务端,没有用户主密码也无法解密;
  4. 官方提供安全模型图示页 passit.io/security-model/。

对登录流程的语义(来源:后端仓库 apps/access/views.py 文档字符串,查询日期 2026-10-24):注册时客户端生成盐值(client_salt)、对主密码做 Argon2 派生哈希、生成 RSA 密钥对,仅把"哈希后的密码 + 公钥 + 加密的私钥"提交服务端;登录时服务端先返回 client_salt,客户端重新派生哈希后以 BASIC 方式换取 Token。服务端保存的密码字段还会再做一次服务端哈希(防撞库的二次防线),但它永远接触不到明文主密码。

3.3 客户端矩阵

客户端形态来源
Web 应用浏览器访问自建域名或 app.passit.iopassit.io
Chrome 扩展Chrome Web Store(pgcleadjbkbghamecomebcdakdmahkeh)passit.io/install/
Firefox 扩展addons.mozilla.org/addon/passit_io/passit.io/install/
移动端PWA(渐进式 Web 应用,Android/iOS 可安装到桌面)passit.io
桌面原生客户端无—

四、功能特性

以下特性清单来自官网"Features"一节与后端仓库模块结构(来源:passit.io、gitlab.com/passit/passit-backend,查询日期 2026-10-24):

  1. 密码与安全笔记存储:秘密(secret)由"可见数据"(URL、用户名等明文字段)与"加密数据"(密码、TOTP 种子等密文字段)两部分组成;
  2. 跨平台访问:Web + 浏览器扩展 + PWA,扩展支持自动填充;
  3. 离线读取:已加载的秘密在离线状态下仍可读取;
  4. CSV 导入导出:数据可迁入迁出(1.25.0 修复了导入失败时明文落日志的问题);
  5. 组与分享:自建实例上可创建组,把秘密分享给组成员,组密钥经成员公钥逐一分发;
  6. 组织模式:IS_PRIVATE_ORG_MODE 开启后全实例联系人共享,可配注册域名白名单;
  7. MFA:django_rest_mfa 模块,支持 TOTP 与 FIDO2/WebAuthn(FIDO_SERVER_ID 配置);
  8. LDAP:LDAP_ENABLED 开启后可对接企业目录认证(apps.ldap 模块);
  9. 错误上报开关:Sentry 集成可选,客户端错误上报默认关闭(ERROR_REPORT_DEFAULT 默认 False);
  10. 注册治理:邮箱确认(长短双码)、注册白名单(constance 数据库后端 REGISTRATION_WHITELIST)、登录限流(1.25.0 收紧了锁定策略)。

功能边界(同样重要):无桌面原生客户端、无移动原生 App(仅 PWA)、无密码健康报告/暗网监测等增值功能、无管理后台 UI(管理动作靠 Django admin 或环境变量,ENABLE_DJANGO_ADMIN 默认开启提供 /admin 页面)、暂不接受新功能请求。

五、快速开始(最小可用示例)

最快体验路径是官方托管版:访问 app.passit.io,点"Sign up for Passit"注册账号即可使用,无需部署(来源:passit.io 首页,查询日期 2026-10-24)。

自托管最小路径按官方安装指南(来源:passit.io/install/,查询日期 2026-10-24)概括为四步,完整逐条实测过程见《PassIt 1.25.0 Docker Compose 部署指南》:

  1. 准备一台支持 Docker 的 Linux 服务器、一个 PostgreSQL 数据库、一个 SMTP 邮件发送通道和一个带 SSL 的域名;
  2. 取官方 docker-compose.production.yml,至少改掉 DATABASE_URL 与 SMTP 相关环境变量;
  3. docker compose up -d 启动,随后执行数据库迁移(docker compose run --rm web ./manage.py migrate);
  4. 用 nginx 反向代理 + Let's Encrypt 证书对外提供 HTTPS,然后打开域名即可注册使用。

⚠️ 注意:官方安装文档写作时点较早。本平台部署篇实测(1.25.0,2026-10-24)发现两点文档滞后:一是 1.25.0 起 Valkey/Redis 是必需组件,官方 compose 未包含;二是 EMAIL_URL=consolemail:// 需同时显式设置 EMAIL_BACKEND 才能让确认邮件走控制台后端。请以部署篇实测结论为准。

六、适用场景与限制

6.1 适合的场景

  • 个人/小团队的自托管密码库:一台小规格服务器(512MB 内存级即可,官方托管版起始规格即 512MB/1vCPU,来源 passit.io/install/)+ 一个域名即可跑起来;
  • 重视零知识审计的合规环境:AGPL-3.0 全开源、代码量适中(前后端各一个仓库),安全模型可以完整审计,服务端无解密能力;
  • 希望"装完就不用管"的长期节点:维护模式下功能稳定,升级仅涉及安全修复,变更风险低。

6.2 不适合的场景

  • 需要桌面/移动原生客户端与丰富生态(Passkey 管理、SSH 代理、CI 集成等)——选 Bitwarden/Vaultwarden(见本平台《Vaultwarden 介绍与选型指南》);
  • 需要团队密码协作的完整管理面(审批、汇报、目录同步、商业 SLA)——选 Passbolt(见本平台《Passbolt 5.16.0 介绍与选型指南》);
  • 期望产品持续快速演进——PassIt 维护模式明示不接受新功能请求。

6.3 与 Passbolt 的严格区分(防混淆)

两者均为开源自托管密码管理器,且常被搜索混淆,逐项对比如下(来源:passit.io 与 passbolt.com 及本平台已有专栏,查询日期 2026-10-24):

维度PassItPassbolt
开发方Burke Software and ConsultingPassbolt SA(比利时)
源码托管GitLabGitHub
许可AGPL-3.0(单一版本)AGPL-3.0 社区版 + 商业 Pro 版
技术栈Python/Django + AngularPHP/CakePHP + React
加密方案libsodium(Argon2id + RSA + AES),客户端完成OpenPGP 每用户密钥环,客户端完成
产品形态Web + 浏览器扩展 + PWAWeb + 浏览器扩展 + 桌面/移动客户端
面向人群个人与轻量团队团队协作(组织、角色、审计)
维护状态维护模式(安全修复)活跃开发(本平台收录版本 5.16.0)
管理界面无独立管理 UI(Django admin 兜底)有组织管理与商业支持

一句话总结:Passbolt 是"给团队的密码管理平台",PassIt 是"给自己的密码管理网站"。

七、同类选型对比(量化)

7.1 量化对比表

社区活跃度与基础数据均实查于 2026-10-24(GitLab star_count 取自 GitLab 项目 API;GitHub star 取自 shields.io 徽章接口;版本号取自各仓库 release/tag):

维度PassIt 1.25.0Passbolt 5.16.0Bitwarden(官方)VaultwardenKeePassXC
源码平台与星数GitLab:前端 41 + 后端 36GitHub 6.2kGitHub 20k(bitwarden/server)GitHub 70k(dani-garcia/vaultwarden)GitHub 约 12k(keepassxreboot/keepassxc)
许可AGPL-3.0AGPL-3.0 / 商业双轨AGPL-3.0(服务端)/ 商业云AGPL-3.0GPL-3.0
部署形态Docker(Python 单服务 + PostgreSQL + Valkey)Docker(PHP 多服务 + MariaDB + Redis)Docker 官方全家桶(多容器,重)Docker 单二进制(轻)本地程序(无服务端)
资源占用低(官方托管 512MB 起步)中高低无
加密模型libsodium 零知识OpenPGP 零知识AES-256 零知识同 Bitwarden(兼容协议)本地库加密
分享/组组分享(客户端分发组密钥)组织/文件夹/权限粒度细组织/集合组织/集合无(可借 KeeShare)
MFATOTP + FIDO2(服务端可选)TOTP(Pro 更全)TOTP/FIDO2 等TOTP/WebAuthnTOTP 生成(非登录 MFA)
客户端矩阵Web/Chrome/Firefox/PWA扩展 + 桌面 + 移动全平台原生复用 Bitwarden 全平台客户端桌面三平台
版本节奏年更级(维护模式)月更级周月更级周更级月更级
商业支持官方托管订阅Passbolt SA 订阅Bitwarden 云/企业无(社区)无

💡 说明:KeePassXC 星数为 shields.io 历史快照口径,精确到千位;其余数据同日实查。PassIt 之所以星数绝对值小,是因为 GitLab 社区体量远小于 GitHub,且项目处于维护模式,星数不直接等于安全质量——评估时应结合其完整可审计的加密实现与十年期代码演进。

7.2 选型建议("如果…则…")

  • 如果你是个人或三五人小队,只要一个"网页打开就能用的加密密码库",能接受 PWA 代替原生 App → PassIt;
  • 如果你需要团队级的密码协作、权限审批与商业支持 → Passbolt(见《Passbolt 5.16.0 介绍与选型指南》);
  • 如果你想要最全的客户端生态与第三方集成(Passkey、SSH、CLI、CI)→ Bitwarden 官方或 Vaultwarden(见《Vaultwarden 介绍与选型指南》);
  • 如果你的威胁模型完全不信任任何服务端、也不需要同步分享 → KeePassXC;
  • 如果你在 PassIt 与 Passbolt 之间犹豫且没有团队协作硬需求 → PassIt 更轻更省心;反之选 Passbolt。

八、参考链接

  1. PassIt 官网(特性/安全模型/安装指南):https://passit.io/ (查询日期 2026-10-24)
  2. 安装指南:https://passit.io/install/
  3. 安全模型:https://passit.io/security-model/
  4. 后端仓库:https://gitlab.com/passit/passit-backend
  5. 前端仓库:https://gitlab.com/passit/passit-frontend
  6. 项目主页仓库:https://gitlab.com/passit/passit
  7. Docker Hub 镜像:https://hub.docker.com/r/passit/passit
  8. 后端 LICENSE(AGPL-3.0):https://gitlab.com/passit/passit-backend/-/blob/master/LICENSE
  9. 本平台部署实测篇:《PassIt 1.25.0 Docker Compose 部署指南》
  10. 本平台同类产品对比:《Passbolt 5.16.0 介绍与选型指南》、《Vaultwarden 介绍与选型指南》