Saltar al contenido principal

tokens de sesión

Passwork utiliza un modelo de autenticación basado en token con un par de token de acceso/token de actualización.

Descripción general del sistema de tokens

FichaPropósitoToda la vida
Token de accesoAPI solicitar autenticación~2,8 horas
Actualizar tokenRenovación del token de acceso36 horas

¿Por qué no JWT?

Los tokens Passwork son cadenas aleatorias, no JWT. Para un administrador de contraseñas, este enfoque proporciona mayor seguridad:

CaracterísticaPasswork fichasJWT
FormatoCadena aleatoria Base64JSON con firma
Información en tokenNingunoCarga útil con datos
ValidaciónBúsqueda de bases de datosVerificación de firma
Revocación de tokensInstantáneo (eliminación de base de datos)Requiere lista negra

Ventajas de seguridad:

  • Revocación instantánea de la sesión. Si se sospecha que está comprometida, el administrador o el usuario pueden finalizar inmediatamente cualquier sesión: el token se elimina de la base de datos y deja de ser válido inmediatamente. JWT continúa funcionando hasta su vencimiento.

  • Control total de la sesión. Todas las sesiones activas se almacenan en el servidor, lo que permite rastrear dispositivos, direcciones IP y la hora de la última actividad. El administrador ve la imagen completa y puede gestionar el acceso.

  • No hay datos confidenciales en el token. JWT contiene una carga útil con información del usuario que se puede leer (Base64 no es cifrado). Los tokens Passwork son simplemente identificadores aleatorios sin ninguna información.

  • Resistencia al compromiso de claves. Si se filtra la clave secreta JWT, el atacante puede crear tokens válidos para cualquier usuario. Con los tokens de sesión, este vector de ataque no existe.

  • Sin clave secreta de firma. JWT requiere almacenar la clave privada en el servidor para la firma del token, otro secreto para proteger, rotar y controlar. Los tokens de sesión Passwork son solo cadenas aleatorias, no se necesitan claves secretas para su generación.


Token de acceso

Características

ParámetroValor
Longitud256 bits
FormatoBase64
Longitud de la cadena~44 caracteres
Entropía256 bits
Duración predeterminada10.000 segundos (~2,8 horas)

Generación

El token de acceso se genera con un generador de números aleatorios criptográficamente seguro:

token = base64(random_bytes(32))

Validación

En cada solicitud, el servidor:

  1. Extrae el token (de la cookie o del encabezado, según el modo)
  2. Busca token en la base de datos
  3. Cheques de por vida
  4. Solicitud de enlaces al usuario

Modos de transmisión de tokens

Passwork utiliza dos modos de transmisión de token de acceso según el tipo de cliente:

Modo navegador (aplicación web)

Para aplicaciones web, el token de acceso se transmite a través de HttpOnly Cookie:

ParámetroValor
Solo HTTPSí, inaccesible para JavaScript (protección XSS)
SeguroSí, solo HTTPS
Mismo sitioEstricto: protección CSRF

En este modo, el navegador adjunta automáticamente una cookie a cada solicitud. El token de acceso no se devuelve en el cuerpo de la respuesta durante la autenticación, solo en el encabezado Set-Cookie.

Modo API (escritorio, extensión, móvil)

Para los clientes API, el token de acceso se transmite en el encabezado Authorization:

Authorization: Bearer {access_token}

En este modo, el token de acceso se devuelve en el cuerpo de la respuesta durante la autenticación y el cliente administra el almacenamiento de forma independiente.

Comparación de modos

ParámetroModo navegadorModo API
ClientesAplicación webEscritorio, Extensión, Móvil
Transmisión de tokenCookie HttpOnlyEncabezado de autorización
Protección XSS✓ (Solo HTTP)Depende del cliente
Gestión de tokensNavegador (automático)Cliente (manual)

Actualizar token

Características

