快喵品牌标识快喵SECURITY WHITEPAPER
CHAPTER 04 · DATA RETENTION

无日志政策:一张字段表胜过一句承诺

快喵VPN 的留存边界由 11 项字段逐条定义:4 类必要字段按最小化留存,7 类行为字段明确不写入。2026 年 8 月的字段评审与 6 月的受控连接复核均未发现偏差项记录。

字段总数
11 项(4 留 / 7 不留)
最近评审
2026-08-14 字段评审
复核方式
受控连接 + 库写入抓取
快喵智能加密链路的分层示意:左侧加密竖条与右侧堆叠护盾层,背景为墨绿渐变
图 1 字段矩阵总览:深色为不写入的行为字段,薄荷色为必须留存的最小运行字段(本站渲染脚本生成,1200×675)

本页目录 · Contents

  1. 政策边界:什么才算日志
  2. 必须留存的四类字段
  3. 明确不留存的七类字段
  4. 从断开到释放的 90 秒
  5. 例外情形与处理顺序
  6. 第三方与传输链
  7. 读者核验方法
  8. 附录:字段表与自查
01

政策边界:什么才算日志

“无日志”这句话在不同厂商那里指向不同的东西。先把边界说清楚,后面的表才有意义。

行业内对日志的定义至少有三套:一是访问记录(去过哪些站点),二是连接记录(何时连、连了多久、来自哪个地址),三是运行记录(进程报错、心跳、额度结算)。快喵的不留存范围覆盖前两类,第三类中仅保留与计费、并发相关的聚合数值。

三套定义的实际差异

  • 访问记录 目标域名、URL、DNS 查询与正文。快喵全部不留存,也不存在可导出的替代形式。
  • 连接记录 连接时间、持续时长、来源地址、出口映射。快喵仅在会话内存中维持必要映射,断开即释放。
  • 运行记录 额度计数、在线设备数、节点健康度。快喵保留聚合数值,且不与访问行为关联。
  • 审计记录 字段变更、阈值调整与偏差项。快喵留存并公开,属于对政策的自我约束而非用户行为记录。

把第三类全部去掉是不现实的:没有额度计数就无法结算,没有在线设备数就无法执行并发限制。因此判断一份政策是否可信,不看它声称不留什么,而看它对“必须留”的部分是否给出了用途、保留期与删除方式三件套。

一句话口径

快喵不记录你访问了什么,只记录你的账号还需要多少额度、当前有几台设备在线;前者是隐私,后者是账务。

正交网格与半透明色块:用于标注审计范围覆盖与未覆盖的区域边界
图 2 覆盖边界网格:薄荷色块为本政策覆盖的运行环节,暗色为出口侧第三方环节(本站渲染脚本生成)
02

必须留存的四类字段

每一项留存都应能被一句话解释:如果不留,会坏掉哪个功能。

快喵的留存字段共 4 类 11 个字段,全部可在账号设置页看到对应解释。留存原则是“账号维度、聚合形态、限期删除”:不与访问行为关联,不逐条留存明细,到期自动删除且不进入备份。

表 1 留存字段清单(口径:2026-08-14 字段评审通过版本)
字段用途保留期删除方式是否可导出
账号邮箱登录、找回、安全通知账号存续期间注销后 7 日内删除是
密码摘要登录校验(Argon2id 摘要)账号存续期间注销后 7 日内删除否
设备标识哈希同时在线数限制、异常登录识别解绑后 30 日到期自动清除是
套餐与到期时间权益判定账号存续期间注销后 7 日内删除是
流量计数(字节)额度结算与用量展示账期结束后 90 日到期自动清除是
在线会话数并发控制仅内存,断开即释放随会话结束释放否
订单号支付对账(不含卡号)按支付机构规则由支付机构处理是

为什么密码用 Argon2id

密码摘要使用 Argon2id,参数为内存 64 MB、迭代 3 轮、并行度 4,单次校验耗时在测试机上约 62 毫秒。选择内存困难型函数的原因是:即便数据库被整体拖走,GPU 集群对内存困难型摘要的破解成本也远高于对 SHA-256 的暴力枚举成本。

流量计数为什么不算日志

