keyrealm

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Local-first credential manager & validator for red teams / pentest:致力于 ALL IN ONE 的本地凭据管理与验证平台。 允许将红队渗透测试中获取的散落在各处的 API Key、云厂商 AK/SK、机器人 Token、邮箱授权码、登录态等集中加密保管、便捷验证与快速利用。多插件多类别,单条·批量·定时验证,内置 MCP Server;AES-256-GCM 字段级加密,每凭据可选代理出口,加密/明文备份可跨库还原;数据只存本机、不联网同步,Windows / macOS。

README.md

凭域 Keyrealm

License
Platform
Python

致力于 ALL IN ONE 的本地凭据管理与验证平台。 允许将红队渗透测试中获取的散落在各处的 API Key、云厂商 AK/SK、机器人 Token、邮箱授权码、登录态等集中加密保管、便捷验证与快速利用。

数据只存在自己本地机器的程序目录里,不联网同步、不上传云端。


功能

加密存储

  • AES-256-GCM 字段级加密,密钥由主密码经 PBKDF2-HMAC-SHA256 派生,仅存内存。
  • 敏感字段与非敏感字段分列存放:列表展示不必解密,同时保证密钥类字段全程不落明文。
  • 主密码没有任何找回途径(无后门、无恢复码)——详见安全说明。

主动验证

  • 单条 / 批量 / 定时三种方式。批量验证并发数与请求超时可在对话框里就地调整。
  • 定时计划的验证范围可选多种范围,更加自由。
  • 校验结果不只是「有效 / 无效」,更有针对专一凭据的特殊标注。
  • 有写副作用或咱无法自动化的类型(如 DuckDNS、Telegram api_id/hash、短信网关)标记为不参与批量验证,只允许手动逐条验证,避免把人工判定的结果刷掉。

插件化

  • 一个服务一个插件,现目前共有 64 个插件、10 个类别(见支持的服务)。
  • 插件放在程序目录的 plugins/ 下,放入即加载、删除即卸载,无需安装器;临时停用无需删目录,在界面里禁用即可(状态记在 plugins/.state.json)。
  • 禁用不动磁盘目录:名下凭据照常显示、可编辑、可导出,只是「操作」「验证」置灰、批量验证自动跳过,禁用≠删除,快速找回插件。

凭据操作

部分插件在验证之外还提供操作,随凭据行出现「操作」按钮:

  • 对话:对 LLM 凭据直接发一次简单对话(流式返回)。
  • 表单:带写副作用的操作(如修改 DNS 解析记录、刷新令牌),提交前二次确认。
  • 列表:可下钻的查询,如「云主机实例」「对象存储桶 → 对象浏览」「域名列表 → 解析记录」。

没权限的操作会自动隐藏(插件探测该凭据的真实权限),一个都没有时给出说明。

代理

  • 可维护多个代理,设一个全局默认;每条凭据可三选一:跟随上层设置 / 指定某个代理 / 直连。解析优先级为 本条凭据 > 该插件预设 > 所属类别预设 > 全局默认。
  • 代理支持 http / https / socks4 / socks5 / socks5h。
  • 任一代理可一键对照测试:同一批探测分别走直连与代理,比对出口 IP 归属与国内外站点可达性,直接给出「代理是否真的生效」的结论。
  • 邮箱(SMTP / IMAP)走裸 TCP,不使用 HTTP 代理,会自动改用 SOCKS / HTTP CONNECT 隧道穿出去。

备份与恢复

  • 导出为单个 JSON 文件:加密导出(保留密文)或明文导出(可跨主密码导入)。

  • 可选「全部(凭据 + 分组 + 代理 + 预设 + 定时计划 + 设置 + 保险库 KDF + MCP + 插件启停)」或「仅选中的凭据」。整库档自带盐(salt),文件自包含。

  • 导入是填充式的:以当前库为蓝本,把备份条目填进去,不删也不覆盖既有数据。

    插件不存在或被禁用、含当前插件不认识的字段、缺少必填字段的条目会整条判失败、不写库,并逐条列出原因;

    每次导入在 data/logs/ 下留一份完整导入日志与(有失败时)一份失败日志,结果弹窗里可一键打开便于人工补录。

  • 换保险库也能还原:在另一台机器 / 新装的 Keyrealm 上导入整库备份时,会再问一次它当时的主密码,并用它 + 文档里的盐派生源密钥解开密文,再以当前库的密钥重新加密写回(当前库自己的盐/校验值不受影响)。

其它

  • 凭据简易操作、分组管理、6 套界面主题(3 浅 3 深)、侧边栏与凭据目录树顺序均可拖拽调整。
  • 后台任务:下载 / 打包这类长操作登记为任务,可看进度、可取消,关掉弹窗照常跑;任务记录持久化到 data/tasks.json,重启后历史仍在(上次没跑完的标为「已中断」)。
  • 独立日志页:级别可调、支持关键词搜索(含 traceback 的整条记录匹配)。
  • 单实例:重复启动不会开出第二个窗口,而是把已运行的拉到前台。
  • 开机自启动(默认关闭)。
  • 跨平台:Windows 优先,兼容 macOS。

