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 autorizados en el Repositorio de Datos Unificado (OmniUDR) a través de nudr-dr.
Rol de 3GPP y Referencias de Especificación
| Aspecto | Referencia |
|---|---|
| Rol funcional de UDM en el 5GC | TS 23.501 |
| Servicios de 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 |
| Autenticación 5G-AKA y jerarquía de claves | TS 33.501 §6.1.3, Anexo A |
| 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 autorizados 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 (el cuerpo de AuthEvent, authRemovalInd=true lo elimina) |
Nudm_UECM (nudm-uecm/v1)
| Método | Ruta | Descripción |
|---|---|---|
| PUT | /{supi}/registrations/amf-3gpp-access | AMF registra acceso 3GPP para un UE |
| PATCH | /{supi}/registrations/amf-3gpp-access | Actualizar parámetros de la inscripción 3GPP AMF almacenada (merge-patch) |
| GET | /{supi}/registrations/amf-3gpp-access | Recuperar la inscripción 3GPP AMF almacenada |
| PUT | /{supi}/registrations/amf-non-3gpp-access | AMF registra acceso no 3GPP para un UE |
| GET | /{supi}/registrations/amf-non-3gpp-access | Recuperar la inscripción no 3GPP AMF almacenada |
| 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 cambio 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 a través del aire, el UE envía un SUCI (Identificador Oculto de Suscripción) 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 los datos del suscriptor en UDR.
OmniUDM soporta 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 | Perfil ECIES A | Curve25519 (X25519) + AES-128-CTR + HMAC-SHA-256 | Sí |
| 2 | Perfil ECIES 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), solicita un vector al HSS a través de UDR, y luego deriva las claves 5G a partir de él. Ki/OPc, gestión de SQN y cualquier re-sincronización permanecen en el HSS detrás de UDR - OmniUDM verifica que el AUTN del HSS lleve el bit de separación 5G (bit 0 de AMF, TS 33.501 §6.1.3.2, tomado de la AMF provisionada del suscriptor) y deriva XRES* y KAUSF a partir del xres, ck y ik devueltos. Un resynchronizationInfo proporcionado por el AUSF se reenvía al HSS a través de UDR.
Los fallos de de-ocultación devuelven HTTP 403 (Fallo de De-ocultación de SUCI), un esquema de protección no soportado devuelve HTTP 501, un suscriptor faltante o deshabilitado devuelve HTTP 404 (USER_NOT_FOUND), y un vector HSS inválido (incluyendo un AUTN sin el bit de separación) o una generación de vector HSS fallida devuelve HTTP 500.
Registro de Evento 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 de 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 del Suscriptor SDM (sm-data)
Después del registro, el AMF/SMF recupera los datos de suscripción. OmniUDM actúa como proxy de la solicitud hacia 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 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 más abajo).
UE-context-in-SMF devuelve 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(indexado por ID de sesión PDU) según TS 29.503. El mapa está vacío ({"pduSessions": {}}) solo cuando el UE no tiene registros SMF genuinos.
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 en UDR falla, OmniUDM devuelve la recaída configurable default_nssai para que el AMF siempre reciba una lista de cortes.
La recaída default_nssai debe coincidir con los cortes que la red realmente sirve - un suscriptor al que se le ofrece 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 la callbackReference de cada 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 la deregCallbackUri del viejo AMF para que pueda liberar el UE, luego persiste la nueva inscripción en UDR.
Los IEs obligatorios se validan según TS 29.503: el registro 3GPP de AMF requiere amfInstanceId, deregCallbackUri, guami, ratType; el registro 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.