Misión 8. Protege tu huella

▶ Abrir en Colab ▶ Ejecutar en Binder

Colab abre en segundos. Binder, la primera vez, construye el entorno en la nube (10-20 min) y luego queda en caché.

Misión 8. Encargo: «descubre tu huella de escucha y defiéndete».
Victoria: tu huella medida, y cómo reducirla.
Insignia en juego: guardián de la huella.

El encargo

Durante siete misiones has seguido la música: la trajiste del catálogo, la interrogaste, la limpiaste, dibujaste su sonido, lo mediste y hasta enseñaste a una máquina a adivinar el género por el oído. Todo ese rato el dato hablaba de las canciones. Hoy la misión da un giro que quizá no esperabas: el dato eres . Cada vez que tocas el móvil —abres una aplicación, das al play, saltas una canción, subes una foto, aceptas un aviso sin leerlo— dejas una miga. Una sola miga no es nada. Pero las migas se acumulan, y juntas dibujan un rastro: tu huella digital. Este es el encargo de la Misión 8: descubrir tu propia huella —empezando por tu huella de escucha— y aprender a defenderte.

Y hay una miga que en esta misión es la protagonista: tu historial de escucha. Cada canción que pones, que repites o que saltas a los tres segundos queda anotada, y de esa lista un programa deduce mucho más de ti de cuanto imaginas. Tu forma de escuchar es una huella tan tuya como la de tu pulgar —y la recomendación que te sirve cada día es la prueba de que alguien la está leyendo—.

Conviene decir desde la primera línea qué clase de misión es esta, porque se puede malentender. Es un escudo, no una lupa. Cuanto aprendas aquí sirve para dos cosas y solo dos: protegerte a ti y respetar a los demás. Vas a entender cómo un puñado de datos aparentemente inofensivos puede señalar a una persona —y por eso mismo vas a aprender a dar menos pistas y a cuidar las de la gente que te rodea—. En ningún momento se trata de averiguar cosas de nadie, ni de espiar la lista de reproducción de otra persona. Un guardián protege; no vigila. Si algo de esta misión te tienta a usarlo contra alguien, has entendido la letra y no la música: vuelve a este párrafo.

Por qué te importa.

No hace falta tener «algo que ocultar» para querer una puerta con pestillo. La privacidad no es esconderse: es decidir tú quién sabe qué de ti, y cuándo. Una foto tonta de hoy puede seguir en un servidor dentro de diez años, cuando pidas tu primer trabajo. Un dato suelto —tu barrio, tu edad, el grupo que escuchas en bucle— no dice quién eres; tres o cuatro juntos, sí. Y hay datos que no puedes cambiar nunca, como tu cara. Saber esto no es para asustarte, es para darte el mando. Al final de la misión no tendrás miedo: tendrás control, que es justo lo contrario.

Un cambio de mirada.

Durante toda la campaña has estado del lado de quien analiza los datos: tú eras el que contaba, medía y predecía, y la música era el material analizado. Hoy te pones, por un rato, del otro lado —el del dato—, y eso te enseña la lección más importante del oficio: detrás de cada fila de una tabla hay una persona. Cuando en el futuro manejes datos de gente de verdad —y si sigues en esto, lo harás—, recordarás qué se siente estar en esa fila, y los tratarás con el cuidado con el que te gustaría que trataran los tuyos. Aprender a protegerte es, a la vez, aprender a no dañar a nadie. Las dos caras de la misma moneda.

NotaPara saber más: eso de «no tengo nada que ocultar»

Habrás oído —quizá lo has pensado— que la privacidad solo le importa a quien esconde algo malo. Es una trampa, y vale la pena desmontarla. Cierras la puerta del baño no porque hagas nada prohibido, sino porque hay momentos que son tuyos. Echas la cortina no porque trames algo, sino porque tu casa es tu casa. La privacidad no va de ocultar; va de elegir: decidir tú quién entra en tu vida y hasta dónde. Además, «no tengo nada que ocultar» suele significar «nada que ocultar hoy, a esta gente». Pero tus datos duran, y el mundo cambia: algo hoy inofensivo mañana puede usarse en tu contra por alguien en quien no habías pensado. Proteger tu privacidad no es un acto de sospecha; es un acto de libertad —y también de solidaridad, porque cuanta más gente la defiende, más normal y más segura es para todos—.

El mapa de la misión.

Como siempre, no saltamos a la victoria: la construimos por piezas, y cada pieza es una micro-victoria que puedes enseñar. Este es el recorrido:

  1. Entender qué es una huella digital: la que dejas queriendo y la que dejas sin darte cuenta.

  2. Jugar a «¿cuántas pistas hacen falta para adivinar quién eres?» con un grupo inventado de perfiles de escucha.

  3. Ver cómo la multitud en la que te escondes se encoge pista a pista, hasta dejarte a ti solo.

  4. Medir cuánta gente queda al descubierto y contarlo en su moneda: los bits.

  5. Descubrir qué es una cookie y por qué rechazarla no borra tu huella.

  6. Entender por qué tu cara y tu salud son datos especiales.

  7. Salir con una lista concreta de hábitos de autoprotección —y de respeto a los demás—.

La regla de oro de esta misión no es «predice antes de ejecutar» como en las anteriores, sino una hermana suya: piensa antes de subir. Vamos allá.

La herramienta

Qué es una huella digital

Una huella digital es el rastro de datos que dejas al usar internet. Tiene dos mitades, y conviene distinguirlas porque se defienden de forma distinta.

La primera es la huella activa: todo aquello que subes a propósito. Una foto, un comentario, un «me gusta», tu biografía, la lista de reproducción que haces pública. La dejas tú, con tus manos, y por eso es la más fácil de controlar: depende de qué decidas publicar. La segunda es la huella pasiva: el rastro que dejas sin darte cuenta. Qué móvil usas, desde qué red te conectas, a qué hora, cuántos segundos escuchas cada canción antes de saltarla, qué botones pulsas. No la escribes tú; la recogen los programas mientras los usas. Es silenciosa, y por eso es la más traicionera: no puedes borrar un rastro que no sabías que estabas dejando.

Piénsalo como un paseo por la nieve. La huella activa son los muñecos que construyes a la vista de todos; la pasiva, las pisadas que vas dejando sin mirar atrás. Cualquiera que llegue después puede leer por dónde has pasado, aunque tú ya no estés. La buena noticia es que, con esta misión, vas a saber pisar más ligero.

NotaPara saber más: el dato que no diste tú

Hay una tercera capa, todavía más silenciosa: la huella que dejan otros sobre ti. Cuando alguien sube una foto de grupo y te etiqueta, o guarda tu número en su agenda, o menciona en qué instituto estudias, está añadiendo migas a tu rastro sin que tú toques nada. Por eso la privacidad es un pacto de ida y vuelta: la tuya depende en parte de los demás, y la de los demás depende en parte de ti. Cuidar la huella ajena —preguntar antes de subir una foto en la que sale otra persona— no es solo buena educación; es la misma regla que te protege a ti, mirada desde el otro lado.

Un día lleno de migas

Para que la huella deje de ser una idea abstracta, sigamos un día cualquiera y contemos las migas. Suena la alarma y desbloqueas el móvil: el sistema anota la hora exacta a la que te despiertas. Abres una aplicación de mensajes: le llega que estás en línea, desde qué red y con qué aparato. De camino a clase, el móvil se engancha solo a las redes de siempre, y cada enganche deja constancia de por dónde pasas. En clase buscas una duda: el buscador guarda tu pregunta y la hora. Al salir pones música para el camino: la aplicación anota qué canciones repites, cuáles saltas a los tres segundos y a qué hora subes el volumen —y con ese goteo deduce tu ánimo y si vas solo o acompañado—. Antes de dormir subes una foto: se va con la fecha, a veces con el lugar, y con tu cara dentro.

Cuenta las migas de ese día: la hora de despertar, la red desde la que hablas, el recorrido de casa a clase, tus dudas, tu sesión de música, tu foto con hora y sitio. Ninguna te delata sola. Pero fíjate en su suma: un mapa bastante fiel de quién eres, dónde estás y qué te importa, dibujado sin que tú te lo propusieras. Eso es una huella digital de un solo día. Multiplícalo por trescientos sesenta y cinco, por todos los años que llevas con móvil, y entiendes por qué esto merece una misión entera. La buena noticia sigue en pie: casi todas esas migas se pueden pisar más flojo, y vas a aprender cómo.

¿Por qué quieren tus migas?