字节计数是与访问行为解耦的:它只知道“这个账号在这个账期用了多少字节”,不知道用在了哪里。技术上它无法被还原为站点清单,因为它不携带目标地址,也不携带时间序列的细粒度分布——快喵按天汇总,而不是按会话记录。

  • 汇总粒度 按天汇总一次,不保留会话级明细,单日内的分布无法还原。
  • 不含目标 计数字段与目标地址解耦,二者不在同一条记录里,也不存在关联键。
  • 不含时间戳序列 只记日期,不记开始与结束时刻,无法推断使用时段。
  • 可查看 用户可在账号页看到与后台一致的数值,不存在用户看不到的隐藏计数。
规则方块矩阵:深色块为不留存字段,薄荷块为必须留存的最小运行字段
图 3 字段矩阵细节:留存的四类字段与不留存的七类字段的相对比例(本站渲染脚本生成)
03

明确不留存的七类字段

这一节的价值不在于列出承诺,而在于说明每项承诺在工程上如何被落实。

不留存不是“没有记录”,而是“没有产生记录的位置”。快喵的做法是把这些字段从数据模型里删掉,而不是写完再删:节点侧不落业务日志,业务库表结构中没有目标地址列,因此也没有可以误写入的字段。

表 2 不留存字段与工程落实方式(口径:字段评审与库表结构核对)
字段落实方式可被检查的位置例外
访问目标域名库表无此列,节点不解包库表结构与节点配置无
URL 路径与参数隧道内传输,节点不可见两侧抓包对照无
DNS 查询内容解析在隧道内完成,本地不缓存客户端解析配置无
源 IP 长期存档仅内存 NAT 映射,断开释放节点内存占用与重启行为无
正文与附件不终止站点 TLS抓包确认两侧均为站点密文无
应用层协议类型不解析端口与协议节点转发队列实现无
连接时间序列只保留按天汇总的计数库表结构与导出接口计费必需的最小时间戳

“没有字段”比“不留存”更强

一件事只有在数据模型里被删掉之后,才真正无法被误记录。快喵把目标地址从库表结构中移除,任何代码路径都无法写入一个不存在的列;这比在写入前加一层判断更可靠,因为判断可以被一次配置或一次紧急排障绕过。

  • 结构约束 字段不存在时,误写入会直接报错,而不是悄悄成功。
  • 审计友好 审计方只需核对库表结构与实际写入,不必信任代码里的判断分支。
  • 版本稳定 字段移除后不会因为“临时需要”被重新加回,任何新增都要走评审。
关于“临时开启”

排障时临时开启详细日志是最常见的漏洞来源。快喵的节点侧没有可开启的详细日志开关,排障只能依赖聚合健康度与客户端本地事件摘要。

04

从断开到释放的 90 秒

承诺在断开的那一刻开始生效。把这几百毫秒数清楚,比任何形容词都有用。

一次断开涉及四个动作:释放 NAT 映射、销毁会话密钥、写入一条无内容的断开事件、更新聚合在线数。前两个动作在客户端与节点侧同时执行,实测从断开指令发出到映射彻底释放的中位耗时为 0.4 秒,最长不超过 90 秒的上限。

  1. 指令下发用户点击断开或网络中断被检测到,客户端向节点发送释放请求,超时上限 5 秒。
  2. 映射释放节点删除该会话的 NAT 表项,地址与端口不再被保留,随之可被其他会话复用。
  3. 密钥清零客户端进程对密钥内存区执行清零并覆盖一次占位写入,随后释放内存页。
  4. 事件写入写入一条仅含时间戳与结果码的断开事件,用于健康度统计,不包含目标与会话标识。
  5. 聚合更新在线会话数减一,按分钟汇总后写入聚合指标,不保留单会话明细。
表 3 断开流程的时间预算(口径:2026-09 客户端埋点统计,样本 1,842 次)
动作目标上限实测中位超限处理
释放请求送达5 秒0.3 秒超时后节点侧主动回收
NAT 映射删除1 秒0.1 秒回收任务兜底,最长 90 秒
密钥清零立即小于 1 毫秒进程退出时操作系统回收
断开事件写入2 秒0.2 秒失败则丢弃,不重试
聚合指标更新60 秒按分钟汇总延迟一个周期不影响准确性

异常断开的兜底

真实场景里多数断开不是用户点击,而是网络消失或进程被杀。这两种情况下客户端无法发出释放请求,节点只能依赖心跳超时回收:连续 3 次心跳未收到(约 45 秒)即判定会话失效并删除映射。因此 90 秒是目前观察到的最坏情况上限。

  • 进程被杀 无法发送释放请求,由心跳超时回收,最坏 90 秒。
  • 网络消失 同上,且客户端恢复后会以新会话重新协商,不复用旧映射。
  • 设备休眠 心跳暂停被视为断开,唤醒后重新建立会话。
  • 节点重启 内存中的映射随进程消失,无需额外清理。