ParámetroValor
Longitud256 bits
FormatoBase64
Longitud de la cadena~44 caracteres
Entropía256 bits
Duración predeterminada129.600 segundos (36 horas)

Objetivo

El token de actualización se utiliza para obtener un nuevo token de acceso sin volver a autenticarse. Más información sobre el proceso de renovación en la sección Rotación de tokens.


Configuración de por vida

Por roles de usuario

La vida útil del token se configura en el nivel de rol del usuario:

ConfiguraciónValor predeterminado
Vida útil del token de acceso10.000 segundos (~2,8 horas)
Actualizar vida útil del token129.600 segundos (36 horas)

Ejemplos de configuración

EscenarioAcceso TTLActualizar TTL
Usuario estándar10.000 segundos129.600 segundos
Alta seguridad1.800 segundos (30 min)14.400 segundos (4 horas)
Comodidad28.800 segundos (8 horas)604.800 segundos (7 días)

Ciclo de vida de la sesión

Ciclo de vida completo

T=0: Autenticación. El usuario ingresa las credenciales. El servidor crea un token de acceso (TTL: 2,8 horas) y un token de actualización (TTL: 36 horas).

T=2.8h: El token de acceso expiró. El cliente envía el token de actualización. El servidor emite nuevos tokens. El token de actualización anterior está invalidado.

T=36h: El token de actualización expiró. Se requiere reautenticación. El usuario ingresa las credenciales nuevamente.

Escenario alternativo: Cerrar sesión. El usuario hace clic en "Cerrar sesión". Ambos tokens están invalidados. Sesión terminada.

invalidación de token

Todos los tokens de sesión se invalidan en:

  • Cerrar sesión de usuario
  • Cambio de contraseña maestra
  • Restablecer contraseña maestra de administrador

Rotación de tokens

Modo estándar (aplicaciones)

Para aplicaciones web, extensiones de navegador, aplicaciones móviles y de escritorio, se aplica una política estricta de rotación de tokens.

Al actualizar la sesión, el cliente envía el token de acceso y el token de actualización simultáneamente y recibe un nuevo par de tokens en respuesta. Esto proporciona una rotación continua de ambos tokens, evitando la reutilización de tokens robados.

Modo de automatización (API)

Para las tareas y la automatización de DevOps, la rotación estricta suele resultar inconveniente. Por lo tanto, para las sesiones creadas mediante la generación de tokens API, está disponible el modo alternativo:

  • accessToken solo se actualiza sin cambio refreshToken
  • Renovación separada de refreshToken cuando sea necesario

Esto permite utilizar refreshToken de larga duración en scripts y canalizaciones de CI/CD. Los puntos finales de rotación HTTP se describen en la documentación API tokens.


Seguridad de tokens

Protección de interceptación

AmenazaProtección
Intercepción de redHTTPS/TLS requerido
Ataque XSSCookies HttpOnly (Modo Navegador)
CSRFToken CSRF + cookies del mismo sitio

Ficha CSRF

Objetivo

CSRF Token protege contra ataques de falsificación de solicitudes entre sitios. Requerido para todas las operaciones de modificación.

Características

ParámetroValor
Tamaño256 bits
FormatoHexadecimal (64 caracteres)
Entropía256 bits
GeneradorCriptográficamente seguro

Uso

El token CSRF se transmite en el encabezado de cada solicitud:

X-CSRF-Token: {csrf_token}

Requisitos por tipo de cliente

Tipo de clienteFicha CSRF
Aplicación web (modo navegador)✓ Requerido (generado y validado automáticamente)
Extensión del navegadorOpcional (a petición del cliente)
Aplicación móvilOpcional (a petición del cliente)
API— (no utilizado)

Signo de galleta

Objetivo

Función de protección adicional opcional para el modo de navegador. Vincula la sesión al contexto del cliente, protegiendo contra el robo de cookies y el secuestro de sesión.

como funciona