Antes de defenderte conviene saber de quién y de qué. No hay un malo de película detrás de cada aplicación; hay, sobre todo, un negocio. Muchas aplicaciones son gratis, y algo tienen que cobrar: cobran, muchas veces, tu atención y tus datos. Con las migas que dejas —y tu historial de escucha es de las más jugosas— construyen un perfil tuyo: qué te gusta, qué te preocupa, a qué horas estás disponible, qué te haría pulsar «comprar». Y aquí está la idea que da sentido a toda la misión: la recomendación que te sirven no es magia, es inferencia. De qué escuchas, cuándo y cuánto, un programa deduce cosas que nunca le contaste —tu edad aproximada, tu estado de ánimo, si estás estudiando, si esta noche estás solo—, y la lista de canciones que te sugiere es solo la punta visible de todo cuanto ya ha adivinado. Por eso tu forma de escuchar es una huella: no por las canciones en sí, sino por su manera de retratarte. De ahí el dicho: «si el producto es gratis, el producto eres tú».

Que sea un negocio y no un complot no lo hace inofensivo. Un perfil detallado de una persona menor de edad es justo el dato que la ley protege con más cuidado, y es algo que a ti te interesa controlar: no porque tengas nada que esconder, sino porque decidir quién te conoce y cuánto es parte de crecer libre. No hace falta que declares la guerra a las aplicaciones ni que tires el móvil —eso ni es posible ni es el objetivo—. Basta con jugar con las cartas al pecho: usar la música que te gusta, sí, pero sabiendo qué regalas y eligiendo regalar menos. Esa es la actitud del guardián: ni miedo ni descuido, sino control.

El juego: ¿cuántas pistas para adivinar quién eres?

Aquí está la idea más importante de toda la misión, y la vamos a descubrir jugando. El juego es este: yo pienso en una persona de un grupo, y tú tienes que adivinar quién es. Para ayudarte te doy pistas, de una en una: «le va tal género», «escucha tantas horas al día», «su artista favorito es tal». La pregunta del juego no es «¿quién es?», sino algo más fino: ¿cuántas pistas necesitas para quedarte con una sola persona?. La respuesta te va a sorprender —y es la clave para entender tu propia huella—.

Para jugar de verdad necesitamos un grupo. No vamos a usar personas reales —eso sería justo lo contrario de esta misión—: vamos a inventarlo entero con el ordenador. Imagina la cola de un concierto pequeño, o un instituto grande: 600 personas que no existen, cada una con un perfil de escucha fabricado al azar —su género favorito, cuánto escucha al día, su artista favorito y su tema estrella (esa canción que repite sin parar)—. Como siempre en esta campaña, fijamos la semilla del azar (el 42) para que a ti te salga exactamente lo mismo que aquí: nadie real, y todo reproducible.

import numpy as np
from collections import Counter

rng = np.random.default_rng(42)
N = 600   # perfiles de escucha inventados (nadie real)

GENEROS = ["pop", "rock", "reggaeton", "indie", "clasica", "jazz"]
FRANJAS = ["hasta 1 h", "1 a 2 h", "2 a 4 h", "mas de 4 h"]
ARTISTAS = ["Aurora", "Kobalt", "Lumen", "Marea", "Neon", "Orfeo",
            "Pulso", "Quetzal", "Ritmo", "Selva", "Tundra", "Vela"]

generos = rng.choice(GENEROS, N)        # genero favorito
escuchas = rng.choice(FRANJAS, N)       # cuanto escucha al dia
artistas = rng.integers(1, 13, N)       # artista favorito (uno de 12)
canciones = rng.integers(1, 29, N)      # tema estrella (uno de 28)

print("Perfiles de escucha en el grupo:", N)
for i in range(3):
    print(f"perfil {i}: {generos[i]}, {escuchas[i]}/dia, "
          f"artista {ARTISTAS[artistas[i]-1]}, tema estrella #{canciones[i]}")
Perfiles de escucha en el grupo: 600
perfil 0: pop, 2 a 4 h/dia, artista Tundra, tema estrella #2
perfil 1: clasica, mas de 4 h/dia, artista Orfeo, tema estrella #14
perfil 2: indie, 2 a 4 h/dia, artista Vela, tema estrella #13

Ya tienes tu grupo: seiscientas fichas, cada una con cuatro datos de lo más corriente. rng.choice reparte al azar un género y una franja de escucha a cada persona, y rng.integers le pone un artista favorito (uno de doce) y un tema estrella (uno de veintiocho). Ninguno de esos datos parece peligroso: hay millones de personas a las que les va el pop, millones que escuchan un par de horas al día, millones que adoran a un mismo artista. Guárdate esa sensación de «esto no dice nada», porque el juego va, precisamente, de demostrar que juntos dicen muchísimo.

Una pista sola no te delata

Empecemos por la primera pista, la más gruesa: el género favorito. Si lo único que sé de mi persona misteriosa es que le va el «pop», ¿en cuánta gente se esconde? Contémoslo. La orden Counter —de la caja de herramientas collections— cuenta cuántas veces aparece cada valor: perfecta para saber cuánta gente comparte cada género.

por_genero = Counter(generos)
for genero, cuantos in sorted(por_genero.items()):
    print(f"{genero}: {cuantos} personas")
clasica: 108 personas
indie: 93 personas
jazz: 95 personas
pop: 109 personas
reggaeton: 97 personas
rock: 98 personas

Respira tranquilo: saber que te va el «pop» me deja con 109 candidatos. No he adivinado nada; podrías ser cualquiera de esos ciento nueve. Una pista sola no te delata, y esto es importante: casi ningún dato tuyo, por separado, te identifica. Tu género favorito no es un secreto que haya que guardar bajo llave. El peligro no vive en ninguna pista suelta —vive en la combinación, y eso lo veremos ahora—.

Una micro-victoria: el escondite más grande.

Ya que tenemos las cuentas por género, saquémosles una idea útil para defenderse. Si una pista te mete en una multitud, cuanto más grande sea esa multitud, mejor te escondes. ¿Cuál es el mayor escondite del grupo, y cuál el más pequeño?

grande = por_genero.most_common(1)[0]
print("Escondite mas grande:", grande[0], "con", grande[1], "personas")
pequeno = min(por_genero.items(), key=lambda par: par[1])
print("Escondite mas pequeno:", pequeno[0], "con", pequeno[1], "personas")
Escondite mas grande: pop con 109 personas
Escondite mas pequeno: indie con 93 personas

most_common(1) le pide al Counter el valor que más se repite; min(..., key=...) busca el menos frecuente. Entre nuestros seis géneros la diferencia es pequeña (109 frente a 93), pero la idea es la que importa y vale para la vida real: pertenecer a un grupo grande te protege, pertenecer a uno raro te expone. Un gusto muy poco común —un género de nicho, un artista que casi nadie escucha, una lista de reproducción rarísima— es una pista mucho más potente que un gusto compartido por medio mundo. Cuando pienses en tu huella, vigila sobre todo los datos que te hacen raro: esos son los que más señalan.

El embudo: la multitud se encoge pista a pista

Sigamos el juego con una persona concreta del grupo. Voy a fijarme en la primera ficha, la número cero. Para no llamarla «la persona cero», le pongo un nombre inventado —Alex—, dejando claro que no es nadie real: es una fila de una tabla que fabricó el ordenador. A Alex le va el pop, escucha entre dos y cuatro horas al día, su artista favorito es Tundra y su tema estrella es el número dos. Vamos a ir añadiendo sus datos como pistas y a contar, en cada paso, cuánta gente del grupo sigue encajando. Es un embudo: cada pista lo estrecha.

alex = (generos[0], escuchas[0], artistas[0], canciones[0])
print(f"Alex escucha {alex[0]} {alex[1]}/dia, artista favorito "
      f"{ARTISTAS[alex[2]-1]}, tema estrella #{alex[3]}")

cabe = np.ones(N, dtype=bool)
print("Todo el grupo:", int(cabe.sum()))
cabe = cabe & (generos == alex[0])
print("+ genero:", int(cabe.sum()))
cabe = cabe & (escuchas == alex[1])
print("+ cuanto escucha:", int(cabe.sum()))
cabe = cabe & (artistas == alex[2])
print("+ artista favorito:", int(cabe.sum()))
cabe = cabe & (canciones == alex[3])
print("+ tema estrella:", int(cabe.sum()))
Alex escucha pop 2 a 4 h/dia, artista favorito Tundra, tema estrella #2
Todo el grupo: 600
+ genero: 109
+ cuanto escucha: 36
+ artista favorito: 5
+ tema estrella: 1

