El coreano que rompió Internet

psy

O casi… De acuerdo, estoy exagerando un poquito. Pero el hecho es que PSY, el famoso cantante surcoreano autor de Gangnam Style, ha hecho que el gigante Google tenga que llevar a cabo una actualización masiva en sus bases de datos. ¿Por qué? Así lo explica el equipo de YouTube:

We never thought a video would be watched in numbers greater than a 32-bit integer (=2,147,483,647 views), but that was before we met PSY. “Gangnam Style” has been viewed so many times we have to upgrade!

Nunca pensamos que un vídeo sería visualizado un número de veces superior a un entero de 32 bits (2.147.483.647 visitas), pero eso fue antes de conocer a PSY. ¡Gangnam Style ha sido visto tantas veces que hemos tenido que actualizar!

Un contador como este no es más que un número, un número que se almacena en un campo de un set de datos asociado a un determinado vídeo en una base de datos. Que se almacena significa memoria, lo que a su vez significa que cada vídeo de YouTube, como cada entrada de este blog, tiene una porción de memoria finita reservada para guardar sus cositas (p. ej., número de visitas, número de “me gusta”, URL, usuario al que pertenece…). En algún momento, el equipo desarrollador de YouTube (probablemente esto venga de antes de su adquisición por Google) pensó que 32 bits eran más que suficientes para tener guardado el número de visitas de un único vídeo. Parece razonable, pero… siempre está la realidad para sorprenderte.

El caso es que supongo que la actualización de marras no habrá sido inmediata precisamente. Tengamos en cuenta que se trata de ampliar un campo que está presente en todos y cada uno de los vídeos de YouTube, cuya información estará replicada probablemente en centenares de bases de datos repartidas por todo el mundo; añádele copias de seguridad, etc., además del hecho de que no puedes modificar por las bravas la base de datos en producción (esto es, la que está en uso). En fin, una odisea de moderadas proporciones para un mísero contador.

La duda que me sigue quedando es por qué utilizaban un entero con signo (arriba no han sido precisos: 2^{31}=2.147.483.648, no 2^{32}, luego el bit que nos falta es el que indica el signo; con un entero sin signo habrían tenido el doble de visitas posibles) para almacenar visitas, cuando nunca vas a tener visitas negativas… Un desperdicio absoluto.

Al margen de la realidad

Hace un par de semanas, en Applesfera (negritas mías)…

Cinco motivos por los que el reconocimiento dactilar del iPhone 5s es superior a todos los que conoces

Todo eso del Touch ID del iPhone 5s está muy bien pero, ¿qué pasa si utilizamos una fotocopia del dedo? ¿o hacemos una copia en plastilina de la huella? O peor aún, ¿y si alguien nos corta un dedo? ¿Podrían saltarse el sistema de reconocimiento dactilar de Apple? No, todo eso es por fortuna cosa del pasado y del mismo modo que el iPhone original fue el primer teléfono con pantalla táctil que de verdad hacia justicia a esta tecnología gracias a su interfaz, el iPhone 5s será el primer teléfono en acercar los sensores de huella al gran público.

1. Cortarte un dedo no sirve para nada.

El sistema Touch ID utiliza un sensor capacitivo, lo que significa que no obtiene una imagen óptica de la epidermis, sino que en su lugar realiza una lectura de las diferencias en la carga eléctrica de las crestas y valles en las capas subdermicas del dedo. Una fotocopia no funcionará, una huella de plastilina no funcionara y un dedo cortado tampoco funcionará.

Y ahora, dos días después de la salida al mercado del iPhone 5s, ¿adivinan qué?

Oh, sorpresa. Me encantan los lusers de Apple: nada puede con su mundo de fantasía.

¿Es seguro el generador aleatorio de Linux? Torvalds responde

Los últimos documentos filtrados por Edward Snowden revelan que la agencia de ciberinteligencia estadounidense, la NSA, en su afán por espiar las comunicaciones cifradas, habría llegado a comprometer incluso el propio kernel de Linux a través de la empresa Intel. Explicaré aquí brevemente cuál es este problema que recorre Internet estos días y de qué manera ha quedado zanjado, de momento.

Qué es un generador de números aleatorios

