De hackers, crackers y editores flojos

Andaba navegando por el twittverse cuando me encontré con una nota referente a la psique de los ‘hackers’. “Fabuloso,” pensé. “Una deconstrucción de los clichés referentes a los intrusos informáticos.” Ja. Ja. Y más ja.

La joyita más importante está a la mitad del artículo:

Las ganas de explorar son el combustible por excelencia y muchos solo quieren romper los sistemas a los que ingresan. A estos la mayoría les dice hackers, pero el término adecuado es crackers. Suelen hacer colapsar servidores, infectar computadoras, entrar a zonas restringidas y crear botnets, es decir, ‘ejércitos’ de computadores ‘zombies’, que hacen lo que ellos les ordenan, como atacar un sitio web.

Yay! Paz y buena voluntad a los hombres de eltiempo.com! Excepto que, no. En el siguiente párrafo:

El nacimiento de Anonymous, la organización de hackers que en su momento hizo colapsar páginas de la talla del FBI o de Visa y MasterCard[…]

Ex-fucking-cuse me? Buuuu al editor!!!

Ese es el maldito problema con estos artículos. Preservan conceptos erróneos, y tergiversan el significado verdadero de las palabras. Primero, que un “hacker” es un cuate que sabe utilizar herramientas para vulnerar sistemas. Nel, mil veces nel! Conozco pocos hackers en persona (el equipo completo del Giraffe Chapter califica) pero sé bien quienes *no* son hackers. “Tirar” un servidor no te hace hacker. Sacarle la contraseña de red inalámbrica al vecino tampoco. Y borreguear, menos. Lo que más me molesta, supongo, es que los verdaderos hackers ya no tienen término. “Gurú” no hace justicia: hay gurús que no producen soluciones (i.e. “hackear”). Tampoco “experto”; muchas personas utilizan la etiqueta cuando no tienen el mínimo derecho a ella, y la vasta mayoría son consultores – donde lo que menos se hace, es hackear. Cobrar, eso sí; hackear, terriblemente poco. Y, obviamente, los que verdaderamente merecen la medallita salen perdiendo – porque en el miasma de las TIC (creo que me siento sucio nomás de escribirlo) es difícil distinguir a los elementos valiosos. Bueno, a veces hasta es difícil distinguir a los competentes…

Segundo, que Anonymous es una organización. Esto es un problema ligeramente más grave, porque preservar esta concepción es precisamente el problema de aquellos que pelean contra sus ataques. Creen que hay líderes que derrocar, sistemas centrales que neutralizar, herramientas que identificar. El LOIC es *una* de muchas. Aquí unas cuantas, apenas para DDOS. Y en realidad, ninguna es una “herramienta Anonymous”; mañana sale un plugin para que sirva para XSS, y presto – otra más al arsernal. Arrestan a 7 miembros; 70 más salen de salones de clase, cubículos de oficina, etc. Apagan 3 servidores IRC; mañana publican otros 10 – incluso en otro protocolo, tal vez más seguro, tal vez menos detectable. La inercia y el conformismo de los “expertos” en seguridad es lo que preserva su fuerza.

Quieren derrotar a estos “hackers” y su “organización”? Empiecen a formarse una imagen más propia de lo que en realidad son. El grueso, script kiddies. O acarreados. O ambos. El “miembro” promedio de anonymous no es más hacker que el pajarito de Homero. Y dejen de pensar que están viviendo su propia versión de “Takedown”. Fortalezcamos nuestros sistemas; hagamos consciencia de seguridad. Invirtamos (sí, ni modo) en equipos, si no tenemos el expertise para cubrirnos. Véanlo de esta forma: Anonymous es el equivalente digital de las marchas que acongojan nuestras ciudades casi diariamente. Sí, hay marchas estúpidas. Sí, nos joden la vida a todos. “Use vías alternas” es el credo, no “atropéllenlos a todos.”

