Contraseñas 101 – Encriptación

March 25, 2010 by Fedelosa · 13 Comments 

contraseña-encriptacion

Era un día normal en los pasillos de la Universidad de Twitter, escándalos, rumores y mucho ruido.. nada fuera de lo común.. Los pasillos a esta hora siempre se encontraban llenos y se escuchaban toda clase de comentarios, burlas y risas…

Hoy la gran noticia, era lo ocurrido la noche anterior, el Profesor Geelbe se había olvidado en la cafetería su base de datos con las contraseñas de todos los alumnos.. y a la mañana siguiente ya estaba la lista pegada en afiches por toda la universidad.

El profesor Geelbe era un hombre moderno, tenia un lindo auto deportivo, linda esposa y 2 hijos.. vivía la vida 2.0 soñada.. No preparaba mucho sus clases, le preocupaba mas que sus alumnos aprobaran que enseñar o que aprendieran algo. Desde siempre se le cuestionaba que respondía de forma un poco pedante, no era muy querido o popular en la Universidad.

El rector en cambio, era un chapado a la antigua.. un hombre entrado en años, con su barba blanca y cejas peludas que le fascinaba recorrer los pasillos tomando notas en su libretita de todos los comentarios interesantes o equivocados que llegaban a sus oídos.

El timbre sonó y por arte de magia los pasillos quedaron vacíos y en silencio.. se escuchaban solamente las corridas de los alumnos que llegaban tarde..

En el salón LadoGeek, el profesor Nelson, conocido por lo delirantes de sus clases y que sabia un poquito de muchas cosas estaba por empezar con la lección del día de hoy.. “Como sobrevivir a un troll de Twitter” materia de segundo año y muy popular en la universidad dado lo peligrosos de algunos pasillos..

[AlumnoX – el chistoso] Profesor, usted encripta sus contraseñas? (risas en el fondo..)

[Profesor Nelson] Arranquemos por la pregunta mas básica de todas, por que encriptamos la contraseña?

[AlumnoNerd – se comió la wikipedia] Para que si nuestro sistema falla o es comprometido, no quede publico algo tan sensible como es la contraseña de un usuario.

[AlumnoX – el chistoso] Para que no nos pase como a Geelbe :) (risas..)

[AlumnoPerdido – el pintado] No entiendo…

[Profesor Nelson] Alguien le puede explicar al AlumnoPerdido?

[AlumnoRandomX] Por que si no les jodes la vida..

[Profesor Nelson] La mayoría de los usuarios usa la misma clave o variaciones de la misma entonces si publicas su clave de un servicio, le comprometes la clave en varios mas.

[AlumnoProgramd0r] Pero Profesor… los usuarios deberían usar una contraseña única para cada servicio..

[Profesor Nelson] Quien de nosotros usa una clave diferente para cada servicio? Y nuestros padres y primos que no son “del ambiente”?

[AlumnoPintado] Entonces.. (con cara de estoy entendiendo algo..)

[Profesor Nelson] Les podes echar la culpa por naïve o … usar criptografía. Ahora retomemos con la lección del día de hoy, “como sobrevivir a un troll de Twitter”; quien leyó los apuntes y quiere pasar al frente?

(caras largas en la sala, la charla sobre contraseñas estaba mas interesante..)

[AlumnoListo – el campeón] Por eso tenes que usar md5 que es como 100 veces mas seguro..

(risas en la sala.. )

[Profesor Nelson] Md5, por que?

[AlumnoListo] ehh.. eh.. por que el algoritmo no es reversible y tiene soporte en la mayoría de los lenguajes?

[Profesor Nelson] Haber…Md5 NO es un algoritmo de encriptación.. es un algoritmo de hasheado.. alguien sabe cual es la diferencia?

[AlumnoNerd] Md5 es un algoritmo diseñado para calcular muy rápidamente la firma de un archivo, eso se usa por ejemplo para verificar la integridad de datos.

(risas de varios alumnos, un grito de “Bolazoo!” y algún comentario burlón..)

[Profesor Nelson - con cara de sorprendido] Exactamente..

(caras de sorprendidos y poco entender)

[Profesor Nelson] Esto significa que Md5 no fue diseñado para encriptar datos sino para calcular firmas de datos, Lo que normalmente hacemos cuando “encriptamos” en Md5 NO es encriptar, sino simplemente calcular la firma “irreversible” del dato..

(mas caras de sorprendidos y de entender un poco menos..)

