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 🙂

La SOPA y otros condimentos

Pues formalmente acabo mi protesta, después de 100 (?) horas de blackout. Bueno, digamos que lo quise dejar unos días… y ya perdí la cuenta 😀

Si a alguien le interesa aún leer *porqué* hubo un blackout en sergiob, con todo gusto dejo el link.

Pero la SOPA no fue lo peor que me pudo pasar esta semana. Nop, lo peor que me pudo pasar esta semana fue una taza de café… mejor dicho un termo… que acabó bañando mi lap. Sí, mi nueva lap. Esta secándose en estos momentos allá en la oficina; veremos mañana si todavía funciona. Y si no, como dice Homero… vuelve a crecer, no? O la volvemos a comprar :3

En fin… en otros temas estoy preocupado porque me la vivo cansado y no sé porqué. En serio, en las mañanas voy manejando a la chamba y tengo un sueño… después de 6, 7, 8 horas de sueño! Esto no me pasaba en la facultad. Igual no me estoy tomando mis vitaminas… ah, pero que tal en la noche, eh! Bloggeando y toda la cosa.

Otra vez dejé un poco abandonado estos lares del blog. A ver si a partir de mañana cambio las condiciones. Conocí un nuevo blog que me llamó mucho la atención, curiosamente de un link en twitter. Ahí lo pueden ver ustedes en el blogroll (un poco más abajo a la derecha, si estan leyendo este post como el primero).

Saludines… ya no tomen café si no saben aguantar los efectos… XD

Configuraciones APN Telcel

Post original aquí

INTERNET 3G

Nombre: Mexico: Telcel: Internet (a gusto del usuario)
APN: internet.itelcel.com
Proxy:
Puerto:
Nombre de usuario: webgprs
Contraseña: webgprs2003
Servidor:
MMSC:
Proxy de MMS:
Puerto MMS:
MCC: 334
MNC: 020
Protocolo de autenticación: PAP
Tipo de APN:

MENSAJES MULTIMEDIA MMS

Nombre: Telcel: Mensajes Multimedia (a gusto del usuario)
APN: mms.itelcel.com
Proxy:
Puerto:
Nombre de usuario: mmsgprs
Contraseña: mmsgprs2003
Servidor:
MMSC: http://mms.itelcel.com/servlets/mms
Proxy de MMS: 148.233.151.240
Puerto MMS: 8080
MCC: 334
MNC: 020
Protocolo de autenticación: PAP
Tipo de APN: mms

CONFIGURACION WAP GPRS

Nombre: Telcel GPRS (a gusto del usuario)
APN: wap.itelcel.com
Proxy: 148.233.151.240
Puerto: 8080
Nombre de usuario: iesgprs
Contraseña: iesgprs2002
Servidor: http://upaapps.telcel.com:8582/telcelwap.wml
MMSC:
Proxy de MMS:
Puerto MMS:
MCC: 334
MNC: 020
Protocolo de autenticación:
Tipo de APN: default

Gmail desde consola (UNIX) con mutt

Instalas mutt:

apt-get install mutt

Configuras mutt (usualmente, .muttrc en tu home):

set from = "user@gmail.com"
set realname = "Guillermo Garron"
set imap_user = "user@gmail.com"
set imap_pass = "password"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://user@smtp.gmail.com:587/"
set smtp_pass = "password"
set move = no
set imap_keepalive = 900

(nota: imap_user e imap_pass no son necesarios para envío).

Envías correo:

mutt -s "Subject" [direccion] {direccion 2} {...} {-a "Adjunto"}

o bueno, con la redirección del cuerpo.

Originalmente publicado el 2 de Diciembre de 2011

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

“Late” night crusin’

What I want, you've got
But it might be hard to handle
Like the flame that burns the candle
The candle feeds the flame yeah yeah
What I got -- full stock of thoughts and dreams that scatter
And you pull them all together
And how I can't explain oh yeah
Well well you (ooh ooh ooh ooh) you make my dreams come true (you you) you
(you you)

Ok, no es un “code”…

He aquí unas verdades fundamentales de la vida:

– Conforme avanzas en edad (y rutina, y responsabilidad), te cuesta más trabajo desvelarte.
– Conforme avanzas en edad (y rutina, y responsabilidad), más te gusta desvelarte.
– Desvelarte es la ÚNICA (acentuado para no tener problemas de copyright con la FI) manera de programar algo que valga la pena.

Ergo… conforme avanzas (bla bla bla), más te gusta programar (WTF, old dude?). O al menos buscar la solución a los problemas computosos. Estúpido moodle, pero a la vez bello moodle.

Por cierto, me gustaría saber cuáles son las mejores canciones para programar. Tengo propuestas:

