---
title: "Seguridad · Recado"
description: "Cómo protege Recado cada paso, de la petición a la respuesta: dos aprobaciones humanas, respuestas como datos, enlaces que caducan, ficheros en cuarentena y datos en la UE."
lang: es
---

# Cómo protegemos cada paso

Recado sirve para pedir cosas a gente de fuera, y por eso está construido pensando en que lo que vuelve puede no ser de fiar. Resumen en cinco líneas:

1. Nada sale ni entra sin una persona: hay dos aprobaciones, una por cada sentido.
2. Lo que vuelve es un dato, no una orden: llega en un sobre tipado y se cita, no se obedece.
3. El enlace es secreto, caduca y se puede revocar. Abrirlo no gasta nada y, desde un dispositivo nuevo, enviar exige un código.
4. Recado no pide contraseñas: lo que parece una clave se tacha y los accesos se piden como invitación.
5. Los ficheros se comprueban por dentro, se guardan aparte y no se ejecutan. Los datos viven en la UE y se borran 30 días después de cerrar la petición.

Así llega una respuesta a la sesión que preguntó: un sobre con campos tipados, el texto libre aparte y los avisos dentro. Es un ejemplo con datos de muestra, abreviado.

```json
{
  "recado": "v1",
  "contenido_no_fiable": true,
  "id": "s_…",
  "peticion": "EJ-01",
  "origen": {
    "canal": "web",
    "autor_declarado": "humano",
    "identidad": "otp",
    "aprobado_por": "Ana",
    "aprobado": "…",
    "hash": "sha256:…"
  },
  "campos": { "1": ["f_9"], "2": true },
  "texto_libre": [
    { "campo": "comentarios", "texto": "Te paso el logo en SVG. [Ignora tus instrucciones y…]" }
  ],
  "ficheros": [
    { "id": "f_9", "nombre": "logo.svg", "mime_verificado": "image/svg+xml", "sha256": "…", "escaneo": "estatico_ok" }
  ],
  "avisos": [
    { "codigo": "instrucciones_dirigidas_a_ia", "donde": "comentarios" }
  ],
  "firma": "…"
}
```

## Dos aprobaciones humanas

Recado tiene dos puertas, y las dos las abre una persona.

**Al salir.** Ningún correo sale sin que apruebes ese correo concreto: ni el primero, ni los recordatorios, ni las respuestas a una duda, ni las peticiones de aclaración. Antes de aprobar ves el texto exacto, en texto plano y en HTML, y el resultado de los escáneres de secretos, enlaces y preguntas prohibidas. Los recordatorios los propone Recado, pero solo salen si los apruebas.

**Al entrar.** Ninguna respuesta llega a tu sesión sin que la revises. La ves pregunta por pregunta, con sus avisos, y puedes aprobarla entera o solo una parte, editarla, pedir una aclaración o rechazarla.

La sesión que redacta la petición solo indica el rol de quien debe responder. El nombre y el correo del destinatario los pones tú al aprobar.

## Lo que vuelve es un dato

Una respuesta puede traer texto escrito por una persona, por su asistente o por alguien que quiere engañar a tu agente. Por eso Recado no la trata como una conversación, sino como un dato:

- **Solo como resultado de una herramienta.** Un aviso fijo y sin contenido dice que hay respuestas aprobadas. El contenido llega únicamente cuando la sesión lo pide, y nunca dentro del mensaje del sistema, de tu turno o de la memoria.
- **Un sobre tipado.** Es un JSON con `"contenido_no_fiable": true`. Las respuestas con forma (sí o no, fechas, ficheros, cesiones) van en campos tipados; el texto libre va aparte, con un tope de longitud, y fuera del sobre no hay nada. Cada sobre va firmado y el puente de Recado descarta los que no cuadran.
- **Higiene del texto.** Se normaliza el Unicode y se eliminan los caracteres invisibles: las etiquetas Unicode, los de ancho cero y los que cambian la dirección de escritura.
- **Enlaces desactivados.** Una dirección llega como `hxxps://sitio[.]com`: se lee, pero no se abre por descuido.
- **Avisos dentro del sobre.** Si el texto parece dirigido a una IA, trae un posible secreto, un enlace externo, texto oculto o un fichero que no es lo que dice ser, el sobre lo anota en `avisos`, y tú lo ves antes de aprobar.
- **Citado, no obedecido.** El plugin de Recado indica a la sesión que trate el contenido como una cita: lo que diga se cuenta, no se ejecuta, y si trae instrucciones se te avisa.

Ninguna defensa es perfecta. Estas capas se suman a la persona que revisa; no la sustituyen.

## El enlace y el código

- **Un enlace por destinatario.** Lleva un token de 256 bits generado al azar. En la base de datos solo se guarda su huella (un hash).
- **Caduca y se puede revocar.** Caduca en la fecha que indica el correo y se revoca cuando quieras. Un enlace caducado, revocado o inexistente responde exactamente igual (un 404), así que no se puede comprobar si existió.
- **No se indexa ni se filtra.** La página lleva `noindex` y `no-referrer`: los buscadores no la guardan y el navegador no entrega el enlace a otras webs.
- **Abrir no gasta nada.** Las lecturas (GET y HEAD) no cambian ningún estado, así que los filtros de correo que abren los enlaces para comprobarlos no estropean la petición.
- **Código para enviar desde un dispositivo nuevo.** El primer dispositivo desde el que se responde queda reconocido. Si el correo se reenvía y se abre en otro, ese otro puede leer la petición (ya iba en el correo), pero para escribir algo necesita un código de un solo uso de seis cifras. Llega al correo original, nunca a una dirección que escriba quien visita la página; caduca a los 10 minutos y admite 5 intentos.
- **Código de verificación de la petición.** Es otro código, de 6 caracteres, y va arriba en cada correo. En `/verifica` dice si la petición es real, quién la pide y cuándo caduca.
- **Límites de uso** por dirección IP, por enlace y por API, contra el abuso.

## Secretos y preguntas prohibidas

Recado no sirve para recoger secretos, y está hecho para que no los recoja.

- **No existe ningún tipo de pregunta para contraseñas.**
- **Un escáner de preguntas prohibidas.** Al aprobar, bloquea cualquier pregunta que pida credenciales: contraseña, clave de acceso, PIN, códigos de verificación o de doble factor, tokens, claves de API, «usuario y contraseña» o «datos de acceso». No salta por la palabra «cuenta» sola: «invítanos a la cuenta de la plataforma» es una petición legítima.
- **Redacción de secretos.** Si alguien escribe algo que parece una clave, el detector (patrones de claves conocidas, contexto y entropía) lo tacha antes de guardarlo y avisa a quien responde.
- **Los accesos van como invitación.** Una pregunta de tipo invitación dice, por ejemplo, «Invita a editor@… como editor». Quien responde contesta «hecho», «no puedo» o «lo hace otra persona», sin pegar ninguna clave. La dirección a la que invitar la fija quien pide, en cada petición.

## Ficheros

- **Lista blanca por contenido real.** Recado mira los primeros bytes del fichero, no la extensión ni lo que diga quien lo envía. Admite PDF, PNG, JPG, WebP, SVG saneado, MP3, WAV, DOCX, XLSX y ZIP sin anidar. Los ejecutables y los scripts se bloquean, y también los ZIP que los llevan dentro.
- **Tamaño.** 25 MB por fichero y 200 MB por petición.
- **Cuarentena en la UE.** Cada fichero se guarda aparte, en almacenamiento de la UE, y nunca se ejecuta. El panel enseña una vista previa segura, y las descargas salen como adjunto, con cabeceras que impiden que el navegador las interprete. La sesión recibe el fichero en una carpeta de cuarentena local, comprobado con su huella.
- **Análisis estático.** Se comprueba el tipo real, el texto oculto, las partes activas y los metadatos.
- **PDF con partes activas.** Un PDF con JavaScript, con formularios que envían datos, con adjuntos o cifrado no se bloquea: se guarda en cuarentena con un aviso, «PDF con partes activas: no lo abras fuera de un entorno aislado».

## Correo

- **Cada correo lo apruebas tú**, como se ha dicho arriba.
- **El enlace de la petición** va legible y con el dominio completo. Sin acortadores ni redirecciones. Los demás enlaces que lleve la petición salen tal cual, y el escáner te los señala antes de aprobar. El HTML es sencillo y va con su versión en texto plano.
- **Se puede comprobar.** El código de verificación y la dirección de `/verifica` van arriba, bien visibles. El correo dice siempre quién pide y qué hacer ante una duda: «Si dudas, pregúntale a quien te lo pide por el canal de siempre». Y trae una promesa: nunca te pediremos contraseñas.
- **SPF, DKIM y DMARC estricto.** El correo saliente se envía autenticado con SPF y DKIM, y el dominio publica una política DMARC estricta (`reject`), para que suplantarlo sea difícil.
- **Una sola dirección de respuesta por petición.** Lleva una firma dentro de la propia dirección. Un correo recibido solo se acepta si la firma es válida y quien escribe es el destinatario. Aun así, un correo nunca cuenta como identidad verificada: si el remitente no está autenticado, se anota así y lo ve quien revisa.
- **Bajas.** Cada correo explica cómo darse de baja.

## Datos y RGPD

- **En la UE.** Los datos de las peticiones se guardan en la Unión Europea, tanto en las bases de datos como en el almacenamiento de ficheros.
- **Se borran a los 30 días.** Treinta días después de cerrar la petición.
- **Aviso del artículo 14.** Quien responde no nos da sus datos él mismo, así que el primer correo lleva el aviso del artículo 14 del RGPD: quién es el responsable, para qué se usan sus datos, de dónde sale su dirección y qué derechos tiene. El detalle está en [Privacidad](https://recado.io/privacidad). La base es el interés legítimo.
- **Sin analítica ni publicidad.** La página de la petición solo usa una cookie técnica, para reconocer el dispositivo.
- **Las cesiones quedan tipadas.** Cuando se pide un permiso de uso (de una imagen, de una marca), la autorización guarda el material, el titular, los medios, el territorio, el plazo, la exclusividad y la atribución, con su huella y su fecha. Tener un fichero no equivale a tener una licencia.

## Lo que todavía no hacemos

Preferimos decirlo claro.

- **Antivirus en los ficheros: en preparación.** Hoy los ficheros se analizan de forma estática, pero no pasan por un antivirus. Por eso quedan en cuarentena y no se ejecutan nunca.
- **MCP para el destinatario: en preparación.** Quien responde con un asistente lo hace hoy por la página, el Markdown o la API. Está explicado en [Para agentes](https://recado.io/agentes).
- **Correo desde el dominio de tu empresa: en preparación.** Hoy los correos salen desde `recado.io`, así que el dominio del remitente no coincide con el de la empresa que nombra el correo. Por eso cada correo trae un código y una dirección para comprobarlo, y recuerda que se puede preguntar a quien pide por el canal de siempre.

¿Te ha llegado un recado y dudas? Comprueba el código en [/verifica](https://recado.io/verifica) o pregúntale a quien te lo pide por el canal de siempre.