[Profesor Nelson] Notese que dije “irreversible” pero tampoco es así.. ya que hoy en día existen varias formas de “crackear” o “revertir” el algoritmo para obtener el dato sin “encriptar”

[AlumnoListo] Pero profesor, “revertir” por fuerza bruta lleva años…

[AlumnoNerd - insoportable] (casi sin poder contenerse..) Técnicamente, un servidor moderno puede calcular el hash de unos 300~500mb por segundo…

[Profesor Nelson] Al día de hoy.. si la contraseña es por ejemplo toda en minúscula y alfanumérica llevaría menos de un minuto calcular todos los hashes posibles para compararla.

[AlumnoProgramd0r] La mayoría de los usuarios usa claves de esas :P muaahah, como es que hago para generar todas las combinaciones posibles entonces??

[AlumnoListo] ta.. pero para eso es que se concatena un valor único, así se agrega complejidad y ahí si es imposible..

[Profesor Nelson] Imposible? Por que? Recordemos que Md5 es un algoritmo diseñado para calcular rápidamente la firma de un dato, por lo tanto solo demoraría mas tiempo..

[AlumnoRandom] Ah.. pero si demora 2 años en encontrarlo ya no sirve…

[Profesor Nelson] Md5 no solo se puede resolver por fuerza bruta.. también se puede resolver comparando el hash de la firma contra tablas de datos o rainbow tables.. son grandes tablas y cuando digo grandes me refiero a un par de tera bits en los cuales se puede comprar hashes y encontrar el hash de datos realmente largos..

[AlumnoProgramd0r] por eso hay que usar 1337 5p33k para las contraseñas!

[Profesor Nelson] Reitero mi respuesta anterior, ademas de que utilizar 1337 5p33k tiene otros mas problemas muy distintos, pero lo discutimos la próxima clase, háganme acordar..

[AlumnoNerd] (sorprendido) Entonces profesor, que recomienda usted usar?

[Profesor Nelson] Sentido común…

(risas y festejos x compromiso.. nadie entendió..)

[Profesor Nelson] Dijimos que Md5 era un algoritmo de hasheo y por eso es que era tan vulnerable y poco seguro.. entonces.. siguiendo el sentido común. lo que habría que usar que es?

(unos segundos de silencio..)

[AlumnoListo] un algoritmo diseñado para encriptación!

[Profesor Nelson] Exactamente!! como recomendación pueden probar con Blowfish que tiene varias librerías disponibles y es super completo.

[AlumnoPerdido] (con cara de creo que entendí) Entonces Md5 no sirve para encriptar y hay que usar un algoritmo de encriptación y no uno de hasheo?

[Profesor Nelson] No es que no sirva.. no fue diseñado para eso.. por dar un ejemplo.. una contraseña de 6 dígitos encriptada con blowfish y un factor de 12 se precisarían 12 años para poder generar todos los hashes posibles.

(silencio en la sala por un instante.. Nelson ojea el reloj)

[Profesor Nelson] Que tarde se hizo.. salgan al recreo y nos vemos la próxima clase..

[AlumnoNerd] Profesor tiene algún link que nos pueda pasar de una librería que implemente blowfish?

[Profesor Nelson] (anota en el pizarrón) http://codahale.com/how-to-safely-store-a-password/

El artículo es una colaboración de @Tombar

DreamDesktop ofrece fondos de pantalla dinámicos

March 20, 2010 by Fedelosa · 2 Comments 

Dream Desktop nos permite variar entre los mas de 5000 fondos de escritorio que nos ofrece en forma automática simplemente descargando un pequeño agente que debemos instalar en nuestro Windows.

fondos de pantalla

El agente una vez instalado se aloja en la bandeja del sistema, y desde ahí podemos navegar entre las diferentes categorías de fondos de pantalla, o buscar por determinadas palabras. Los wallpapers cambian automáticamente en intervalos predefinidos, todos los días se agregan nuevos y seremos notificados cuando eso pase.

Waze, inteligencia vial en tiempo real

March 19, 2010 by Fedelosa · 3 Comments 

Waze es una aplicación social móvil que permite a los conductores construir y usar mapas inteligentes en tiempo real. Eso es en palabras de sus creadores un resumen de lo que es Waze, pero es mucho mas de lo que ahí dicen.

Partiendo de unos mapas básicos, todos los usuarios de Waze colaboramos para hacer los mapas mas detallados, además de que con solo instalar la aplicación (disponible para Android, iPhone, Windows Mobile y Symbian) contamos con mapas navegables con indicaciones de Giro y voces en Español. En otras palabras, los mapas YA SON navegables, mas allá del nivel de detalle que puedan tener y de que se puedan mejorar muchísimo con nuestros aportes.