Mira cómo se cierra el embudo, porque esto es el corazón de la misión. Empezamos con 600 personas. La pista del género nos deja 109. Añadir cuánto escucha —de dos a cuatro horas— baja a 36. El artista favorito —Tundra— baja a 5. Y basta un dato más, el tema estrella exacto, para quedarnos con 1: Alex, y solo Alex. Cuatro pistas de tu perfil de escucha, ninguna secreta, y de seiscientas personas hemos llegado a una. Fíjate además en un detalle inquietante: con tres pistas (género, horas y artista) ya quedaban solo cinco. Estabas a un paso de quedar señalado sin que ninguna de las pistas fuera, por sí misma, gran cosa.

El nombre técnico de esa maniobra del código es una máscara: cabe es una lista de verdaderos y falsos, uno por persona, que empieza toda en True (np.ones(..., dtype=bool)) y se va estrechando con cada & («y también»). En cada línea le pedimos «sigue verdadero solo si además coincide en esta pista», y cabe.sum() cuenta cuántos verdaderos quedan —cuánta gente sigue encajando—. El embudo del juego, en cuatro líneas.

Cuenta cuánta gente queda al descubierto

Lo de Alex podría ser mala suerte suya. La pregunta honesta es: ¿le pasa a todo el grupo, o Alex es un caso raro? Vamos a medirlo. Diremos que una persona queda «señalada» cuando, con cierto juego de pistas, nadie más del grupo comparte esa combinación —es decir, cuando forma un grupo de tamaño uno—. Y vamos a contar qué porcentaje del grupo queda señalado según cuántas pistas usemos.

def porcentaje_unicos(*pistas):
    combos = Counter(zip(*pistas))
    unicos = sum(1 for cuenta in combos.values() if cuenta == 1)
    return round(100 * unicos / N, 1)

print("1 pista  (genero):        ", porcentaje_unicos(generos), "%")
print("2 pistas (+franja):       ",
      porcentaje_unicos(generos, escuchas), "%")
print("3 pistas (+artista):      ",
      porcentaje_unicos(generos, escuchas, artistas), "%")
print("4 pistas (+tema):         ",
      porcentaje_unicos(generos, escuchas, artistas, canciones), "%")
1 pista  (genero):         0.0 %
2 pistas (+franja):        0.0 %
3 pistas (+artista):       13.2 %
4 pistas (+tema):          94.3 %

Ahí está la lección, en cuatro números. Con una pista, nadie queda señalado: el \(0{,}0\) %. Con dos, tampoco. Con tres empiezan a caer: el \(13{,}2\) % del grupo ya es único. Y con la cuarta —al añadir el tema estrella, la canción exacta que completa el perfil— se dispara al \(\mathbf{94{,}3}\) %: más de nueve de cada diez personas del grupo quedan señaladas, cada una la única con su combinación. La figura 8.1 lo dibuja: a la izquierda, el embudo de Alex; a la derecha, cuánta gente queda al descubierto según cuántas pistas se junten.

Figura 8.1. ¿Cuántas pistas hacen falta para señalarte? Sobre un grupo inventado de 600 perfiles de escucha (datos sintéticos, nadie real, semilla 42). (a) El embudo de Alex: cuánta gente sigue encajando a medida que se añaden sus datos como pistas —género, horas, artista, tema estrella—, de 600 a una sola. (b) Porcentaje del grupo que queda «señalado» (único, nadie más comparte su combinación) según cuántas pistas se junten: con tres ya cae, con cuatro casi todos. La identidad no vive en una pista; vive en la suma. Generada por el código del recuadro siguiente.
NotaPara saber más: dibuja tú la figura

La figura no es magia: sale de los mismos números que acabas de calcular. Si quieres reproducirla, este código la dibuja con matplotlib y la guarda en un fichero.

import matplotlib.pyplot as plt

pasos = ["grupo", "+genero", "+franja", "+artista", "+tema"]
quedan = [600, 109, 36, 5, 1]
etiquetas = ["1", "2", "3", "4"]
senialados = [0.0, 0.0, 13.2, 94.3]

fig, (izq, der) = plt.subplots(1, 2, figsize=(9, 3.6))

izq.plot(pasos, quedan, marker="o")
izq.set_yscale("log")           # de 600 a 1: escala log para verlo
izq.set_title("(a) el embudo de Alex")
izq.set_ylabel("personas que aun encajan")
for x, y in zip(pasos, quedan):
    izq.annotate(str(y), (x, y), xytext=(0, 6),
                 textcoords="offset points", ha="center")

der.bar(etiquetas, senialados)
der.set_title("(b) porcentaje senialado")
der.set_xlabel("numero de pistas")
der.set_ylabel("% de personas unicas")
for x, y in zip(etiquetas, senialados):
    der.annotate(f"{y}%", (x, y), xytext=(0, 4),
                 textcoords="offset points", ha="center")

fig.tight_layout()
fig.savefig("mis08_pistas.pdf")

Detente en esto que acabas de demostrar, porque es contraintuitivo y verdadero a la vez. Ninguna de esas cuatro pistas es un secreto. El género lo canta tu perfil; las horas de escucha las ve cualquier app; el artista favorito lo pregonas en cada camiseta. Y sin embargo, sumadas, señalan a una persona entre seiscientas. Esa es la trampa de la huella digital: no te delata ningún dato concreto, te delata la colección. Y en internet la colección se forma sola, porque cada aplicación guarda su trocito y luego los trocitos se pueden juntar.

NotaPara saber más: los bits, la moneda de las pistas

¿Se puede medir cuánta «pista» aporta cada dato? Sí, y la moneda se llama bit. Un bit es la respuesta a una pregunta de sí o no; parte el mundo en dos mitades. Con un bit distingues entre dos personas; con dos bits, entre cuatro; con diez, entre \(2^{10}=1024\). Para señalar a alguien entre \(N\) hacen falta unos \(\log_2 N\) bits. Puedes calcularlo:

for nombre, cuantos in [("grupo", 600), ("pueblo", 130000),
                        ("ciudad", 3_300_000), ("pais", 48_000_000),
                        ("mundo", 8_100_000_000)]:
    print(f"{nombre:7s}: {np.log2(cuantos):.1f} bits")
grupo  : 9.2 bits
pueblo : 17.0 bits
ciudad : 21.7 bits
pais   : 25.5 bits
mundo  : 32.9 bits

Para nombrar a una persona en tu grupo de 600 bastan \(9{,}2\) bits; en un pueblo, 17; en una gran ciudad, \(21{,}7\); en un país, \(25{,}5\); en el mundo entero, unos 33. Cada pista que das aporta sus bits, y cuando la suma alcanza el techo, dejas de ser «probable» para ser seguro. Lo asombroso: cuanta menos gente hay alrededor, menos bits —menos pistas— hacen falta para nombrarte. En un pueblo pequeño, tres o cuatro datos bastan.

NotaPara saber más: tres datos y el ochenta y siete por ciento

Esto no es un juego de laboratorio: pasa en la vida real, y a lo grande. En el año 2000, una investigadora llamada Latanya Sweeney midió que el 87 % de la población de Estados Unidos era única —y por tanto señalable— con solo tres datos: el código postal, la fecha de nacimiento completa y el sexo. Ninguno identifica por separado; los tres juntos, casi siempre. Para demostrarlo, cruzó una lista de altas de hospital «anónimas» (sin nombre) con el censo electoral, que compró por veinte dólares, y con esas tres pistas volvió a poner el nombre encima de cada historial médico —incluido el del gobernador de su estado—. La moraleja tiene nombre: reidentificar es cruzar dos listas por los datos que comparten. Por eso «sin nombre» no es lo mismo que «anónimo»: quitar la etiqueta no borra la huella que dejan los demás datos. Estudios posteriores con mejores cuentas rebajaron la cifra a alrededor del 63 %, pero la lección no cambia: un puñado de datos cotidianos te determina.

Pueblo pequeño, más peligro

Hay un detalle del juego que conviene mirar de frente, porque es la razón de que la gente de un grupo reducido tenga que cuidarse más que la de un grupo grande. Las mismas pistas señalan a más gente cuando el grupo es pequeño. Compruébalo tú: repitamos el recuento de señalados con cuatro pistas, pero cambiando el tamaño del grupo. Para que cada tamaño sea reproducible, volvemos a arrancar el azar con la semilla 42 en cada vuelta.

for tam in [200, 600, 2000]:
    r = np.random.default_rng(42)
    g = r.choice(GENEROS, tam)
    f = r.choice(FRANJAS, tam)
    a = r.integers(1, 13, tam)
    c = r.integers(1, 29, tam)
    combos = Counter(zip(g, f, a, c))
    unicos = sum(1 for cuenta in combos.values() if cuenta == 1)
    print(f"grupo de {tam:4d}: {round(100 * unicos / tam, 1)} % senialados")