Y sí, el próximo miembro de Anonymous que me demuestre que tiene “ganas de explorar” será el primero. La mayoría ni siquiera prueba las múltiples opciones de las herramientas 🙁

Presentación del Taller, “Análisis forense de tráfico de red” (19/04/12, Centro Nuevo León)

Aquí está la presentación. Está en formato 2007 (editable) y 2003 (no editable).

El documento se comparte bajo licencia Creative Commons, en las condiciones indicadas en el link del panel derecho.

Versión 2007

Versión 2003

Además pongo el link para el sitio de los retos forenses, y las herramientas pcapcat y oftcat.

En breve pongo la resolución del problema visto en el taller, actualizando este mismo post.

Presentación del Taller, “Seguridad en Linux” (17/04/12, Centro Nuevo León)

Aquí está la presentación. Está en formato 2007 (editable) y 2003 (no editable).

El documento se comparte bajo licencia Creative Commons, en las condiciones indicadas en el link del panel derecho.

Versión 2007

Versión 2003

¿Porqué necesitas usas diferentes contraseñas en cada sitio y servicio?

Seguro has escuchado ese mantra:

“Para cada página web, para cada servicio que utilizas, es necesario utilizar contraseñas diferentes”

A la gente le *purga* escuchar esto. “A duras penas me acuerdo de mi contraseña “de siempre”, y tú quieres que use varias? Vete al cuerno.” La verdad es que existe una sencilla y poderosa razón para recomendar esto. Y va, como mantra secundario:

Lo que pasa con nuestras contraseñas en internet no depende de nosotros

A qué me refiero? Seguro escucharon de la vergüenza que pasó Sony el año pasado. En resumen: unos malos muy malos se metieron a sus servidores, y se robaron las contraseñas y datos de contacto (dirección, teléfono, correo electrónico) de *77 millones de usuarios* de la PlayStation Network. Ah, y también tiraron la tal PSN por casi un mes.

Bueno… y eso qué tiene que ver? Pues muy sencillo. Armado de una dirección de correo electrónico y una contraseña, no es difícil para un atacante investigar en múltiples servicios, para determinar si en alguno de ellos el usuario utilizó la misma contraseña. Y efectivamente esto pasó: cientos de reportes surgieron en internet acerca de múltiples otros servicios vulnerados. Por utilizar la misma contraseña.

Las consecuencias pueden no ser fáciles de vislumbrar, pero ahí va un posible camino: obtengo tu contraseña y tu correo. Si usas *esa* contraseña en tu correo, tengo acceso a tu correo. Con tu correo, puedo obtener acceso a tu facebook, twitter, etc. Puedo hacerme pasar por tí. Con un poquitín de suerte, puedo obtener suficiente información personal tuya (digamos, escribiéndole un correo a algún familiar desde tu cuenta de correo) como para fingir ser tú en el “mundo exterior”. Y mejor no le sigo, tanto por no dar ideas, como para no asustar de más… creo que basta con esa idea.

Y si crees que esto solo pasa una vez en la década, estás equivocado. Lamentablemente, los programadores también son personas, y muy lamentablemente, cometen errores. A veces garrafales. Es tremendamente común descubrir que páginas web que manejan usuarios y contraseñas (hoy en día, casi todas) no las manejan de manera segura; ni siquiera con tantito cuidado, vamos. Hay más carnita en ese tema, pero será objeto de… otro post.

Bueno, cómo le haces para recordar todas esas contraseñas? Hay programas que te ayudan. Keepass es una excelente opción si solo utilizas contraseñas en tu computadora; trabaja con Linux, Windows, Mac, etc. Si quieres algo un poco más universal, LastPass admite teléfonos móviles y hasta puedes configurar una memoria USB para servir como token, aunque para todo eso te cuesta extra. Pero opciones hay…

Contraseñas seguras: porqué más es siempre mejor