Colaborar con la edición de los mapas es ademas, divertido, a mi me hizo acordar al PacMan ya que vamos por la calle comiendo pastillitas como si de ese video juego se tratara, esto además nos ayuda a saber que calles ya transitamos que son con las que hemos colaborado para los mapas.

Pero todo esto no termina acá, porque mientras vamos relevando calles para los mapas, o incluso una vez que los mapas están completos vamos enviando información sobre el estado del tráfico (automáticamente en base a la velocidad de conducción), informando de accidentes de tránsito o atascos, puestos policiales realizando controles, cámaras y radares de velocidad, y muchas cosas mas que pueden suceder en la calle, también podemos chatear con otros “Wazers”

La comunidad de Waze esta creciendo constantemente, y en América Latina se esta comenzando hace poco a trabajar, los últimos países en tener mapas disponibles para usar son Chile, Colombia y Uruguay.

Les dejo unas capturas de pantalla hechas en mi Nokia N82

5 razones para hacer tus webs con WordPress

March 17, 2010 by Fedelosa · 9 Comments 

Últimamente se han desatado varias discusiones sobre cual es la mejor forma de hacer una web determinada, si escribir el código desde cero, si usar blogger que nos ofrece hosting gratuito, GXportal y sus complicaciones, Drupal y muchísimas opciones más.

Algunas de estas opciones no son muy accesibles para quienes no tenemos conocimientos específicos de programación o diseño, o para quienes no pueden pagar caras licencias de software que solo funciona en Windows como es el caso de GXportal, por eso me decidí a armar una lista con las ventajas del que para mi es el mejor CMS del mundo, WordPress.

  1. No sabes mucho de programación.
  2. En este caso te sera difícil crear una web desde cero, o lidiar con módulos en un CMS complicado,  en WordPress todo es fácil, además de que cuenta con una comunidad gigante detrás donde podemos continuamente aprender técnicas nuevas, o encontrar plugins para agregar funciones a nuestro sitio.

  3. No sabes mucho de diseño.
  4. WordPress cuenta con una enorme cantidad de themes (plantillas pre diseñadas) para darle a tu web el aspecto que desees y con un mínimo de conocimiento y esfuerzo puedes personalizarlas a tu gusto. (El buen gusto no viene en el rar que te bajas, eso es otro tema)

  5. No tienes mucho tiempo.
  6. WP se instala en unos pocos minutos, si tu hosting tiene el cPanel con Fantastico, es solo un par de clics para tener WordPress funcionando, y desde el mismo panel de control de este CMS puedes instalar los themes.

  7. No sabes mucho de SEO.
  8. Tampoco es problema el SEO, ya que de por si WP trae la opción de hacer nuestras URL amigables para motores de búsqueda.

  9. Usas el mismo CMS para cualquier tipo de web.
  10. Una vez que nos familiarizamos con WordPress lo usamos para todo como en mi caso, y es que la cantidad de cosas que se pueden hacer con WordPress es prácticamente ilimitada.

    Seguramente conoces o se te ocurren muchas mas, dejanos tu comentario y vamos ampliando la lista!!

Como agregar una marca de agua a las imágenes en WordPress

February 23, 2010 by Fedelosa · 9 Comments 

Hace unos días me encontraba creando (que se note que no digo diseñando porque NO SOY diseñador) la web de una discoteca, para la que use WordPress como para casi todas las webs que armo, ya que lo encuentro sumamente flexible para crear cualquier tipo de sitio, no solo blogs.

En ese momento me surgió la inquietud de agregarle una marca de agua a las fotos de la disco. para de esta forma reforzar la marca y evitar plagios y difusión de las fotos en redes sociales, ya que en muchas de ellas (la mayoría) aparecerían rostros de personas. Probé varios plugins para WordPress pero ninguno me satisfizo, así que decidí que lo haría sin usar plugins. Luego de buscar alternativas y algunos códigos (tampoco soy programador), me encontré con que tenía dos maneras de lograr “imprimirle” marcas de agua a las fotos, sin contar claro esta, las alternativas offline como Photoshop y otros softwares específicos para esta tarea. Las dos alternativas eran:

1.- Modificar la foto original agregándole la marca.

2.- Dejar intacta la foto original y superponerle la marca solo cuando es necesario.
W Lounge Tacuarembo

