viernes, 24 de julio de 2009

555 The IC Time Machine

Circuito Integrado 555 la máquina del tiempo.


Hace más de 30 años que un ingeniero suizo (Hans Camenzind), tuvo la brillante idea de diseñar un circuito integrado temporizador, el 555 "The IC Time Machine". Un circuito integrado capaz de trabajar en un rango de voltaje que va desde los 4,5V a los 16V. En la actualidad es más común encontrarse en las placas una versión CMOS que cubre un rango de 3V a 18V.

Cuando necesitemos un reloj de precisión en nuestros circuitos electrónicos, es muy sencillo utilizar un 555, ya que, básicamente calculando el valor de una resistencia y de un condensador seremos capaces de fijar el ritmo de oscilación. Es cierto que un simple oscilador se puede construir empleando tan solo la resistencia y el condensador pero no obtendríamos la precisión que nos aporta el 555 (desde microsegundos hasta horas).

Este integrado puede funcionar en dos modos diferentes: astable ó monoestable.

  1. En el modo astable el circuito lo que hace es conmutar entre dos estados, permaneciendo en cada uno durante un período de tiempo determinado.

  2. En el modo monoestable el circuito tiene un estado estable y su función consiste en cambiar de estado cuando recibe una excitación exterior y manteniéndose en ese estado por un período de tiempo, transcurrido el cual, su salida vuelve al estado original.

Aquí tenéis algunos enlaces con buena información sobre el 555:

PDF con el DataSheet

Simulador JAVA

Ejemplos prácticos

miércoles, 15 de julio de 2009

Sistema Operativo Virtual (Ghost) - Cloud Computing

Hoy he conocido a Ghost (G.ho.st - Sistema Operativo Global Hospedado), un sistema operativo de los llamados "en la nube" ó "Cloud computing". Se puede probar con una cuenta de invitado y sin necesidad de registrarnos desde aquí.


Parece que la famosa "nube" nos quiere "cubrir" a todos sí o sí. Esta vez llegando en forma de Sistema Operativo Virtual que se ejecuta en nuestro navegador a través del plugin de Adobe Flash Player.



He tenido el placer de probarlo y debo reconocer que la idea es muy llamativa e interesante, aunque hay algo que no acaba de gustarme nada y por ello soy bastante reacio a dar el salto, aunque de momento todavía sería demasiado prematuro.


Con esto de la nube lo que se pretende básicamente es que nuestras máquinas acaben siendo simples estaciones de trabajo que usaremos para conectarnos con "nuestros proveedores de sistema operativo". Estos "proveedores" serán los que alojen en sus servidores no solamente nuestro sistema sino todos nuestros programas y lo "peor/mejor de todo" todos nuestros datos.

Es cierto que todo esto puede tener sus ventajas:

  • Nuestro sistema operativo estará vigilado las 24h del día los 365 días del año,
  • Dispondremos de backups automáticos sin mover un dedo,
  • Tendremos acceso a nuestro sistema y datos desde cualquier parte del mundo y cualquier
    dispositivo con acceso a la red (que reúna ciertos requisitos),
  • Si se avería tu ordenador físico, es decir, tu estación de trabajo, no pasa nada porque tu ordenador virtual seguirá estando operativo y podrás conectarte desde cualquier otro ordenador y lugar,
  • ...

Un montón de ventajas, pero:

¿Os gusta la idea de que vuestra información no se encuentre alojada en vuestro ordenador?
¿Qué solamente esté disponible mediante acceso a internet?
¿Qué se encuentre alojada en un servidor que a saber en que país está y como va a ser gestionado?
¿Quién tendrá acceso a vuestros datos, además de vosotros?

Creo que ¡la nube me confunde! y una vez más, esto suena a ¡Queremos controlarlo todo, todo, todo!

Ahora bien, estos sistemas tienen algunas utilidades, en el caso de ghost nos dan hasta 15 GB de almacenamiento que podemos usar a nuestro antojo, entre otras cosas para almacenar información no sensible.