Seguramente, al registrate en un sitio web, banca electrónica, o cualquier otro servicio que solicite contraseña, has encontrado un mensaje como el siguiente:

La contraseña debe contener al menos 8 caracteres, pero no más de 12, y debe incluir al menos una letra y un número

(Ciertamente es una pobre política de contraseña segura, pero se entiende el ejemplo)

¿Porqué es esto? Bueno, es probable que hayas escuchado que esto hace más segura a tu contraseña. Pero… es cierto esto?

Dejemos de lado por un momento la posibilidad de que alguien se robe tu contraseña directamente de los servidores del sitio (eso es tema para otro post, coming soon). Supongamos que lo que queremos evitar es que alguien la “adivine”. Seguramente, gatito33 es lo suficientemente “diferente” para que alguien la adivine (a diferencia de, digamos, “gatito” a secas). Y probablemente estaremos en lo cierto, si por “alguien” nos referimos a un humano común y corriente. El problema es que, cuando alguien quiere obtener tu contraseña, usualmente no se la pasa adivinando y probando manualmente una por una (sí hay casos así, pero, a diferencia de lo que Hollywood nos quiera hacer creer, son los que menos nos preocupan). No, la preocupación mayor es lo que se conoce como un ataque de fuerza bruta.

Mediante este método, un atacante puede intentar adivinar miles (dependiendo de los recursos de cómputo a su disposición, puede ser millones) de contraseñas por minuto. Evidentemente, tiene que probar todas las combinaciones. Por ejemplo, si quisiera yo adivinar una contraseña de 4 caracteres o menos que utilice sólo letras minúsculas, tendría que probar:

a
b

z
aa
ab

az
ba

zz
aaa

zzzz

Si mi contraseña es “gato”, estará en esa lista. Y… cuántas son las que tiene que probar? Si recuerdas tus clases de probabilidad y estadística, esto se calcula fácilmente. Son todas las permutaciones de las letras del alfabeto en 4 lugares – o, en fórmula: 26^4 (26 elevado a la cuarta potencia). Esto es, 26*26*26*26, o bien, 456,976. Un numerote.

Pero, si dijimos que un atacante puede adivinar miles (o, en casos extremos, millones) de contraseñas por minuto, cuánto tiempo puede tomarle adivinar mi pequeña contraseña? Muy poco. Digamos que un atacante puede intentar un millón de contraseñas por minuto. En menos de 30 segundos, ya tendrá mi contraseña.

Uff! Entonces una contraseña de 8 caracteres será mucho más segura, no? Efectivamente. Y más del doble, de hecho. Consideremos que para adivinar una contraseña de máximo 8 caracteres, la fórmula sería:

26^8 = 208,827,064,576 = Doscientos ocho mil ochocientos veintisiete millones (!) y fracción.

Nuestro mismo atacante tardará… pues 208,827 minutos en adivinar esta contraseña. Lo cual es igual a… 145 días. Más de 4 meses. Caray, pero nuestro estimado de un millón por minuto puede ser bajo. Las botnets permiten controlar miles de computadoras a la vez! Démosle más ventaja a nuestro atacante. Supongamos que puede calcular 1 millón de contraseñas *por segundo*. De ser así, calcular todas las contraseñas de máximo 8 letras le tomaría 2.4 días.

NOTA: Hay que considerar que las políticas de contraseña, sin embargo, no suelen decir “de 1 a 8 caracteres”. No, en realidad dicen algo así como “mínimo 6 y máximo 10 carácteres”. Si solo utilizaramos letras, las posibilidades son 26^10 – 26^6 = 1.411667867×10^14 = un numerototote (141 billones y fracción). De ahora en adelante seguiremos con estas consideraciones.