grupo de  200: 96.0 % senialados
grupo de  600: 94.3 % senialados
grupo de 2000: 79.0 % senialados

Léelo con calma, porque es contraintuitivo. Con las mismas cuatro pistas, en un grupo de 200 personas queda señalado el \(96{,}0\) %; en uno de 600, el \(94{,}3\) %; y en uno de 2000, «solo» el \(79{,}0\) %. Cuanta menos gente hay a tu alrededor, más fácil es que tu combinación sea única —hay menos candidatos con quienes confundirte—. Es la misma idea de los bits: en un grupo pequeño hacen falta menos pistas para nombrarte. Por eso quien pertenece a una comunidad reducida (el club de una afición de nicho, la peña de un grupo poco conocido, un instituto pequeño) deja una huella más peligrosa con menos datos: la multitud en la que podría esconderse es más pequeña de partida. No es para asustarse; es para ajustar la prudencia al tamaño de tu mundo.

Pruébalo con las manos.

Para que lo veas sin depender del azar, fabrica un grupo diminuto a mano —ocho perfiles inventados, con solo dos pistas cada uno— y mira cuántos quedan señalados. Escribe tú los datos; son de mentira, claro.

grupo = [
    ("pop", "2 a 4 h"), ("pop", "mas de 4 h"), ("rock", "2 a 4 h"),
    ("jazz", "hasta 1 h"), ("pop", "2 a 4 h"), ("rock", "mas de 4 h"),
    ("jazz", "hasta 1 h"), ("indie", "1 a 2 h"),
]

cuenta = Counter(grupo)
for persona, veces in cuenta.items():
    estado = "SENIALADA" if veces == 1 else f"escondida entre {veces}"
    print(persona, "->", estado)
('pop', '2 a 4 h') -> escondida entre 2
('pop', 'mas de 4 h') -> SENIALADA
('rock', '2 a 4 h') -> SENIALADA
('jazz', 'hasta 1 h') -> escondida entre 2
('rock', 'mas de 4 h') -> SENIALADA
('indie', '1 a 2 h') -> SENIALADA

Con solo ocho personas y dos pistas, cuatro combinaciones ya son únicas: quien escucha pop más de cuatro horas al día es el único, igual que quien pone indie una o dos horas. Solo se salvan los dos pares que repiten combinación —dos de pop entre dos y cuatro horas, dos de jazz hasta una hora—, que se esconden el uno en el otro. Es la lección del grupo pequeño en tu propia mano: cuando sois pocos, hacen falta poquísimas pistas para quedar señalado. Cambia los datos, añade una tercera pista y verás cómo, casi siempre, todos acaban solos.

Cuando alguien te saca las pistas

Hasta aquí las pistas las soltaba el código. En la vida real, muchas veces las sueltas tú, respondiendo a preguntas que parecen inocentes. Un test de «¿qué canción de verano eres?» que de paso te pregunta el género que más pones. Un juego de «cuánto me conoces» que pide tu artista favorito. Una persona nueva en un chat que, con mucha simpatía, va preguntando una cosa hoy y otra mañana. Cada pregunta, por sí sola, es una tontería. Pero recuerda el embudo: van sumando. Veámoslo con una función que imite ese goteo, midiendo en cuánta gente sigues escondido según cuánto vas soltando.

def te_saca_las_pistas(respuestas):
    cabe = np.ones(N, dtype=bool)
    if "genero" in respuestas:
        cabe = cabe & (generos == respuestas["genero"])
    if "franja" in respuestas:
        cabe = cabe & (escuchas == respuestas["franja"])
    if "artista" in respuestas:
        cabe = cabe & (artistas == respuestas["artista"])
    if "tema" in respuestas:
        cabe = cabe & (canciones == respuestas["tema"])
    return int(cabe.sum())

print("Tras decir el genero:       ",
      te_saca_las_pistas({"genero": "pop"}))
print("Tras decir tambien la franja:",
      te_saca_las_pistas({"genero": "pop", "franja": "2 a 4 h"}))
print("Tras soltar su top del anio:",
      te_saca_las_pistas({"genero": "pop", "franja": "2 a 4 h",
                          "artista": 11, "tema": 2}))
Tras decir el genero:        109
Tras decir tambien la franja: 36
Tras soltar su top del anio: 1

Es el embudo de Alex otra vez, pero contado como una conversación: cada respuesta amable estrecha el cerco, de 109 a 36 a 1. Nadie te pidió «dime quién eres»; te preguntaron tu género, cuánto escuchas y tu artista y canción favoritos en tres momentos distintos, con una sonrisa. A juntar esas piezas se le llama, en el oficio, ingeniería social: sacar información a trozos, de forma que ninguno alarme. La defensa no es volverse desconfiado con todo el mundo —eso amarga la vida—, sino tener el embudo en la cabeza: cuando notes que alguien colecciona tus datos pieza a pieza, sobre todo si acabas de conocerlo, tienes todo el derecho a responder «prefiero no decirlo». No es de bordes; es de guardián.

Tu dirección en internet: la IP

Falta una pista técnica que dejas siempre, quieras o no: tu dirección IP. Para que una web pueda enviarte cuanto le pides, necesita saber a dónde mandártelo, igual que una carta necesita un remite. Esa dirección es la IP: un número que identifica tu conexión en la red. No dice tu nombre, pero cuenta más de lo previsto. Revela quién es tu compañía de internet y, con bastante aproximación, desde qué zona te conectas —la ciudad, a veces el barrio—. Por eso las webs saben ponerte los anuncios de tu región o el idioma de tu país sin que se lo digas.

¿Es un dato personal? En Europa, los tribunales han dicho que sí: aunque cambie de vez en cuando, la IP puede llevar hasta una persona si se cruza con la información que guarda tu compañía. No es algo que puedas «apagar» —sin dirección no hay internet—, pero sí hay quien la disimula: una VPN es un servicio que hace de intermediario, de modo que las webs ven la dirección del intermediario y no la tuya. No es magia ni te vuelve invisible —el intermediario sí te ve—, así que solo sirve si confías en quien lo ofrece. Para ti, la lección práctica es más humilde: la IP es una miga más de la huella pasiva, una de esas que se juntan con las demás. Tenerla presente te ayuda a entender por qué «no he dado mi dirección» no significa «nadie sabe por dónde ando».

Tu cara y tu salud: datos especiales

No todos los datos pesan igual. Hay dos que juegan en otra liga, y los dos aparecen en el móvil todos los días: tu cara y tu salud.

Empecemos por la cara. Tu foto de perfil no es un dato como los demás por una razón sencilla y un poco escalofriante: tu cara no la puedes cambiar. Si te roban la contraseña, la cambias y a otra cosa. Si se filtra tu correo, te haces uno nuevo. Pero tu rostro es el mismo hoy, dentro de cinco años y dentro de veinte. Es una contraseña que no se puede resetear. Y las máquinas ya saben leerlo: el reconocimiento facial convierte una cara en una especie de huella dactilar y la busca en montañas de fotos. Hubo una empresa que rastreó miles de millones de fotos públicas de redes sociales para montar un buscador de caras —dabas una foto de alguien por la calle y te devolvía sus perfiles—; varios países europeos la multaron con millones de euros justamente por eso. La lección para ti no es «no subas fotos nunca», sino: una foto de tu cara vale mucho más de cuanto aparenta, así que decide con cabeza dónde la pones y quién puede verla.

NotaPara saber más: cómo reconoce una cara una máquina

El reconocimiento facial hace, en el fondo, lo mismo que has hecho tú en esta misión: convierte algo en un puñado de números y busca coincidencias. A partir de una foto, una red neuronal —como las que entrenaste en la Misión 7— resume tu cara en una lista de números (la distancia entre los ojos, la forma de la mandíbula, decenas de rasgos) que funciona como una huella. Dos fotos tuyas, aunque cambies de peinado, dan listas parecidas; la de otra persona da una lista distinta. Comparar caras se vuelve entonces comparar listas de números, y una máquina hace millones de esas comparaciones por segundo. Por eso tu rostro es un identificador tan potente: no depende de que escribas nada, y no se puede cambiar. Saber cómo funciona no es para temerlo, sino para respetarlo —y para entender por qué la ley lo mete entre los datos que más protege—.

La salud es el otro dato de categoría especial. Que tomas cierta medicación, que fuiste al psicólogo, que tienes una alergia o una enfermedad: eso es tuyo y de nadie más. Suena obvio, pero se escapa por rendijas tontas —un test de esos de «¿qué canción eres?» que de paso te pregunta por tu estado de ánimo, una aplicación de contar días que sabe más de tu cuerpo que tu médico, una foto en la que se ve la caja de una medicina—. La regla es la misma que con la cara: son datos que, una vez fuera, no vuelven a entrar.