viernes, 10 de julio de 2009

Extraer los enlaces 'links' de una página web

Hoy se me planteaba la necesidad de extraer de forma rápida y puntual, todos los enlaces o 'links' de una página web. Después de darle unas vueltas me acordé de nuestro querido HTML DOM y, escribí este mini script en javascript:

var links = "";

for( i=0; i < document.links.length; i++)
links += document.links[i] + "<br>";

document.innerHTML = links;

Para poder utilizarlo tan solo debeis cargar la página web de la cual quereis extraer los enlaces y a continuación, escribir en la barra de dirección del navegador ese pequeño pero valioso script, en una sola línea y precedida por 'javascript:', de la siguiente forma:

javascript:var links = ""; for( i=0; i < document.links.length; i++) links += document.links[i] + "<br>"; document.innerHTML = links;

pulsamos intro y listo! el contenido de la página web se cambiará por un listado con todos los enlaces de la web.


Para los vagos he puesto un pequeño "Gadget" en la barra de la derecha.

How to download a file using C# (Descargar un archivo usando C#)

Probably the easiest way to download a file from net using c# programming language is through the WebClient class. In the following code snippet we can see how it is done.


using System;
using System.Net;
using System.IO;

namespace Web
{
public static class Web
{
public static int Main(string[] args)
{
if( args.Length < 2 )
{
Console.WriteLine("FileGet v.0.1 - Download a file from the net.");
Console.WriteLine("www.manuelvillasur.com");
Console.WriteLine("");
Console.WriteLine("Usage:");
Console.WriteLine(" FILEGET url_of_file file_on_disk");
Console.WriteLine("");
return 1;
}

Console.WriteLine("I going to try download the file {0} from {1}", args[1], args[0]);

try
{
WebClient wc = new WebClient();
wc.DownloadFile(args[0], args[1]);
Console.WriteLine("The file has been downloaded.");
return 0;
}
catch(Exception)
{
Console.WriteLine("Hasn't been possible to download de file");
Console.WriteLine("May be your firewall locked my!");
Console.WriteLine("May be the file hasn't been founded");
return -1;
}
}
}
}

Dar de alta o añadir una página web al buscador BING

Si has llegado hasta aquí mediante un buscador o enlace será muy probablemente porque ya conoces BING y, para aquellos que no lo conozcan, BING es el nuevo buscador de Microsoft.


Es muy importante que nuestras páginas web o blogs aparezcan en los buscadores y no siempre lo hacen por si solas. A veces requieren de un poco de ayudita. Una de esas ayudas consiste en que seamos nosotros los que le indiquemos a esos buscadores que nuestra página existe y que queremos que se la muestre al mundo.

De poco sirve aplicar todas las técnicas SEO (Search Engine Optimization) existentes, si nuestra página no aparece en los buscadores. No es imprescindible dar de alta "a mano" en los buscadores nuestra página web (precisamente podríamos utilizar otras técnicas SEO), pero si es muy recomendable. Esto es una pequeña anotación para todos aquellos que queráis añadir vuestra página web al recientemente aparecido buscador de Microsoft BING. Para ello tan solo deberéis ir a esta página introducir vuestras credenciales de Windows Live ID, o registraros en caso de no tenerlas y seguir los pasos que nos indican.

Básicamente hay que añadir la URL de nuestra página web, opcionalmente si tenemos mapa web, también podremos indicárselo. El sistema nos pide que certifiquemos de alguna manera que somos los propietarios de la página web que vamos a añadir y para ello nos propone dos soluciones:
  • Una consiste en añadir en la raíz de nuestra web un fichero XML que nos proporcionan
  • La otra consiste en añadir un meta tag en la cabecera de nuestra web, en la sección HEAD
Una vez hecho esto, ya estará todo listo para que BING pueda indizar nuestra web.

miércoles, 8 de julio de 2009