Por algún motivo me decidí por este último método que encontré en wpglamour.com, aunque luego Martín me explicó que era mucho mejor el primero, aunque tuviera que duplicar las fotos en el servidor para no perder las originales intactas, así que supongo que mas adelante cambiare el método y estaré publicando la nueva solución por aquí.

Superponer marca de agua

Debemos tener acceso al servidor donde esta hosteado nuestro blog, para poder editar en primer lugar el archivo .htaccess al que debemos agregarle la siguiente línea:

RewriteRule ^(.*)wp-content/uploads/(.*) $1watermark.php?src=wp-content/uploads/$2

Para que quede de esta forma:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^(.*)wp-content/uploads/(.*) $1watermark.php?src=wp-content/uploads/$2
</IfModule>
# END WordPress

Lo que hace esa línea agregada al .htaccess es que cada vez que una imagen es llamada para mostrarse en el navegador, va a redireccionar ese llamado al archivo watermark.php que crearemos a continuación y que sera el encargado de superponer la marca de agua. En la raíz de nuestro sitio, en el mismo directorio donde estan wp-admin, wp-content, wp-config.php, creamos un archivo llamado watermark.php con el siguiente contenido:

<?php
$src = $_GET['src'];

header('Content-type: image/jpeg');

//this will prevent the watermark from showing up in the thumbnail images
if (eregi("150x150", $src)) {
 $watermark = imagecreatefrompng('empty.png');
} else {
 $watermark = imagecreatefrompng('watermark.png');
}
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
if(eregi('.gif',$src)) {
$image = imagecreatefromgif($src);
}
elseif(eregi('.jpeg',$src)||eregi('.jpg',$src)) {
$image = imagecreatefromjpeg($src);
}
elseif(eregi('.png',$src)) {
$image = imagecreatefrompng($src);
}
else {
exit("Your image is not a gif, jpeg or png image. Sorry.");
}
$size = getimagesize($src);
$dest_x = $size[0] - $watermark_width - 0;
$dest_y = $size[1] - $watermark_height - 0;
imagecolortransparent($watermark,imagecolorat($watermark,0,0));
imagecopyresampled($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $watermark_width, $watermark_height);

imagejpeg($image, "", 95);
imagedestroy($image);
imagedestroy($watermark);
?>

Una vez llegamos a este punto, debemos crear la marca de agua que queremos superponer, esto es muy fácil de hacer en Photoshop por ejemplo, por lo que no diré como hacerlo, tengan en cuenta hacerla lo suficientemente opaca como para que no sobresalga demasiado, pero que tampoco pase desapercibida.
Cuando tengamos pronta la imagen, la subiremos también a la raíz de nuestro blog, con el nombre watermark.png, y también debemos crear y subir, una imagen transparente de 1px x 1px con el nombre de empty.png

ESO ES TODO!! Cada vez que alguien solicite ver una imagen, esta se verá con la marca de agua superpuesta, y funciona incluso con el link directo a la imagen o sea que de esta forma quienes nos hagan hotlink de las fotos, se las llevaran con nuestra marca incluida ;)

Sobrevivir gracias a la tecnología

February 5, 2010 by Fedelosa · 3 Comments 

Cada vez mas nuestras vidas offline y online se mezclan y confunden, ya son varias las personas de mi generación que han hecho muchos amigos gracias a Internet, y seguramente las generaciones siguientes seguirán esta tendencia quizás hasta que un día la interacción social nazca exclusivamente por Internet.

Hace unos días se conoció el caso de un director de cine que fue rescatado en Haití gracias a su iPhone, Dan Woolley pudo sobrevivir gracias a una aplicación que le enseñaba primeros auxilios. Varias veces aunque en distintas condiciones me ha ayudado tener Internet en el celular, me he perdido en lugares desconocidos y he podido encontrar lo que buscaba gracias al en el celular.

Ahora hace un par de días, un turista Alemán se perdió en el norte de su país mientras tomaba fotos del atardecer en St Peter-Ording, una zona totalmente cubierta de nieve, pero al ser una zona turística la municipalidad local tiene un sitio web con webcams que muestran al mundo el lugar. Por suerte una mujer que miraba el atardecer a cientos de kilómetros a través de la webcam, pudo observar que el hombre se encontraba perdido en la nieve, con lo que dio aviso a la policía quien pudo ayudarlo a salir del lugar.

Fuente: http://news.bbc.co.uk/2/hi/europe/8496586.stm

Publicidad de Andes Teletransporter

February 5, 2010 by Fedelosa · 6 Comments 

