Saltar al contenido principal

Glosario de términos

Definiciones de los términos clave utilizados en la documentación criptográfica de Passwork.


Entidades principales

Bóveda

Una bóveda es un contenedor para almacenar registros. Cada bóveda tiene su propia clave de cifrado simétrica (clave de bóveda) que protege todos los registros en su interior. Las bóvedas pueden ser corporativas (compartidas) o personales.

Registro

Un registro es una unidad de almacenamiento de información secreta. Cada registro contiene un conjunto de campos: nombre, inicio de sesión, contraseña, URL, descripción, etiquetas, campos personalizados y archivos adjuntos. Un registro se cifra con su propia clave de registro.

Importante

El término «contraseña» en el contexto de Passwork puede referirse tanto al registro en sí como a un campo específico dentro del registro. En esta documentación, utilizamos «registro» para referirnos a la entidad y «campo de contraseña» para referirnos al campo específico.

Campo de registro

Un campo es un elemento de datos individual dentro de un registro. Los campos se dividen en:

  • Campos estándar: nombre, inicio de sesión, contraseña, URL, descripción, etiquetas
  • Campos personalizados: pares arbitrarios de nombre-valor añadidos por el usuario
  • Secreto TOTP: secreto para generar contraseñas de un solo uso (autenticación de dos factores)

Archivo adjunto

Un archivo adjunto es un archivo asociado a un registro. Cada archivo adjunto se cifra con su propia clave de archivo adjunto (AES-256-CBC), que a su vez está protegida por la clave de registro.

Carpeta

Una carpeta es una forma de organizar registros dentro de una bóveda. Las carpetas no tienen sus propias claves de cifrado; los registros en las carpetas se cifran con la clave de bóveda.


Usuario y autenticación

Contraseña maestra

La contraseña maestra es la contraseña secreta del usuario, conocida solo por él. Se utiliza para derivar la clave maestra mediante el algoritmo PBKDF2. La contraseña maestra nunca se transmite al servidor y nunca se almacena en texto plano.

Clave maestra del usuario

La clave maestra del usuario es una clave criptográfica de 512 bits derivada de la contraseña maestra utilizando la función PBKDF2 (300.000 iteraciones, SHA-256). Se utiliza para:

  • Cifrar la clave privada RSA del usuario (AES-256-CBC)
  • Verificar la corrección de la contraseña maestra (mediante hash SHA-256)

Hash de la clave maestra

El hash de la clave maestra es un hash SHA-256 de la clave maestra del usuario. Se envía al servidor para verificar la corrección de la contraseña maestra introducida. El servidor compara el hash recibido con el valor almacenado.

Salt

El salt es una cadena aleatoria de 20 caracteres única para cada usuario. Se utiliza en el algoritmo PBKDF2 junto con la contraseña maestra para derivar la clave maestra. El salt se almacena en el servidor y se transmite al cliente durante la autenticación.

Claves RSA del usuario

Un par de claves RSA asimétricas de 2048 bits generadas mediante la API WebCrypto:

  • Clave pública — almacenada en el servidor en texto plano. Se utiliza para cifrar las claves de bóveda al otorgar acceso.
  • Clave privada — almacenada en el servidor en forma cifrada (cifrada con la clave maestra, AES-256-CBC). Se utiliza para descifrar las claves de bóveda.

Claves de cifrado

Clave de bóveda

La clave de bóveda es una clave simétrica aleatoria de 256 bits generada cuando se crea una bóveda. Se utiliza para cifrar las claves de registro dentro de la bóveda (AES-256-CBC). Para cada usuario con acceso a la bóveda, se crea una copia de la clave de bóveda cifrada con su clave pública RSA (RSA-OAEP).

Clave de registro

La clave de registro es una clave simétrica aleatoria de 256 bits generada individualmente para cada registro. Se utiliza para cifrar el contenido del registro (campo de contraseña, campos personalizados, TOTP) y las claves de archivos adjuntos (AES-256-CBC). La clave de registro se cifra con la clave de bóveda. Se genera automáticamente un vector de inicialización (IV) único para cada operación de cifrado.

Clave de archivo adjunto

La clave de archivo adjunto es una clave simétrica aleatoria de 256 bits generada para cada archivo. Se utiliza para cifrar el contenido binario del archivo (AES-256-CBC). La clave de archivo adjunto se cifra con la clave de registro.

Clave de cifrado del servidor

La clave del servidor es una clave simétrica de 256 bits almacenada en el servidor en un archivo. Se utiliza para el cifrado adicional de datos antes de guardarlos en la base de datos (AES-256-CFB mediante OpenSSL).


Tokens y sesiones

