Dejar que una IA use tus contraseñas sin que las vea
ContenidoContents
Los agentes de IA han empezado a hacer cosas de verdad: reservar un viaje, rellenar un formulario, entrar en un panel y sacar un dato. El problema es que casi todo lo interesante está detrás de un inicio de sesión. Y hasta ahora, para que un agente iniciara sesión por ti, había que hacer algo que da bastante repelús: enseñarle la contraseña. Es decir, meter tu clave en el mismo sitio donde vive el modelo, con su memoria y sus registros.
Esta semana 1Password y Anthropic han anunciado una forma de evitar exactamente eso. Y como justo ayer acabé el repaso de Grok diciendo aquello de “tener el control: saber qué sale y qué se queda”, me viene al pelo para contar el otro lado de la moneda: cómo se empieza a resolver bien.
El problema, en una frase
Para que un agente actúe en tu nombre necesita tus credenciales. Pero dárselas al modelo significa que tu contraseña —y peor aún, tu código de un solo uso— pasa por su contexto, puede quedar en su memoria y acabar en los registros de quien opera el modelo. Aunque nadie tenga mala intención, es superficie de ataque que antes no existía. La pregunta buena no es “¿confío en esta IA?”, sino "¿por qué tiene que ver mi contraseña siquiera?".
La idea: permiso para usar, no permiso para ver
Aquí está lo bonito, y lo resume la CTO de 1Password, Nancy Wang, mejor que yo:
“La respuesta no es entregarle tus secretos al agente. Es dejar que un usuario le dé permiso para usar una credencial sin dejar que el agente la vea.”
Suena a juego de palabras, pero es un cambio de arquitectura real. La clave es separar dos cosas que siempre habían ido juntas: el permiso para usar una credencial y el conocimiento de esa credencial. Tú das lo primero; el agente nunca obtiene lo segundo.
Cómo funciona por dentro
La extensión de 1Password se pone en medio como intermediario (un broker de credenciales). El flujo, paso a paso:
- Claude pide una tarea, no una contraseña. El modelo dice “necesito entrar en tal sitio”. No solicita la clave; solicita permiso para hacer algo.
- Tú apruebas con biometría, ítem a ítem. Cada petición se aprueba o se deniega con un solo gesto (Touch ID). El diálogo y el valor nunca pasan por el modelo.
- 1Password inyecta la credencial por su propio canal. Escribe usuario, contraseña y el código temporal directamente en los campos de la web, a través de un canal que controla él. La contraseña y el OTP “se quedan fuera del modelo, de su memoria y de los sistemas de Anthropic”. El modelo solo recibe un “ha ido bien” o “ha fallado”. 1Password lo llama zero-exposure: cero exposición del secreto.
- En cuanto el agente toma el navegador, la bóveda se cierra. Solo quedan a la vista los ítems aprobados para esa tarea. El resto del baúl es inalcanzable mientras el agente tiene el control.
- El permiso caduca con la sesión. No se hereda a otras sesiones ni deja acceso permanente detrás. Cuando acaba, acaba.
- Y limpia si algo huele mal. Tras cada autorrelleno escanea la página y, si el formulario no se envía bien, borra los valores que había escrito. Así, si caes en una web falsa, no se queda ahí tu contraseña recién puesta.
Un matiz práctico: dentro de una misma tarea puede encadenar varios logins de sitios distintos sin pedirte permiso cada dos por tres. La comodidad no se pierde; lo que cambia es quién ve el secreto.
Por qué esto no es “el autorrelleno de siempre”
Rellenar contraseñas automáticamente lo lleva haciendo el llavero del sistema desde hace años. Lo genuinamente nuevo aquí no es el autorrelleno, sino haberlo rediseñado pensando en un agente, que es un actor raro: no es del todo tú, ni es del todo una web maliciosa. Por eso aparecen piezas que el autorrelleno clásico no tenía: la bóveda que se bloquea cuando el agente coge el mando, el permiso que caduca con la sesión y el borrado de lo inyectado si el envío falla. Son defensas pensadas para cuando quien está al volante es un programa, no una persona.
Una nota personal
Esto me toca de cerca por una razón: el asistente con el que programo está pensado, por diseño, para funcionar justo así. Claude Code —con el que escribo buena parte de lo que hago— contempla una pieza para pedir credenciales sin verlas: en vez de conocer tu clave, puede pedirle a tu gestor de contraseñas que resuelva un inicio de sesión o un pago, que tú apruebas en la interfaz del gestor, de modo que los valores reales nunca pasan por el modelo. No es que yo lo tenga montado en mi día a día —de hecho todavía no lo uso—, pero el principio es idéntico al que 1Password acaba de llevar al navegador. Que la misma idea aparezca a la vez en dos sitios distintos suele ser buena señal de que va por donde tiene que ir.
Lo que me llevo
Que alguien esté resolviendo el problema por el lado correcto. La moda podría haber sido “dale acceso total a la IA y confía”; en cambio, la propuesta es darle el permiso justo, para la tarea justa, durante el tiempo justo, sin enseñarle el secreto. Es exactamente el principio de mínimo privilegio de toda la vida, aplicado a un actor nuevo.
No es magia ni resuelve todos los riesgos de un agente suelto por tu navegador —sigues teniendo que fiarte de dónde le dejas actuar—. Pero mueve la línea al sitio adecuado: la pregunta deja de ser “¿le doy mis contraseñas a la IA?” y pasa a ser “¿qué le dejo hacer, y durante cuánto?”. Esa segunda pregunta, al menos, sí sé responderla.