UniAuth
安全性不是一层防护 — 而是最低标准

为量子时代而生

UniAuth 从根本设计就以安全性为缺省 — 而非日后才补上。每个哈希、每个权杖、每个工作阶段,都以能同时抵御当今与未来攻击的密码学守护。

密码学基石

静态 AES-256-GCM 加密

每个机敏值 — TOTP 密钥、OAuth 访问权杖、PQC 私密密钥、LDAP 绑定密码 — 都会在写入数据库之前以 AES-256-GCM 加密。格式为 iv:tag:ciphertext

加密密钥是独立的 256 比特密钥(ENCRYPTION_KEY),并非从 JWT 密钥衍生而来。轮替其中一个并不会危及另一个。

ML-DSA-44 工作阶段签章

每个工作阶段都带有后量子数字签章(FIPS 204 ML-DSA-44,前身为 CRYSTALS-Dilithium)。每次请求时,touchSession() 都会验证该签章;一旦不符,立即撤销工作阶段并记录事件。

即使传统的 ECDSA 或 RSA 签章被量子电脑破解,ML-DSA 工作阶段依然安全无虞。

Argon2id 密码哈希

新密码采用 Argon2id(OWASP 建议值:64 MB 内存、3 次迭代、4 路平行)。旧有的 bcrypt 哈希会在登录时自动移转。密码强度以 zxcvbn 评分(须达分数 ≥ 2),并通过 HaveIBeenPwned 的 k-匿名 API 进行比对。

成对的主体识别码

已链接的应用程序绝对看不到您真正的 UUID。每个应用程序都会取得一个唯一、具决定性且专属于该应用程序的识别码:HMAC-SHA256(userId:clientId, secret)。应用程序无法跨服务串连用户身分 — 您的隐私是结构性的保障,而非仅靠政策。

运行阶段防护

自适应威胁侦测

跨 6 项因子的统计式登录风险评分:新 IP、新 user-agent、异常时段、连续失败突发、地理异常与设备信任。高风险登录会自动触发升级 2FA 或 CAPTCHA。

渐进式帐户锁定

5 次失败 = 1 分钟、10 次 = 5 分钟、15 次 = 15 分钟、20 次以上 = 1 小时。一律回传通用的 401(不泄漏帐户是否存在)。验证成功后即重设。锁定同样适用于密码、密码密钥与魔术链接等流程。

工作阶段生命周期

24 小时闲置逾时 + 30 天绝对效期。每次请求都会验证 SHA-256 指纹(IP + UA);一旦不符,立即终止工作阶段。每位用户最多 10 个并行工作阶段,最旧的会被淘汰。

防 SSRF 的对外连接

每个对外的 HTTP 请求(Webhook、OIDC 探索、后端信道注销)都会经过 safeFetch — 先做 DNS 解析,再将连接固定到已验证的 IP。在检查与 socket 连接之间发动 DNS 重新绑定是不可能的。

CORS + CSP + 速率限制

所有 API 路由皆采严格的同源 CORS。CSP 设置 frame-ancestors 'none'。双层速率限制(内存内 + Redis 滑动窗口)。各路由的门槛皆依端点的风险样态调校。

全面固定时间防护

每一次哈希比对、权杖验证、备援码检查与 SCIM 权杖查找,都使用 crypto.timingSafeEqual。任何地方都没有时间旁路。

合规与稽核

每项操作都会记录,每条链都会验证,每次导出都会屏蔽敏感内容。

防窜改的哈希串接稽核轨迹
含 IP、UA、风险评分的活动纪录
GDPR 数据导出(JSON)
帐户自助删除并完整清除
可设置的数据保存政策
密码历史纪录(缺省:5)
以 Webhook 签署的事件通知
管理员仿真身分稽核纪录
信任层级制度(T0–T4)

对我们的安全性有疑问吗?

我们很乐意与您的安全团队讨论架构、分享稽核报告,或一同查看我们的威胁模型。