eID Mongolia¶
Production · Capa 1 — Núcleo identidad / PKI ·
Repositorio: eid-platform-mn · eidmongolia.mn
La plataforma eID nacional de Mongolia (al estilo Smart-ID / eIDAS). Toda autenticación y toda firma del ecosistema descansan en última instancia aquí. Un mismo código sirve a las dos marcas — eID Mongolia y Gerege — mediante variantes de aplicación.
Qué hace¶
- Identifica y autentica a los ciudadanos — por código QR, deep link móvil o un push enviado al titular de un número de registro civil.
- Firma con validez jurídica — firma PAdES sobre PDF, con sello de tiempo RFC 3161.
- Todo el ciclo de vida del certificado — emisión (CA), comprobación de validez (OCSP/CRL), revocación.
- KYC — verificación mediante DAN, con prueba de vida por reconocimiento facial.
Decisiones criptográficas centrales¶
ECDSA de umbral 2-of-2¶
La clave privada de firma no existe completa en ningún sitio. Se divide en dos partes: una en el teléfono del usuario y otra en el servidor. Para producir una firma hacen falta ambas partes (variante de tres rondas del protocolo de Lindell).
Lo que eso significa: con un teléfono robado no se puede firmar, y con un servidor comprometido tampoco. Ninguna de las partes puede firmar por sí sola en nombre del usuario.
Doble clave, doble certificado¶
Cada ciudadano posee dos certificados:
| Certificado | PIN | Propósito |
|---|---|---|
| Authentication | PIN1 | Entrar en un sistema |
| Signing | PIN2 | Firma con validez jurídica |
Esa separación es esencial: entrar nunca significa que el usuario haya consentido algo. Una firma exige un PIN aparte, una clave aparte y un consentimiento aparte — ahí está la base del no repudio.
Identificadores¶
| Tipo | Formato | Base |
|---|---|---|
| Persona física | PNOMN-<civil_id> |
Estándar ETSI ID |
| Organización | NTRMN-<registration> |
Estándar ETSI ID |
El identificador interno es civil_id (el número de registro civil). Para
las reglas de mayúsculas en identificadores, consulte
Convenciones comunes.
Estructura¶
| Parte | Tecnología | Función |
|---|---|---|
server/ |
Go (chi + pgx) | Backend RP-API: alta, firma de umbral, CA/OCSP/CRL, admin, KYC |
web/ |
Next.js | Demo RP en navegador — acceso y firma por QR / push |
admin/ |
Next.js | Consola de administración — RP / usuarios / certificados / sesiones |
ios/ |
Swift | SDK SPM GeregeSmartID + la app eID Mongolia |
android/ |
Kotlin / Compose | SDK mn.eidmongolia.smartid + app de ejemplo |
desktop/ |
Swift + .NET | Cliente RP para macOS / Windows + kit de token USB |
sdk/ |
TypeScript | SDK web del lado del RP |
Servicios PKI¶
| Servicio | Dirección | Descripción |
|---|---|---|
| CA | eidmongolia.mn |
Autoridad de certificación |
| OCSP | ocsp.eidmongolia.mn |
Comprobación de validez de certificados en tiempo real |
| CRL | publicada por la CA | Lista de certificados revocados |
| TSA | tsa.timeserver.mn |
Sellado de tiempo RFC 3161 |
Protección de claves: se emplean HSM — un dispositivo on-premise y un HSM en la nube configurados en conmutación mutua por fallo.
El papel de CA para X-Road
eID Mongolia presta además el servicio de confianza (CA, OCSP) de X-Road Mongolia. Por tanto la capa 1 aporta a la capa 0 su raíz de confianza — la única dependencia «hacia abajo» que el ecosistema permite.
Vías de integración (como RP)¶
Un tercero se conecta al eID de dos maneras.
1. A través del SSO (recomendado). La aplicación se conecta a Gerege SSO como RP de OIDC, y el acceso con eID ocurre en el SSO. En la mayoría de los casos esta es la opción correcta: usted no escribe código de PKI, solo implementa OIDC estándar.
2. Ser RP directo. Cuando hace falta una integración profunda — por ejemplo, incrustar el flujo de eID dentro de su propia app móvil — se registra como RP directamente en el eID. En ese caso se usan los SDK de iOS / Android / TypeScript.
La regla RP ↔ rp_app
En el eID solo se registra el RP. Si bajo un mismo RP conviven varias
aplicaciones o subsistemas, transmítalos mediante los campos rp_app /
rp_app_url: así los registros y la pantalla del usuario mostrarán qué
aplicación hizo la petición. No hace falta registrar un RP por aplicación.
Compatibilidad a nivel de protocolo¶
El servidor Go, el SDK de iOS y el SDK de Android hablan un único protocolo fijo. La serialización criptográfica debe ser idéntica byte a byte en todos los lados. Ese contrato queda fijado con golden vectors congelados — consulte Stack tecnológico para el detalle.
Documentación detallada¶
La documentación técnica completa de la plataforma (pasos de integración de
un RP, referencia de SDK, onboarding de PKI/CA, guía de la consola de
administración) vive en su propio sitio de documentación dentro del repositorio
eid-platform-mn. Capítulos principales:
- Conceptos — el eID de dos certificados · Identificadores · PKI personal
- Integración (RP) — integración de RP · integración con Gerege · subsistemas de RP · SDK de TypeScript · demo Web RP · alta de organizaciones
- SDK de cliente / apps — iOS · Android · claves biométricas · macOS · Windows · kit de token USB
- Operadores — consola de administración · multilingüismo
- PKI / CA — onboarding de CA · autenticación pasiva de pasaporte · reconocimiento facial