TL;DR. La “etiqueta nutricional” de privacidad de Apple es la única superficie de divulgación de privacidad en tecnología con aplicación estructural. La mayoría de las apps declaran una amplia recogida de datos vinculada a la identidad del usuario. La etiqueta de la app de iOS de Ostler declara cero seguimiento y ningún dato vinculado, porque no hay servidor de Ostler al que vincular datos. La arquitectura escribe la etiqueta, no el abogado.
La mayoría de la gente no lee las políticas de privacidad. Nadie lo hace. Un estudio de 2008 en Carnegie Mellon halló que leer cada política con la que te topas en un año llevaría setenta y seis días laborables, y las políticas se han alargado desde entonces. El resultado es un mercado donde las promesas sobre el manejo de datos no cuestan nada de hacer y rara vez cuestan algo de romper.
Hay exactamente un lugar donde esto ha cambiado. Desde diciembre de 2020, cada app de la App Store de iOS se distribuye con un formulario de divulgación estructurado que Apple llama la etiqueta nutricional de privacidad. Está en la página de producto de la app, sobre las capturas de pantalla. Los usuarios la repasan. Los periodistas la capturan. Apple la hace cumplir. Las apps que mienten en el formulario son retiradas de la tienda, y Apple las ha retirado.
Es, con bastante diferencia, la superficie de divulgación de privacidad de mayor confianza en la tecnología de consumo. Y a diferencia de una política de privacidad, no le da al desarrollador margen para ser elocuente. Es un formulario. Marcas casillas.
Qué pregunta realmente el formulario
La etiqueta organiza cada pieza de datos que toca una app en uno de tres grupos, en orden descendente de preocupación.
Datos usados para seguirte. El seguimiento, en la definición de Apple, significa vincular los datos recogidos por esta app con datos recogidos por otras empresas, con fines publicitarios o de medición. También significa enviar datos a un intermediario de datos. Si una app declara algo aquí, Apple le muestra al usuario un aviso la primera vez que se ejecuta la app, pidiendo permiso. La mayoría de los usuarios dicen no, que es la razón por la que la categoría existe en absoluto.
Datos vinculados a ti. Datos que recoge la app y que están atados a tu identidad a través de una cuenta, un ID de dispositivo o un identificador similar. Los datos no se venden ni se cruzan, pero el desarrollador los retiene y podría, en principio, buscarlos por usuario.
Datos no vinculados a ti. Datos que la app toca para funcionar, pero que nunca asocia con un identificador de usuario persistente. El caso clásico es una app de mapas que sabe dónde estás ahora mismo para dibujar un mapa, pero no registra esa ubicación contra una cuenta.
Datos no recogidos. Evidente por sí mismo.
Las categorías son en cascada. Una app que reporta “Datos no recogidos” en todos los apartados es la criatura más rara de la tienda, sobre todo calculadoras y juegos sin conexión. Una app que reporta todo como “Vinculado a ti” es la norma del cloud. Casi cada app de consumo se sitúa en algún punto intermedio, y la única columna que determina la señal social de la etiqueta es la primera: si la app hace seguimiento.
Qué dice la etiqueta de la app de iOS de Ostler
Esto es lo que el manifiesto PrivacyInfo.xcprivacy de la app de iOS de Ostler declara, línea por línea. El manifiesto es la fuente de verdad a partir de la cual se genera la etiqueta nutricional de Apple en el momento del envío; mentir en la etiqueta mientras el manifiesto cuenta una historia distinta se detecta automáticamente.
| Categoría de Apple | Respuesta de la app de iOS de Ostler |
|---|---|
| Datos usados para seguirte | Nada. La app declara NSPrivacyTracking: false. |
| Datos vinculados a ti | Nada. No hay sistema de cuentas al que vincular datos. |
| Datos no vinculados a ti | Cinco entradas: Salud, Forma física, Ubicación precisa, Fotos o vídeos, Otro contenido del usuario. |
| Datos no recogidos | Todo lo demás. |
Las cinco entradas de la columna “No vinculados” son los tipos de datos que la app toca en nombre del usuario, en el dispositivo del usuario. Salud y Forma física significan que la app puede leer de Apple Health para enriquecer la cronología del usuario. Ubicación precisa significa que la app registra dónde ha estado el usuario, en el propio Mac del usuario. Fotos significa que la app lee la fecha de creación y los metadatos de ubicación, nunca las imágenes en sí. Otro contenido del usuario cubre transcripciones y fragmentos de conversación que el usuario ha elegido capturar.
Cada una de esas entradas está marcada como “Funcionalidad de la app” en su finalidad, que es el uso más estrecho permitido por Apple. Ninguna de ellas está marcada como Vinculada. Ninguna de ellas está marcada como Seguimiento. También revisamos el código en busca de cada SDK de seguimiento de la lista estándar del sector: Firebase, Sentry, Mixpanel, Amplitude, Segment, PostHog, AppsFlyer, Adjust, Google Analytics, Crashlytics, Bugsnag, Datadog. Ninguno está presente. Buscamos cualquier código que pida a iOS un identificador publicitario, o que dispare el aviso “Permitir que esta app rastree tu actividad” que la mayoría de las apps muestran al primer lanzamiento. Nada de eso está ahí. Ese aviso no aparecerá nunca porque no hay nada en la app que lo dispare.
Por qué esto es automático, no virtuoso
La tentación al leer la tabla de arriba es suponer una disciplina inusual del lado de la ingeniería, un equipo manteniendo la línea contra los SDK de seguimiento por pura fuerza de voluntad. No existe tal disciplina. La etiqueta tiene ese aspecto porque la arquitectura hace imposible cualquier otra etiqueta.
Ostler se construye sobre una sola regla. El Hub, una app de macOS de compra única, vive en el propio Mac del cliente. La app de iOS habla con el Hub en la red doméstica del cliente. Los datos personales nunca salen del dispositivo del cliente. El modelo de razonamiento, un LLM local, se ejecuta en el Hub. El grafo de conocimiento personal, que crece hasta millones de relaciones y cientos de miles de referencias incrustadas para un usuario activo, vive en el disco del Hub. El viaje de ida y vuelta al cloud que otros productos de IA personal hacen para la inferencia simplemente no ocurre.
Esa única elección arquitectónica escribe la etiqueta nutricional entera. Sin servidor de Ostler, no hay nada a lo que la app de iOS pueda llamar a casa. Sin cuenta de Ostler, no hay identidad a la que vincular datos. Sin SDK de terceros en el bundle, no hay superficie por la que un intermediario de datos pudiera introducirse más tarde sin que se notara en una revisión de código. La columna “No vinculados a ti” se lee como se lee porque, para empezar, no hay ningún “ti” en la base de datos de Ostler. El Hub de un cliente es el Hub de un cliente, y no tenemos ninguna vista dentro de él.
Por qué otras apps no pueden seguir el ejemplo
El coste estructural de cambiar una etiqueta nutricional es la parte de la que no se habla. La mayoría de las apps de consumo en el espacio de la IA personal son cloud-first por necesidad. El modelo se ejecuta en las GPU del desarrollador porque el modelo es demasiado grande para caber en el teléfono del usuario. Para ejecutar el modelo en las GPU del desarrollador, los datos del usuario tienen que llegar a las GPU del desarrollador. Para hacer la experiencia coherente entre sesiones y dispositivos, los datos tienen que vincularse a una cuenta. Para pagar las GPU, el desarrollador tiene que saber qué cuenta usó cuánto. Cada una de esas decisiones escribe otra fila en “Datos vinculados a ti”, y la arquitectura no se puede desmontar sin reescribir el producto desde los enchufes de la pared.
Una política de privacidad se puede reescribir en una tarde. Una etiqueta nutricional es una función del binario. Cuando Apple acciona el interruptor que exige una etiqueta real, la etiqueta dice la verdad sobre el código, lo quiera el desarrollador o no.
Ostler dio el paso construyendo local-first desde el primer día. Ocho meses de compromiso arquitectónico, dos patentes provisionales presentadas sobre el pipeline, y una forma de despliegue diseñada en torno a la propia máquina del cliente. La recompensa es una etiqueta nutricional que no necesita ningún párrafo matizador debajo. The world does revolve around you.™ El formulario de la App Store lo dice con las palabras de Apple, no con las nuestras.
La arquitectura escribe la etiqueta. No el abogado.
Preguntas, correcciones, desacuerdos – [email protected].