¿Qué es Fragmento de URL?
Un fragmento de URL es la parte de una URL que aparece después del símbolo de almohadilla (#). Según el RFC 3986, los navegadores procesan los fragmentos únicamente del lado del cliente y nunca los incluyen en las peticiones HTTP enviadas al servidor.
Las URL tienen una estructura definida: esquema, autoridad, ruta, cadena de consulta y fragmento. El fragmento (todo lo que va después del #) se diseñó originalmente para navegar hasta una sección concreta dentro de una página. Sin embargo, su propiedad más importante desde el punto de vista de la seguridad es que los navegadores tienen la obligación explícita, según la especificación HTTP, de no enviar nunca el fragmento al servidor.
Cuando visitas una URL como example.com/page#section, el navegador envía una petición para example.com/page: la parte #section se elimina antes de realizar la petición. El fragmento permanece en la barra de direcciones del navegador y es accesible para el JavaScript que se ejecuta en la página, pero el servidor no tiene conocimiento de él. Este comportamiento lo impone la especificación HTTP y es coherente en todos los navegadores modernos.
Esta propiedad hace que los fragmentos de URL sean especialmente útiles para transmitir datos sensibles en aplicaciones web. Si se colocan claves de cifrado u otros secretos en el fragmento, quedan disponibles para el JavaScript del lado del cliente que los necesita para el descifrado, pero nunca se transmiten al servidor, ni los registran los proxies, ni quedan registrados en los logs de acceso del servidor.
See the fragment vanish in transit
Edit the part after # and watch the server log update. The fragment never appears in the HTTP request line.
https://www.vaulted.fyi/s/aBc123#b9pK4mNxQ_2L7eRfA3vTcU1xY8zB6jH9wM0nP5qS4iE
GET /s/aBc123 HTTP/1.1 Host: www.vaulted.fyi User-Agent: Mozilla/5.0 ...
Per RFC 3986 §3.5, browsers strip everything after # before issuing the HTTP request. The fragment stays in the address bar, accessible only to JavaScript on the loaded page — never logged, never proxied, never cached by the server.
Cómo usa Vaulted Fragmento de URL
Vaulted coloca la clave de cifrado AES-256-GCM directamente en el fragmento de la URL. Cuando creas un secreto, el enlace generado tiene el formato /s/{id}#{base64url(key)}. Como los navegadores nunca envían el fragmento en las peticiones HTTP, la clave de cifrado nunca llega al servidor de Vaulted. El navegador del destinatario extrae la clave del fragmento, recupera los datos cifrados del servidor y realiza el descifrado localmente. Esta única decisión arquitectónica es lo que hace que Vaulted sea verdaderamente de conocimiento cero.