eID Platform — 开发者文档¶
蒙古国国家 eID(Smart-ID / eIDAS 风格)平台的架构、集成与 PKI 文档。 同一套代码库同时服务 eID Mongolia 与 Gerege 两个品牌。
从哪里开始?
- 作为依赖方(RP)进行集成? → RP 集成 · TypeScript RP SDK · Web RP demo · RP 子系统
- 开发移动端 / 客户端应用? → iOS SDK · Android SDK · macOS desktop · Windows desktop
- 注册组织机构? → 组织接入
- 运维人员 / 管理控制台 → 管理控制台
- 证书 / CA → CA 接入
- 公民与组织标识符 → 标识符
平台做什么?¶
- 2-of-2 门限 ECDSA(Lindell,3 轮)—— 签名私钥永远不会在任何一处完整存在: 一份密钥分片保存在手机上,另一份保存在服务器上。
- 双密钥、每位公民 2 份证书 —— 身份认证(PIN1,登录)与 签名(PIN2,具备法律效力的签名)。详见: 双证书 eID。
- 身份标识 =
civil_id—— 自然人的 ETSI 标识符为PNOMN-<civil_id>, 组织为NTRMN-<...>。详见:标识符。 - 通过 DAN 完成 KYC,并使用 ArcFace 人脸比对进行活体检测。
项目结构¶
| 组件 | 技术栈 | 职责 |
|---|---|---|
server/ |
Go(chi + pgx) | RP-API 后端:注册签发、门限签名、CA/OCSP/CRL、管理、KYC |
web/ |
Next.js 16 | 浏览器 RP 演示(二维码 / 推送登录与签名) |
admin/ |
Next.js 16 | 管理控制台 —— RP / 用户 / 证书 / 会话管理 |
ios/ |
Swift | GeregeSmartID SDK + eID Mongolia 应用 |
android/ |
Kotlin/Compose | mn.eidmongolia.smartid SDK + 示例应用 |
desktop/ |
Swift + .NET | macOS / Windows RP 客户端 + USB token kit |
sdk/ |
TypeScript | RP 侧 SDK(@eid-mongolia/sdk) |
协议层字节兼容性¶
Go 服务端与 iOS/Android SDK 使用同一套固定协议(继承自最初的 Java 系统)。 各端的密码学序列化必须逐字节一致。该契约由一份冻结的测试夹具(fixture)保证。
本文档由 docs/ 目录下的 markdown 文件自动生成。
如需修改,请点击每个页面右上角的 ✏️ 按钮。