隐私政策

Vaultwarden Offline

最后更新:2026-08-23 · 适用版本:v2026.8.6 及以后

本扩展不收集、不上传、不出售你的任何数据。开发者收不到任何信息——因为本项目没有服务器。

唯一的对外网络请求是获取网站图标(favicon),详见第 4 节。

1. 开发者收集的数据

无。

本项目不存在任何后端服务、账户体系、遥测或崩溃上报。开发者没有任何技术手段获取你的密码库、主密码、使用记录或设备信息。

具体而言,以下数据从不离开你的设备

2. 数据存储位置

所有数据仅存放在你本机的浏览器存储中。

位置内容是否加密
storage.localvwo:vault:data密码库主体(全部条目与文件夹)✅ 密文
storage.localvwo:vault:metaKDF 参数、随机 salt、被包裹的 UserKey;若启用 PIN,还包括 PIN 专用 salt 与 PIN 包裹的 UserKey✅ 密钥为密文
storage.localvwo:settings用户设置(锁定超时、主题、自动填充开关等)明文(非敏感)
storage.localvwo:vault:unlock-throttle解锁失败次数与冷却时间戳明文(非敏感)
storage.localvwo:last-used-login最近一次填充的条目 ID(不含任何凭据内容)明文(非敏感)
storage.localvwo:favicons:{域名}缓存的网站图标(data URL)明文(非敏感)
storage.localvwo:favicon-fail:{域名}图标获取失败的冷却时间戳明文(非敏感)
storage.sessionvwo:session:userkey解锁后的运行期密钥;浏览器会话结束即自动清除仅存于会话存储
storage.sessionvwo:session:last-activity最近活动时间戳,用于超时锁定明文(非敏感)
IndexedDB 数据库 vwo-attachments条目附件的二进制内容✅ 密文

此外,当保存/更新凭据的提示条被你点击「忽略」时,扩展会在该网站页面自身的 sessionStorage 中写入一个标记(键名形如 vwo:declined:{主机名}:{用户名},值为 1),用于在本次浏览会话内不再重复打扰。该标记不含密码,且随标签页关闭而消失。

3. 加密方式

⚠️ 重要:由于本扩展完全离线、不存在服务端托管,主密码一旦遗忘,密码库将无法恢复。请务必通过「设置 → 数据 → 导出」定期备份。

4. 唯一的对外网络请求:站点图标

为在列表中显示网站的真实图标,扩展会尝试获取 favicon。获取方式由你自己决定,在「设置 → 常规 → 网站图标」中可选三种:

选项行为
完全关闭不发起任何图标请求,一律显示按条目类型的默认图标
仅同源(默认)只向你正在访问的那个站点索取它自己的图标,不涉及任何第三方
同源 + 第三方回退同源取不到时,回退至 Google / DuckDuckGo

默认为「仅同源」。第三方回退默认关闭,必须由你显式开启。

具体顺序:

  1. 同源获取(「仅同源」与「第三方回退」两种模式下均执行):借助当前标签页的内容脚本,向你正在访问的那个网站请求其自身的图标(优先使用页面 <link rel="icon"> 声明的地址,失败则尝试 /favicon.ico)。你本就在访问该站点,此步骤不涉及任何第三方,也不产生额外的信息披露。
  2. 回退至 Google(仅在你开启「第三方回退」后执行):请求 https://www.google.com/s2/favicons?domain={域名}&sz=64
  3. 再回退至 DuckDuckGo(同上):请求 https://icons.duckduckgo.com/ip3/{域名}.ico

若你选择开启第三方回退,请明确知悉:在第 2、3 步中,你保存在密码库中的网站域名(例如 example.com)会被发送给 Google 或 DuckDuckGo,同时这些请求会附带你的 IP 地址——这是任何 HTTP 请求的固有属性。

第三方隐私政策:Google 隐私权政策 · DuckDuckGo 隐私政策

技术层面的约束:扩展的 manifest 中,内容安全策略(CSP)的 connect-src 仅放行上述三个域名,其余任何出网尝试都会被浏览器直接拒绝。此外,构建流程会扫描打包产物,一旦出现未经豁免的 fetch / XMLHttpRequest / WebSocket / sendBeacon 等调用,构建即失败。

5. 自动填充如何处理页面数据

6. 权限用途说明

权限用途
storage存储加密后的密码库与用户设置
unlimitedStorage条目附件为加密二进制,可能超出默认存储配额
activeTabscripting在你主动触发填充时,向当前页面注入采集与填充脚本
tabs读取当前标签页网址,以匹配对应的登录条目并更新图标角标
contextMenus提供右键菜单填充入口
alarms周期性检查无操作时长,到时自动锁定密码库
idle当你选择「系统空闲时锁定」时,检测系统空闲状态
clipboardWrite将用户名 / 密码 / 验证码复制到剪贴板(仅在你点击复制时)
host_permissions自动填充需要在你访问的任意站点上运行;file:// 需你在扩展详情页手动开启「允许访问文件网址」后才生效

7. 剪贴板

点击复制按钮时,扩展会将对应内容写入系统剪贴板。本版本不提供剪贴板自动清除功能,复制的内容会一直保留在剪贴板中,直至被其他内容覆盖。复制密码后请注意及时清理。

8. 数据的导出与删除

9. 第三方服务与数据共享

除第 4 节所述的图标获取外,本扩展不与任何第三方共享数据,不接入任何分析、广告、崩溃上报或 A/B 测试服务,不出售或转让任何数据。

10. 儿童隐私

本扩展不收集任何用户数据,因此也不会收集儿童的个人信息。

11. 政策变更

本政策的任何修改都会更新本页顶部的日期,并通过 Git 提交历史完整留痕,可供随时查阅比对。

12. 联系方式