Community Promise para los estandares ECMA-334 y ECMA-335

Vivimos en la era de los estándares, los encontramos por todas partes y hoy le ha tocado el turno a un par de estándares internacionales que son:

  • ECMA-334 (ISO/IEC 23270:2006) Especificación del lenguaje de programación C#
  • ECMA-335 (ISO/IEC 23271:2006) Infraestructura de Lenguaje Común (CLI)


Hoy hay que quitarse el sombrero -una vez más- ante Microsoft, nos acabamos de enterar que aplicará la "Community Promise" a ambos estándares.

Algo así como que podemos utilizar, vender o distribuir cualquier implementación de estos estándares sin que Microsoft un buen día nos envíe a los "señores de negro", vamos que no emprenderán acciones o reclamaciones legales contra nosotros por cuestiones de patentes. Si es que son más buenos que el pan. Alegría para el proyecto Mono y Felicitaciones a Microsoft, que se ha ganado unos puntos.

Hace tiempo Richard M. Stallman publicaba los motivos por los que Mono no debia incorporarse en las instalaciones de Linux, ya que significaría un peligro para el software libre, ahora con esta noticia las cosas cambiaran un poco.

Y como referencia si os interesan más estándares, aquí está la lista de ECMA, aquí podreis encontrar los equivalentes en ISO y aquí los ETSI.

¡ Temporizador gratis !

Hoy quería compartir con vosotros un pequeño programa que hice tiempo atrás y que para mí es de gran utilidad. Se trata de un temporizador programado en C# y WPF (Windows Presentation Foundation), que podéis descargar desde este enlace "Temporizador Gratuito en WPF" y aquí la firma por si quereis validarlo (mi clave pública la podeis encontrar aquí).

Funciona en Windows XP, Windows Vista y Windows 7.

Instalarlo no tiene ninguna dificultad ya que, no requiere instalación. Tan solo descomprime el .zip en una carpeta de tu gusto y ¡listo! Apareceran el programa ejecutable "temporizador.exe", el fichero de configuración "settings.xml" y la carpeta "sounds".


Su manejo es sumamente sencillo, tan solo decir que si pulsáis un par de veces sobre el temporizador, este se esconderá en la parte izquierda de la pantalla, dejando a la vista una pequeña pestaña en la que podréis pulsar dos veces para volver a mostrarlo y llevarlo al centro de la pantalla.

En la carpeta del programa podréis encontrar una subcarpeta llamada "sounds" en la que podéis colocar cualquier canción o sonido en MP3 o WAV que el temporizador os mostrará en la pantalla de configuración para que decidáis que canción o sonido queréis que reproduzca una vez alcanzado el tiempo de disparo.

También lleva reloj incorporado y algún efectillo que otro, transparencias, animación de la ventana, posibilidad "top-most window" y poco más.

Para poder utilizarlo deberéis tener un equipo con el .NET Framework 3.5 SP1 instalado, ya que está compilado para ese framework.

Como podréis imaginar, al estar programado con WPF y utilizando efectos, será preciso tener un equipo más o menos potente, a pesar de ser un programa muy sencillo.

Como suele ser habitual en este tipo de programas gratis, es posible que contenga algún error y que produzca algún resultado inesperado, a mí no me ha dado ningún problema. Yo no me hago responsable de nada, si quieres utilizarlo pues lo harás bajo tu responsabilidad y si no, no lo utilices, "Asín de claro te lo digo".

Además, es un Temporizador Gratuito ¡Qué más le puedes pedir!

Conferencias sobre Seguridad Informática

Imagino que conoceis la gran cantidad de encuentros o conferencias sobre seguridad informática, que se celebran en diversas partes del mundo, a las cuales asisten los más conocidos y prestigiosos expertos en temas "hacking". A continuación citaré algunas de las más importantes a modo de referencia, aunque no descarto la posibilidad de ir ampliando esta lista con otras muchas:


En sus respectivas páginas web, podeis encontrar un montón de documentación, así como videos de las charlas, etc.

Sistema Operativo de Google

Google está trabajando en un nuevo sistema operativo para PC, en un principio orientado a los netbooks, cuyas principales armas de competencia serán la velocidad, simplicidad y seguridad, según han comentado Sundar Pichai y Linus Upson, vicepresidente de gestión de producto y director técnico de Google se tratará de un sistema rápido y ligero que se está diseñando con "mentalidad web", ya que, los sistemas actuales se empezaron a desarrollar en una era en donde no existía la web.

Parece ser que los primeros netbooks en incorporar el "Google Chrome OS" empezarán a aparecer a mediados de 2010.

Al tratarse de un sistema operativo de Google, supongo que las aplicaciones que corran en dicho sistema serán las suyas. Lo que desconozco por el momento es si están desarrollando el sistema completamente desde cero o por el contrario, se están basando en algún kernel ya existente como pueda ser el de linux. Lo que si se sabe es que será un sistema operativo open source, lo cual siempre es interesante para los que nos gusta "Observar, admirar y revolcarnos entre líneas de código".

La cuestión es que uno empieza a oír cosas del estilo de:

"Se trata de un sistema que competirá con Windows"

y la realidad es que en mi opinión y a modo de vidente en funciones, serán dos sistemas completamente diferentes, con objetivos bien distintos. Google Chrome OS es probable que esté especialmente diseñado para aquellos que quieren un acceso a la red "inmediato" y que principalmente se dedican a navegar por la red.

Bueno habrá que esperar a ver qué sucede y si realmente se trata de un completo sistema operativo o simplemente de un "arranque rápido de su navegador Google Chrome", aunque viniendo de la mano de Google es probable que nos sorprendan.

viernes, 3 de julio de 2009

VENDO PUNTOS

Así de claro es el mensaje que parece estar llegando, tanto del lado del bien, como del lado del mal.

Esto es increíble. Si hace unos días a algunos conductores se nos premiaba con dos puntos extras por portarnos bien, como si estuviéramos jugando a los "pinballs" y nos ganásemos una bolita extra -lo cual siempre es de agradecer-, otros ya los han perdido todos, y es que al igual que en las mencionadas maquinitas, si quieres más bolas a "meter otra moneda".

Es así de claro, algunos conductores no necesitan sus puntos, otros lo que necesitan es dinero y, de los unos y los otros, aquellos que perdieron sus puntos obtienen sus bolas extras a cambio de "lereles ó euros".

Personalmente me queda cierta "mala sensación". Uno se da cuenta de que el sistema de puntos al final está íntimamente ligado con el dinero y, parece ser, que el mensaje que está llegando a la población es el siguiente:

"No se preocupe si no le quedan puntos, puede comprárselos -aunque sea ilegal- a un conductor que no los necesite, ó pagar un cursillo y conseguir nuevos y fresquitos puntos".

Señores, ¿Cuál es la diferencia entre los puntos del carnet de conducir y las bolas extra de la máquina de pinball?

La conclusión final es que tener puntos es cuestión de dinero. En fin, seguiremos caminando como viene siendo habitual ¿mirando para otro lado?

miércoles, 1 de julio de 2009

Las 7 maravillas de Windows 7

Hoy quería dirigirme a todos aquellos escépticos que todavía a día de hoy no acaban de creerse que Windows 7 es (RC), fue (Beta) y será un gran Sistema Operativo que marcará un nuevo gran salto desde que apareciera el primer Windows allá por el 1985 con su Windows 1.0.

Es cierto que Windows Vista no ha sido muy bien acogido, en mi opinión por un total desconocimiento sobre el sistema, y sí porque pedía un equipo más o menos potente para funcionar con todo su esplendor, pero esto es volver a lo de siempre y si no, haced la prueba y ponerle a un Seat PANDA un motor de 470 CV a ver que pasa.