Pensemos ahora en la política de contraseña arriba descrita: “La contraseña debe contener al menos 8 caracteres, pero no más de 12, y debe incluir al menos una letra y un número”. Esto significa que nuestra base (el 26) cambia, porque ahora consideramos las letras (26) y los números (10). Entonces nuestra fórmula sería: 36^12 – 36^8 = 4.738378517×10^18 (o bien, 4.7 trillones). Nuestro atacante (el de un millón de contraseñas por segundo) debería pasar 150,252 AÑOS intentando obtener nuestra contraseña, de todas las posibles.

Ahora, un poco de matemática aburrida (y no, lo de arriba no fue matemática aburrida). Si ya estás por dormirte, sáltate el siguiente párrafo, y lee las conclusiones.

Nótese que cada que agregamos un nuevo caracter (es decir, aumentamos el tamaño de la posible contraseña) disparamos exponencialmente el tamaño de la contraseña; no así cuando aumentamos el tamaño de la base (el crecimiento es más bajo). Esto cimenta la teoría de que es mejor utilizar contraseñas largas (ej. “estaesunacontraseñalargaquenosepuedeadivinarfacilmente” – 26^55) que una contraseña más corta pero con más caracteres (ej. “U7w!5q3qw&” – 60^10 considerando 8 símbolos especiales), en particular porque a la persona promedio se le hace mucho más sencillo recordar la frase que el garabato del segundo ejemplo. Más fácil de recordar + más difícil de vulnerar es una muy buena combinación 😉

El punto es: usa más en tus contraseñas. Si vas a utilizar contraseñas cortas (nunca abajo de 8, pero no superiores a 10 o 12 caracteres) es *imprescindible* que utilices letras mayúsculas, minúsculas, números, y símbolos especiales. Si no te gustan esos garabatos, utiliza contraseñas MUY largas, de más de 20 o 30 caracteres. Una forma fácil es utilizar frases, quitando espacios, acentos y puntuación. Por ejemplo:

“El respeto al derecho ajeno es la paz” –> elrespetoalderechoajenoeslapaz ==> 26^30.

Y, por supuesto – no olvides cambiarla con frecuencia. Buen consejo para la ropa, buen consejo para las contraseñas 🙂

De C#, y porqué el tamaño sí importa

Resúltose que estabamos probando una mejora a la aplicación de Factúralo tú mismo, cuando nos hablaron para una solicitud de soporte… algo extraña.

En todos los sistemas que habíamos probado la aplicación, esta nueva actualización se realizó sin problemas. Era una actualización, a decir verdad, mucho más estética que de funcionalidad: se cambió un poco el look de la aplicación, para que fuera más concordante con los estándares de UI actuales (digamos, íconos más bonitos, etc). Pero bueno, a uno de nuestros usuarios, este movimiento le causo el siguiente horror:

************** Texto de la excepción **************

System.ComponentModel.Win32Exception (0x80004005): El parámetro no es correcto

en System.Drawing.Icon.Initialize(Int32 width, Int32 height)

en System.Drawing.Icon..ctor(SerializationInfo info, StreamingContext context)

La absoluta irreproducibilidad del error (y que se note que lo intenté, en los 3 equipos de los que pude echar mano el fin de semana) me llevó a considerar el problema un *extraño* más, y dejarlo como otro caso para la araña. Sin embargo, hoy me hablaron diciendo que el caso se había esparcido – sí, es correcto – a otro equipo de cómputo. La única característica definitoria para ambos? Netbooks.

Pues me puse a investigar. Evidentemente el problema hacía alusión a íconos, pero… a cúales? Ay de mí si eran los que había agregado… tendría que deshacer el trabajo de la semana. Pero sin desánimo me puse a buscar, y al final resultó ser el ícono de la aplicación. Sí, un simple ícono… con los siguientes parámetros:

WIDTH:700
HEIGHT:699

¬¬ Ok, eso podría ser. Pero porqué los demás sistemas se actualizaban sin problemas? Aparentemente, hay versiones de Windows que ejercen de manera más estricta el tamaño de los íconos – o mejor dicho, Vista/7 se ajustan dinámicamente aunque les avientes una barbaridad como aquella, y lo redimensionan automáticamente.