中心脉冲与放射刻度:表示风险网络的实时探测与自动升级触发点
图 4 探测与回收脉冲:心跳超时判定与映射回收的时间关系(本站渲染脚本生成)
05

例外情形与处理顺序

没有例外的政策不可信,没有边界的例外同样不可信。

快喵承认两类例外:支付合规所需的订单信息,以及安全事件处置所需的攻击特征。两者都有明确的处理顺序与可查记录,且都不得扩展到访问行为。政策文本与实现之间的偏差会被列为审计偏差项,而不是被解释成“业务需要”。

表 4 两类例外的范围与限制(口径:2026-08 政策文本第 5 节)
例外类型涉及字段处理主体保留上限禁止扩展到
支付合规订单号、金额、支付渠道第三方支付机构按机构规则,本站不存卡号访问目标与设备指纹
安全事件攻击特征(源地址段、时间窗)安全团队事件关闭后 30 日正常用户的访问记录
账号争议登录时间、设备哈希客服与风控争议关闭后 30 日浏览内容与目标域名
司法调阅仅可提供表 1 所列字段法务按调阅文书表 2 所列任何字段

处理顺序

  1. 最小化先确认诉求能否用聚合数据满足,能用聚合就不用明细。
  2. 限范围明细只在必要时间窗与必要字段内提供,超出部分拒绝。
  3. 双人复核任何明细导出需两名成员复核并留记录,单人无法完成。
  4. 留痕公示处理记录进入年度透明度统计,按类别计数公开,不含个案细节。

第四条是这套机制的关键:如果例外处理完全不可见,它就会在几年内膨胀成事实上的常规做法。按类别计数公开,既能证明例外被使用过,也能让外界看出使用频率是否异常。

关于透明度统计

年度统计按类别给出次数,不给个案细节,也不给时间精确到时。这类统计目前仅覆盖表 1 字段,如果你在政策文本中发现与之不符的表述,请通过安全邮箱指出。

06

第三方与传输链

政策只约束自己,链路上的其他人需要单独交代。

快喵链路上的第三方共有四处:支付机构、邮件服务、CDN 与云主机。前两者会接触到账号标识,后两者只承载静态资源与节点流量,不接触账号数据。四处都不接收访问目标,也都不接收会话密钥。

表 5 第三方接触面(口径:2026-09 供应商清单核对)
第三方接触的数据不接触的数据留存责任用户可否拒绝
支付机构订单号、金额、支付渠道访问目标、设备指纹按机构规则不可(支付必需)
邮件服务账号邮箱、通知内容访问目标、会话按服务商规则可(关闭通知邮件)
CDN静态资源请求账号数据、隧道流量按服务商规则不可(页面加载必需)
云主机节点流量密文正文、密钥、目标明文不落业务日志不可(服务必需)

另一个常被忽略的第三方是操作系统本身:系统更新、崩溃上报与输入法都可能独立联网。快喵对这些流量不做拦截也不做代理,因为越权接管会带来更大的风险;用户若需要,可以在分流规则里把这些进程显式指向隧道,客户端只提供能力,不替用户决定。

为什么云主机不算“看到你的流量”

节点运行在云主机上,云厂商在物理层可以看到进出网卡的字节流,但看到的是隧道密文与站点 TLS 密文两层封装后的结果,既无会话密钥也无站点私钥。这一点与“云厂商能看到你的浏览内容”有本质区别,但也不能说完全没有接触面——流量元数据(时间、字节量)在物理层客观存在。

  • 可见 网卡层面的字节流、时间与字节量,属于任何网络服务都无法消除的元数据。
  • 不可见 正文、目标域名、DNS 查询与会话密钥,均由两层加密覆盖。
  • 减缓措施 节点分散在多个云厂商,单一日志源无法还原完整路径。
  • 不作承诺 不宣称对物理层元数据完全免疫,只说明其不进入业务库。
柱状分布图:十四根柱体用于说明审计周期内请求类型的相对占比
图 5 请求类型分布:审计周期内各类请求的相对占比,用于说明业务库写入的实际构成(本站渲染脚本生成)
07

读者核验方法

一份政策如果不提供核验路径,就只能靠信任。以下四步任何人都可以自行完成。

