Operaciones de OmniUDM
OmniUDM es la función de Gestión Unificada de Datos (UDM) del núcleo 5G de Omnitouch. Presenta la identidad del suscriptor, la suscripción y los datos de contexto al resto del núcleo a través de los servicios estándar de Nudm, respaldando todos los datos autoritativos en el Repositorio de Datos Unificado (OmniUDR) a través de nudr-dr.
Referencias de Rol y Especificación 3GPP
| Aspecto | Referencia |
|---|---|
| Rol funcional de UDM en el 5GC | TS 23.501 |
| Servicios Nudm (SDM / UEAU / UECM) | TS 29.503 |
| Nudr_DataRepository (consumido) | TS 29.504 |
| Esquemas de ocultación y protección de SUCI / SUPI | TS 33.501 §6.12 y Anexo C |
| Estructura y codificación de SUCI / SUPI | TS 23.003 §2.2B |
| Jerarquía de autenticación y clave 5G-AKA | TS 33.501 §6.1.3, Anexo A |
| Conjunto de algoritmos Milenage | TS 35.206 |
| Codificación de identidad móvil (SUCI/MSIN BCD) | TS 24.501 |
Interfaces y Puntos de Acceso SBI
OmniUDM registra los siguientes servicios con el NRF y los sirve en el listener SBI (sbi_scheme://sbi_addr:sbi_port):
| Servicio | Versión | Propósito |
|---|---|---|
nudm-sdm | v2 | Gestión de datos del suscriptor |
nudm-ueau | v1 | Generación de vectores de autenticación de UE |
nudm-uecm | v1 | Gestión del contexto de UE (registro AMF/SMF) |
Todos los datos autoritativos del suscriptor y del contexto se leen desde / escriben en OmniUDR a través de nudr-dr/v2 (ruta base .../nudr-dr/v2/subscription-data/{ueId}/...). Todos los cuerpos de solicitud/respuesta son JSON. Los errores se devuelven como application/problem+json ProblemDetails.
Nudm_UEAuthentication (nudm-ueau/v1)
| Método | Ruta | Descripción |
|---|---|---|
| POST | /{supiOrSuci}/security-information/generate-auth-data | Generar un vector de autenticación 5G-AKA. Acepta un SUPI o SUCI; primero oculta SUCI. Requiere servingNetworkName y ausfInstanceId |
| POST | /{supi}/auth-events | Registrar un evento de resultado de autenticación. Requiere nfInstanceId, success, timeStamp, authType, servingNetworkName |
| PUT | /{supi}/auth-events/{authEventId} | Actualizar / eliminar un evento de autenticación (cuerpo AuthEvent, authRemovalInd=true lo elimina) |
Nudm_UECM (nudm-uecm/v1)
| Método | Ruta | Descripción |
|---|---|---|
| PUT | /{supi}/registrations/amf-3gpp-access | AMF registra el acceso 3GPP para un UE |
| PATCH | /{supi}/registrations/amf-3gpp-access | Actualizar parámetros del registro 3GPP AMF almacenado (merge-patch) |
| GET | /{supi}/registrations/amf-3gpp-access | Recuperar el registro 3GPP AMF almacenado |
| PUT | /{supi}/registrations/amf-non-3gpp-access | AMF registra el acceso no 3GPP para un UE |
| GET | /{supi}/registrations/amf-non-3gpp-access | Recuperar el registro no 3GPP AMF almacenado |
| PUT | /{supi}/registrations/smf-registrations/{pduSessionId} | SMF registra un contexto de sesión PDU |
| DELETE | /{supi}/registrations/smf-registrations/{pduSessionId} | SMF desregistra un contexto de sesión PDU |
Nudm_SDM (nudm-sdm/v2)
| Método | Ruta | Descripción |
|---|---|---|
| GET | /{supi} | GetDataSets - recuperar múltiples conjuntos de datos seleccionados por el parámetro de consulta obligatorio dataset-names (separados por comas AM, SM, SMF_SEL, UEC_SMF) |
| GET | /{supi}/am-data | Datos de suscripción de acceso y movilidad (consulta opcional plmn-id) |
| GET | /{supi}/sm-data | Datos de suscripción de gestión de sesiones (consulta opcional plmn-id) |
| GET | /{supi}/smf-select-data | Datos de suscripción de selección de SMF (consulta opcional plmn-id) |
| GET | /{supi}/nssai | Datos de suscripción de selección de corte de red |
| GET | /{supi}/ue-context-in-smf-data | Contexto de UE en SMF (sesiones PDU activas): ver nota a continuación |
| POST | /{supi}/sdm-subscriptions | Suscribirse a notificaciones de cambios de datos. Requiere nfInstanceId, callbackReference, monitoredResourceUris |
| GET | /{supi}/sdm-subscriptions/{subscriptionId} | Recuperar una suscripción SDM almacenada |
| PATCH | /{supi}/sdm-subscriptions/{subscriptionId} | Modificar una suscripción SDM (merge-patch) |
| DELETE | /{supi}/sdm-subscriptions/{subscriptionId} | Eliminar una suscripción SDM |
Ocultación de SUCI / SUPI
Para proteger la identidad permanente del suscriptor por aire, el UE envía un SUCI (Identificador de Suscripción Ocultado) en lugar del SUPI (Identificador Permanente de Suscripción, es decir, imsi-<IMSI>). Cuando el AUSF pide a OmniUDM que genere un vector de autenticación para un SUCI, OmniUDM de-oculta el SUCI al SUPI antes de que pueda buscar datos del suscriptor en UDR.
OmniUDM admite los tres esquemas de protección definidos en TS 33.501 §6.12 / Anexo C:
| Esquema | Nombre | Curva / Cripto | ¿Requiere clave HNET? |
|---|---|---|---|
| 0 | Esquema nulo | Ninguno - MSIN está en texto claro | No |
| 1 | ECIES Perfil A | Curve25519 (X25519) + AES-128-CTR + HMAC-SHA-256 | Sí |
| 2 | ECIES Perfil B | secp256r1 / P-256 + AES-128-CTR + HMAC-SHA-256 | Sí |
Para el esquema nulo, el MSIN se transporta en texto claro; se decodifica en BCD a partir de la salida del esquema para reconstruir el IMSI (según TS 24.501 - los dígitos MSIN están codificados en BCD, no en hex). Para Perfil A y Perfil B, la de-ocultación realiza un ECDH efímero-estático contra la clave privada de la Red de Hogar del operador, deriva las claves de cifrado/MAC (ANSI-X9.63-KDF con SHA-256), verifica el MAC, descifra el MSIN oculto y lo decodifica en BCD para reconstruir el IMSI.
Las claves privadas de la Red de Hogar para Perfil A/B se cargan desde el directorio hnet_key_dir. La nomenclatura de archivos, codificaciones y los requisitos de seguridad y actualización de caché están documentados en Configuración → Claves de Red de Hogar (hnet_key_dir).
Procedimientos Clave
De-ocultación de SUCI y Generación de Vectores de Autenticación
El AUSF solicita un vector de autenticación; OmniUDM resuelve la identidad (de-ocultando un SUCI si es necesario), obtiene material clave y un vector base del HSS a través de UDR, luego vuelve a derivar el AUTN específico de 5G y las claves. La gestión de SQN y cualquier re-sincronización son manejadas por el HSS detrás de UDR - OmniUDM vuelve a derivar el AUTN de 5G (bit de separación establecido), XRES*, y KAUSF a partir del material devuelto. Un resynchronizationInfo suministrado por el AUSF se reenvía al HSS a través de UDR.
Los fallos de de-ocultación devuelven HTTP 403 (Fallo en la De-ocultación de SUCI), un esquema de protección no soportado devuelve HTTP 501, un suscriptor faltante devuelve HTTP 404 (USER_NOT_FOUND), y material clave inválido o un fallo en la generación de vectores del HSS devuelven HTTP 500.
Registro de Eventos de Resultado de Autenticación
Después de que el AUSF completa la autenticación, registra el resultado. OmniUDM almacena el evento contra el contexto del UE y devuelve una Location para el evento creado; el AUSF puede más tarde PUT un AuthEvent con authRemovalInd=true para eliminarlo (204 No Content).
Recuperación de Datos de Suscripción SDM (sm-data)
Después del registro, el AMF/SMF recupera los datos de suscripción. OmniUDM actúa como proxy para la solicitud a UDR, añadiendo el PLMN de servicio, y devuelve la respuesta de UDR. Para sm-data, un único objeto UDR se envuelve en un array según TS 29.503 SmSubsData.
Los flujos de am-data, smf-select-data, y GetDataSets (GET /{supi}) siguen el mismo patrón de proxy contra UDR. GetDataSets ensambla solo los conjuntos de datos solicitados que puede resolver, omitiendo cualquier que falle. nssai se deriva de la respuesta am-data de UDR (ver abajo).
El contexto de UE en SMF devuelve el contexto de sesión PDU en vivo.
GET /{supi}/ue-context-in-smf-datay el conjunto de datosUEC_SMFen GetDataSets devuelven los contextos de sesión PDU activos del UE según lo informado por el SMF a través del procedimiento de registro SMF Nudm_UECM. Cada registro SMF almacenado se proyecta en el mapapduSessions(clave por ID de sesión PDU) según TS 29.503. El mapa está vacío ({"pduSessions": {}}) solo cuando el UE realmente no tiene registros SMF.
Recuperación de NSSAI con Recaída por Defecto
GET /{supi}/nssai recupera am-data de UDR y extrae el nssai embebido. Si UDR devuelve am-data sin un nssai, o si la búsqueda de UDR falla, OmniUDM devuelve la caída configurable default_nssai para que el AMF siempre reciba una lista de cortes.
La caída default_nssai debe coincidir con los cortes que la red realmente sirve - un suscriptor ofrecido un corte que el AMF no está configurado para servir es rechazado con la causa 5GMM #62. Ver Configuración → Claves de Ajuste Opcionales.
Notificaciones de Cambio SDM
Los suscriptores con una suscripción SDM activa son notificados de cambios posteriores: OmniUDM POSTea una ModificationNotification a cada callbackReference de la suscripción (asíncronamente) cuando los recursos monitoreados cambian. También se puede activar manualmente una notificación para un SUPI a través de la API de Gestión/OAM.
Registro AMF UECM y Movilidad
Cuando un UE se registra, el AMF se registra a sí mismo para ese UE en OmniUDM. Si un AMF diferente fue registrado previamente, OmniUDM notifica el deregCallbackUri del antiguo AMF para que pueda liberar el UE, luego persiste el nuevo registro en UDR.
Los IEs obligatorios se validan según TS 29.503: el registro 3GPP de AMF requiere amfInstanceId, deregCallbackUri, guami, ratType; el registro de SMF requiere smfInstanceId, pduSessionId, singleNssai, plmnId, y el cuerpo pduSessionId debe coincidir con la ruta (una discrepancia devuelve MANDATORY_IE_INCORRECT). Los IEs faltantes devuelven HTTP 400.