Algo nuevo aprendí hoy XD

Acerca de .Net, el manifiesto y los requisitos previos

Pues llevo la mejor parte de la noche (ok, ok, apenas un par de horas, pero es bastante para mí!) lidiando con un problema interesante. Explicaré un poco de los preeliminares, para que todos nos entendamos.

La plataforma de .Net es, para mi gusto, una verdadera maravilla. Si vas a desarrollar para Windows (y no te importa mucho obligar a tus usuarios a que instalen X dependencias que bien pueden ser molestas), te permite utilizar una serie de lenguajes muy parecidos entre sí, sólidos, con una gran base de desarrolladores que pueden ayudarte, código disponible en línea, e incluso bibliotecas listas para ser aprovechadas. Como Java, pues, pero sin la molestia de tener que usar… *eso*. Si tú desarrollaste en Visual Basic, VB.net es prácticamente lo mismo; si trabajaste en Java, C# es un camino bastante directo. Tiene gran versatilidad para desarrollar aplicaciones web, permite redistribución de dependencias (recuerden esto), tiene soporte para actualizaciones automáticas de tu aplicación… bueno, las bondades son demasiadas. En fin, es una plataforma que personalmente, me agrada bastante.

Nosotros, los programadores eventuales (es decir, que en realidad no nos dedicamos a esto para vivir), tenemos muchas malas mañas. Generamos código sucio, no muy organizado ni comentado; nuestra documentación puede catalogarse como garabateadas en servilletas y hojas de papel que acaban tiradas por ahí; y tendemos a vivir en el modo “debug”, nunca preocupándonos por cómo va a quedar la aplicación final cuando el usuario final decida instalarla – digo, podemos dejarlo hasta el final, no? El problema con esto es que cuando llega el famoso final… es una pesadilla.

De entrada, les recomiendo esto: no utilicen acentos para nombrar a su aplicación. No, .Net no truena con eso. Pero si quieren utilizar la funcionalidad de actualizaciones, su servidor web puede darse de topes con ustedes, porque va a buscar archivos y cadenas no fácilmente codificables. Solo… tómenlo como una recomendación amable.

Y por supuesto, el centro del problema: los requisitos previos. .Net corre sobre una máquina virtual (el “Framework”), y mi aplicación en particular utiliza un motor de bases de datos sencillo (SQL Server CE, que es algo así como el primo debilucho de SQL Server Express, que a su vez es el babas a comparación de SQL Server, que a su vez… etc etc), comparable con sqlite. El Framework, para instalarle, utiliza *otro* requisito previo, el Windows Installer (v.3.1 en este caso en particular). Estos requisitos son manejados elegantemente por el instalador generado por .Net: se descargan automáticamente de internet, si el usuario final no los tiene ya instalados. El problema es que, combinados, son alrededor de 100 Mb de descarga: ciertamente no es mucho para un geek, pero un usuario con una conexión de Infinitum a 512 (cuando le va bien) nos va a obligar a visitar a los papás. So… debemos poder incrustarlos con nuestro instalador, cierto?

La respuesta es “sí, pero te va a costar trabajo”. Resulta que estos instaladores (que se pueden bajar bastante fácil de internet) no se ponen en cualquier localidad. Deben ir en el directorio que .Net utiliza para almacenar los instaladores. Suena sencillo… hasta que nos enteramos que cada versión del Framework tiene diferentes localidades (y lo mismo para cada versión del Installer, SQL, etc), y que a su vez, cada versión de la IDE lo pone en directorios ligeramente diferentes. En mi caso?

C:Program Files (x86)Microsoft SDKsWindowsv7.0ABootstrapperPackages

¬¬ Sí te iba a encontrar, no?

Pero gracias a un valiente y hermoso post:

http://social.msdn.microsoft.com/forums/en-US/Vsexpressvb/thread/56584721-3064-46c2-81f4-6c29c01e1895/