La criptografía necesita números aleatorios para funcionar: secuencias no predecibles que sirvan para generar claves igualmente no predecibles y otros menesteres. Sin embargo, los ordenadores son más bien lo contrario de la aleatoriedad —como suelo decir, el ordenador hace lo que le mandas—, lo cual es un problema. El kernel de Linux, como cualquier otro sistema operativo, tiene un generador de números aleatorios, que en realidad es un generador pseudoaleatorio (léase lo suficientemente aleatorio, también como el de cualquier otro sistema), que es a lo que se puede aspirar con algo determinista como un ordenador.

Cuál es —supuestamente— el problema

El generador del kernel de Linux utiliza como fuente de aleatoriedad una instrucción de los procesadores Intel llamada RDRAND, que no deja de ser un componente hardware ajeno al kernel de Linux y, por tanto, difícilmente auditable. Al parecer, la NSA podría haber introducido una puerta trasera en dicha fuente de aleatoriedad. Esto quiere decir que las secuencias generadas con esos chips de Intel podrían ser predecibles para la NSA.

De confirmarse el problema, las consecuencias serían bastante gordas. Para empezar, no sería confiable ningún certificado o clave pública generada con hardware Intel desde la inclusión de la instrucción RDRAND.

La respuesta de Torvalds

Las discusiones en las listas de correo de desarrolladores de Linux han sido acaloradas durante los últimos días. Se llegó a abrir una petición en Change.org para que Linus Torvalds, el creador del kernel de Linux, eliminase RDRAND del generador. La respuesta de este ha sido tajante, tal y como nos tiene acostumbrados:

Where do I start a petition to raise the IQ and kernel knowledge of people? Guys, go read drivers/char/random.c. Then, learn about cryptography. Finally, come back here and admit to the world that you were wrong. Short answer: we actually know what we are doing. You don’t. Long answer: we use rdrand as one of many inputs into the random pool, and we use it as a way to improve that random pool. So even if rdrand were to be back-doored by the NSA, our use of rdrand actually improves the quality of the random numbers you get from /dev/random. Really short answer: you’re ignorant.

Resumiendo, RDRAND es solo una fuente más de aleatoriedad utilizada por el generador. Por tanto, aunque tuviera una puerta trasera, no serviría de nada y las secuencias no serían predecibles. Todo ello explicado con el peculiar estilo Torvalds.

Cómo ha cambiado el cuento

Apple abrió la veda —lo cual significa que no inventó nada, pero supo sacar dinero de ello—, como en tantas otras cosas, y los demás, detrás. La tendencia imperante en la actualidad es la de crear dispositivos ligados encadenados a una App Store, una tienda de aplicaciones en la que el fabricante del mismo se lleva buena parte del beneficio de las ventas. El mundo de las editoriales y las discográficas adaptado al software. Dicho de otro modo, si Internet está sirviendo para cambiar un modelo de negocio tan obsoleto como lucrativo para los intermediarios en el ámbito de la cultura, no menos útil está resultando para traer ese mismo modelo al software. Móviles, tabletas, ordenadores, televisores inteligentes, consolas… pocos son los dispositivos o sistemas operativos que no se han subido ya al carro. Delirante.

Microsoft, aparentemente lenta en este mercado, todavía no sale de su asombro al comprobar la oportunidad que el mercado y las circunstancias le han brindado en una enorme bandeja de plata […] Si hace unos años era acusada y condenada por prácticas monopolistas por la sencilla razón de embutir un navegador gratuito en su SO Windows, hoy en día nadie le dice nada por introducir en el mismo, en exclusiva, el software de una tienda donde cobrar entre el 20 y el 30 % por cada app que se instale en Windows. ¿Si a otros les dejan por qué a nosotros no?, han debido [de] pensar los de Redmond en su particular interpretación del dicho “O todos Payos o todos Gitanos” y se han apresurado a montar tiendas de apps para todas sus plataformas.

Consolémonos:

[…] aunque la trampa esta tendida para todos, siempre me ha demostrado la historia, que ante todo “avance imperialista” […] aparece un grupo de “irreductibles galos” que pretenden instalar en sus dispositivos cualquier tipo de aplicación.

En esto último, el cuento no ha cambiado tanto.

(Fuente de las citas: De rebajas, en el blog Un informático en el lado del mal)