效果演示

image-20261015163017704

image-20261015163052544

image-20261015163119165

image-20261015163143274

image-20261015163227247

image-20261015163422850

image-20261015163514281

支持的服务

类别 数量 服务
LLM 模型 18 OpenAI(含 Codex / ChatGPT 登录态)、Anthropic、Gemini、DeepSeek、Moonshot、智谱 GLM、阿里百炼、火山方舟、文心、MiniMax、NVIDIA、OpenRouter、硅基流动、华为云 MaaS、商汤日日新、CodeBuddy、OpenAI 兼容、New API
API 服务 8 Firecrawl、Tavily、秘塔 AI 搜索、Coze(扣子)、Dify、FOFA、Google API、百度人脸
即时通讯 10 飞书、钉钉、企业微信、Telegram(Bot / api_id+hash)、Discord、QQ 频道机器人、微信 iLink Bot、微信公众号、微信小程序
云服务商 12 阿里云、腾讯云、AWS、GCP、华为云、Firebase、京东云、UCloud、百度智能云、火山引擎、天翼云、Cloudflare
对象存储 2 S3 兼容对象存储(MinIO / Ceph 等自建)、匿名对象存储(公开桶检测:匿名列举/读取/写探测)
域名解析 3 DNSPod、DuckDNS、GoDaddy
开发者平台 4 GitHub、Hugging Face、Weights & Biases、npm
地图 3 高德地图、百度地图、腾讯地图(腾讯位置服务)
交易所 2 OKX、Binance
邮箱 / 短信 2 通用 SMTP(覆盖 Gmail / QQ / 163 / 126 等)、短信 / 接码网关

下载与安装

Windows / macOS

从 Releases 下载对应平台的压缩包,解压后直接运行,免安装。

  • Windows:运行 Keyrealm.exe。需要 WebView2 Runtime(Windows 10/11 通常已内置;
    若启动时报缺 WebView2,从微软官网装一次即可)。
  • macOS:运行包内的 Keyrealm。由于未签名——首次打开会被 Gatekeeper 拦,右键→「打开」,
    或终端执行 xattr -dr com.apple.quarantine Keyrealm 放行。

首次运行会在程序同级目录创建 data/(数据库、日志、界面偏好都在这里)。

Linux

暂无预编译包,需从源码运行,见 CONTRIBUTING.md 的开发环境一节。


快速上手

  1. 设置主密码。 首次启动要求设置主密码——它用于派生加密密钥。

    忘记即无法恢复,请自行妥善保存。

  2. 添加凭据。 在左侧「凭据目录」选一个服务 → 点「添加凭据」→ 按表单填写。
    表单字段由插件声明(如 API Key、Base URL、备注),敏感字段保存前即加密。
    也可以先给某个类别或插件设好默认值(Base URL、备注、走哪个代理),新建时自动带出。

  3. 验证。 保存后默认自动验证一次;之后可随时点行内「验证」,或用工具栏的「批量验证」
    勾选多条一起验,或在「任务」页配置定时验证计划。

  4. 看结果。 列表里的「状态」列给出结论,「附加信息」列给出余额 / 使用率 / 账号信息;
    有些凭据行还会出现「操作」按钮,可做验证之外的查询与操作。


MCP支持

Keyrealm 内置一个 MCP Server,Agent 可以直接查询、创建、验证凭据,不必把密钥复制到聊天上下文里。

  1. 在「设置 → MCP 服务」页手动启动服务(默认监听 127.0.0.1:8765,仅本机)。在端口被占用时将会直接报错而不自动换端口。
  2. 页面提供现成的客户端配置 JSON 与访问 Token(Bearer)。把配置粘进 Claude Desktop / Cursor / Claude Code 等客户端即可。
  3. 工具权限默认关闭,需要在同一页逐个开启。共 20 个工具:读类默认开,写与高危类默认关(开启前二次确认)。
  4. Token 明文只在轮换时展示一次,数据库只存哈希与前缀,鉴权失败将返回 401。

完整接口规范见 MCP 接口规范。


安全说明

项目 做法
加密算法 AES-256-GCM(字段级,带认证)
密钥派生 PBKDF2-HMAC-SHA256,10 万次迭代,随机 16 字节 salt
密钥存放 派生密钥只存在内存,锁定时立即清除
数据位置 程序目录下的 data/,不联网同步、不上传任何第三方
网络行为 仅「验证 / 操作」时按你的配置发起请求;MCP Server 默认不启动、仅监听本机
输出净化 插件的返回文本与日志会过滤掉回显的敏感字段值
空闲锁定 可选:一段时间无操作后自动清除内存密钥

主密码无法找回。加密密钥由主密码派生,没有任何后门或恢复码——丢了主密码就丢了解密能力。