Tuvo solución el problema. La moraleja, como siempre, es no fiarse de M$.

😀

De verdad que no te entiendo, Axtel

Allá en la fuente, había un chorrito…

Ok, figúrense este problema: su navegación por internet es, a todas luces, buena. La velocidad es decente, o al menos no es notoriamente lenta. Al menos, así parece en el buen puerto 80. SSH tampoco reporta lentitudes. Todo marcha bien. De pronto, se les ocurre hacer una descarga (digamos, para actualizar los paquetes de su *Nix). La velocidad los tira al piso: alrededor de 30 KBps. Caray, hasta Infiernitum da más! OK, esto es probablemente un problema con el servidor de Linux, cierto? Veamos, tengo por aquí un archivito de MegaUpload que puedo probar…

…a unos notables 25 KBps. W. T. F?!

He hecho 4 llamadas al soporte técnico de Axtel (por cierto, ajúa con el acento, chavos!). Las 4 llamadas han resultado en lo mismo: “Sí señor, prometemos resolverlo. [2 días después] A ver señor, pruébelo. [Funciona aparentemente bien]. Gracias por su preferencia. [30 minutos después… cuerno.]” Qué pedo, Axtel? Estamos jugando, o qué demonios? Ah, pero eso sí: cada vez que me piden utilizar un medidor de velocidad en línea, “casualmente” me reporta un ancho de banda normal. Dammit!

Se hacía grandote…

Hace un par de días, estaba yo feliz trabajando en una sesión ssh en la valiente jusanet (a eso de las 3 de la mañana), cuando de repente, mi vi estaba mas menso con mis comandos que de costumbre. Supuse que era la jusanet, y aventé 40 maldiciones en arameo antiguo al cielo (lo cual no suele solucionar nada en la conexión, pero se siente tan bien… ahem, pero me desvío del tema), hasta que volteé a ver mi monitor de uso de red… al pico. Hhmm…. esto se ve raro. Ah, pero está abierto JDownloader! Será? Será?? Ya tengo buena velocidad?

Efectivamente. Mis dulces, adorados y muy extrañados 240 KB/s. Pero… ¿cómo llegaron ahí? ¿Qué agradable duende del ancho de banda me los trajo? (No fue el gnomo, eso es seguro) Será que… nahhh… Axtel tiene problemas de mucho uso???

Se hacía chiquito…

Pues que me pongo a investigar. Hice una ligera “auditoría de seguridad” en las redes de los alrededores; supuse que podría identificar a mis vecinos con Axtel por el nombre de la red, la dirección IP pública, y el tipo de autenticación solicitada por el modem, si existe. Rápidamente encontré 3 aquí cerca (copiones). Estaba apenas apuntando nombres de red, cuando de pronto, oh tristeza… de vuelta a los 25 KBps. No, esto no podía quedar así.

Estaba de mal humor… el sysadmin.

Pues que saco la Alfa. Y que disparo el Beini. Un frontend de kismet a prueba de imbéciles (inserte broma acerca del autor aquí), me permitió en 15 minutos, como dicen los americanos, estar kicking ass and taking names. De redes, evidentemente. Efectivamente: uno de mis vecinos, en su eterna sabiduría, está descargando a lo baboso algún contenido (no, no me interesa investigar *qué* es). Lo estuve monitoreando por casi 2 horas; a punto de quedarme dormido, ví que su tráfico disminuyó. Y, sorpresa, mi monitor de tráfico subió de nuevo.

Un simple problema de recursos, evidentemente.

