Ir al contenido
cutty.dev
All posts

Seguridad de los enlaces con contraseña: qué sucede cuando haces clic

Puedes añadir una contraseña a tu enlace corto. Te mostramos lo que sucede por debajo —sin entrar en tecnicismos— y por qué vale la pena hacerlo.

La mitad de las guías sobre enlaces con contraseña comienzan con la frase de que es una "capa adicional de seguridad". Y ahí termina. En mi opinión, eso es precisamente lo menos importante que se puede decir al respecto.

Porque la "capa de seguridad" no explica nada. No te dice qué sucede con esa contraseña, quién la ve, ni cuándo tiene sentido en absoluto. Y esas son las únicas preguntas que vale la pena hacerse antes de hacer clic en "Añadir contraseña".

Así que, paso a paso.

La contraseña del enlace no es lo mismo que el candado de la puerta

La gente imagina que una contraseña cierra un enlace de forma definitiva. No es así. La seguridad de los enlaces con contraseña funciona más bien como una entrada para un concierto: quien tiene la entrada, entra. Quien se la dé a alguien, también dejará entrar a alguien.

Eso suena como un defecto. No lo es. Simplemente hay que saber para qué sirve este mecanismo.

Tres situaciones en las que realmente es útil:

Lista de precios para clientes premium o documento en versión beta, antes de que salga al mundo. Sin contraseña, un enlace así acabará tarde o temprano en Google o pasará de mano en mano.

Contenido con fecha de vencimiento. Oferta solo para el viernes. Material de la conferencia exclusivamente para los participantes. La contraseña convierte el enlace en una entrada controlada — sabes que alguien la recibió de ti, no que la encontró por casualidad.

Y una cosa que publicas de forma totalmente pública, pero quieres mantener el control. El enlace puede circular. Sin contraseña, nadie podrá entrar de todos modos.

Y ahora lo que esta guía no debería haber pasado por alto

Escribes la contraseña en el formulario. En ese mismo momento, desaparece. Literalmente. El hecho de que hayas configurado "tajne123", deja de existir en forma legible antes de que logres soltar el botón.

¿Qué queda en la base de datos? No la contraseña. Una huella dactilar después de ella. Técnicamente: hash. Una cadena de caracteres que coincide con tu contraseña solo cuando alguien escribe exactamente lo mismo que tú. Por sí misma no revela nada.

Lo diré directamente, porque es importante: yo, el administrador del servicio, no tengo forma de leer tu contraseña. No porque sea amable. Sino porque físicamente no hay nada que leer. Si alguien hackeara la base de datos, se llevaría un montón de estas huellas y eso es todo.

El algoritmo que calcula esto es deliberadamente lento. Sé que "lento" suena como una queja, pero es una ventaja. El objetivo es que alguien que haya robado la base de datos tenga que dedicar una cantidad absurdamente grande de tiempo para adivinar una sola contraseña. Hablamos de años, no de segundos.

Clic del otro lado

Alguien recibe tu enlace y hace clic. En lugar de llegar directamente al destino, ve una pantalla: "este enlace está protegido por contraseña", un campo para escribir y un botón.

Escribe. El servidor compara lo que escribió con la huella guardada. ¿Coincide? Recibe un token de sesión válido por un día. Durante las siguientes 24 horas, regresa al enlace sin tener que escribir nada. No tiene que recordar, no tiene que esforzarse.

¿No estás de acuerdo? Error. Cinco errores desde la misma dirección IP y el acceso se bloquea durante cinco minutos. Un bot que intenta probar contraseñas una tras otra, se choca contra una pared.

Lo que simplemente no está aquí

No guardamos contraseñas en texto plano. En ningún lugar. Ni siquiera en los logs, que es donde miro al buscar errores.

No enviamos contraseñas por correo electrónico. Lo que significa que si alguien olvida su contraseña, no se la enviaré porque no la conozco. Debes enviarla tú mismo, por el mismo canal que la anterior.

Y no compartimos contraseñas con el exterior. Ninguna analítica, ningún marketing, ningún AB toca estos datos. (Esta es precisamente una regla que se aplica en todo cutty.dev, no solo aquí.)

Dos hábitos que marcan la diferencia

Primero: no inventes una contraseña de la nada. El nombre de la empresa más el año de fundación es un regalo para cualquiera que te conozca. Un generador en el navegador arrojará algo mejor en un segundo.

El segundo, más importante: no envíes la contraseña por el mismo canal que el enlace. ¿El enlace se envió por correo electrónico? Envía la contraseña por SMS. O al revés. El sentido es que la toma de control de una sola cuenta no le da a nadie el conjunto completo.

Un pequeño detalle que pocos conocen: puedes crear varios enlaces que dirijan a la misma dirección, pero con diferentes contraseñas. Das acceso a cinco personas, cada una con un enlace distinto. ¿Una tiene que despedirse? Bloqueas su enlace y el resto ni siquiera lo notará.

Puedes cambiar la contraseña sin crear un nuevo enlace. Panel, "Editar", nueva contraseña. Atención: todas las sesiones activas de 24 horas caducan inmediatamente. Todos deberán volver a introducir la contraseña.

Frontera, que vale la pena conocer con antelación

Volvamos a la entrada del concierto. La contraseña protege contra el buscador y contra un invitado accidental. No protege contra alguien que conoce la contraseña y decide compartirla con el mundo.

Si tu escenario suena a "esto debe verlo exactamente esta única persona y nadie más", la contraseña no será suficiente. Aquí necesitas cuentas, inicio de sesión, autorización. Otra liga, otro problema.

Pero levantando la mano, ¿con qué frecuencia tienes realmente un escenario así? En mi experiencia, rara vez. En la gran mayoría de los casos, se trata de un simple "no quiero que alguien de la calle entre aquí". Y con esa frase es más que suficiente.

Si quieres ver cómo se ve por dentro — al crear un enlace, despliega "Opciones avanzadas" y marca "Añadir contraseña". El resto sucede solo.