Cuando está habilitado, el servidor calcula la firma en función de:

  • Dirección del cliente IP
  • Agente de usuario del navegador
  • Identificador de sesión
  • Clave secreta (60 caracteres, ~357 bits de entropía)

La firma se calcula mediante la fórmula:

cookieSign = HMAC-SHA512(IP + UserAgent + SessionID, secret)

La firma se guarda en una cookie HttpOnly independiente y se verifica en cada solicitud.

Protección contra ataques

AtaqueProtección
Secuestro de sesiónLa cookie robada no funciona desde diferentes IP
Robo de cookiesCookie inútil sin coincidir IP + User-Agent

Limitaciones

  • El cambio IP (VPN, red móvil) requiere reautenticación
  • La actualización del navegador puede cambiar User-Agent

Habilitando

La función la habilita el administrador en la configuración del sistema. Deshabilitado de forma predeterminada para compatibilidad con usuarios con IP dinámico.


Tipos de clientes

Passwork distingue cuatro tipos de clientes con diferentes mecanismos de seguridad:

CaracterísticaWebExtensión del navegadorMóvilAPI
Modo de transmisión de tokenModo navegadorModo APIModo APIModo API
Token de accesoGalletaEncabezadoEncabezadoEncabezado
Token CSRF✓ RequeridoOpcionalOpcional
Signo de galletaOpcional
Código PIN✓ Compatible

Extensión del navegador: solo el tipo de cliente que admite el código PIN del lado del servidor. El PIN se verifica en el servidor, lo que abre una ventana temporal para el uso de API. Después del tiempo de espera, la sesión se bloquea hasta que se reingresa el PIN. En caso de varios intentos incorrectos, el servidor finaliza inmediatamente la sesión. Esto protege contra el robo de tokens; incluso con el token comprometido, el atacante no puede usar API sin conocer el PIN.


encabezados HTTP

Encabezados de autenticación

EncabezadoDescripciónModo
AuthorizationToken de acceso (Bearer {token})Modo API
CookieToken de acceso (automático)Modo navegador
X-CSRF-TokenProtección CSRFTodos los modos
X-Master-Key-HashHash de clave maestraCuando sea necesario

Almacenamiento de tokens del lado del cliente

Cada tipo de cliente implementa un almacenamiento seguro de tokens según las capacidades de la plataforma:

  • Aplicación web: token de acceso almacenado en la cookie HttpOnly, inaccesible para JavaScript (protección XSS)
  • Aplicaciones de escritorio y móviles: tokens almacenados en un almacenamiento seguro del sistema operativo con acceso restringido
  • Extensión del navegador: se utiliza almacenamiento aislado del navegador, inaccesible desde páginas web

Múltiples sesiones

Sesiones paralelas

Passwork admite múltiples sesiones simultáneas:

  • El usuario puede autenticarse en múltiples dispositivos
  • Cada dispositivo tiene su propio par de tokens
  • Cerrar sesión en un dispositivo no afecta a los demás

Gestión de sesiones

El usuario puede:

  • Ver lista de sesiones activas
  • Terminar una sesión específica
  • Terminar todas las sesiones (excepto la actual)

El administrador puede:

  • Forzar la finalización de todas las sesiones de usuario

Recomendaciones de configuración

Alta seguridad

ParámetroValor
Token de acceso30 minutos
Actualizar ficha4 horas
  • Reautenticación frecuente
  • Ventana de ataque corta
  • Adecuado para sistemas críticos

Saldo de seguridad y conveniencia (predeterminado)

ParámetroValor
Token de acceso~2,8 horas
Actualizar ficha36 horas
  • Jornada laboral sin reautenticación
  • Actualizar token durante aproximadamente 1,5 días laborables
  • Adecuado para la mayoría de las organizaciones

Máxima comodidad

ParámetroValor
Token de acceso8 horas
Actualizar ficha7 días
  • Autenticación una vez por semana
  • Adecuado para escenarios de bajo riesgo
  • No recomendado para datos críticos.