EverRoom 安全模型拆解:本地回环、Bearer Token 与凭据脱敏的隐私设计
EverRoom 安全模型拆解本地回环、Bearer Token 与凭据脱敏的隐私设计【免费下载链接】EverRoomEverRoom - A workspace that remembers your projects, decisions, and sources.项目地址: https://gitcode.com/gh_mirrors/ev/EverRoomEverRoom 是一个记得你的项目、决策和信息来源的本地优先local-first个人工作区。它把文档、知识库、上下文房间和 AI Agent 都跑在你的电脑上因此隐私设计从第一天起就是核心网关只监听本地回环地址、每次启动随机轮换 Bearer Token、敏感凭据加密落盘并在日志中自动脱敏。本文用 3 个关键模块带你读懂这套隐私设计。一、本地回环 随机 Bearer Token网关只对自己人开门EverRoom 的桌面端通过一个本地网关进程承载所有核心能力文档、记忆、Agent、连接器。它的安全边界非常简单只绑定127.0.0.1网关不监听局域网地址其他设备无法直接访问你的数据。每次启动随机生成 Token网关启动时生成一个随机 Bearer Token只保存在桌面端主进程内存中并随进程结束失效。每个请求都必须带Authorization: Bearer token否则直接返回 401。鉴权逻辑只有 20 来行核心在 auth.ts 中请求进入时Fastify 的onRequest钩子对比请求头与Bearer ${token}不匹配即返回 401 的unauthorized响应只有/v1/health和/docs免鉴权。Token 的注册与注入在 create-server.tsawait app.register(auth, { token: config.authToken })—— 鉴权插件在启动时统一挂载所有业务路由共享同一道关卡。这套回环 随机令牌的组合让网关即使被本机其他程序扫描到端口也无法在不知道 Token 的情况下读写任何数据。对于桌面应用而言这是成本最低、效果最好的一道门。二、凭据加密落盘AES-256-GCM 0600 文件权限连接 Gmail、飞书、Notion 等账号时网关需要保存刷新令牌等敏感凭据。EverRoom 没有把这些值以明文写进配置文件而是用了一个加密保险箱secret-store.ts。三个值得注意的细节整份凭据文件一次性加密。credentials.enc不是每条凭据各存一段密文而是把所有值打包成 JSON 后整体用AES-256-GCM加密附带version / iv / tag信封结构任何单字节被篡改都会导致解密失败。文件权限 0600。持久化时先写临时文件再原子替换renameWindows 上降级为 copydelete 兼容杀软锁定并强制chmod 0o600只有当前系统用户可读。主密钥可覆盖。默认内置固定主密钥保证开发/无头环境零交互生产环境可通过环境变量NXCORE_SECRET_STORE_KEY替换成自己的密钥。桌面端同样思路的本地加密在 local-secret-cipher.tsenc:v1:前缀 AES-256-GCMnonce 与认证标签拼进密文并由 credential-store.ts 统一管理——读到旧明文时会自动迁移为密文兼顾了历史版本的平滑升级。 历史版本曾用系统钥匙串safeStorage托管主密钥新方案改为内置密钥 文件权限保护彻底消除了登录解锁钥匙串的交互见 gateway-secret-key.ts 中对旧密钥文件的清理逻辑。三、凭据脱敏日志与响应中的密钥自动变成[REDACTED]比存好密钥更难的是别让密钥泄漏——它可能出现在 HTTP 请求头、错误堆栈、甚至流式日志里。EverRoom 用 secret-redaction.ts 做了三层防御层级机制说明关键词匹配SENSITIVE_KEY正则键名含api_key / token / secret / password / credential等字段直接替换为[REDACTED]文本模式匹配redactText抹掉Bearer 任意串和 URL 里的tokenxxxsignaturexxx等查询参数已知值注册表registerSecret任何写进保险箱的凭据都会登记到内存集合之后在所有文本含 URL 编码、表单编码形态中全局替换几个工程细节体现了成熟度深层递归 循环引用保护redactSecrets递归遍历任意 JSON 结构用WeakMap防循环引用死循环Date特判时间戳字段原样透传避免响应里的日期被摊平成{}流式日志防泄漏redactDelta按 scope 缓存日志尾巴保证密钥恰好被跨块截断时也不会半截泄漏到输出里。这套脱敏同时挂在 Fastify 的preSerialization所有 API 响应和 logged-axios.ts所有对外 HTTP 调用的日志上相当于给出口装了安检机。四、加分项跨设备同步也是端到端加密的当你把 EverRoom 同步到手机等其他设备时密钥分发同样不信任中间人。account-keyring-service.ts 实现了一套密钥包协议X25519-HKDF-SHA256-AES-256-GCM每次用临时 X25519 密钥协商出共享密钥经 HKDF 派生包装密钥再 AES-256-GCM 加密账号主密钥UMK本地私钥本身也用 AES-256-GCM 加密后以 0600 权限落盘。审批新设备时界面上会展示一个由设备公钥派生的 12 位校验码verificationCode用户肉眼比对确认防止中间设备冒充。密钥包打开失败或版本不匹配时会明确提示请在手机上重新批准此设备而不是带着脏状态继续。五、给用户的实操建议不要给网关端口做内网映射/端口转发它只在127.0.0.1监听暴露到局域网就等于跳过 Token 之外的全部边界。自托管部署可设置NXCORE_SECRET_STORE_KEY用独立主密钥替换内置默认密钥凭据文件即使被拷贝也无法跨环境解密。看到[REDACTED]是好事日志、报错、Agent 输出里出现这个标记说明脱敏层正常工作无需担心。总结EverRoom 的隐私设计可以浓缩成一句话网络层用回环 随机 Bearer Token 关上门存储层用 AES-256-GCM 0600 锁住保险箱出口层用三层脱敏拦住泄漏。没有复杂架构每一层都短小、可验证正是本地优先应用该有的安全姿态。网关鉴权源码apps/gateway/src/server/auth.ts凭据加密保险箱apps/gateway/src/security/secret-store.ts脱敏引擎apps/gateway/src/security/secret-redaction.ts本地加密与设备密钥环apps/desktop/src/main/security/【免费下载链接】EverRoomEverRoom - A workspace that remembers your projects, decisions, and sources.项目地址: https://gitcode.com/gh_mirrors/ev/EverRoom创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Unity转UE5踩坑实录:架构差异、渲染对比与选型指南