También debo decir que siempre he trabajado con la versión 64bits de Windows Vista y la experiencia de usuario con todas las aplicaciones ha sido siempre fantástica, por no hablar de la seguridad mejorada, monitor de rendimiento, ajuste automático, indización de busquedas, buena información en la gestión de eventos y diagnósticos, y un largo etcétera que no es el momento, ya que no quiero quitarle a Windows 7 el protagonismo que se merece.

Windows 7 está siendo muy bien acogido por la mayoría de los usuarios y, es muy probable que las malas opiniones vengan de aquellos que todavía no han tenido la oportunidad de probarlo, ya sea por “metodología” o “falsos principios”. Para estos van dirigidos estos siete puntos:

  • Mayor rendimiento,
  • Barra de tareas mucho más productiva, aplicaciones agrupadas, menús contextuales de tareas,
  • Nuevas funcionalidades para las ventanas (Docking),
  • Llegó la Ribbon (Cinta de opciones) al sistema, la podremos ver en aplicaciones tan comunes como Paint y WordPad,
  • Nuevo “Centro de Actividades”, empezaremos a ver como desaparecen las ventanas emergentes de la barra de tareas y podremos tener todas las notificaciones agrupaditas en el nuevo “Action Center”,
  • El mundo táctil llega por fin a nuestros sistemas, y lo hace con mucha fuerza y un gran impacto para el usuario. El que haya visto el “Surface de Microsoft" ya sabe de lo que hablo, esto ya existe con Windows Vista, pero vendrá más y mejor,
  • Montar tu red casera, ahora no requerirá de un experto en redes, es mucho más fácil e intuitivo que nunca.

Estas son las siete maravillas a las que se refiere más o menos la "Exploring Windows Newsletter", más bien dirigidas al "usuario básico", aunque aquí podéis ver muchas más.

Os recomiendo que veáis este par de videos de la MIX09:

martes, 30 de junio de 2009

Estadísticas Web - Google Analytics en Video

Hace unos días empezé a probar Google Analytics y estoy gratamente sorprendido con toda la funcionalidad que incorporá. Intentando profundizar un poco más en el tema, he localizado una fuente de información muy recomendable ya que se encuentra en formato video, se trata del canal en youtube de Google Analytics, el cual podeis encontrar aquí. Ya en la otra entrada puse una referencia a su blog, pero para tenerlo juntito la vuelvo a poner aquí.

Por cierto, muy interesante el artículo sobre como podemos filtrar nuestra propia dirección IP, algo que deberemos tener en cuenta si queremos que los resultados de los informes excluyan nuestras visitas o la de nuestros colaboradores, por ejemplo.

Microsoft Security Essentials (MSE) - Antivirus Gratis

Microsoft ha puesto a nuestra disposición la versión BETA de su nuevo producto Microsoft Security Essentials (MSE). MSE que hasta hace pocos días era conocido por su nombre en código Morrow, es la solución antivirus & antispyware gratuita de Microsoft.


Para aquellos interesados en probar la versión Beta, deciros que lamentablemente por el momento solo estará disponible para usuarios de Estados Unidos, Israel, China y Brasil. No obstante podeis acceder desde aquí a la web de Microsoft dedicada al MSE.

Los más nerviosos o ansiosos, podran optar por descargarse versiones disponibles en diversos servidores. Eso sí, tened cuidado ya que no las estareís bajando desde los servidores de Microsoft, y puede que algunas de ellas hayan sido "tuneadas".

En cualquier caso, si alguien decide descargarse alguna de esas versiones, recomiendo realizar la instalación bajo un "entorno aislado o virtual", para esto podeis utilizar Microsoft Virtual PC, VirtualBox ó VMware por citar alguno.

Mis primeras impresiones sobre el MSE son bastante buenas. Lo he probado tanto en Windows Vista como en la RC de Windows 7. Un proceso de instalación muy rápido y sencillo. En cuanto a la efectividad, aunque empiezan a aparecer algunos test, en mi opinión es muy prematuro aventurarse a hablar de números, primero por ser una versión beta y segundo porque habrá que ver bajo que condiciones están hechos esos test.

Lo que si puedo decir es que a nivel de consumo de recursos, mejora bastante a Onecare, ya que en un sistema con Windows 7, en "estado de resposo" nos encontraremos:
  • Microsoft Security Essentials User Interface "msseces.exe" ocupando 2,25 MBytes
  • AntiMalware Service Executable "MsMpEng.exe" ocupando unos 36 MBytes

Es decir un total de 38,25 MBytes, lo cual es más que aceptable.

Hasta la fecha conozco estas tres release:

  1. mssefullinstall-x86fre-en-us-xp.zip
  2. mssefullinstall-x86fre-en-us-vista.zip
  3. mssefullinstall-amd64fre-en-us-vista.zip

viernes, 26 de junio de 2009

Estadísticas web - Google Analytics

Estos días estoy probando Google Analytics para obtener datos estadísticos sobre el blog. Un sistema gratuíto que google pone a nuestra disposición para que podamos hacer un seguimiento de como los usuarios llegan a nuestra web. Tendremos acceso a más de 80 informes que podemos personalizar mediante la utilización de filtros

De esta forma podremos consultar informes sobre el número de visitas, páginas visitadas, tiempo en el sitio, usuarios nuevos y recurrentes, navegadores, sistemas operativos y un largo etcétera.

Nos registramos, añadimos un pequeño código al HTML de nuestra web y listo, recomiendo añadirlo justo después de la etiqueta <body> y obligatoriamente antes de </body>. Una vez hecho esto a esperar que Google Analytics empieze a recolectar información estadística para nosotros. Al principio hay que esperar unas 24h hasta que el sistema empieza a funcionar.

Desde aquí podeís suscribiros al RSS de Google Analytics donde podreís manteneros informados sobre el tema y para los programadores interesados en su API, en este link encontrareis toda la documentación. Aquí podeis ver una captura del aspecto de Google Analytics.

La captura pertenece al Tour de Google Analytics

jueves, 25 de junio de 2009

GNUPG - Creación de claves

En mi primer post sobre GNUPG comentaba un poco sobre sus comandos más habituales. Como lo prometido es deuda, hoy voy a explicar los pasos necesarios para crear el par de claves pública y privada.

Aquí voy a exponer la solución utilizando GNUPG desde línea de comandos ó "Shell de Comandos". Para ello, seguiremos los siguientes pasos:

  • En Windows Vista ir a Inicio, teclear "CMD" y pulsar Intro
  • En Windows XP ir a Inicio, Ejecutar, teclear "CMD" y pulsar Intro
  • En sistemas X abrir una ventana de Terminal que nos dará acceso al Shell.


Una vez tengamos delante la fría ventana negra, para iniciar el proceso de generación de claves, teclear la orden "GPG --gen-key". A partir de este momento nos aparecerán diversos mensajes y preguntas que deberemos ir respondiendo.

Lo primero será indicar el tipo de algoritmo de cifrado/firmado que queremos utilizar. En este caso recomiendo dejar la opción por defecto DSA/ElGamal, para lo cual bastará con pulsar INTRO.


Con estos algoritmos tendremos un tamaño de clave de 1024 bits para DSA y, para ELG-G podremos indicar desde 1024 hasta 4096, por defecto la opción será 2048, así que nuevamente pulsaremos INTRO.

En el siguiente paso debemos indicar el periodo de validez de la clave, es decir, podemos establecer una "Fecha de caducidad para la clave", nuevamente dejaremos el valor por defecto, en este caso el '0' que indicará que la clave no caduca nunca. Para aquellos que deseen especificar una fecha de caducidad indicarán un valor númerico para los días, un valor numérico seguido de 'w' para las semanas, seguido de 'm' para los meses y seguido de 'y' para los años. Ej.: 45 días ó 30w semanas ó 12m meses ó 5y años