NotaPara saber más: la ley te protege (RGPD)

En Europa hay una ley que te ampara, y conviene que sepas que existe: el Reglamento General de Protección de Datos, el RGPD. Dice, en resumen, que tus datos personales son tuyos y que quien los use tiene obligaciones: pedirte permiso, decirte para qué los quiere, recoger solo lo justo y dejarte borrarlos. Y hay una parte que te toca de cerca: la ley aparta un grupo de categorías especiales que protege por encima del resto —la salud, el origen, las creencias, la orientación, y los datos biométricos como el rostro—. Tratarlos está prohibido salvo con permisos muy concretos. Dos ideas para llevarte: eres menor de edad, así que para muchas cosas hace falta también el permiso de tus padres o tutores; y tienes derecho a pedir que borren lo tuyo —el llamado «derecho al olvido»—. Saber que la ley está de tu lado no te quita el trabajo de protegerte, pero te dice que no estás solo.

La foto habla por detrás

Sigamos con la cara un momento, porque la foto de perfil esconde una segunda trampa que casi nadie ve. Una foto no es solo la imagen; viene con una etiqueta invisible pegada por detrás —los metadatos— que el aparato añade solo. Ahí puede ir la fecha y la hora exactas en que la hiciste, el modelo de móvil e, incluso, las coordenadas del lugar donde estabas. Todo eso viaja con la foto sin que se vea en la imagen. Imagina cuánto lleva escrito por detrás una foto cualquiera —por ejemplo, la que te hiciste en un concierto—:

foto = {
    "cuando": "2026-07-05 18:42",
    "donde": "40.417, -3.703",
    "aparato": "movil modelo XZ",
    "quien_sale": ["Alex", "un amigo"],
}
for clave, valor in foto.items():
    print(f"{clave:12s}-> {valor}")
cuando      -> 2026-07-05 18:42
donde       -> 40.417, -3.703
aparato     -> movil modelo XZ
quien_sale  -> ['Alex', 'un amigo']

Mira esas pistas de regalo. La hora dice cuándo estabas fuera de casa. Las coordenadas —eso es un punto en el mapa— pueden apuntar justo a tu portal, a tu instituto o al recinto del concierto. El modelo de aparato es una miga más para la huella. Y en la foto sale, además de tú, otra persona, cuya huella también estás moviendo. Una foto de las vacaciones puede, sin querer, anunciar «mi casa está vacía esta semana» y señalar en un mapa dónde vives. Por eso muchas aplicaciones te dejan quitar la ubicación de las fotos antes de compartir, y merece la pena tenerlo activado. La regla, otra vez, es la del embudo: comparte la imagen si quieres, pero no regales de propina la hora y el lugar. Y si en la foto sale alguien más, pregúntale antes: su etiqueta invisible es tan suya como tuya la tuya.

Cómo protegerte: la defensa

Hasta aquí el diagnóstico; ahora la parte que da nombre a la insignia. Ser guardián de la huella es un puñado de hábitos, no un programa que instalas. Aquí están los que de verdad mueven la aguja, ordenados de más fácil a más valioso.

Da menos pistas (minimiza).

Es la lección directa del embudo: cada pista que no das agranda la multitud en la que te escondes. No rellenes todos los huecos del perfil solo porque estén ahí. ¿Hace falta poner tu instituto, tu barrio y tu artista favorito de golpe? Ya viste qué hacen tres datos juntos. Menos casillas rellenas, menos huella.

El apodo es tu amigo.

Tu nombre y apellidos completos son una pista gruesa —enlazan tu vida digital con tu vida civil de golpe—. En los sitios donde no hace falta tu nombre real (un foro, un juego, la comunidad de un grupo de música), usar un apodo es una defensa legítima y sencilla: sigues siendo tú para quien te conoce, sin regalar el enganche directo a tu identidad. No es esconderte ni engañar a nadie; es no gritar tu nombre completo en cada esquina de internet. Reserva tu nombre real para donde de verdad hace falta —el correo del instituto, los trámites— y deja que en el patio de recreo digital te llamen por tu mote. Menos enganches entre tus mundos, menos huella.

Revisa tus ajustes de privacidad.

Cada aplicación tiene una pantalla de ajustes donde decides quién ve tus publicaciones: todo el mundo, solo tus contactos, o solo tú. Casi siempre viene puesta en «todo el mundo» de fábrica, porque le conviene a la aplicación, no a ti. Dedícale diez minutos: pon tus cuentas en privado, revisa quién puede escribirte, apaga la ubicación en las fotos. No es paranoia; es cerrar puertas que estaban abiertas sin que lo supieras.

Piensa antes de subir.

La regla de oro de esta misión. Antes de publicar algo, hazte una pregunta sencilla: ¿me daría igual que esto lo viera dentro de diez años quien me haga una entrevista de trabajo, o mi familia, o alguien que quiera hacerme daño?. Internet no olvida: cuanto subes puede copiarse, guardarse y reaparecer cuando menos lo esperas. Si dudas, no subes. Borrar después casi nunca funciona del todo.

Respeta la huella de los demás.

Esto es tan importante como protegerte a ti, y es donde se ve si de verdad has entendido la misión. No subas fotos de otras personas sin preguntarles. No compartas capturas de conversaciones privadas. No etiquetes a nadie en un sitio que no querría que se supiera. La huella ajena no es tuya para gastarla. Trata los datos de los demás como te gustaría que trataran los tuyos —esa es la regla entera—.

Pide ayuda a un adulto de confianza.

No tienes que apañártelas solo, y no es de débiles pedir ayuda: es de listos. Si algo te incomoda —un mensaje raro, una foto tuya que aparece donde no debía, alguien que insiste en saber dónde estás—, habla con una persona adulta en quien confíes: madre, padre, tutor, un profesor. Cuanto antes, mejor. Un problema digital contado a tiempo casi siempre tiene solución; guardado en silencio, crece. Que esto quede grabado por encima de todo lo demás de la misión.

Desconfía de los cebos.

Un enlace que llega de repente —«has ganado un móvil», «tu cuenta se cerrará, entra aquí», «mira esta foto tuya»— casi siempre busca que piques: que sueltes tu contraseña o tus datos en una página falsa que imita a la de verdad. Se llama phishing, «pesca», porque lanzan el anzuelo a ver quién muerde. La defensa es un segundo de calma: mira quién lo manda, no entres por el enlace sino escribiendo tú la dirección, y ante la duda, no piques. Si una oferta es demasiado buena para ser verdad, no es verdad.

Cuidado con el «aquí y ahora».

Contar en directo dónde estás —«en el concierto», «sola en casa», la ubicación en tiempo real— es de las migas más delicadas, porque habla de tu cuerpo, no solo de tus datos. No hace falta anunciar tu posición minuto a minuto. Comparte el viaje cuando ya has vuelto, no mientras tu casa está vacía. Aquello que cuentas de dónde estás es una pista que puede usarse en el mundo real, no solo en la pantalla.

Cuida tus llaves.

Contraseñas largas y distintas para cada sitio (un gestor de contraseñas te las guarda), y el doble factor activado donde puedas —esa segunda confirmación en el móvil que hace que, aunque alguien adivine tu clave, no entre—. Tus llaves protegen todo lo demás.

NotaPara saber más: por qué el doble factor te salva

Una contraseña es «algo que sabes». El problema es que algo que sabes se puede adivinar, robar en una filtración o sacarte con un engaño. El doble factor añade «algo que tienes» —tu móvil, que recibe un código o una confirmación—, de modo que quien consiga tu contraseña todavía se topa con una segunda puerta que no puede abrir sin tu aparato en la mano. Actívalo al menos en lo importante: el correo (que es la llave maestra, porque por él se recuperan todas las demás cuentas) y tus redes. Y una regla de oro que no falla: ese código de un solo uso no se le da a nadie, jamás, aunque quien lo pida parezca de la empresa. Nadie legítimo te lo pedirá.

Ninguno de estos hábitos es difícil. Lo difícil es acordarse, y por eso los vamos a convertir en algo medible —una lista que puedes revisar— en la victoria. Que un hábito se pueda comprobar lo separa de un buen propósito.

Los permisos: quién mira por tu ventana

Hay una defensa concreta que casi nadie usa y que vale muchísimo: revisar los permisos de las aplicaciones. Cuando instalas una app, te pide acceso a cosas del móvil —la cámara, el micrófono, la ubicación, tus contactos, tus fotos—. Muchas piden más de cuanto necesitan: una app de música no tiene por qué querer tu ubicación ni tu lista de contactos. Cada permiso abierto es una ventana por la que esa app puede mirar. Repasémoslos como una lista y quedémonos con los que conviene revisar.