La conocida marca de cerveza argentina, ANDES creó una campaña interactiva y viral como nunca he visto antes, lo inusual de esta campaña es que han diseñado unas cabinas con aislación acústica, las instalaron en varios bares y boliches con buen resultado según lo esperado. Aquí la campaña publicitaria:

GPS Garmin con tu propia voz

January 25, 2010 by Fedelosa · 1 Comment 

Para los que como yo son usuarios de Garmin, ya sea en el celular o con un propiamente dicho, y además les gusta personalizar las voces con las que el equipo nos da las instrucciones de navegación, acá les traigo un regalito.

Garmin Voice Studio es un software para Windows, hecho por Garmin que te permite grabar tus propias voces para usar en tu , ahora podrás cambiar la voz de tu a lo que tu quieras.

Imágenes en movimiento en nuestro blog

January 22, 2010 by Fedelosa · 4 Comments 

Si has llegado a este blog a través de un link roto, o queriendo encontrar una página que no existe, te habrás dado cuenta de la hermosisima (?) página de error 404 que tenemos, es muy fácil de lograr una página así, o hablando en serio, una linda página de error.

El efecto de las nubes moviéndose, inspirado en lo explicado por Gema,  lo logramos fácilmente con un poco de código en la plantilla de nuestro blog:

Para que las nubes puedan moverse, debemos descargar jquery.easing.1.3.js y subirlo a nuestro servidor.

Agregar el siguiente código al header.php entre las etiquetas HEAD:

<script src='RUTA_DONDE_ALOJE_JQUERY/jquery.easing.1.3.js' type='text/javascript'/></script>
<script src='http://jqueryjs.googlecode.com/files/jquery-1.3.2.js' type='text/javascript'/></script>

<script type='text/javascript'>
		$(document).ready(function() {
			setTimeout("animation()",300);
		});

		function animation(){
                        nube1();
						nubes2();
						nubes3();
						nubes4();
		}
				function nube1(){
			$("#nube1").animate({left:"+=85%"},30000).animate({left:"-0px"}, 30000)
			setTimeout("nube1()",5000);
		}
				function nubes2(){
			$("#nubes2").animate({left:"+=85%"},40000).animate({left:"-0px"}, 60000)
			setTimeout("nubes2()",5000);
		}
                function nubes3(){
			$("#nubes3").animate({left:"+=85%"},50000).animate({left:"-0px"}, 40000)
			setTimeout("nubes3()",5000);
		}
		        function nubes4(){
			$("#nubes4").animate({left:"+=85%"},60000).animate({left:"-0px"}, 50000)
			setTimeout("nubes4()",5000);
		}
	</script>

Allí podemos jugar un poco con los valores para determinar la velocidad de movimiento de las nubes por ejemplo.

Agregamos lo siguiente a nuestro archivo de CSS:

#nube1{ position:absolute; top:220px; left: 0px; z-index:6; }
#nubes2{ position:absolute; top:300px; left: 0px; z-index:5; }
#nubes3{ position:absolute; top:380px; left: 0px; z-index:4; }
#nubes4{ position:absolute; top:470px; left: 0px; z-index:5; }

Y lo siguiente en donde queremos que se muestren las imagenes,

<div id="nube1">
<img src="RUTA_DONDE_ALOJAMOS_IMAGEN/nube1.png"/>
</div>
<div id="nubes2">
<img src="RUTA_DONDE_ALOJAMOS_IMAGEN/nube2.png"/>
</div>
<div id="nubes3">
<img src="RUTA_DONDE_ALOJAMOS_IMAGEN/nube1.png"/>
</div>
<div id="nubes4">
<img src="RUTA_DONDE_ALOJAMOS_IMAGEN/nube2.png"/>
</div>

Las posibilidades son infinitas, solo queda jugar con la imaginación

Usuarios sugeridos de Twitter se renueva

January 21, 2010 by Fedelosa · 3 Comments 

Twitter acaba de anunciar en su blog, que ha renovado su sistema de sugerencia de usuarios a seguir, de la lista que prácticamente imponía al registrar una nueva cuenta, ha pasado a una lista de categorías temáticas y dentro de cada categoría 20 usuarios elegidos mediante un algoritmo que se va renovando, por lo que los usuarios que hoy nos sugieren, puede que mañana no estén ahí.

Creo que no nos merecemos estar por encima de Bill Gates, de todas formas muchas gracias (?)

Si algo le viene faltando a estas listas de usuarios, es la capacidad de seguir a varios con un solo clic, si quieres puedes seguir al equipo de LadoGeek en Twitter