Checklist confidencialidad
Para que un LLM local mantenga la confidencialidad, verifica cinco puntos: las funciones en la nube de la herramienta, la telemetría de las bibliotecas, el tráfico de red real, la procedencia de los modelos y extensiones, y las carpetas sincronizadas o incluidas en copias de seguridad. La prueba decisiva consiste en un gesto: cortar la conexión a Internet y repetir una sesión normal. Si todo funciona, la cadena es local; de lo contrario, hay una llamada que debes identificar.
Un LLM local es confidencial por diseño, pero solo si nada de lo que rodea al modelo se comunica con el exterior: opción en la nube, ping de una biblioteca, plugin, carpeta sincronizada. Estas fugas rara vez son intencionadas y casi siempre son invisibles. Esta lista de verificación te ofrece criterios verificables, comandos y ajustes con fecha de referencia para comprobar tu instalación en quince minutos.
#Lo que « local » garantiza y lo que no garantiza
Para verificar que un LLM local mantenga la confidencialidad, hay que revisar cinco puntos: la herramienta que utilizas, su telemetría y sus llamadas a servicios remotos, el tráfico real de la máquina, la procedencia de los modelos y extensiones y, por último, los directorios donde se almacenan tus conversaciones. Un modelo ejecutado en tu equipo no envía nada por sí solo: las fugas provienen casi siempre de lo que lo rodea, como una opción de nube activada, un ping de biblioteca, un plugin o una sincronización. El método más fiable sigue siendo la prueba de red: cortar la conexión a Internet, repetir una sesión normal y observar qué sigue intentando salir. El resto de esta página detalla cada comprobación, con las variables de entorno, los comandos y los ajustes que hay que revisar.
#¿Qué nivel de control según tus datos?
Desplegar una IA local en el trabajo: RGPD, AI Act, arquitectura multiusuario, costes, nota para la dirección.
- Espacio en línea de por vida
- PDF + archivos
- Actualizaciones de por vida
No todo el mundo necesita el mismo rigor. Para un uso personal sin datos sensibles bastan los primeros puntos; un expediente de cliente o médico requiere un aislamiento completo, y un secreto industrial o un contexto sujeto a un NDA obliga a demostrar qué datos salen. La siguiente tabla relaciona el nivel de exigencia con las comprobaciones que debes marcar.
| Tipo de datos | Controles mínimos | Añadir si es posible una auditoría |
|---|---|---|
| Uso personal común (ideas, redacción, código personal) | Herramienta verificada, funciones de nube desactivadas, telemetría apagada | Una prueba en modo avión |
| Datos de clientes, de RR. HH., sanitarios y jurídicos | Todo lo anterior, más un cortafuegos de aplicaciones, carpetas excluidas de la sincronización y un disco cifrado | Registro del cortafuegos conservado, lista de extensiones autorizadas |
| Secreto industrial, código bajo NDA, datos regulados | Todo lo anterior, más una máquina aislada de la red para la inferencia | Aislamiento físico completo de la red (air-gap), modelos importados desde un equipo separado, revisión de las extensiones |
Las dos últimas líneas se detallan en las guías sobre el aislamiento de una máquina de inferencia y el cifrado de disco.
#1. Verificar la propia herramienta
Cada aplicación de inferencia tiene su propia política. Lo que sigue recoge lo que sus proveedores indican en su documentación o en su política de privacidad, consultadas el 30 de septiembre de 2026; una actualización puede cambiar estos ajustes, así que vuelve a comprobarlos después de cada actualización a una nueva versión principal.
| Herramienta | Lo que se indica | Qué verificar en tu entorno |
|---|---|---|
| Ollama | La FAQ especifica que los prompts y datos no se ven cuando el modelo corre localmente; el servicio escucha en 127.0.0.1, puerto 11434 | Que no utilizas un modelo en la nube ni la búsqueda web |
| LM Studio | La política de privacidad indica que los mensajes, historiales y documentos no abandonan tu máquina con modelos locales; solo la búsqueda o la descarga de modelos y la comprobación de actualizaciones implican contactar con el editor | Las funciones de pago en la nube (modelos alojados, búsqueda web) permanecen desactivadas |
| Jan | Funcionamiento anunciado al 100 % offline, datos almacenados localmente; las API remotas (OpenAI, Groq) envían tus datos a sus servidores | Que no se haya configurado ninguna clave de API remota |
| GPT4All | Un ajuste Datalake, que debe activarse voluntariamente, permite compartir interacciones con la comunidad; está desactivado por defecto | Que Datalake esté efectivamente en Off |
| Open WebUI | El repositorio proporciona variables para desactivar la analítica y la telemetría de las bibliotecas (ver la sección siguiente) | Ninguna clave de proveedor remoto como alternativa de respaldo |
Dos correcciones respecto a lo que se cree. En primer lugar, la mención « telemetría opt-in » que a menudo se lee para LM Studio ya no es válida: su política actual especifica que la aplicación no incluye telemetría. En segundo lugar, decir que Ollama no tiene « ninguna función remota » es inexacto desde la llegada de los modelos en la nube y de la búsqueda web. Estas funciones son opcionales, pero están presentes.
#Ollama: desactivar las funciones en la nube
Si Ollama es tu motor, desactiva explícitamente las funciones que puedan enviar datos al exterior. La FAQ indica que, al desactivar la nube, pierdes la posibilidad de usar los modelos en la nube y la búsqueda web de Ollama. Ese es exactamente el efecto buscado para un equipo de trabajo que maneja información confidencial.
En macOS, si usas la aplicación, las variables se establecen con launchctl setenv antes de volver a iniciar la aplicación, como explica la FAQ; la alternativa es añadir la clave disable_ollama_cloud con el valor true al archivo ~/.ollama/server.json. Tras el reinicio, los registros muestran «Ollama cloud disabled: true», lo que proporciona una prueba sencilla que puedes conservar.
#2. Telemetría y analítica de las bibliotecas
La herramienta puede respetar tu privacidad mientras las bibliotecas que incorpora envían datos. En el ecosistema Python de Hugging Face, la documentación indica que ciertos datos se recopilan por defecto para supervisar el uso y priorizar funcionalidades; la implementación central se encuentra en huggingface_hub. Una sola variable desactiva toda esa recopilación.
La variable HF_HUB_DISABLE_IMPLICIT_TOKEN, citada a menudo junto con las anteriores, no es una variable de telemetría: impide el envío automático de tu token de Hugging Face en peticiones que no lo necesitan, lo que limita lo que expones cuando estás conectado. Es útil, pero por otro motivo, y la documentación advierte que puede tener efectos secundarios (los modelos privados ya no aparecen en ciertas listas).
Este último ajuste es el más potente para un equipo sensible: convierte una fuga silenciosa en un error visible. Si un script falla indicando que no hay caché, es porque intentaba conectarse al Hub, precisamente lo que querías saber. La antigua variable TRANSFORMERS_OFFLINE se utilizó durante mucho tiempo para el mismo propósito, pero HF_HUB_OFFLINE es la que destaca la documentación actual de Transformers.
#Open WebUI y sus dependencias
Open WebUI incluye componentes de terceros, entre ellos una base vectorial y un módulo de estadísticas de instalación. Su archivo de configuración de ejemplo agrupa tres líneas en una sección «DO NOT TRACK» que bloquean estos envíos. Se configuran mediante variables de entorno, en el archivo de configuración o en el comando docker run.
Comprueba también que no hayas añadido ahí ninguna clave de un proveedor remoto: recurrir a un servicio alojado como alternativa cuando el modelo local no está disponible envía silenciosamente tus prompts al exterior. La guía de Open WebUI con Ollama muestra dónde se configuran estas conexiones.
#3. Supervisión de red: ver lo que realmente sale
Las declaraciones de los editores se leen; el tráfico se mide. Un cortafuegos de aplicaciones enumera cada programa que intenta establecer una conexión saliente y te permite decidir caso por caso, lo que revela en pocos días lo que ninguna documentación dice.
- Little Snitch (macOS)
- Firewall por aplicación: ves qué aplicación se conecta a qué dominio y decides en cada caso.
- GlassWire (Windows)
- Historial visual del tráfico por proceso, con alertas sobre nuevas conexiones
- OpenSnitch (Linux)
- Firewall interactivo para GNU/Linux, inspirado en Little Snitch, de código abierto (licencia GPL-3.0)
- ufw o iptables
- Bloquean por defecto y solo permiten lo necesario; la guía sobre el air-gap detalla el procedimiento.
#Listar las conexiones y los puertos en escucha
Dos comandos distintos responden a dos preguntas. El primero muestra en qué dirección el servicio acepta conexiones, el segundo muestra las conexiones abiertas hacia el exterior.
Interpreta el resultado así: un servicio que escucha en 127.0.0.1:11434 tiene el comportamiento predeterminado, documentado en la FAQ de Ollama, y solo es accesible desde la propia máquina. Si escucha en * o 0.0.0.0, significa que el servicio es accesible desde la red local, lo que ocurre cuando se ha modificado la variable OLLAMA_HOST. No es una fuga hacia Internet, pero sí una exposición que debe tratarse: ver la guía sobre cómo proteger un servidor Ollama. Un punto que suele confundirse: 0.0.0.0 no significa «solo localhost».
Una línea ESTABLISHED hacia una dirección pública durante una inferencia es una señal que conviene investigar. Ten en cuenta que la descarga de un modelo genera conexiones legítimamente; es la inferencia, una vez instalado el modelo, la que debe permanecer sin actividad de red. Las actualizaciones de la aplicación también pueden contactar con el proveedor, como reconoce LM Studio en su política: decide si las toleras.
#4. Modelos: de dónde provienen y qué contienen
La primera descarga de un modelo requiere una conexión: es normal, y lo que se transmite entonces es el modelo que llega, no tus datos. Una vez que el archivo está en su sitio, un modelo es un conjunto de pesos: por sí mismo no abre ninguna conexión. Lo que hay que vigilar es el formato y aquello que lo ejecuta.
- Formato de pesos
- Los formatos GGUF y safetensors contienen solo tensores. El formato pickle, usado por defecto para los pesos de PyTorch, es diferente: la documentación de Hugging Face advierte que cargar un archivo pickle puede ejecutar código arbitrario.
- Origen
- Da preferencia a los repositorios de los desarrolladores (Mistral AI, Meta, Qwen, Google) o a las bibliotecas de una herramienta que verifique sus modelos. Un repositorio anónimo en formato pickle es el caso que debes evitar.
- Lo que ejecuta
- El riesgo proviene de la aplicación y de sus herramientas: si el modelo puede llamar a una búsqueda web, un servidor MCP o un script, son estas herramientas las que acceden a la red, no los pesos.
#5. Extensiones, plugins y herramientas conectadas
Ahí es donde se esconden la mayoría de las fugas reales. Una extensión de un editor de código, un plugin para tomar notas, una herramienta declarada en Open WebUI o un servidor MCP se ejecuta con tus permisos y puede realizar llamadas a cualquier dominio. La promesa de «IA local» de un plugin solo vincula a su autor.
- Leer antes de activar
- Busca en el código las llamadas de red (solicitudes HTTP, bibliotecas de seguimiento) y el endpoint realmente configurado: a menudo basta con cambiar una línea para apuntar a Ollama en lugar de a un servicio alojado.
- Preferir el open source
- Un código que puedes leer es verificable; un asistente con un backend propietario no lo es.
- Limitar los permisos
- Una herramienta que no necesita leer todo el disco no debe tener acceso a él; dale una carpeta de trabajo dedicada.
- Observar con el firewall
- Después de la instalación, deja que el firewall de aplicaciones aprenda durante una semana a qué dominios se conecta la extensión.
#6. Almacenamiento, respaldos y sincronización
Tus conversaciones y tus documentos indexados son archivos. Lo que ocurra con ellos depende de dónde los guarde la aplicación y de qué supervise esa carpeta: sincronización en la nube, copia de seguridad en línea, indexador de búsqueda.
- ¿Dónde están los modelos de Ollama?
- Según la FAQ: ~/.ollama/models en macOS, /usr/share/ollama/.ollama/models en Linux, C:\Users\%username%\.ollama\models en Windows; la ubicación se puede cambiar con OLLAMA_MODELS. Son archivos de varios gigabytes: excluirlos de la sincronización también ahorra ancho de banda.
- ¿Dónde están las conversaciones?
- En el directorio de datos de la interfaz que estás usando (LM Studio, Jan, GPT4All, Open WebUI), no en el de Ollama. Localiza este directorio en las configuraciones de la aplicación, luego verifica que ningún servicio en la nube lo monitoree.
- Sincronización
- Muchos programas almacenan sus datos en Documents, que iCloud, OneDrive o Dropbox replican automáticamente. Una conversación confidencial almacenada allí acaba copiada en un servidor de terceros.
- Copias de seguridad
- Una copia de seguridad en otra ubicación o en un disco externo no cifrado replica el historial. Cifra el destino o excluye la carpeta.
- Disco
- Un disco no cifrado deja todas las conversaciones legibles en caso de robo: FileVault, BitLocker o LUKS, con una frase de contraseña robusta.
#Auditoría en 15 minutos: el procedimiento
Este procedimiento aplica los controles en el orden en que revelan más información con menos esfuerzo. Guarda una captura o una línea de registro por paso: sirve de prueba ante un cliente.
- 01Inventariar la cadenaLista cada programa por el que pasan tus prompts: motor (Ollama, LM Studio), interfaz (Open WebUI, Jan), extensiones de editor, scripts Python. Lo que no está listado no está controlado.
- 02Deshabilitar funciones remotasDesactiva los modelos en la nube y la búsqueda web (OLLAMA_NO_CLOUD=1), elimina las claves de API remotas y comprueba que Datalake esté en Off en GPT4All.
- 03Definir las variablesColoca HF_HUB_DISABLE_TELEMETRY=1, DO_NOT_TRACK=1 y, una vez que los modelos estén en caché, HF_HUB_OFFLINE=1 en el perfil del shell; añade las tres líneas para desactivar la analítica a Open WebUI.
- 04Observar la redInstala un cortafuegos de aplicaciones, inicia una sesión normal de diez minutos y luego vuelve a revisar los dominios a los que se ha conectado. Ejecuta también los dos comandos lsof.
- 05Mover las carpetasSaca las conversaciones y los modelos de las carpetas sincronizadas, cifra el disco y el destino de las copias de seguridad.
- 06Repetir en modo aviónCorta la conexión y vuelve a hacer la misma sesión. Todo lo que falla es una fuga o una función en la nube que debes quitar; corrígelo y vuelve a intentarlo hasta que el test pase.
#La lista de verificación resumida
- ☐ Funciones de nube desactivadas
- OLLAMA_NO_CLOUD=1, ningún modelo alojado, ninguna clave de API remota, Datalake en Off.
- ☐ Telemetría desactivada
- HF_HUB_DISABLE_TELEMETRY=1 y DO_NOT_TRACK=1; tres variables para desactivar la analítica en Open WebUI.
- ☐ Firewall de aplicación activo
- Little Snitch, GlassWire, OpenSnitch o ufw con regla estricta, registro revisado.
- ☐ Escucha verificada
- 127.0.0.1 para Ollama, salvo exposición voluntaria y segura.
- ☐ Modelos offline
- Después de descargar, HF_HUB_OFFLINE=1; pesos en GGUF o safetensors, sin pickle desconocido.
- ☐ Extensiones revisadas
- Código leído, endpoints verificados, permisos limitados.
- ☐ Carpetas excluidas de la sincronización
- Conversaciones y modelos excluidos de iCloud, OneDrive, Dropbox y copias de seguridad no cifradas.
- ☐ Disco cifrado
- FileVault, BitLocker o LUKS.
- ☐ Prueba de modo avión exitosa
- Una sesión completa sin Internet.
#Preguntas frecuentes sobre la privacidad de un LLM local
¿Envía un LLM local mis datos a la empresa desarrolladora?+
¿Cómo verificar que Ollama no se conecte a nada?+
¿Cómo desactivar la telemetría de Hugging Face?+
¿Se necesita un firewall adicional si la herramienta dice que no envía nada?+
¿Mis conversaciones están sincronizadas con iCloud o Dropbox?+
¿Basta con el modo avión para demostrar que mi configuración es local?+
- Fuente: preguntas frecuentes de Ollama (confidencialidad, nube, exposición en la red)
- Fuente: variables de entorno de huggingface_hub
- Fuente: política de privacidad de LM Studio
- Fuente: archivo .env.example de Open WebUI
- Fuente: Hugging Face, análisis de archivos pickle
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.