permisos = {
    "camara": "solo cuando uso la app",
    "microfono": "denegado",
    "ubicacion": "denegado",
    "contactos": "denegado",
    "fotos": "solo las que elijo",
}

abiertos = [p for p, estado in permisos.items() if estado != "denegado"]
print("Permisos abiertos:", abiertos)
print("A revisar:", len(abiertos))
Permisos abiertos: ['camara', 'fotos']
A revisar: 2

La comprensión de lista recorre los permisos y se queda con los que no están en «denegado»: las ventanas abiertas. En tu móvil de verdad, entra en los ajustes de cada aplicación y hazte una pregunta por permiso: ¿de verdad necesita esto para el uso que le doy?. Si la respuesta es no, deniégalo; casi siempre la app sigue funcionando igual. Y presta atención especial a tres: ubicación, micrófono y cámara, que son los que más cuentan de ti. Cerrar una ventana que no usabas no te quita nada y te protege bastante.

Internet no olvida (aunque le des a borrar)

Hay una idea que conviene grabar a fuego, porque cambia cómo miras el botón de «publicar»: en internet, borrar casi nunca borra del todo. Subes una foto y la quitas al rato, pero en ese rato alguien pudo hacerle una captura. Envías un mensaje y lo eliminas, pero ya llegó al móvil de quien lo recibió. Cierras una cuenta, pero copias de cuanto pusiste pueden seguir en los servidores, en buscadores, en servicios que guardan copias de páginas antiguas. Cuanto entra en la red tiende a quedarse, y a reaparecer cuando menos lo esperas.

Esto no es para que no publiques nada —vivir también es compartir—, sino para que publiques a propósito. La regla de «piensa antes de subir» nace justo de aquí: como deshacer es casi imposible, la única defensa de verdad es decidir bien antes. Antes de darle a publicar, imagina que eso ya no se puede retirar nunca. Si con esa idea sigues queriendo subirlo, adelante. Si te hace dudar, acabas de ahorrarte un problema futuro gratis.

NotaPara saber más: tienes derecho a que te borren

Que borrar sea difícil no significa que estés indefenso. La ley europea te da el derecho de supresión —el «derecho al olvido»—: puedes pedir a una empresa que borre los datos que tiene de ti, y a un buscador que deje de mostrar ciertos resultados sobre tu nombre. No es mágico ni instantáneo, y hay excepciones, pero existe y funciona. Si eres menor, además, tienes protección reforzada. Y para lo más grave —una foto tuya íntima difundida sin permiso, alguien que te acosa— hay canales de denuncia y líneas de ayuda pensadas para ti. El primer paso, siempre, es contárselo a una persona adulta de confianza: no tienes que resolverlo en soledad, y cuanto antes se actúa, mejor sale.

La victoria

Tienes todas las piezas: sabes qué es una huella, has visto el embudo cerrarse, has contado cuánta gente queda al descubierto y conoces la defensa. Toca juntar lo aprendido en la victoria de la misión, que tiene dos mitades. La primera: medir una huella —con nuestro grupo inventado, cuántas pistas señalan a una persona—. La segunda, y la que de verdad importa: comprobar que se puede reducir, que dando menos pistas te escondes en más gente.

Volvamos a Alex. Vimos que su perfil completo —género, horas y su top del año (artista y tema)— la dejaba sola. La pregunta defensiva es: ¿y si Alex diera menos? Vamos a medirlo. Una función que reciba a una persona y le diga en cuánta gente se esconde según comparta, o no, su top del año.

def multitud(persona, dar_top):
    cabe = (generos == persona[0]) & (escuchas == persona[1])
    if dar_top:
        cabe = cabe & (artistas == persona[2]) & (canciones == persona[3])
    return int(cabe.sum())

print("Alex comparte genero, franja y top:", multitud(alex, True),
      "-> senialada")
print("Alex comparte solo genero y franja:", multitud(alex, False),
      "-> escondida")
Alex comparte genero, franja y top: 1 -> senialada
Alex comparte solo genero y franja: 36 -> escondida

Esta es la victoria de verdad, y es una buena noticia. Con su perfil entero, Alex queda señalada: es la única, un grupo de uno. Pero si guarda su top del año —su artista y su tema estrella— y comparte solo el género y las horas de escucha —dos datos que tampoco es que sean gran cosa—, se esconde entre 36 personas. No ha desaparecido del mapa; se ha metido en una multitud. A eso, justo, se llega al minimizar: no te vuelves invisible (eso casi nunca se puede), pero te vuelves uno más, y ser uno más entre treinta y seis es infinitamente más seguro que ser el único. La privacidad no es un muro; es una multitud.

Ponle nombre a tu multitud.

Esa multitud en la que te escondes tiene un nombre técnico bonito: el conjunto de anonimato. Es, sencillamente, el grupo de personas con las que te confundes —36 para Alex cuando calla su top del año, una sola cuando lo suelta—. Toda la defensa de esta misión se resume en una frase con ese nombre: protegerte es mantener tu conjunto de anonimato grande. Cada pista que das lo encoge; cada pista que callas lo agranda. No necesitas volverte invisible —eso es casi imposible y además aísla—; necesitas no quedarte nunca en un grupo de uno. Es la misma idea que usan los profesionales cuando anonimizan datos de verdad: agrandan los grupos hasta que nadie queda solo. Tú puedes hacerlo con tus propias manos, dato a dato.

¿Lo lograste?

Como cada misión, la victoria se comprueba, no se cree. La celda de autocomprobación verifica que has entendido lo esencial: que tres datos —el género, las horas y el top del año— señalan a Alex. Ejecútala tal cual.

huella = multitud(alex, True)
assert huella == 1, "Revisa: Alex deberia quedar senialada."
print("Lo lograste. Insignia desbloqueada: guardian de la huella.")
Lo lograste. Insignia desbloqueada: guardian de la huella.

Si ves ese mensaje, enhorabuena: has medido una huella con tus propias manos y has comprobado que combinar unos pocos datos inocentes —tu perfil de escucha— señala a una persona —y, sobre todo, que dar menos la protege—. Con eso te ganas la insignia guardián de la huella. Pero la insignia de verdad no es el mensaje verde: es cuanto harás esta semana con tus propios ajustes. A eso vamos en la bitácora.

La bitácora del analista

Abre la bitácora —tu diario de la campaña— y dedícale a esta misión una entrada especial, porque es la única que habla de ti. Anota al menos:

  • Tu embudo. Elige tres datos tuyos que ya estén en algún perfil público (por ejemplo tu género favorito, cuánto escuchas y tu artista del momento) y escribe honestamente: ¿crees que juntos te señalarían? No hace falta que lo calcules con nadie real; basta con que lo pienses.

  • Un ajuste que cambiaste hoy. Uno solo, pero de verdad: una cuenta que pusiste en privado, una ubicación que apagaste, un permiso que quitaste. Apunta cuál.

  • Una pista que vas a dejar de dar. Algo que rellenabas por rellenar y que a partir de ahora dejarás en blanco.

  • Tu adulto de confianza. Escribe a quién acudirías si algo en internet te incomodara. Tenerlo pensado antes vale oro.

  • Tu chequeo de hábitos. Copia la lista de recomendados de la misión y marca cuáles cumples ya. El número de hoy —«2 de 5»— es tu punto de partida; dentro de un mes querrás subirlo.

  • Una promesa de respeto. Anota un hábito de cuidado hacia los demás que vas a mantener: preguntar antes de subir una foto de alguien, no reenviar capturas privadas. Proteger a otros también es la misión.

Esta entrada no es teoría: es tu plan de autoprotección, escrito por ti. Vuelve a ella dentro de un mes y comprueba qué cumpliste. La bitácora de esta misión es distinta de las anteriores: las otras guardaban tus hallazgos sobre la música; esta guarda tus decisiones sobre ti. Es, quizá, la página más tuya de todo el cuaderno.

Sube de nivel: reduce tu huella de verdad

Medir está bien; reducir es la misión. Vamos a construir una herramienta que, dada una persona y las pistas que decide compartir, le diga en cuánta gente se esconde y si queda señalada. Es un medidor de huella, y lo interesante es usarlo justo al revés de lo esperado: no para señalar a nadie, sino para descubrir cuántas pistas puedes callar sin dejar de ser tú.