核验的目标不是证明厂商在说谎,而是确认承诺与可观察行为之间没有明显偏差。四步中前三步不需要任何特殊工具,第四步需要一点耐心:等待账期结束后对照用量页面与邮件通知。

四步核验

表 6 核验步骤与判定标准(口径:本文撰写时的可观察行为)
步骤操作方法判定标准常见误判
1 抓包在客户端机器上用系统工具抓包,观察是否有明文目标目标地址不以明文出现把隧道头误认为目标
2 查用量对照账号页显示的字节数与本地统计两者差异在 1% 以内把协议开销算作差异
3 查导出尝试导出账号数据,看包含哪些字段仅含表 1 字段把订单号当作行为记录
4 看通知等待账期结束,核对用量通知内容通知不含任何访问目标把邮件正文当政策原文

核验时的三个注意

  • 区分层级 物理层元数据与业务库记录是两件事,前者无法消除,后者才是政策对象。
  • 区分时间 断开后的释放有上限,应在断开 2 分钟后再检查,而不是立刻下结论。
  • 区分版本 政策文本会随版本更新,核验结论应标明对应的客户端与文档版本。
  • 保留证据 核验记录建议包含观察位置、时间戳与结论,便于后续比对。
加密节点互联网格:薄荷色连线表示会话密钥在两跳之间的协商路径
图 6 会话路径网格:一次连接的密钥协商路径与业务库写入点的相对位置(本站渲染脚本生成)
08

附录:字段表与自查

本节把字段表、删除时限与自查顺序集中列出,便于一次性核对。

关键数值与来源

下表把本页出现的数值与其采集条件并列列出,便于逐项核对。同一指标在不同条件下可能变化,引用时建议连同条件与样本量一起引用,否则数字会失真。

表 6 关键数值与来源(口径:字段评审与 2026-09 埋点统计)
项目数值与表述采集条件与来源
断开释放耗时断开指令到映射彻底释放的中位耗时 0.4 秒来源:2026-09 埋点统计,样本 1,842 次
映射回收上限异常断开依赖心跳超时回收,最坏 90 秒条件:连续 3 次心跳未收到,约 45 秒判定
密码校验耗时Argon2id 单次校验耗时约 62 毫秒条件:内存 64 MB、迭代 3 轮、并行度 4
留存字段数当前版本留存字段共 11 项依据:2026-08-14 字段评审记录
计数保留期流量计数在账期结束后保留 90 日依据:政策文本第 4 节执行口径
设备标识清除设备解绑后 30 日内清除哈希值来源:定时任务日志核对结果

术语表

留存字段
为了功能可用而必须保存的字段,必须给出用途、保留期与删除方式。
行为字段
描述用户访问行为的字段,本政策明确不写入,包括目标域名与正文。
聚合指标
按时间窗汇总的数值,无法还原到单个会话,用于健康度与额度统计。
NAT 映射
把源地址替换为节点地址的会话级表项,仅存于内存,断开即释放。
心跳超时
连续 3 次未收到心跳即判定会话失效,约 45 秒,是异常断开的判定依据。
字段评审
新增或变更留存字段前的强制评审,未通过不得上线。
受控连接复核
在隔离环境抓取业务库写入,核对是否与字段表一致的方法。
透明度统计
按类别计数公开的例外处理记录,不含个案细节。

删除时限速查

表 7 删除时限速查(口径:政策文本第 4 节的执行口径)
数据类别触发事件删除时限执行方
账号与摘要用户注销7 日内后台定时任务
设备标识哈希设备解绑30 日后台定时任务
流量计数账期结束90 日后台定时任务
聚合在线数按分钟汇总保留 13 个月后台定时任务
断开事件写入即不可延期90 日后台定时任务
事件摘要(本地)用户导出或到期7 日客户端本机清理

自查清单

  1. 确认版本记录客户端版本与政策文本版本号,两者应能对应到同一发布批次。
  2. 核对字段把表 1 与账号数据导出结果逐项比对,多出的字段即为偏差。
  3. 核对不留存用抓包确认目标地址不以明文出现,用导出确认结果中无目标清单。
  4. 核对删除注销一个测试账号,7 日后尝试登录,应提示账号不存在。
本章口径

本章字段与时限来自 2026-08-14 字段评审通过的版本;如实际行为与此不符,以库表结构与导出接口的实际返回为准,并通过安全邮箱反馈。