建议定期用「备份」页导出(记得用同一个主密码,或选择明文导出自担风险)。


常见问题

Q:忘记主密码了怎么办?
无法恢复。只能删掉 data/ 目录重新开始(已加密的数据无法解密)。

Q:数据存在哪里?怎么整机迁移?
程序的 data/ 目录:credentials.db(凭据库)、logs/(日志)、tasks.json(任务记录)、webview/(界面偏好)。整机迁移直接拷 data/ 即可(主密码随之带走)。也可以只用「备份」页导出 JSON 迁移,粒度更细。

Q:升级会不会丢数据 / 重置我的插件启用状态?
不会。升级只替换程序与 plugins/,data/ 原样保留,plugins/.state.json(启用 / 禁用状态)也不会被覆盖。

Q:怎么更新到新版本?
两种渠道,在「设置 → 更新」里选:

  • 正式版:从 GitHub Release 下载对应平台的预编译包替换当前程序(不编译),更新前会把可执行文件、
    plugins/、data/ 备份到 data/backup/(只留最近一份),数据库结构有变动会逐级自动迁移。
  • 测试版:跟 main 最新提交从源码重新构建(本机没有源码会先拉一份到程序目录),如果本机缺少开发环境,运行可能会报错,建议优先选择正式版。

两种更新前都会自动备份、完成后自动重启。默认开启「自动检测更新」——每次程序启动后会自动查一次,发现新版本弹通知提醒;也可以随时在「设置 → 更新」手动检查。

为了保障数据安全,我们仍建议在自动更新前,再进行一次手动导出备份。

也可以手动从 Releases 下载压缩包。
详见 程序内更新。

Q:某个服务验证失败或有超时,是不是我的 Key 坏了?
先看是不是网络问题。部分厂商(Telegram、Discord、Hugging Face 等)在国内需要代理才能访问,请在「设置 → 网络与代理」里配好代理,再对该凭据指定出口。

Q:MCP 服务启动失败?
多半是端口被占用。到「设置 → MCP 服务」改一个端口再启动(应用不会自动换端口)。

Q:日志在哪里?
data/logs/keyrealm.log(1 MB × 5 轮转),也可以在「日志」页里直接查看与搜索。

Q:验证会不会产生费用或副作用?
校验一律使用只读接口,不会修改你在厂商侧的任何配置。唯一的例外是插件显式提供、由你手动点击的操作(如修改 DNS 记录、刷新登录态令牌);另有「欠费探测」会额外发一次极小的对话请求(默认关闭,开启时会消耗极少量额度)。


文档

文档 内容
架构设计 模块划分、数据流、线程模型、日志与配置
前端设计 页面结构、交互细节、主题与样式层
插件开发指南 插件结构、manifest.json、plugin.py 接口、插件清单
签名器校准证据 五家云厂商签名算法的逐字源码依据(含版本 / commit)与重新校准步骤
MCP 接口规范 连接方式、鉴权、全部工具与参数
数据库设计 表结构、ER 图、迁移策略
程序内更新 两种更新档、应用内 / 命令行更新、备份与回滚、数据库逐级迁移
更新日志 各版本变更

开发与贡献

构建、打包、插件开发与提交约定见 CONTRIBUTING.md。

发现问题或想加新插件服务,欢迎提 Issue / PR。


声明

本工具仅限合法用途。 仅可用于你本人拥有、或已从所有者处取得明确书面授权的系统与凭据;禁止用于任何未授权目标、账号或系统。

  • 凭据来源自负其责:你对导入本工具的全部凭据之来源合法性与使用权限负全责;作者不参与、不追认、不背书任何凭据的获取行为。
  • 联网与第三方条款:验证 / 操作会以你的凭据向对应厂商发起真实请求,可能消耗额度、触发风控或违反该厂商服务条款;部分「操作」带写副作用(改 DNS 记录、刷令牌、改写对象存储);「匿名对象存储」插件会对目标桶发起匿名列举 / 读取 / 写探测,仅可用于已获授权目标。使用本工具进行相关操作时视为你已经知晓并同意承担相应风险。
  • 数据与暴露面:主密码无找回途径,遗失即永久失去数据;「明文导出」文件含全部凭据明文;「MCP 服务」一旦启用,本机任何能访问该端口的程序(含 AI Agent)均可读取整库凭据——均请自行评估并设防。

继续使用即表示你已理解并接受上述条款,以及 MIT 许可 的相关条款内容。


第三方商标

本项目分发的插件图标为第三方商标图形,取自各厂商官网、官方品牌资源包、App Store 官方图标与 Simple Icons(CC0-1.0)、Iconify 的 thesvg 集合(MIT)等公开来源,仅用于标识对应的服务。

商标归各自权利人所有,本项目与这些厂商无隶属或背书关系。

图标的逐个来源与选取标准见 插件开发指南 的 logo 小节。

Yorumlar (0)

Sonuc bulunamadi