viernes, 16 de mayo de 2008

Instalador RPM firmado con clave GPG

Hola, este articulo nos servira para proteger con claves y firmas digitales nuestros softwares instalables, ya sean rpm, deb, etc.
Explico aqui de forma practica su uso.

1.- Objetivo: Generar un instalador que permita incluir una clave de tipo key con firma digital la cual contenga el periodo de tiempo que estará habilitado el software.

2.- Instalación de los paquetes necesarios
Para Linux Red-Hat o distribuciones que manejen gestor de paquetes RPM debe tener actualizados los siguientes paquetes:

Repositorios main, contrib, main-updates

# urpmi rpm rpm-build spec-helper libtool rpmlint
Para satisfacer las dependencias, se instalarán los paquetes siguientes:
..........
¿Efectuar la instalación de los 16 paquetes? (82 MB) (S/n) s
..........

3.- Generación del RPM con clave GPG, firmas y exportación

slack@debian:~$ gpg --gen-key
gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection? 1
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) [enter]
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 2
Key expires at dom 18 may 2008 12:26:28 CLT
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) "

Real name: jorge_salomon
Email address: linSlackware@gmail.com
Comment: ejemplo de clave con expiracion para instalador RPM
You selected this USER-ID:
"jorge_salomon (ejemplo de clave con expiracion para instalador RPM) "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
++++++++++.++++++++++++++++++++.+++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++.++++++++++>.+++++.+++++....+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++.++++++++++++++++++++..++++++++++...+++++.+++++.+++++.+++++++++++++++++++++++++++++++++++.+++++..++++++++++++++++++++..+++++.+++++...++++++++++.+++++.++++++++++>++++++++++>+++++........................................................................................................>.+++++................+++++^^^
gpg: key FB0A8720 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: next trustdb check due at 2008-05-18
pub 1024D/FB0A8720 2008-05-16 [expires: 2008-05-18]
Key fingerprint = CA96 8146 B051 C0CF 8687 665C 9671 45F8 FB0A 8720
uid jorge_salomon (ejemplo de clave con expiracion para instalador RPM)
sub 2048g/1D35BFAD 2008-05-16 [expires: 2008-05-18]


Ya generada la clave a ocupar en el instalador podemos verificar con el siguiente comando:

slack@debian:~$ gpg --list-keys
/home/slack/.gnupg/pubring.gpg
------------------------------
pub 1024D/4F4DACF2 2008-05-15
uid Jorge Salomon
sub 2048g/B823BCC8 2008-05-15

pub 1024D/FB0A8720 2008-05-16 [expires: 2008-05-18]
uid jorge_salomon (ejemplo de clave con expiracion para instalador RPM)
sub 2048g/1D35BFAD 2008-05-16 [expires: 2008-05-18]

Confirmada la correcta generación de la clave, la exportamos a un archivo de texto:

slack@debian:~$ gpg --export -a 'slack' > RPM-GPG-KEY-slack

slack@debian:~$ ls -l
total 224
drwx------ 2 slack slack 4096 2008-05-08 16:21 amsn_received
-rw-r--r-- 1 slack slack 579 2008-04-16 15:05 beryl~
drwx--x--x 25 slack slack 4096 2008-05-09 20:12 desarrollo
drwxr-xr-x 2 slack slack 4096 2008-05-15 17:05 Desktop
drwxr-xr-x 13 slack slack 4096 2008-05-15 17:40 documentos
drwxr-xr-x 3 slack slack 4096 2007-12-17 16:41 drivers_db
drwxr-xr-x 3 slack slack 4096 2008-01-23 12:41 flexdock
drwxr-xr-x 5 slack slack 12288 2008-05-09 10:27 imagenes
drwxr-xr-x 4 slack slack 4096 2008-03-23 14:08 NetBeansProjects
drwxr-xr-x 18 slack slack 4096 2008-05-15 17:05 programas
drwxr-xr-x 3 root root 4096 2008-05-07 21:27 redmine_open_source
-rw-r--r-- 1 slack slack 1690 2008-05-15 17:33 RPM-GPG-KEY-jsalomon
-rw-r--r-- 1 slack slack 3351 2008-05-16 12:36 RPM-GPG-KEY-slack
drwxr-xr-x 10 slack slack 4096 2008-05-16 10:07 software
drwxr-xr-x 4 slack slack 4096 2008-04-28 15:26 uml_workflow
drwxr-xr-x 6 slack slack 4096 2008-01-29 20:02 workspace


Luego se debe importar la clave al RPMDB, este comando debemos ingresarlo como root

slack@debian:~$ su
Password:
debian:/home/slack# rpm --import RPM-GPG-KEY-slack


Verificamos la lista de claves públicas del RPMDB

debian:/home/slack# rpm -q gpg-pubkey --qf '%{name}-%{version} --> %{summary}\n'
gpg-pubkey-4f4dacf2 --> gpg(Jorge Salomon )
gpg-pubkey-fb0a8720 --> gpg(jorge_salomon (ejemplo de clave con expiracion para instalador RPM) )

Ahora debemos configurar el fichero .rpmmacros incluyendo lo siguiente, lo podemos editar con nano:

debian:/home/slack# nano .rpmmacros


%_signature gpg

%_gpg_name fb0a8720

El archivo esta vacio, y debemos incluir las dos lineas anteriores, teniendo la precaución de que el _gpg_name debe tener el valor de la clave que hemos creado anteriormente