问题、疑虑或安全报告,请通过 GitHub Issues 提交:
github.com/r0n9/vaultwarden-offline/issues

本项目基于 GNU GPL-3.0 完全开源,上述所有陈述均可通过阅读源码验证:
github.com/r0n9/vaultwarden-offline

This extension collects nothing, uploads nothing, and sells nothing. The developer receives no information whatsoever — because this project has no server.

The only outbound network request is for website icons (favicons); see Section 4.

1. Data collected by the developer

None.

There is no backend service, no account system, no telemetry, and no crash reporting. The developer has no technical means of accessing your vault, master password, usage history, or device information.

Specifically, the following never leave your device:

2. Where data is stored

All data resides solely in your local browser storage.

LocationContentsEncrypted
storage.localvwo:vault:dataThe vault itself (all items and folders)✅ Ciphertext
storage.localvwo:vault:metaKDF parameters, random salt, wrapped UserKey; plus PIN salt and PIN-wrapped UserKey if a PIN is set✅ Keys are ciphertext
storage.localvwo:settingsPreferences (lock timeout, theme, autofill toggles)Plaintext (non-sensitive)
storage.localvwo:vault:unlock-throttleFailed unlock count and cooldown timestampPlaintext (non-sensitive)
storage.localvwo:last-used-loginID of the most recently filled item (no credential content)Plaintext (non-sensitive)
storage.localvwo:favicons:{domain}Cached site icon (data URL)Plaintext (non-sensitive)
storage.localvwo:favicon-fail:{domain}Cooldown timestamp after a failed icon fetchPlaintext (non-sensitive)
storage.sessionvwo:session:userkeyRuntime key after unlocking; cleared automatically when the browser session endsSession storage only
storage.sessionvwo:session:last-activityLast activity timestamp, used for timeout lockingPlaintext (non-sensitive)
IndexedDB database vwo-attachmentsBinary contents of item attachments✅ Ciphertext

Additionally, when you click "Ignore" on a save/update prompt, the extension writes a marker into the website page's own sessionStorage (key of the form vwo:declined:{hostname}:{username}, value 1) so it will not prompt you again during that browsing session. The marker contains no password and disappears when the tab is closed.

3. Encryption

⚠️ Important: Because the extension is fully offline with no server-side custody, a forgotten master password means the vault cannot be recovered. Please back up regularly via Settings → Data → Export.

4. The only outbound network request: site favicons

To display real website icons in lists, the extension attempts to fetch favicons. You decide how, under Settings → General → Site icons, with three choices:

OptionBehaviour
OffNo icon request is ever made; every item shows its type's default icon
Same-origin only (default)Asks only the site you are currently visiting for its own icon; no third party involved
Same-origin + third-party fallbackFalls back to Google / DuckDuckGo when same-origin yields nothing

The default is same-origin only. The third-party fallback is off by default and must be enabled by you explicitly.

The order in detail:

  1. Same-origin (runs in both the "same-origin only" and "third-party fallback" modes): via the current tab's content script, it requests the icon from the website you are already visiting (preferring the address declared in the page's <link rel="icon">, falling back to /favicon.ico). You are already visiting that site, so no third party is involved and no additional information is disclosed.
  2. Google fallback (only once you have enabled the third-party fallback): requests https://www.google.com/s2/favicons?domain={domain}&sz=64.
  3. DuckDuckGo fallback (likewise): requests https://icons.duckduckgo.com/ip3/{domain}.ico.

If you choose to enable the third-party fallback, please be explicitly aware: in steps 2 and 3, a domain name saved in your vault (e.g. example.com) is sent to Google or DuckDuckGo, and these requests carry your IP address — an inherent property of any HTTP request.

Third-party privacy policies: Google Privacy Policy · DuckDuckGo Privacy Policy

Technical enforcement: the extension's Content Security Policy allows connect-src to exactly those three hosts and nothing else — any other outbound attempt is rejected outright by the browser. In addition, the build pipeline scans the bundled output and fails the build if any non-exempted fetch / XMLHttpRequest / WebSocket / sendBeacon call is present.

5. How autofill handles page data

6. Permission justifications

PermissionPurpose
storageStore the encrypted vault and user preferences
unlimitedStorageItem attachments are encrypted binaries that may exceed the default quota
activeTab, scriptingInject collection and fill scripts into the current page when you trigger autofill
tabsRead the current tab's URL to match the corresponding login item and update the toolbar badge
contextMenusProvide a right-click menu entry for filling
alarmsPeriodically check idle duration and lock the vault when the timeout is reached
idleDetect system idle state when you choose "lock when the system is idle"
clipboardWriteCopy username / password / verification code to the clipboard (only when you click copy)
host_permissionsAutofill must be able to run on any site you visit; file:// takes effect only after you manually enable "Allow access to file URLs" on the extension's details page

7. Clipboard

When you click a copy button, the extension writes the corresponding value to the system clipboard. This version does not provide automatic clipboard clearing — copied content remains on the clipboard until overwritten. Please clear it yourself after copying a password.

8. Exporting and deleting your data

9. Third parties and data sharing

Apart from the favicon fetching described in Section 4, this extension shares no data with any third party. It integrates no analytics, advertising, crash reporting, or A/B testing services, and neither sells nor transfers any data.

10. Children's privacy

The extension collects no user data of any kind, and therefore collects no personal information from children.

11. Changes to this policy

Any change to this policy updates the date at the top of this page and is fully recorded in the Git commit history, available for inspection and comparison at any time.

12. Contact

For questions, concerns, or security reports, please open a GitHub issue:
github.com/r0n9/vaultwarden-offline/issues

This project is fully open source under the GNU GPL-3.0; every statement above can be verified by reading the source:
github.com/r0n9/vaultwarden-offline