Un enlace secreto que expira destruye el secreto en el plazo fijado: en LinkPilot se sobrescribe el texto cifrado almacenado, así que no queda nada que recuperar. Un acortador de enlaces que empieza a devolver 410 Gone solo ha dejado de redirigir. Todo enlace que lleve un secreto debería tener una expiración, porque sin ella la garantía de «un solo uso» se debilita sin que nadie lo note con cada día que el enlace pasa sin leerse. Este artículo explica qué protege realmente la expiración, cómo elegir un plazo que puedas justificar, los casos límite que dan problemas en la práctica y las situaciones en que los enlaces que expiran no son la herramienta adecuada. Si quieres ver primero cómo funciona, el generador gratis de enlaces secretos de un solo uso aplica una expiración a cada secreto que crea.
¿Qué protege realmente una expiración?
La expiración limita el tiempo durante el que algo se puede filtrar. Un enlace que funcionó cinco minutos vale mucho menos para un atacante que uno que funcionó una semana, aunque los dos fueran enlaces «de un solo uso».
Piensa dónde acaba una URL con un secreto después de enviarla: en la bandeja de entrada del destinatario, en los servidores de su proveedor de correo, quizá en una copia reenviada, en un historial de chat sincronizado con un teléfono, en el historial del navegador. No controlas ninguna de esas copias. Lo que sí controlas es durante cuánto tiempo sigue funcionando cualquiera de ellas. Con una expiración de una hora, cualquier copia suelta de esa URL deja de servir sesenta minutos después de crearse, acabe donde acabe.
La expiración también cubre un fallo humano real que la destrucción tras la lectura no puede cubrir: el destinatario nunca abre el enlace. La destrucción tras la lectura solo se activa cuando alguien lo lee. Un enlace sin leer y sin expiración se queda en una bandeja de entrada indefinidamente: sigue activo, se puede buscar y está a un reenvío de llegar a la persona equivocada.
La expiración y la destrucción tras la lectura cubren fallos distintos
Estos dos controles se confunden constantemente. Son independientes, y la configuración más sólida usa los dos:
| Fallo | ¿Lo cubre la destrucción tras la lectura? | ¿Lo cubre la expiración? |
|---|---|---|
| El destinatario lo lee y el enlace se queda después en la bandeja de entrada | Sí, ya no funciona | Sí, al final |
| El destinatario nunca lo abre | No, sigue activo para siempre | Sí |
| La persona equivocada lo abre primero | En parte: se destruye y el historial de auditoría lo muestra | No |
| La URL se filtra semanas después desde una exportación del correo | Solo si se había leído | Sí, hace tiempo que no funciona |
Fíjate en la fila de la persona equivocada: ninguno de los dos controles impide esa lectura. Para eso está una frase de contraseña enviada por otro canal. La expiración limita el tiempo, la destrucción limita las lecturas y la frase de contraseña limita quién. Son tres ajustes separados.
¿Cuánto tiempo debe durar un enlace secreto?
Lo que dure la entrega prevista más un retraso razonable, y nada más. Una regla práctica, según el caso:
| Caso | Plazo | Motivo |
|---|---|---|
| Entrega en tiempo real (chat, llamada, pantalla compartida) | 1 hora (el plazo predefinido más corto) | El destinatario está presente; la destrucción tras la lectura cierra el enlace en cuanto lo lee |
| Correo a un destinatario conocido y activo | 1 hora | Cubre el retraso de la bandeja de entrada sin dejar el enlace abierto toda la noche |
| Entrega programada (incorporación mañana a las 10:00) | 24 horas | Aguanta si el horario se retrasa; aun así, al día siguiente ya no funciona |
| Destinatario en una zona horaria lejana | 24-48 horas | Puede que su jornada laboral no coincida en absoluto con la tuya |
| Cualquier cosa que necesite > 7 días | Detente | El enlace no es la herramienta adecuada; usa una bóveda |
La lógica de la tabla: fija el plazo en el tiempo previsto de la entrega más un retraso razonable, no en «lo bastante largo como para no tener que volver a pensar en ello». Los plazos elegidos por comodidad acaban tendiendo al infinito.
Una entrega con plazo, paso a paso
Un ingeniero nuevo empieza mañana a las 10:00. Tienes que darle la contraseña de solo lectura de la base de datos de producción.
- 09:55: crea el enlace secreto desde tu cuenta de LinkPilot con la destrucción tras la lectura activada, una frase de contraseña y una expiración personalizada a las 11:00. La expiración a una hora concreta y la frase de contraseña son funciones de Pro; los plazos predefinidos con sesión iniciada son 1 hora, 24 horas o 7 días, y el generador sin cuenta fija 7 días.
- 09:56: envía el enlace por correo.
- 09:58: envía la frase de contraseña por SMS o por mensaje directo de Slack, un canal distinto al del enlace, para que un solo canal filtrado no baste.
- 10:05: el destinatario abre el enlace, escribe la frase de contraseña y lee la contraseña una vez. El enlace se destruye.
- 10:30: revisas el historial de auditoría. Una visualización, a la hora correcta y desde una ubicación plausible. Listo.
- Si a las 10:30 no se ha leído: revoca el enlace, avísale y vuelve a compartirlo en directo. No te limites a esperar a que expire; un enlace activo sin leer es una puerta abierta.
El plazo es tan corto que un correo filtrado no sirve de nada una hora después. La frase de contraseña cubre la interceptación del enlace dentro de esa hora. La destrucción cubre las lecturas repetidas. Cada control cubre lo que los otros no cubren.
Casos límite que conviene conocer
Los escáneres de correo no consumen el plazo, ni el secreto
Las herramientas de seguridad del correo corporativo abren las URL en cuanto llega un mensaje. Un enlace secreto bien hecho trata esas peticiones como consultas de metadatos: el endpoint de LinkPilot para mostrar el secreto solo devuelve el estado en un GET, y una visualización solo se registra con un POST explícito para mostrarlo. Así, un escáner que visita el enlace a las 09:56 ni lo destruye ni obtiene nada útil. Lo que no se puede impedir es que los escáneres vean que se envió una URL, y ese es otro motivo para mandar la frase de contraseña por otro canal.
El destinatario en el minuto 59
La expiración se aplica en el momento de mostrar el secreto, no mediante una limpieza en segundo plano de la que tengas que esperar que se haya ejecutado. En LinkPilot, un secreto expirado pasa al estado expired en el siguiente acceso y el contenido se elimina en esa misma escritura. Si alguien empieza a mostrar el secreto antes del plazo y termina después, el resultado es uno u otro, sin ambigüedad: no existe un estado de expiración a medias.
Cálculos de zona horaria
«Expira en 24 horas» no deja lugar a dudas; «expira mañana por la tarde», sí. Fija los plazos como duraciones a partir de ahora y, cuando se lo digas al destinatario, indícale la hora límite en su zona horaria. Un número sorprendente de quejas del tipo «el enlace ya no funcionaba cuando lo abrí» son errores de cálculo con las zonas horarias.
El aspecto del cumplimiento normativo
La expiración es también la forma práctica de aplicar dos principios que aparecen en la mayoría de las normativas modernas de privacidad: la minimización de datos y la limitación del plazo de conservación (en el RGPD, artículos 5(1)(c) y 5(1)(e)). Si tienes que transmitir datos personales, como un documento de identidad, la ficha de un cliente o una credencial de acceso vinculada a una persona, un enlace que deja de existir de forma demostrable al cabo de un plazo limitado es mucho más fácil de explicar a un auditor que «está en algún sitio del sistema de correo». Un historial de auditoría con los eventos de creación, visualización y expiración de cada envío convierte lo que dices sobre la conservación de datos en una prueba, no en una simple afirmación. Nada de esto hace que una herramienta «cumpla el RGPD» por sí sola, porque el cumplimiento depende de todo tu proceso, pero los plazos de vida limitados y los registros de eventos son la materia prima.
En qué no ayuda la expiración
La expiración no sustituye a:
- La rotación. Si el propio secreto está comprometido, la expiración del enlace no invalida la credencial. Cámbiala en el sistema de origen. La expiración limita el tiempo durante el que el medio de entrega está activo, pero no dice nada del contenido una vez entregado.
- La protección con frase de contraseña. La expiración limita el tiempo; la frase de contraseña limita el acceso. Son independientes y combinarlas cuesta poco.
- El registro de auditoría. La expiración no te dice quién vio el secreto ni cuándo. Para eso están los eventos de auditoría de cada enlace: LinkPilot registra los eventos de creación, visualización, frase de contraseña incorrecta, destrucción, expiración y revocación, con marcas de tiempo y hashes de las IP.
El antipatrón de «ya lo amplío»
Es tentador y casi siempre un error. El destinatario aceptó un plazo. Ampliarlo sin avisar rompe el modelo de confianza: dio por hecho que el enlace ya no funcionaba y puede haber tratado el secreto en consecuencia, o haber dejado de vigilar la bandeja de entrada donde está.
La forma correcta: revoca el enlace antiguo, crea uno nuevo con una nueva expiración y avisa al destinatario. El historial de auditoría sigue siendo fiel: un enlace, un plazo y un resultado por envío. Por eso LinkPilot te deja acortar un plazo activo o revocar al instante, pero a propósito no tiene un botón para ampliarlo.
Cuándo los enlaces que expiran no son la herramienta adecuada
Una lista honesta de límites:
- Acceso recurrente. Si alguien va a necesitar el valor también la semana que viene, guárdalo en un gestor de contraseñas y comparte el elemento de la bóveda. Reenviar enlaces periódicamente es una bóveda con más pasos y peores garantías.
- Consumidores automáticos. Los pipelines de CI y los servicios deben obtener los secretos de un gestor de secretos (o del almacén de secretos nativo de la plataforma), no de URL de un solo uso.
- Distribución amplia. Un enlace que necesitan quince personas no es una entrega de un secreto; es control de acceso, y debe estar en un sistema que lo tenga.
Los enlaces que expiran destacan en una sola tarea: llevar un dato confidencial de una persona a otra, una vez, con un alcance limitado si algo sale mal.
Lecturas relacionadas
- Cómo funcionan los enlaces secretos de un solo uso
- Compartir contraseñas de forma segura: 5 métodos comparados
- Por qué las URL filtran información confidencial
- Generador gratis de enlaces secretos