Posteriormente firmamos el instalador de la siguiente manera:

debian:/home/slack# rpm --addsign xs4dte-2.1.2-1.i386.rpm
xs4dte-2.1.2-1.i386.rpm

Ahora comprobamos la firma del paquete:

debian:/home/slack# rpm --checksig xs4dte-2.1.2-1.i386.rpm
xs4dte-2.1.2-1.i386.rpm: sha1 md5 OK

y ya tenemos el paquete firmado y con clave gpg con una licencia que durara el tiempo que pasamos para este instalador, en este caso es de 2 días

para más info vayan a: http://www.gnupg.org

Saludos y suerte !!

viernes, 9 de mayo de 2008

Revolution OS

Hola, existe gran diferencia entre microsoft y el open source, una es la que se refleja en la imagen....



El Software Libre ha revolucionado la informática, esa es la idea fundamental de la obra. Revolution OS es una película documental que trata sobre el Sistema Operativo (OS) GNU/Linux, y los movimientos del Software Libre y el Código abierto (Open Source).

Durante los minutos que dura RevolutionOS veremos pasar los principales personajes que han cambiado el mundo de la informática a nivel mundial, hablando por sí mismos, opinando, realizando algún chiste, contando alguna anécdota, todos muy entusiasmados, como cualquier hacker al cual se le pregunta ¿a qué te dedicas? Los hackers y los emprendedores empresariales
informáticos suelen ser muy misticos cuando hablan de sus tareas.

Será muy interesante presenciar los comienzos del software, cuando era compartido en discos de cinta. Así mismo, este documental es una joyita dentro de la historia de la informática, la Carta Abierta de Bill Gates hacia lo que él llamaba aficionados en la cual les pide que no compartan el software, sino que lo vendan... esta carta fue escrita por Bill Gates cuando Microsoft todavía estaba basado en New México y se llamaba "Micro-Soft".

Luego Richard Stallman explica cómo y por qué dejó el MIT Lab for Artificial Intelligence para dedicar su vida entera al desarrollo y la expansión del Software Libre, y cómo empezó con el proyecto GNU para construir un sistema operativo totalmente libre.

La controversia en cuanto a llamar Linux o GNU/Linux al sistema es presentada ante Linus Tordvalds, así como se le pregunta qué es Linux y qué supone su desarrollo y comercialización. Es interesante lo que dice Linus en un momento: "puedes pensar a Richard Stallman como el gran filósofo y a mí como el arquitecto", también es remarcable escucharlo decir "Sin el compilador GNU C no hubiera sido posible hacer Linux ni la mayoría de los programas abiertos": esto le cerraría la boca a más de un fanático que anda diciendo por listas de mail y foros de usuarios que GNU no es importante para Linux, o cosas por el estilo, o que Richard Stallman anda por ahí reclamándose la paternidad del Software Libre cuando en realidad hizo muy poco (!!!)... siendo que él mismo comenzó a programar el compilador GNU C (GCC), y redactó la licencia GPL, entre otras cosas.

Se tratan en la película los primeros pasos a pequeña, mediana y gran escala de la aplicación de GNU/Linux en los negocios, dan testimonio de ello Larry Augustin de "VA Linux" y Michael Tiemann de Cygnus Solutions.

También se entrevista a uno de los desarrolladores originales de uno de los programas libres más exitosos de la historia: Apache, el que sirve mas del 80% de las aplicaciones web alrededor del mundo.

A muchos les gustará ver cómo fue el primer evento masivo "LinuxWorld", en el que estuvieron presentes Linus Torvalds, Larry Augustin y Richard Stallman recibiendo un premio.

La película se exhibió en varios festivales, incluyendo South by Southwest, Atlanta Film and Video Festival, Boston Film Festival, Denver International Film Festival; ganó el premio al Mejor Documental en ambos "Savannah Film and Video Festival" y en el "Kudzu Film Festival".

¿Qué ha cambiado desde 2001 dentro del Software Libre, el Open Source y GNU/Linux?

Para concluir, sería bueno preguntarse ¿qué ha cambiado desde 2001 dentro del Software Libre, el Open Source y GNU/Linux? Han cambiado algunas cosas: los programas para escritorio se han popularizado, tenemos a OpenOffice, Firefox, BitTorrent entre otros, el sistema GNU/Linux se ha convertido en algo muy sencillo de manejar para cualquier persona, hasta diría que es más sencillo que Windows (ventanukos).

Richard Stallman y otros han realizado una campaña mundial por difundir la filosofía del software libre, la cual ha impactado en políticos de todo el mundo, vemos que Paises enteros comienzan la migración, tales son los casos de Venezuela, Cuba, Brasil, Rusia, italia, etc.. entre otros.

La adopción y desarrollo de Software Libre u Open Source ha avanzado de forma definitiva sobre las grandes empresas en todo el planeta, dominando el mercado de los servidores web y de base de datos... el 95% de las computadoras en Hollywood utilizan GNU/Linux, y así podríamos seguir con una lista casi interminable de objetivos cumplidos por esta comunidad heterogénea y anárquica que ha revolucionado la informática para siempre.

Vamos al meollo del asunto.



Otras peliculas que recomiendo son:

-Code Linux
-The Secret history of Hacking(ingles, documental de discovery channel)
-Pirates of silicon valley(ingles)

Regards and be free... Use Linux...