jueves, 19 de julio de 2012

1, 2 ,3... 4, 5, 6

"123456" sigue siendo una de las contraseñas más utilizadas http://t.co/owytIHJu -- Andréz LAMOUROUX (@DarkOperator)

Hoy podemos hablar de este tweet. 1, 2, 3... Responda otra vez ¿Cómo es posible que lo usuarios estén usando estas contraseñas? Y no, no me refiero a que ellos decidan utilizarlas. La pregunta, realmente, es: ¿Por qué estos servicios permiten que se utilicen?

Cuando nos damos de alta en un servicio de estos, suelen tener una barra de colores que va indicando la fortaleza de la contraseña. Si saben que es débil: ¿No deberían de impedir guardarla? Vale. Ahí estaríamos pasando la responsabilidad de las contraseñas al usuario. Algo en lo que no están a favor el equipo que desarrolló "la Sibila" (NoConName 2011). Pero menos da una piedra. Así, luego putada lo que pasa. Con un diccionario y sus variantes sacas unos cuantos millones de contraseñas hasheadas (por ejemplo, sin saltear).

¿Alguna solución más para evitar esto? Y la formación de un usuario s torna complicada. Yo no la contaría como "solución".

lunes, 16 de julio de 2012

Julio, otro mes pasado por agua

Parece mentira que vuelva de Francia y me encontré Gong que se han filtrado contraseñas de Yahoo, NVidia y algún quite otro sitio más y, ahora que estoy esperanzo el tren para volver a casa a comer, me encuentro con este tweet:

Billabing ha sido hackeado y 20.000 contraseñas en texto sin cifrar han sido filtradas en línea http://t.co/2NJM07ta -- Oesia Seguridad (@oesia_seg)

Parece que tenemos otro mes "pasado por agua" con tanta filtración. Vale que hay meses que han sido peores, cono el pasado junio. Pero es otro más. Y otra excusa para tener algo que contar.

miércoles, 4 de julio de 2012

Algoritmos culinarios y telefónicos

Para cuando leáis esto, yo estaré a unos cuantos miles de kilómetros de mi casa. Me voy de vacaciones dos semanas. Estaré en en lugar del desembarco más famoso de la historia (de la segunda guerra mundial): en Normandia.

Por lo tanto, aquí os dejo un post que escribí en el transporte público de camino al trabajo (¿o era de vuelta a casa?). Lo mismo da. Está escrito en junio. Como lo hice desde el móvil, y lo estoy editando desde el ordenador, puede que se me haya escapado alguna cosa. Aún así, aquí os lo dejo.

Por cierto, algún día os daré la explicación de este post.

#####

Acabo de pensar que esto debería de ir en la sección de diccionarios. Pero, lo voy a describir aquí. Algún día lo entenderéis.
Un algoritmo ser puede definir como el conjunto de pasos necesarios para llevar a cabo una acción. Y, aunque parezca mentira, los llevamos a cabo en nuestra vida diaria incluso sin darnos cuenta.
Un ejemplo. Hacer una tortilla francesa. Un posible algoritmo de varios podría ser:
- Coger una sartén.
- Ponerle un poco de aceite.
- Encender el fuego a media temperatura.
- Cascar dos huevos en un planto hondo.
- Batir los huevos.
- Ponerles un poco de sal. También ser les puede poner queso rayado.
- Volver a remover si hacer falta.
- Cuando hayamos terminado el aceite estará caliente y podremos verter el contenido del plato en la sartén.
- Veremos que se está cuajando (di el aceite está lo suficientemente caliente). Habrá que ir doblando la tortilla sobre sí misma con una espátula o espumadera.
- Una vez hecha al gusto del consumidor, se pasa el resultado final a un plato. Acordarse de apagar el fuego.
- Ya nos la podemos zampar. Tarde o temprano tocará fregar todos los bártulos.
Vale. Lo sé. He cogido un ejemplo muy complicado para explicar qué es un algoritmo.

Un ejemplo más sencillo: llamadas de teléfono desde unas línea fija.

- Descolgar el teléfono.
- Mirar si hay tono:
- - No hay tono:
- - - Colgamos.
- - - Esperar unos minutos.
- - - Volver a intentarlo.
- - Hay tono:
- - - Marcar número de teléfono
- - - Esperar respuesta:
- - - - No hay respuesta:
- - - - - Colgar. Esperar un tiempo y volver a intentarlo
- - - - Hay respuesta:
- - - - - Hablar largo y tendido (o no).
- - - - - Colgar.

Vale. Este es más sencillo, ¿Verdad? Este ejemplo del teléfono es uno de los primeros que hice años ha cuando empecé con esto de la programación. Es un ejemplo sencillo de entender para, prácticamente, todo el mundo.

Bueno. Estos ejemplos, aunque no tienen mucho que ver con el tema del que trata este blog, cada uno de los pasos y condiciones se podrían extrapolar a los procesos necesarios para hacer un programa. Soy consciente de que hay muchas más formas de hacerlos, pero esta es la que se me ha ocurrido en estos instantes. Es posible que en otras circunstancias los hubiese expresado de otra forma.

¿Se os ocurren otros ejemplos que se puedan explicar de una forma sencilla con condicionales, bucles y demás?