A continuación GNUPG necesitará generar un identificador de clave, el cual obtiene de cierta información que nosotros debemos proporcionar como son el nombre y apellidos, comentario, y dirección de e-mail.


Una vez proporcionados todos esos datos, nos dará opción de modificar alguno, validar la operación o Salir de GNUPG. Si todos los datos nos parecen correctos pulsaremos la tecla 'V' para validar la operación.

Por último debemos proporcionar una contraseña para proteger nuestra clave privada. Esta se nos pedirá dos veces para asegurarnos de que está bien escrita. Una vez proporcionemos la contraseña, comenzará la generación de las claves pública y privada y a partir de este momento ya podremos comenzar a firmar/cifrar nuestros mensajes o archivos.

Además podemos comprobar si las claves se han creado correctamente tecleando el comando "gpg -k" que nos mostrará un listado con las claves que tengamos.



GNUPG - Instalación en Windows

Podemos descargar GNUPG para windows en su versión 1.4.9 desde aquí.

El proceso de instalación de GNUPG es un proceso muy sencillo que básicamente consiste en pulsar siguiente..., instalar y finalizar. Una vez instalado estará en "C:\Program Files\GNU\GnuPG", eso si no hemos cambiado nosotros la ubicación, la cual será muy importante recordar.

Para poder utilizar cómodamente GNUPG desde la "Shell de comandos", tenemos que asegurarnos de que en la variable de entorno PATH, está añadido el path al directorio de instalación de GNUPG. Esto no es estrictamente necesario, ya que, podemos acceder al directorio de GNUPG y desde ahí ejecutar los comandos pero, personalmente recomiendo que asigneis a la variable de entorno PATH los valores correctos para poder ejecutar GNUPG desde cualquier ubicación.

Hay varias formas de modificar o añadir variables de entorno. Podemos hacerlo desde la propia shell o desde el panel de control de windows. Una forma rápida de llegar a la ventana de configuración en un Windows Vista es:

  • Inicio,
  • Botón derecho sobre Equipo y opción Propiedades,
  • Configuración Avanzada del Sistema desde el menú de la izquierda,
  • Pulsar el botón "Variables de Entorno" y desde ahí tenemos acceso a las variables de entorno,
  • Seleccionamos la variable PATH y botón "Editar". En caso de no existir a crearíamos para el usuario actual ó como variable de sistema.
  • Editamos la variable PATH, añadimos el path de instalación de GNUPG y listo.

En Windows XP los pasos son muy parecidos, con la diferencia de que en lugar de hacer botón derecho/Propiedades sobre Equipo -que no existe-, lo hacemos sobre "Mi PC".

Como digo hay muchas formas de hacerlo, incluso se podría hacer desde la propia shell tilizando el comando "SET PATH=...."

En cualquier caso, una vez tengamos la variable de entorno correctamente asignada, ya odremos ejecutar GNUPG (gpg) desde cualquier ubicación.

Para probarlo podeis abrir un "Shell de Comandos" y ejecutar la orden GPG, si todo ha ido bien, deberias ver en pantalla el mensaje:

"gpg : Adelante, teclee su mensaje ..."

Por el contrario, si al ejecutar GPG nos aparece el mensaje:

"..." no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

será señal de que no se ha asignado correctamente la variable PATH ó, algo falló durante el proceso de instalación de GNUPG.

jueves, 18 de junio de 2009

GNUPG - Firmado y cifrado de nuestros e-mails y archivos

Hoy en día, es mucha la cantidad de información que se mueve en la red, y cada vez es más importante asegurarnos de que todo aquello que llega a nosotros lo haga en su estado original, tal y como salió de la mano de su autor, sin haber sufrido ningún tipo de alteracion por el camino.

Un caso práctico y real en donde es muy interesante la utilización de la firma electrónica es por ejemplo, en los programas o archivos que bajamos de la red. Supongamos que la empresa MicroProgramas S.L. pone a nuestra disposición un pequeño programa "DVDFacil" que nos permite gestionar nuestra colección de DVDs, vamos a su página web y nos lo descargamos, pero ¿Qué seguridad tenemos de que ese programa no ha sido alterado por terceras personas? ¿Qué pasaría si alguno de los miles de creadores de malware que hay repartidos por el mundo, fuese capaz de entrar en el servidor web de MicroProgramas S.L. e inyectase su código malicioso en alguno de sus programas? Por ejemplo en DVDFacil. Estaríamos instalando en nuestro ordenador malware sin saberlo ni nosotros ni Microprogramas S.L.

O por ejemplo, imaginaros por un momento que teneís que enviarle a vuestro jefe un informe con las ventas del último trimestre. Imaginaros también que se lo teneis que enviar por correo electrónico y puestos a imaginar, imaginemos que por el camino, alguien intercepta dicho e-mail y modifica el informe antes de que llegue a manos de vuestro jefe.

¿Quién tendrá que darle explicaciones sobre esos falsos resultados? Pues sí, sereis vosotros.

Pero no os preocupeis, porque existe una solución para impedir que eso suceda o al menos para evitarlo en gran medida. Os presento a GNUPG, una solución libre que nos permitirá cifrar y/o firmar tanto nuestros correos como cualquier tipo de archivo, de manera que podamos saber mediante el empleo de una firma encriptada, si dicha información a sufrido alguna alteración o no.

GNUPG es una implementación libre del estandard OpenPGP definido en el RFC4880 (Request For Comment), de la cual podemos encontrar implementaciones para diversos sistemas operativos así como su códifo fuente.

La idea en esencia es bastante sencilla. Se utiliza una clave pública -aquí teneis la mia- que estará a disposición de todo el mundo y la cual será utilizada junto con la firma del archivo o e-mail para verificar que la información no ha sido alterada. Así mismo, tendremos una clave privada que solamente estará en nuestro poder y será la que utilicemos para firmar y/o cifrar.

No es mi intención publicar en esta entrada un manual sobre GNUPG, ni tan siquiera un pequeño tutorial -quizás lo haga en otro momento-, tampoco pretendo comentar la importancia que tiene firmar y/o cifrar nuestros documentos, lo cual creo que es más que evidente, sino que lo único que pretendo es exponer una noción básica de como utilizar esta potente herramienta.

GNUPG puede ser utilizado tanto desde la línea de comandos como a través de un GUI Frontend como por ejemplo Cryptophane, el cual recomiendo a todos aquellos que no sepan que es una shell o simplemente no les apetezca estar tecleando a cada paso los comandos de cifrado, descifrado, firmado, verificación, etc

La instalación de GNUPG no conlleva ninguna dificultad. Podremos seleccionar el idioma, destino de la instalación y poco más. En cuanto a Cryptophane más de lo mismo, siguiente, siguiente y listo.

No obstante, aquí os pongo alguno de los comandos que podemos utilizar desde la shell:

  • Firmar un archivo obteniendo el resultado en formato binario
    gpg -s "fichero_a_firmar"
  • Firmar un archivo obteniendo la firma por separado en formato ASCII
    gpg -a -b "fichero_a_firmar"
  • Verificar archivo
    gpg --verify "fichero_con_la_firma.asc"
  • Descargar firma desde un servidor
    gpg --keyserver pgp.rediris.es --recv-keys 4XXXXXXXX <-------- Identificador de la firma
  • Importar una firma desde un archivo ASCII
    gpg --import "fichero_con_la_clave_publica.asc"
  • Generación de claves
    gpg --gen-key
  • Exportar la clave publica a un archivo ASCII
    gpg --export > nombre_pub.asc

Bueno, por hoy poco más contaré, como adelanto decir que el primer paso que debemos dar después de la instalación, será la creación de las claves pública y privada que explicaré en otra entrada del blog.