EL CIFRADO, EXPLICADO
Cifrado en tu dispositivo.Verificado en tu dispositivo.
Tu dispositivo cifra el contenido de los archivos y los metadatos sensibles antes de subirlos. Los verifica y descifra cuando abres un archivo. Esta página explica el cifrado de archivos, la gestión de claves y nuestro formato de streaming compatible con Tink.
Explorar el código criptográfico público- Archivos y envolturas de claves
- AES-256-GCM
- Derivación a partir de la frase de contraseña
- Argon2id
- Formato de streaming
- Compatible con Tink
De tu dispositivo al almacenamiento
Abrir el diagrama a tamaño completo
01
El inicio de sesión y el descifrado son independientes
Iniciar sesión permite al servicio identificar tu cuenta y aplicar los permisos de acceso. Una unidad cifrada se desbloquea localmente mediante una frase de contraseña de cifrado, una clave de recuperación o una clave de acceso de cifrado compatible. El inicio de sesión en la cuenta, por sí solo, no proporciona el secreto necesario para descifrar la unidad.
02
Cómo se crean y desbloquean tus claves
La configuración de la cuenta genera en el dispositivo una clave raíz aleatoria de 256 bits y un par de claves de firma ECDSA P-256. La clave raíz y la clave privada de firma se guardan en un paquete cifrado de claves de la cuenta. El servidor recibe copias cifradas de ese paquete y la clave pública de verificación.
La frase de contraseña de cifrado se normaliza con Unicode NFKC y se procesa con Argon2id usando una sal aleatoria de 16 bytes, 64 MiB de memoria, 3 iteraciones y un paralelismo de 4. La clave resultante de 256 bits protege el paquete de claves de la cuenta con AES-GCM. Estos parámetros ralentizan los intentos de adivinar contraseñas; sigue siendo importante usar una frase de contraseña robusta y única.
Una clave de recuperación aleatoria de 256 bits, generada por separado, protege otra copia del mismo paquete. Cambiar la frase de contraseña vuelve a envolver el paquete; no vuelve a cifrar todos los archivos almacenados. En los autenticadores compatibles, WebAuthn PRF aporta material para una envoltura independiente que permite desbloquear con una clave de acceso. Una clave de acceso utilizada solo para iniciar sesión en la cuenta no es automáticamente una clave de acceso de cifrado.
Volver a envolver el paquete no revoca un paquete antiguo que alguien ya haya copiado y pueda desbloquear. Eliminar una clave de acceso de cifrado impide obtener su envoltura en el futuro, pero no puede borrar claves que un cliente desbloqueado ya haya obtenido.
Guarda la clave de recuperación en un lugar seguro fuera de la unidad. Si pierdes todos los métodos de desbloqueo utilizables y todos los dispositivos desbloqueados, los datos cifrados podrían quedar irrecuperables. Restablecer el acceso a la cuenta no vuelve a crear las claves de cifrado.
03
El cifrado de archivos y el papel de Google Tink
Cada nueva revisión de un archivo recibe una nueva clave de contenido aleatoria de 256 bits. Los archivos se cifran en segmentos autenticados, lo que permite a los clientes subir archivos grandes y leer un intervalo solicitado sin descifrar antes todo el archivo. Cada segmento se comprueba antes de que sus datos en claro estén disponibles.
InfiniDrive implementa un formato de transmisión compatible con el perfil Streaming AEAD RAW AES256_GCM_HKDF_1MB de Google Tink. HKDF-SHA-256 deriva una clave AES por flujo a partir de la clave de contenido y una sal nueva. Los nonces de los segmentos combinan un prefijo aleatorio, el índice del segmento y un indicador de segmento final. El formato autentica la posición de los segmentos y la finalización del flujo.
La compatibilidad con Google Tink se verifica mediante pruebas de cifrado y descifrado en ambas direcciones.
| Componente | Implementación |
|---|---|
| Identificador del formato de transmisión | infinidrive-tink-aes256-v1 |
| Flujo del archivo | AES-256-GCM + HKDF-SHA-256; compatible con RAW AES256_GCM_HKDF_1MB |
| Tamaño del segmento cifrado | 1.048.576 bytes (1 MiB); incluye una etiqueta de autenticación de 16 bytes |
| Cabecera del flujo | 40 bytes: longitud de la cabecera, sal de 32 bytes, prefijo de nonce de 7 bytes |
| Envolturas de claves y metadatos | AES-256-GCM; nonce aleatorio de 12 bytes; etiqueta de autenticación de 128 bits |
| KDF de la frase de contraseña | Argon2id: 65.536 KiB de memoria, 3 iteraciones, paralelismo 4, sal de 16 bytes |
| Separación de claves | HKDF-SHA-256 con contexto específico para cada finalidad |
| Firmas | ECDSA P-256 con SHA-256 |
04
Metadatos, firmas y comprobaciones de versiones
Los nombres de archivo y los metadatos de contenido se cifran por separado de los bytes del archivo. Las claves de contenido se envuelven en contenedores de cifrado autenticado. El contexto vincula los datos protegidos a su cuenta, nodo, revisión y finalidad, lo que reduce el riesgo de aceptar un objeto cifrado válido en un lugar incorrecto.
Las firmas ECDSA P-256 con SHA-256 protegen los manifiestos y las operaciones de la cuenta. Los clientes comprueban las firmas, las identidades de los objetos y el contexto de revisión antes de mostrar el contenido. Las comprobaciones del historial comparan las respuestas del servidor con puntos de control guardados localmente para detectar retrocesos o historiales contradictorios respecto de lo que ese dispositivo ya ha observado.
Un dispositivo nuevo necesita un estado inicial de confianza. Los puntos de control locales no son un servicio global de transparencia de claves, y las firmas por sí solas no pueden garantizar que un servidor muestre el mismo historial a todos los dispositivos.
05
Fotos, vistas previas y enlaces compartidos
Los clientes compatibles generan localmente vistas previas de imágenes y vídeos. Cada vista previa tiene su propia clave de revisión aleatoria y se cifra antes de subirla. Sus metadatos cifrados y firmados la vinculan a la revisión del archivo original. La distribución de vistas previas almacena y sirve bytes cifrados; el cliente verifica y descifra la imagen.
Un enlace público cifrado lleva su secreto de descifrado en el fragmento de la URL, después del carácter #. Los navegadores no incluyen ese fragmento en la solicitud HTTP al servidor. El navegador del destinatario utiliza el secreto localmente para desbloquear el contenido compartido.
El enlace también contiene un token de acceso independiente que el cliente envía al servicio para autorizar la obtención de los datos, y un resumen criptográfico que fija el registro de uso compartido firmado. La autorización cifrada contiene claves de las revisiones de archivo seleccionadas, en lugar de la clave raíz de la cuenta. Un enlace compartido hace referencia a una instantánea de solo lectura de esas revisiones.
Cualquiera que tenga el enlace completo puede utilizar su secreto, así que trata el enlace como un acceso al archivo. Revocar un enlace puede impedir el acceso futuro a través del servicio, pero no puede borrar una copia que un destinatario ya haya descargado o descifrado.
06
Dónde se guardan las claves y los archivos legibles
Los clientes nativos pueden recordar las claves de cuenta desbloqueadas mediante la protección del sistema operativo: Keychain en las plataformas Apple, almacenamiento seguro respaldado por Android Keystore y DPAPI por usuario en Windows. La aplicación necesita claves utilizables mientras descifra; el almacenamiento del sistema operativo no convierte en seguro un dispositivo comprometido y desbloqueado.
Bloquear la unidad y cerrar sesión restringen el uso posterior de sus claves. Los archivos legibles ya descargados mediante Finder, el Explorador, una exportación u otra aplicación pueden permanecer en el disco. Los archivos locales, las cachés de miniaturas del sistema operativo, las copias de seguridad y otras aplicaciones tienen sus propias reglas de protección y conservación.
Examina el código criptográfico público
Descarga el código fuente criptográfico, con casos de prueba sintéticos y un entorno de pruebas de interoperabilidad con Google Tink.
El archivo incluye streaming de archivos, envolturas de claves, firmas, formatos de nodos y recursos compartidos, metadatos de vistas previas y funciones auxiliares para las envolturas de claves de acceso, además de dependencias con versiones fijadas e instrucciones para ejecutar las pruebas. Los módulos criptográficos de producción se copian sin cambios; los puntos de entrada del paquete se han limitado para esta publicación.
522accd052f0f23b0239973ff8be604d2a7eef11c1fd411852ed9609bab1b9edEs una instantánea del código fuente criptográfico, no el cliente o servidor completo. Excluye las interfaces de la aplicación, la configuración de despliegue, el transporte del servicio, el almacenamiento de claves en el dispositivo y la integración completa de las comprobaciones del historial. Las implementaciones independientes en Dart y Swift no forman parte de esta descarga. Licencia: AGPL-3.0-only; se incluyen los avisos de las dependencias.