Access Token

El Access Token es un token de acceso de 256 bits (44 caracteres Base64). Se utiliza para autenticar las solicitudes a la API. Duración predeterminada: ~2,8 horas (10.000 segundos).

Refresh Token

El Refresh Token es un token de actualización de 256 bits. Se utiliza para obtener un nuevo Access Token sin necesidad de volver a introducir las credenciales. Duración predeterminada: 36 horas (129.600 segundos).

Local Storage Secret Code

El Local Storage Secret Code es un token aleatorio (~596 bits de entropía) generado por el servidor cuando se crea un usuario. Se utiliza para cifrar la clave maestra al guardarla en el localStorage del navegador (función «Recordar contraseña maestra»). El cifrado se realiza mediante AES-256-CBC.


Modos de cifrado

Cifrado del lado del cliente (CSE)

El cifrado del lado del cliente es un modo de funcionamiento en el que los datos se cifran en el navegador del usuario antes de enviarse al servidor. Implementa el principio Zero-Knowledge: el servidor no tiene acceso a los datos descifrados. Utiliza AES-256-CBC.

Cifrado del lado del servidor

El cifrado del lado del servidor es una capa adicional de protección en la que los datos se cifran en el servidor antes de escribirse en la base de datos. Está siempre activo, independientemente de la configuración del cifrado del lado del cliente. Utiliza AES-256-CFB mediante OpenSSL.

Zero-Knowledge

Zero-Knowledge es un principio en el que el servidor no dispone de información suficiente para descifrar los datos del usuario. Todas las operaciones criptográficas se realizan en el lado del cliente.

Cifrado de extremo a extremo (E2E)

El cifrado de extremo a extremo es un cifrado en el que los datos se cifran en el dispositivo del remitente y solo se descifran en el dispositivo del destinatario. En Passwork, se implementa mediante el intercambio de claves usando RSA-OAEP.


Compartir datos

Uso compartido interno

El uso compartido interno es la concesión de acceso a una bóveda o registro a otro usuario de Passwork. La clave se cifra con la clave pública RSA del destinatario (RSA-OAEP mediante WebCrypto).

Enlace externo

Un enlace externo es una forma de compartir un registro con alguien que no tiene cuenta de Passwork. Se crea una copia del registro, cifrada con una clave de enlace especial (AES-256-CBC). El token de enlace se incorpora en la URL.

Token de enlace

El token de enlace es una cadena aleatoria de 43 caracteres (~256 bits) utilizada para identificar el enlace externo y acceder a los datos cifrados.


Algoritmos criptográficos

PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) es un algoritmo para derivar una clave criptográfica a partir de una contraseña. Utiliza un salt y un gran número de iteraciones para proteger contra ataques de fuerza bruta.

Parámetros en Passwork:

  • Cliente: 300.000 iteraciones, SHA-256, 512 bits
  • Servidor: 600.000 iteraciones, SHA-512, 512 bits

AES-256-CFB

AES-256-CFB es un cifrado por bloques simétrico de 256 bits en modo CFB (Cipher Feedback). Se utiliza para el cifrado de datos del lado del servidor mediante OpenSSL.

AES-256-CBC

AES-256-CBC es un cifrado por bloques simétrico de 256 bits en modo CBC (Cipher Block Chaining). Se utiliza para el cifrado del lado del cliente.

RSA-OAEP

RSA-OAEP es un algoritmo de cifrado asimétrico con Optimal Asymmetric Encryption Padding. Passwork utiliza claves de 2048 bits con función hash SHA-256. Se implementa mediante la API WebCrypto.

CryptoJS AES

CryptoJS AES es una biblioteca para el cifrado AES en el cliente. Utiliza el modo CBC con relleno PKCS#7 y una función de derivación de clave integrada. La salida se codifica en Base32.


Abreviaturas

AbreviaturaSignificadoDescripción
CSEClient-Side EncryptionCifrado en el cliente
E2EEnd-to-End EncryptionCifrado de extremo a extremo
PBKDF2Password-Based Key Derivation Function 2Función de derivación de clave basada en contraseña
AESAdvanced Encryption StandardAlgoritmo de cifrado simétrico
RSARivest–Shamir–AdlemanAlgoritmo de cifrado asimétrico
OAEPOptimal Asymmetric Encryption PaddingEsquema de relleno para RSA
CFBCipher FeedbackModo de retroalimentación de cifrado
CBCCipher Block ChainingModo de encadenamiento de bloques de cifrado
IVInitialization VectorVector de inicialización
TOTPTime-based One-Time PasswordContraseña de un solo uso basada en tiempo
TTLTime To LiveTiempo de vida del token