Revault cifra los archivos grandes en segmentos de unos 5 MiB, cada uno con su propia etiqueta de autenticación, de modo que el archivo completo nunca tiene que estar en memoria a la vez. En la aplicación web, eso es lo que permite archivos de hasta 1 GiB.
¿Por qué no cifrar todo el archivo de una vez?
Los archivos grandes no deberían requerir una gran cantidad de memoria. Revault lee archivos en segmentos de aproximadamente 5 MiB, cifra cada segmento en el navegador y almacena texto cifrado en IndexedDB. El archivo original nunca se lee en un búfer gigante.
Trabajar por segmentos también significa que una subida interrumpida puede continuar a partir del texto cifrado ya preparado, en lugar de volver a cifrar el archivo completo.
¿Qué protege el orden y la integridad de los segmentos?
Cada archivo recibe su propia clave de cifrado, derivada con HKDF a partir de la clave maestra de la bóveda. El contexto de derivación incluye los identificadores de la bóveda y del archivo, la longitud en bytes del archivo y el tamaño de segmento.
El nonce de 12 bytes de cada segmento combina un prefijo aleatorio elegido para ese archivo, un contador de segmentos de cuatro bytes y un indicador que marca el último segmento. Los segmentos llevan etiquetas GCM de 128 bits. Si los segmentos se intercambian, se alteran o se truncan, la verificación falla.
¿Qué ocurre si se interrumpe una subida?
Una vez que se completa el cifrado, las cargas de red pueden reanudarse desde el texto cifrado almacenado en caché después de actualizar la página. Los reintentos envían los mismos bytes cifrados, en lugar de cifrar una nueva fuente según los códigos antiguos. Si se interrumpe el cifrado, cancele esa carga incompleta y comience de nuevo con una identidad de archivo nueva.
¿Cómo se verifican las descargas?
Las descargas autentican cada segmento antes de entregarlo. Como la comprobación se hace a medida que se transmite el archivo, un error al final de una descarga puede dejar un archivo incompleto, así que asegúrese de que la descarga termina correctamente antes de confiar en ella.
¿Cuáles son los límites?
Cada archivo de la aplicación web puede ocupar hasta 1 GiB. Las vistas previas de imágenes y vídeos tienen un límite de memoria aparte. Borrar el almacenamiento local del navegador puede eliminar el texto cifrado necesario para reanudar una subida.
El formato de transmisión sigue la construcción de transmisión AES-GCM-HKDF documentada de Tink, utilizando primitivas web criptográficas nativas. La identidad del archivo y la longitud esperada están vinculadas al contexto de derivación de claves; Los contadores de segmentos y el marcador final protegen el pedido y la finalización. Esta implementación no ha recibido una auditoría criptográfica independiente.
La página del modelo de seguridad describe la construcción completa, incluidos el encabezado del flujo y la derivación de claves.