def informe_huella(persona, pistas_dadas):
    cabe = np.ones(N, dtype=bool)
    if "genero" in pistas_dadas:
        cabe = cabe & (generos == persona[0])
    if "franja" in pistas_dadas:
        cabe = cabe & (escuchas == persona[1])
    if "top" in pistas_dadas:
        cabe = cabe & (artistas == persona[2]) & (canciones == persona[3])
    escondida = int(cabe.sum())
    return {
        "pistas": len(pistas_dadas),
        "te_escondes_entre": escondida,
        "senialada": escondida == 1,
    }

print(informe_huella(alex, {"genero", "franja", "top"}))
print(informe_huella(alex, {"genero", "franja"}))
print(informe_huella(alex, {"genero"}))
{'pistas': 3, 'te_escondes_entre': 1, 'senialada': True}
{'pistas': 2, 'te_escondes_entre': 36, 'senialada': False}
{'pistas': 1, 'te_escondes_entre': 109, 'senialada': False}

Lee la escalera de abajo arriba, que es como se defiende uno. Con una sola pista, Alex se esconde entre 109. Con dos, entre 36. Con las tres, se queda sola: señalada. Cada pista que añade la expone más; cada pista que calla la protege más. El medidor no señala a nadie —solo cuenta el tamaño de la multitud—, y esa es toda la diferencia entre una herramienta de protección y una de acecho: esta te dice cómo esconderte mejor, no cómo encontrar a otro.

La regla que te llevas.

La has visto en números tres veces ya, así que grábatela: tu seguridad no está en un dato secreto, está en cuántos datos callas. No necesitas que tu género favorito sea un misterio; necesitas no regalarlo junto con cuánto escuchas y tu artista y tu tema estrella y tu instituto y tu equipo, porque la colección es la que te nombra. Menos pistas, más multitud, más seguro.

Revisa tus hábitos

Los hábitos de defensa también se pueden medir —y cuanto se mide, se mejora—. Vamos a convertir la lista de buenas costumbres en un pequeño chequeo: le decimos al programa cuáles ya cumplimos y nos dice cuáles nos faltan. Sé honesto contigo al rellenar tu lista; nadie más la ve.

recomendados = ["cuenta privada", "doble factor", "ubicacion apagada",
                "contrasenia larga", "pensar antes de subir"]
mios = ["cuenta privada", "contrasenia larga"]   # cambia por los TUYOS

faltan = [h for h in recomendados if h not in mios]
print("Ya cumples:", len(mios), "de", len(recomendados))
print("Te faltan:", faltan)
Ya cumples: 2 de 5
Te faltan: ['doble factor', 'ubicacion apagada', 'pensar antes de subir']

La comprensión de lista [h for h in recomendados if h not in mios] recorre los hábitos recomendados y se queda con los que no están en tu lista: justo los deberes que te quedan. En el ejemplo faltan tres, pero cuenta tu resultado real. Cambia mios por tus costumbres de verdad, ejecútalo y quédate con la lista de cuanto vas a mejorar esta semana. Un hábito apuntado como pendiente es un hábito medio conseguido; uno que ni te planteas no se cumple jamás.

Sube otra vez: tu retrato a partir de migas

Queda una pieza para entender del todo por qué la huella es peligrosa, y es la más importante: las migas no viven en un solo sitio. Una app sabe tu género, otra cuánto escuchas, otra tu top del año. Por separado, cada una guarda una tontería. El problema aparece cuando esas piezas se juntan —y en internet se juntan solas, porque muchas empresas comparten o venden trozos de perfil—. Vamos a verlo sobre Alex, nuestra persona inventada, siguiendo cómo se va rearmando su retrato a medida que se suma cuanto suelta cada aplicación.

apps = {
    "app de musica": {"genero"},
    "app de bienestar": {"franja"},
    "tu Wrapped": {"top"},
}

tengo = set()
for nombre, filtra in apps.items():
    tengo = tengo | filtra          # sumo el dato que aporta esta app
    info = informe_huella(alex, tengo)
    print(f"con {nombre:16s}: escondida entre {info['te_escondes_entre']:3d}")
con app de musica   : escondida entre 109
con app de bienestar: escondida entre  36
con tu Wrapped      : escondida entre   1

Ninguna de esas tres aplicaciones sabe, por sí sola, quién es Alex. La de música solo tiene su género; la de bienestar, cuánto escucha; y su Wrapped público, el resumen del año, su artista y su tema estrella. Pero mira la última línea: al juntar las tres piezas —y solo hace falta que alguien las cruce, como Sweeney cruzó sus dos listas— Alex queda señalada, escondida entre una sola persona, ella misma. Ese tengo = tengo | filtra («añade a mi retrato el dato que sabe esta app») es, en pequeño, cuanto pasa a lo grande cuando se combinan bases de datos. La moraleja cierra la misión: no controlas tu huella vigilando una aplicación, la controlas repartiendo menos migas por todas. Cada pieza que no sueltas es una que no se podrá juntar con las demás.

NotaPara saber más: por qué jugamos con gente inventada

Te habrás fijado en que toda la campaña —la música, y ahora este grupo de 600 perfiles— usa datos sintéticos: fabricados por el ordenador, sin corresponder a nadie real. No es solo comodidad; es la primera regla de quien enseña con datos sensibles. Si el dato no es de nadie, no hay a quién reidentificar ni a quién dañar, y aun así se aprende exactamente igual. Los profesionales usan esta misma idea para proteger a las personas: en vez de repartir el dato real de la gente, fabrican uno inventado que se le parece en lo estadístico y comparten ese. Tiene truco —un dato sintético mal hecho puede filtrar sin querer casos raros del original—, pero bien usado es una de las mejores herramientas de privacidad que existen. Que este libro no haya usado ni una persona real en ocho misiones no es casualidad: es el ejemplo predicando con el ejemplo.

El jefe de parte: tu escudo de privacidad

Hora del jefe de parte, el miniproyecto que cierra la misión. El encargo del jefe es fabricar un escudo: una función que compare dos maneras de comportarse —compartirlo todo frente a compartir lo justo— y demuestre, con números, que callar pistas protege. Usaremos el medidor que acabas de construir.

peligro = informe_huella(alex, {"genero", "franja", "top"})
seguro = informe_huella(alex, {"genero", "franja"})

print("Compartiendolo todo:", peligro["te_escondes_entre"], "persona(s)")
print("Compartiendo lo justo:", seguro["te_escondes_entre"], "personas")
ganancia = seguro["te_escondes_entre"] - peligro["te_escondes_entre"]
print("Al callar el top, te escondes en", ganancia, "personas mas")
Compartiendolo todo: 1 persona(s)
Compartiendo lo justo: 36 personas
Al callar el top, te escondes en 35 personas mas

Ahí está tu escudo, dicho en un número que se enseña: callar un solo dato —tu top del año— convierte «ser la única» en «esconderse entre treinta y seis». Treinta y cinco personas más de multitud a cambio de guardarte tu artista y tu canción favoritos. Ese es el trato que te ofrece la privacidad, y es buenísimo.

¿Lo lograste? (nivel jefe)

El jefe también se comprueba. Esta celda verifica las dos ideas del escudo: que compartirlo todo señala, y que callar lo justo esconde.

assert peligro["senialada"] is True, "Con 3 datos deberia quedar senialada."
assert seguro["senialada"] is False, "Con 2 datos deberia esconderse."
print("Escudo validado: cada pista que callas agranda tu escondite.")
Escudo validado: cada pista que callas agranda tu escondite.

Dos guardianes, una sola frase de victoria. Si los dos callan, tu escudo es sólido: no lo crees porque suene bien, lo sabes porque lo has comprobado sobre un grupo entero. Y fíjate en lo que no hemos hecho en toda la misión —ni una vez—: identificar a una persona real. Todo el trabajo ha sido sobre un grupo inventado, y todo con un único fin, protegerte. Ese es el oficio del guardián.

Retos: elige tu nivel

Ahora te toca a ti. Los retos suben de dificultad: \(\star\) es imprescindible, \(\star\star\) te reta y \(\star\star\star\) es de jefe. Haz al menos todos los de una estrella. Y recuerda el marco de la misión: todos los retos son defensivos —revisar lo tuyo, contar tus pistas, cuidar a los demás—; ninguno consiste en averiguar nada de nadie real.

  • Cuenta tus pistas. Mira uno de tus perfiles públicos y anota cuántos de estos datos aparecen: género o artista favorito, cuánto escuchas, instituto, barrio o ciudad, equipo o grupo favorito. ¿Cuántos hay? Con el embudo de la misión en la cabeza, ¿te preocupa la suma?

  • Revisa un ajuste. Abre los ajustes de privacidad de una aplicación que uses. Mira quién puede ver tus publicaciones y cámbialo a «solo contactos» si estaba abierto. Apunta qué cambiaste.

  • Cambia el grupo. Vuelve al primer listado y prueba con N = 1000 en lugar de 600. Antes de ejecutar, apuesta: ¿el porcentaje de personas señaladas con cuatro pistas subirá o bajará? Compruébalo.

  • La cookie, con tus palabras. Explícale a alguien de tu casa, en dos frases, por qué rechazar la cookie no borra tu huella. Enseñar algo es la mejor prueba de haberlo entendido.

  • ★★ Guarda tu top del año. Modifica el embudo de Alex para que comparta su artista favorito pero no el tema estrella. ¿En cuánta gente se esconde ahora? Compara con las cinco personas de antes y con la única de después, y saca la conclusión.

  • ★★ Tu propio medidor. Amplía informe_huella para que acepte también la pista "artista" por separado (solo el artista, sin el tema). Así puedes medir qué pasa cuando das medio top —el artista, pero no la canción—.

  • ★★ Menos pistas, más multitud. Escribe un bucle que recorra estas tres opciones de Alex —{"genero"}, {"genero", "franja"}, {"genero", "franja", "top"}— y para cada una imprima en cuánta gente se esconde. Acabas de dibujar tu propia escalera de defensa.

  • ★★ El mensaje que pides. Redacta el mensaje que le enviarías a un amigo para pedirle permiso antes de subir una foto en la que sale. Cuidar la huella ajena también se practica con palabras.

  • ★★ Tu adulto de confianza. Escribe una lista de tres situaciones en internet en las que pedirías ayuda a una persona adulta, y a quién acudirías en cada una. Tenerlo pensado antes es media batalla ganada.

  • ★★ Revisa un permiso. Abre los permisos de una aplicación en tu móvil y encuentra uno que esté abierto y que la app no necesite de verdad (¿por qué querría tu ubicación una app de música?). Ciérralo y comprueba que la app sigue yendo. Apunta cuál cerraste.

  • ★★ Caza el cebo. Piensa en un mensaje de phishing que hayas visto (o invéntate uno creíble) y escribe las tres señales que lo delatan. Enseñárselas a alguien de casa es un reto de una estrella extra.

  • ★★★ El jefe: informe de tres. Elige tres fichas del grupo inventado (por ejemplo las de índice 0, 1 y 2) y pásale cada una a informe_huella con sus tres pistas. Imprime, para cada una, en cuánta gente se esconde. ¿Están todas señaladas? Comenta por qué.

  • ★★★ El jefe: tu escudo personal. Escribe una función revisa_habitos que reciba una lista de hábitos que ya cumples (por ejemplo ["cuenta privada", "doble factor"]) y una lista de los recomendados, y devuelva cuáles te faltan. No mide huellas de nadie: mide tu propia defensa. Ejecútala con tus hábitos reales y ponte deberes.

  • ★★★ El jefe: bits y grupos. Usando np.log2, calcula cuántos bits hacen falta para señalar a alguien en tu grupo (600), en tu instituto (invéntate un número) y en tu ciudad. Ordénalos de menos a más y explica en una frase por qué en el grupo pequeño hacen falta menos pistas.

¿Te has atascado? En el apéndice C tienes, para cada reto, primero una pista y solo después la solución. Pero el pacto es este: entra ahí después de haberlo intentado de verdad.

NotaPara saber más: por qué «anónimo» casi nunca lo es

Cuando una empresa dice «tus datos son anónimos», suele querer decir «les he quitado el nombre». Ya sabes que no es lo mismo: los datos que quedan —género, horas de escucha, gustos, artistas— siguen siendo una huella, y basta cruzarlos con otra lista para volver a poner el nombre encima, como hizo Sweeney. Anonimizar de verdad es mucho más difícil: hay que engordar los grupos hasta que cada persona se parezca al menos a otras cuantas (agrupar los géneros en familias, redondear las horas), y aun así se escapan casos raros. Por eso los profesionales que se lo toman en serio prefieren, muchas veces, trabajar con datos sintéticos —inventados, como el grupo de esta misión—: si el dato no corresponde a nadie, no hay a quién reidentificar. Es la razón por la que toda esta campaña usa la música y la gente de mentira: se aprende igual, sin poner a nadie en riesgo.

Tu caja de herramientas

Mira cuánto sabes ahora sobre tu huella y no sabías hace unas páginas. Esta es tu chuleta; pégala en la bitácora.

  • Huella digital: el rastro de datos que dejas. Activa (lo que publicas) y pasiva (el rastro que dejas sin querer, tu historial de escucha incluido).

  • La trampa: ningún dato te señala solo; la combinación, sí. Tres o cuatro pistas cotidianas —género, horas, tu top— bastan.

  • Bits: la moneda de las pistas. Señalar a alguien entre \(N\) pide \(\log_2 N\) bits; cuanta menos gente, menos pistas hacen falta.

  • Cookie: notita guardada, se puede rechazar y borrar. La huella del navegador no se guarda —no se borra—.

  • Datos especiales: tu cara (no se cambia) y tu salud. Pesan más; protégelos más.

  • Defensa: da menos pistas, revisa tus ajustes, piensa antes de subir, respeta la huella ajena, cuida tus llaves.

  • La regla: tu seguridad no es un dato secreto, es cuántos datos callas. Menos pistas, más multitud.

  • Y sobre todo: si algo te incomoda, pide ayuda a un adulto de confianza. Cuanto antes.

No memorices la lista: úsala esta semana. Un hábito solo cuenta cuando lo haces.

El guardián no vigila

Antes de cerrar, volvamos a donde empezamos, porque ahí nace el nombre de la insignia. Toda esta misión te ha enseñado cómo unas pocas pistas señalan a una persona. Ese conocimiento es una herramienta, y una herramienta se puede usar para dos cosas opuestas: para protegerte o para acechar a otro. El guardián de la huella elige siempre la primera, y no por miedo al castigo, sino porque entiende algo sencillo: la privacidad solo funciona si es de todos. Si yo respeto la tuya y tú la mía, los dos estamos más seguros. En cuanto alguien empieza a usar estas ideas para hurgar en la vida de los demás —cotillear la lista de otro, seguirle el rastro—, rompe el pacto que nos protege a todos —empezando por él—.

Por eso, fíjate en lo que no has hecho en toda la misión. No has buscado datos de ninguna persona real. No has cruzado listas de nadie. No has medido la huella de un compañero para «ver qué encontrabas». Todo ha sido sobre un grupo inventado y sobre ti mismo, con un único fin: aprender a cuidarte y a cuidar. Si alguna vez sientes la tentación de usar esto contra alguien —por curiosidad, por una broma, por despecho—, para y recuerda: eso no es de guardián, es justo lo que un guardián impide. La destreza que has ganado te obliga un poco más, no un poco menos. Quien sabe abrir cerraduras es, precisamente, quien más cuidado debe tener con las puertas ajenas.

Una nota para tu yo del futuro. Dentro de unos años tendrás más cuentas, más seguidores, más vida en internet —y más que proteger—. Guarda esta misión. El grupo de 600 seguirá enseñando lo mismo: que no te delata ningún dato suelto, sino la colección; que dar menos pistas te esconde en más gente; y que la mejor defensa no es un programa, sino un hábito y una persona de confianza a quien acudir. Si eso te acompaña, ya eres guardián para siempre.

Cuando quieras ir en serio

Lo de hoy ha sido un juego con un grupo inventado, y para entender la idea es perfecto. Pero detrás hay un oficio entero, el de proteger los datos de las personas de verdad, y es de los que más falta harán en los próximos años. Quien trabaja con datos aprende a anonimizarlos bien, a medir cuánto revela cada respuesta con una técnica llamada privacidad diferencial, a fabricar datos sintéticos que sirvan sin exponer a nadie, y a montar una «cadena de custodia» para que un dato sensible no ande suelto. Todo eso te espera en el volumen adulto del que nace este libro, si algún día quieres cruzar ese puente. Por ahora te basta con quien ya eres: alguien que entiende su propia huella y sabe cuidarla —la suya y la de los demás—.

Misión 8 completada. Insignia guardián de la huella, desbloqueada. Has descubierto tu rastro, has medido cuántas pistas señalan a una persona en un grupo, has comprobado que dar menos te esconde en más, y sales con una lista de hábitos para protegerte y para respetar a quienes te rodean. Has aprendido lo más difícil de la ciencia de datos: que detrás de cada fila hay una persona, y que cuidarla no es un añadido, es el trabajo. En el jefe final de la campaña dejarás el catálogo de música y cogerás tus datos —los tuyos, tu propio historial de Spotify— para hacerlos hablar; y ahora sabes hacerlo sin ponerte, ni poner a nadie, en riesgo.