Pero algo sigue sin cuadrar: mi enlace, para aquellos que no lo conocen, es de 2 Mbps. 2 tristes megas. Y cuando alguien en la zona, con un enlace de 1 Mbps, comienza a descargar, esto me pasa? WTF, Axtel? Digo, somos 3 en una zona de como 16 cuadras (… cuadradas?). En serio, no somos muchos. CUando alguien se acapara tantito ancho de banda, esto pasa? Que servicio tan pinchurriento tienen, que un usuario le puede dar en la madre a todos los demás? Fuck, estoy no es cable! Y además, estamos hablando de 2 Mbps! Imagínense, si así se pone MI red, cómo se pondrá la del pobre tercero, o cuarto, con mi amigo el descargador y yo? Seguro que no pueden abrir ni Google.

No se vale, mis amigos. Cada vez me convenzo más que, para tener un enlace decente en este país, hay que estar dispuesto a pagar muuuucho dinero. Digo, si contrato un T3, seguro que no tengo estos problemas, verdad?

En fin. Mejor me consigo unas latitas y un cablecito…

Criptonomicón: tarde pero encantado

En el décimo aniversario de su publicación original, y gracias a la pasada feria del libro en Minería de la FI, tuve la oportunidad de adquirir la edición en español (ed. Ediciones B, colección Byblos) de la excelente y ya clásica obra de Neal Stephenson, i.e. “Criptonomicón”. Es un libro que ya había escuchado nombrar y alabar durante varios años, y que se recomienda como lectura obligatoria para cualquier geek en formación (o ya formado, por supuesto) que aspire a entender muchos aspectos de la cultura a la que pertenece, o en su caso de disfrutar una expresión bastante interesante de la misma.

Esta editorial, española, decide dividir el masivo libro (918 pp) en 3 tomos, utilizando puntos relativamente críticos en la trama como divisores (aunque se puede argumentar que fundamentan esos puntos como cambios críticos, considerando que la división es prácticamente equitativa). Esto, he de decirlo, es bastante bueno; permite cargar con un pequeño libro de bolsillo en vez de la enciclopedia que es el tomo unificado. Otro punto bueno es que no se utilizan terminos netamente españoles, como “ordenador” o “fichero”; “computador” (hubiera sido bueno ver la ‘a’ al final) y “archivo” funcionan bastante bien.

Es un libro… curioso. Para empezar, tiene requisitos previos (o como dijeramos en la facultad, está seriado): se necesita un cierto entendimiento de computadoras, matemáticas, e incluso de la cultura geek en sí, para poder disfrutar completamente el libro. Para muestra un botón: el primer libro, apenas en las primeras 50 páginas, ya comienza con una divertida discusión acerca de ciertas funciones Z que producen resultados interesantes, completa con las respectivas fórmulas anotadas, y como esto nos lleva a puntos importantes en la teoría de la información (con la ayuda de un personaje tan importante en esto como es Alan Turing, una de las muchas figuras reales que se ficcionalizan en el libro). Puntos curiosos como la habilidad de algunos de sus protagonistas (informáticos, por ejemplo) de desarrollarse de forma “normal” en el contexto de las normas sociales tradicionales es un detalle que le agrega mucho a la obra, y permite al lector (si eres como yo) realmente conectarse a otro nivel con el libro. La historia es sencilla, la trama con ciertos cambios que, de forma abstracta, no son completamente inesperados, pero la forma de relatarla del autor – mediante cambios constantes de contexto – permite perderse un poco en los detalles, lo cual no es para nada malo.

De manera personal y sin tanto rodeos, a mí me encanto el maldito libro. Es de esas historias que te envuelven sin que te des cuenta, me la pasé a ratos leyendo completamente abstraído en el texto, riéndome solo (lo cual causó más de una mirada perpleja de la gente a mis alrededores) y pensando “wow, este tipo está en mi cabeza!”. En ciertos aspectos, lo lees como si fuera algo que hubieses querido expresar, pero nunca pudieras haberlo hecho tan bien como el autor. En fin… quisiera decir mucho más de este libro, pero solo puedo terminar por recomendárselo a todo el mundo, y decir que en lo personal es uno que va a la pila de los favoritos… bueno, los 3 ‘episodios’.