Unity转UE5踩坑实录:架构差异、渲染对比与选型指南

最近在项目群里又看到有人在问“Unity和UE5到底选哪个”,翻了翻聊天记录发现这问题每隔一段时间就会冒出来一次,而且每次都能吵上几十层楼。我已经在Unity上滚了七八年,近两年因为项目需要也往UE5里扎了一段时间,两边都踩了不少坑…

2026/9/30 13:14:36 阅读更多 →
大模型驱动的3D渲染协同工作流实战架构

大模型驱动的3D渲染协同工作流实战架构

1. 这不是一张“示意图”,而是一套可跑通的3D渲染协同工作流你搜“大模型 3D渲染 架构图”,刷出来的大多是PPT里堆满箭头的抽象框图——左边一个LLM图标,中间画个云朵写着“推理服务”,右边贴个Three.js logo,再加几条…

2026/9/30 13:14:36 阅读更多 →
大模型面试终极指南:掌握这4个短板,轻松拿下Agent开发Offer!

大模型面试终极指南:掌握这4个短板,轻松拿下Agent开发Offer!

所以第一篇,我们不急着讲 Agent,先回答一个更根本的问题:大模型是什么?它能做什么,又不能做什么? 这个问题看起来简单,但它决定了你能不能真正理解后面的一切。因为 Agent 开发要做的事情&#…

2026/9/30 13:14:36 阅读更多 →

最新新闻

ANSYS许可合规检查:授权文件、日志台账与并发审计实战

ANSYS许可合规检查:授权文件、日志台账与并发审计实战

1. 许可合规检查真正查的是什么:从"能不能跑起来"到"跑得合不合规"大部分人第一次接触ANSYS 许可合规性检查,都是被动的——要么是采购部门要续费,需要一份"到底有多少人真在用"的说明;要么是外部合…

2026/10/1 18:16:34 阅读更多 →
SpringBoot2+Vue3实战:大创项目管理系统设计与部署

SpringBoot2+Vue3实战:大创项目管理系统设计与部署

前阵子帮一所高校做了一个大学生创新创业训练计划项目管理系统,也就是大家常说的“大创管理系统”。这系统说白了就是用来管理大学生创新创业训练计划全流程的:学生线上申报项目、指导教师审核、学院推荐、学校审批,再到中期检查、结题验收和…

2026/10/1 18:16:34 阅读更多 →
第一性原理:从底层事实出发,拆解问题、重建方案的思维框架

第一性原理:从底层事实出发,拆解问题、重建方案的思维框架

1. 开篇引子:为什么“模仿”永远成不了真正的强者 我见过很多聪明人,学东西极快,看别人做什么成什么,立刻就能照着做一遍,成果还很好看。但几年后你会发现,这些人依然在原地打转:别人换赛道他就…

2026/10/1 18:16:34 阅读更多 →
麦克风配对方案升级!FX668远距离 NFC 芯片,解决量产调试痛点

麦克风配对方案升级!FX668远距离 NFC 芯片,解决量产调试痛点

做无线音频、直播麦克风、影音设备开发的工程师都懂,麦克风量产配对、频段校准、设备 ID 绑定一直是行业刚需痛点。传统方案大多依赖拆机拨码、有线烧录、上位机调试,工序繁琐、效率低下,售后维护更是麻烦。想要一套免拆机、无线快速配对、支…

2026/10/1 18:16:34 阅读更多 →
AI编程token消耗优化:六大实战技巧降低80%成本

AI编程token消耗优化:六大实战技巧降低80%成本

1. AI 编程的 token 到底消耗在哪些环节1.1 从一次真实的账单说起上个月我把自己一个中型项目的 AI 编程助手账单拉出来看,单月消耗折算下来接近四百块。当时第一反应是"是不是模型选贵了",但把明细拆开之后发现,真正贵的不是模型单…

2026/10/1 18:16:34 阅读更多 →
ComfyUI v0.37跑通Qwen-Image-2.1:从模型部署到稳定出图全攻略

ComfyUI v0.37跑通Qwen-Image-2.1:从模型部署到稳定出图全攻略

昨天把 ComfyUI 更新到了 v0.37,顺手把 Qwen-Image-2.1 跑通了。整个过程比我预想的顺利,但中间也踩了几个坑——比如模型路径不对、采样器选错导致画面发灰、爆内存等等。这篇就好好记录一下,从下载模型到稳定出图的完整流程,顺带…

2026/10/1 18:15:34 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →