Volver a Explorar
PatrónTécnicoIdentidad y CVIntermedio

Credenciales de vida corta — la alternativa a revocación

5 minVerificado · 2026-05-18

Una estrategia simple para evitar el costo operativo de mantener listas de revocación: emitir credenciales con vida corta. Si la credencial vence en 1 día, 1 semana, o 1 hora, no hace falta revocarla — simplemente expira.

Este patrón es especialmente útil para ciertos casos de uso gov.

El concepto

Vida típicaCaso
1 horaToken de sesión, acceso a portales
1 díaConstancia para un trámite específico ese día
1 semanaCredencial profesional para una semana específica
1 mesConstancia mensual de pago, certificado de no deuda
1 añoCredencial estándar

La regla operativa: la credencial vence rápido + se re-emite frecuentemente si sigue vigente.

Las ventajas

Cinco ventajas operacionales:

Sin status list

No hay que mantener listas de revocación. El sistema es más simple.

Privacy mejorada

El verifier no consulta el emisor para confirmar vigencia. Sin canal de tracking.

Auto-revocación

Si el emisor no quiere re-emitir, no lo hace. La credencial se "revoca" sola.

Menos infraestructura

Sin endpoints de status, sin actualización constante de lists.

Updates automáticos

Cada re-emisión refleja el estado actual de los datos del titular.

Las desventajas

El patrón típico de implementación

Una constancia con vida corta:

{
  "validFrom": "2026-05-18T00:00:00Z",
  "validUntil": "2026-05-19T23:59:59Z",
  "credentialSubject": {
    "name": "Juan Pérez",
    "constatado": "Vigente al 18 de mayo de 2026"
  }
}

La credencial vence en 24 horas. Si el holder la necesita el 19 de mayo, descarga una nueva.

El refresh service

Para que el holder no tenga que renovar manualmente, sistemas modernos implementan un refresh service: la wallet automáticamente pide una nueva credencial al emisor antes de que la anterior venza.

Este servicio requiere:

  • Wallet capaz de detectar credenciales próximas a vencer.
  • Endpoint del emisor que permita renovación rápida.
  • Política de renovación clara (criterios para emitir la nueva).

Combinación con status list

Una estrategia híbrida: vida corta + status list para casos atípicos.

  • Credenciales emitidas con validUntil de 30 días.
  • En casos extraordinarios (fraude, etc.), se incluye además en una status list.
  • 99% de los casos solo dependen de la fecha de vencimiento.
  • El 1% restante se maneja con status list.

Esto reduce significativamente el tamaño y la complejidad de la status list mientras mantiene la capacidad de revocación rápida cuando hace falta.

Casos donde brilla

Cuatro casos donde credenciales de vida corta son la elección obvia:

Constancias para trámites puntuales

"Constancia de domicilio para presentar en banco hoy" — vence en 24-48 horas. Si la necesita otro día, otra.

Beneficios sociales periódicos

Beneficio mensual que se verifica cada mes. Una nueva credencial cada mes.

Acceso a eventos / servicios

Pase para un evento. Vence al final del evento. Sin necesidad de revocación.

Verificación temporal

"Estoy autorizado a hacer X hasta tal fecha". Vence automáticamente.

Cuándo NO usar

Cuatro casos donde el patrón no aplica:

  • Identidad ciudadana base (DNI digital). Debe ser estable por años.
  • Diplomas universitarios. Tienen valor permanente.
  • Licencias permanentes (matrícula profesional). No se renuevan diariamente.
  • Documentos de viaje. Validez de 5-10 años.

Para estos, status list es la estrategia correcta.

El benchmark internacional

SistemaPatrón usado
EUDI Wallet (UE)Mix — corto + status list
AAMVA mDL (EE.UU.)Status list nativo de ISO 18013-5
Estonia e-HealthVida corta para recetas
SovraGov (Sovra stack)Mix según tipo de credencial

La sabiduría: no elegir uno; combinar según el caso de uso.

Implementación

// Re-emitir credencial con vida corta
async function refreshShortLivedCredential(originalCredId: string) {
  const original = await getOriginalCredential(originalCredId);
  
  // Verificar que el holder sigue siendo elegible
  const currentStatus = await getCurrentStatus(original.subject);
  if (currentStatus !== "active") {
    // No re-emitir
    return null;
  }
  
  // Emitir nueva credencial con datos actualizados + vida corta
  return await issueCredential({
    ...original,
    validFrom: new Date(),
    validUntil: addDays(new Date(), 30),
    credentialSubject: {
      ...original.credentialSubject,
      currentStatus: currentStatus,
    },
  });
}

Referencias

Relacionados

Tagsshort-livedrevocaciongovpatron