– Orbital: Halcyon (and on and on). Está en mi iPod como “Mortal Kombat Symphony” porque el soundtrack me lo bajé de interné y no tenía el nombre de las canciones. Y se callan, MK es la neta… Tiene dos grandes cosas a su favor, esta rola: no tiene letra (salvo algunos cánticos medio ballenescos) y es laaaarga. Muy buena por si tienes chance de poner una y ya.
– The Dandy Warhols: Bohemian like you. “oooh-ooh oooooooh!” Por cierto, WTF significa “I’m feeling bohemian like you”? Obviamente los grititos son buenos para celebrar una línea particularmente inteligente, o haberle entendido a la documentación finalmente (quién diablos se imagina que String.Format toma CUALQUIER OTRA COSA SALVO UN STRING COMO PARÁMETRO en ciertos casos? O sea, digo, no mamen…)
– Héroes del Silencio: Apuesta por el Rock ‘n Roll. “Y no sé si nací para correr… pero quizás sí que nací para” compilar? Geeky as fuck. Y también porque no hay lista de mejores canciones sin Bunbury. Eso me recuerda: el dolor en la planta del pie es 1) pie plano, 2) plantar fasciitis (como se diga en español), 3) gordura extrema, o 4) psicosomático?
– Smash Mouth: Walkin’ on the sun. Igual es porque así van saliendo en el iPod, entre 7 millones de canciones inútiles (por cierto, qué será mejor? Limpiar tu música de todo lo que no te GUSTA TREMENDAMENTE, tener un segundo dispositivo para esas canciones que son doubleplusgood, o resignarte a la diversidad?) De cualquier forma, si puedes cantar la canción y seguir programando sin poner “INSERT INTO fashion will be smashing WHERE the true meaning” ya la hiciste… igual es para rondas dobles de programación.
– Edward Maya, Vika Jigulina (really? Jigulina??): Stereo Love. Y en la misma idea:
– Röyksopp: Follow my ruin. Esta la conocí en el taller de Yopas. Me cae que no me gusta la electrónica (o dance, o house, o techno, o como les digan hoy en día – y casi puedo apostar que estas dos no son del mismo género. Fuckers), pero de repente como que sí. Igual es porque parecen un loop de lo mismo y entonces no te distrae tanto. Pero si un loop musical te traba en un loop mental??? Qué entonces, carajo?! Igual ya es la hora.

Se aceptan sugerencias…

P.D. Sí, el último post estuvo muy raro. Juro que no nació de un motazo…

Porque ya ha pasado mucho tiempo

… sin que te diga lo mucho que te amo…
… sin que te diga lo mucho que te extraño…
… sin que te diga lo mucho que te respeto…
… sin que te diga lo mucho que te añoro…
… sin que te diga lo mucho que lo siento…
… sin que te diga lo mucho que cambiamos…
… sin que te diga lo feliz que estoy…

Un día de estos, me voy a ir de la faz de la tierra y voy a lamentar no haber dicho todas esas cosas. Supongo que ahora es tan buen momento como cualquiera. Lo curioso es que cuando uno piensa en el posible receptor de estas frases, lo primero que te imaginas es a tu familia, o tu novia, o tus amigos (y vaya que estuve pensando en qué orden poner esos grupos)…

Jaja, bueno, qué carajos estoy diciendo? Si me muero no voy a lamentar nada. Tal vez mientras me *esté* muriendo. Pero ya después… bah. Te vuelves parte de la conciencia merol y listo. No voy a lamentar nada – si acaso voy a descomponerme sin gracia. Ni gracias 😛 Pero está interesante contemplar que, como con todas las cosas, la procrastination está a la orden del día. Y… pues bueno, supongo que sigo haciéndolo.

Hoy fue un lindo día, de hecho. Sol brillando, pájaros cantando, la gente alegre y poco tráfico. Pasó algo interesante en el camino: no subí de 80 km/h. Fuí a comer con Tona… no, momento. Fuí a comprar una memoria RAM que en un capricho quise conseguir yayayayaya y de paso dejé a los pobres becarios a quienes les estoy dando clase vestidos y alborotados, la tercera clase acortada en 6 días. Digo, finalmente ya acabamos el material que ibamos a ver, pero… aún así me siento. Hmmm… sucio? No. Irresponsable? Tampoco.

Ajá! Socialmente inadecuado. Tona tuvo que aguantarse el hambre (bueno, no completamente. Comió unos cuantos Trix en el camino), y todo para que el estúpido Best Buy no tuviera el DIMM que quería. De regreso pudimos conseguirlo, aunque fue imposible utilizarlo – mi Debian está a 32b. Lo cual, por supuesto, redituó en que Javier me hiciera una USB booteable. Que… no funcionó. Creo que ni las gracias le dí.

Hmm. Tal vez no estoy hilando ideas adecuadamente. Aparentemente el sueño es un recurso valioso.

Dejémoslo así: llevo una semana viendo Breaking Bad desde el principio. Culpo a las arañas.

Bichología

Ayer platicaba con Elena acerca del servicio social que está realizando en la FES Zaragoza, en el área de Microbiología… aparentemente le apasiona mucho eso de los bichitos. Total que me comentaba que estaba subiendo sus fotos a Facebook, y en aras de mantener el control sobre las fotos, así como una facilidad sobre su administración, decidí configurarle un blog…

http://bichologia.sergiob.org

Sugiero ampliamente visitarlo. Apenas va empezando, pero tengo entendido que en breve será llenado profusamente de fotos interesantes.