``GNU Privacy Guard'' (GnuPG) Mini Como
 Michael Fischard v. Mollard [email protected]
 (versi�n alemana)
 J.S.A.A.F. de Winter [email protected] (versi�n inglesa)
 castellana)
 v0.1.3, septiembre de 1999

 Este documento trata sobre la instalaci�n, configuraci�n y uso de Gnu
 Privacy Guard (GnuPG), un sistema de codificaci�n de c�digo libre y
 desarrollo abierto, compatible con OpenPGP.  Con el fin de mantener
 este programa totalmente libre, se ha evitado el uso de algoritmos con
 patentes propietarias restrictivas, como las de IDEA y RSA.  El docu�
 mento original fue escrito en alem�n por Michael Fischard v. Mollard,
 y posteriormente traducido, y revisado en algunos puntos, al ingl�s
 por Brenno J.S.A.A.F. de Winter.  La traducci�n de este documento al
 castellano se ha llevado a cabo a partir de la versi�n inglesa.  El
 cap�tulo 5 se ha a�adido en la versi�n en castellano, y tambi�n se han
 incluido algunos recursos y otra informaci�n en castellano.  �sta es
 una revisi�n de la versi�n 0.1.2, y no incluye ninguna tem�tica nueva,
 tan s�lo su conversi�n de c�digo HTML a c�digo SGML para su posterior
 reconversi�n a otros formatos.  Tambi�n se han corregido algunos
 errores de forma o traducci�n.
 ______________________________________________________________________

 �ndice general









































 1. Conceptos b�sicos

    1.1 Sistemas de claves p�blicas
    1.2 Firmas digitales
    1.3 Anillos de confianza
    1.4 L�mites de seguridad

 2. Instalaci�n y configuraci�n

    2.1 C�digo fuente de GnuPG
    2.2 Configuraci�n
    2.3 Compilaci�n
    2.4 Instalaci�n

 3. Uso y gesti�n de las claves

    3.1 Generaci�n de una clave
    3.2 Exportaci�n de claves
    3.3 Importaci�n de claves
    3.4 Revocaci�n de claves
    3.5 Administraci�n de claves
    3.6 Firma de las claves

 4. Codificar y descodificar

    4.1 Codificar
    4.2 Descodificar

 5. GnuPG + PGP

    5.1 Uso de algoritmos
    5.2 Firma digital con GnuPG
    5.3 Importaci�n de anillos de claves PGP a GnuPG
    5.4 Uso de anillos de claves PGP con GnuPG

 6. Firmar y Verificar

    6.1 Firmar
    6.2 Verificar

 7. Fuentes de Informaci�n

    7.1 GnuPG
    7.2 PGP
    7.3 Recursos en castellano
    7.4 Servidores de claves
    7.5 Libros

 8. Sobre este Documento

    8.1 Versiones

 9. Anexo: El INSFLUG



 ______________________________________________________________________

 1.  Conceptos b�sicos



 1.1.  Sistemas de claves p�blicas



 Para poder entender mejor el sistema de codificaci�n usado por los
 sistemas de claves asim�tricas (es decir, claves p�blicas y privadas),
 es necesario entender las diferencias con los sistemas de claves
 sim�tricas (es decir, claves secretas).

 Los sistemas de cifrado con clave sim�trica son aquellos en los que la
 clave que se usa para cifrar una serie de datos es la misma que la que
 se usar� para descifrar estos datos.  En el caso del correo
 electr�nico, el remitente cifrar�a el mensaje con una clave secreta, y
 para que el destinatario pueda descifrarlo, necesitar�a haber obtenido
 previamente esta misma clave de un modo �seguro�, o sea de modo que la
 clave no haya podido ser interceptada durante la entrega.  Si no
 tenemos la completa seguridad de que el intercambio de la clave ha
 sido seguro, la validez de este sistema es nula.

 Por el contrario, los sistemas de cifrado con claves asim�tricas usan
 claves distintas para el cifrado y posterior descifrado de los datos.
 En un caso como el anterior, el remitente usar�a la clave p�blica del
 destinatario para cifrar el mensaje, y el destinatario descifrar�a el
 mensaje con su propia clave privada.  As� pues, la clave privada no
 debe ser accesible para nadie que no sea el propio due�o de la misma,
 mientras que la clave p�blica, puede ser entregada a cualquier
 persona.  En un sistema de cifrado bien implementado, la clave privada
 no debe derivar nunca de la clave p�blica.


 1.2.  Firmas digitales


 El concepto de la firma digital se basa en la verificaci�n de la
 autor�a de un mensaje.  Esto quiere decir que se puede comprobar que
 el destinatario del mensaje puede comprobar que el �supuesto�
 remitente es quien afirma ser.  Para ello, el remitente, una vez
 compuesto el mensaje, lo firma usando su propia clave privada.  El
 destinatario, una vez ha recibido el mensaje, comprobar� la veracidad
 de �ste, esto es, lo verificar� usando la clave p�blica del remitente.

 Este m�todo es de especial utilidad para reducir riesgos de seguridad
 en nuestros sistemas (nos podr�an enviar un supuesto parche para un
 programa, y �ste en realidad ser un virus o un troyano);  tambi�n
 podr�an enviarnos informaci�n o datos, como provenientes de una fuente
 l�cita o fiable.  En ambos casos, no ser�a muy dif�cil falsificar la
 direcci�n y nombre del remitente, pero s� imposible falsificar la
 firma digital de �ste.

 Como ya hemos dicho, la verificaci�n de un mensaje firmado
 digitalmente se lleva a cabo mediante el uso de la clave p�blica del
 remitente sobre el texto del propio mensaje.  De este modo no s�lo
 podemos verificar la identidad del autor, sino que tambi�n podemos
 comprobar la integridad del mensaje, ya que la firma digital ha sido
 generada con el texto y la clave privada.  As� pues, una alteraci�n o
 modificaci�n del texto �a posteriori�, o cualquier manipulaci�n del
 mensaje (especialmente si hacemos uso de las especificaciones
 MIME/PGP), dar�a como resultado un error en la verificaci�n.


 1.3.  Anillos de confianza


 Un punto flaco en los algoritmos de clave asim�trica es la transmisi�n
 del c�digo p�blico.  Es posible que una persona ponga en circulaci�n
 c�digo con un identificador de usuario falso.  Si se codifican
 mensajes con este pseudo c�digo, el intruso los puede descodificar y
 leerlos.


 La soluci�n PGP (y por consiguiente la soluci�n GnuPG) est� en firmar
 los c�digos.  La clave p�blica de un usuario puede estar firmada con
 las claves de otros usuarios.  El objetivo de estas firmas es el de
 reconocer que el UID (identificador de usuario) de la clave pertenece
 al usuario a quien dice pertenecer.  A partir de ah� es un problema de
 cada usuario de GnuPG el decidir hasta qu� punto se puede fiar de la
 firma.  Una clave se puede considerar fiable cuando se conf�a en el
 remitente y cuando se sabe con seguridad que dicha clave pertenece a
 �ste.  S�lo cuando se puede confiar plenamente en la clave del
 firmante, se puede confiar en la firma que acompa�a a la clave de un
 tercero.  Para tener la certeza de que la clave es correcta hay que
 compararla con la huella digital por medio de canales fiables (por
 ejemplo, podr�amos buscar el tel�fono en la gu�a y llamarle, y que nos
 la dijera de palabra para poder compararla), antes de darle una
 confianza absoluta.


 1.4.  L�mites de seguridad


 Si lo que se desea es mantener la confidencialidad de los datos que se
 poseen, no basta con determinar qu� algoritmo de cifrado se va a usar;
 tambi�n es necesario pensar en la seguridad general del sistema.  En
 principio, PGP est� considerado como suficientemente seguro, y hasta
 el momento no se sabe que haya habido ning�n incidente en el que una
 clave PGP haya sido descodificada.  Pero eso no significa que todo lo
 cifrado sea seguro;  si la NSA (Agencia de Seguridad Nacional de los
 EE.UU.) hubiera conseguido descodificar una clave PGP mediante
 criptoan�lisis, an�lisis del c�digo, o cualquier otro modo, no es
 probable que lo hicieran p�blico.  Pero a�n en el caso de que las
 claves PGP fueran a todas luces imposibles de descodificar, pueden ser
 utilizados otros tipos de ataques a la seguridad.  A principios de
 Febrero fue detectado un troyano que buscaba las claves PGP en el
 disco duro, y las transfer�a al atacante mediante FTP.  Si en este
 caso hubi�ramos escogido una contrase�a d�bil o f�cil, un simple
 an�lisis que consistiera en un �ataque de diccionario� la descubrir�a
 en poco tiempo.

 Otra posibilidad t�cnica, aunque m�s dif�cil, es la de los troyanos
 que recogen entradas de teclado y las transmiten al asaltante.
 Tambi�n es posible, aunque muy dif�cil, pasar el contenido de una
 pantalla a otra. En este �ltimo caso no ser�a necesario ning�n
 an�lisis sobre datos cifrados, ya que se obtendr�an antes de su
 cifrado.

 Por todo esto es necesaria una planificaci�n de la seguridad que est�
 bien prevista y que minimice los riesgos.

 La idea no es la de recrear una atm�sfera de paranoia entre la gente,
 sino dejar claro que para implementar un sistema seguro no basta con
 la instalaci�n de un programa criptogr�fico, que si bien es un paso
 hacia un sistema m�s seguro, no es una soluci�n completa.  Troyanos
 como el aparecido en Marzo de 1999 (Melissa) probaron que muchas
 compa��as no se encuentran preparadas en temas de seguridad.



 2.  Instalaci�n y configuraci�n



 2.1.  C�digo fuente de GnuPG


 El sitio oficial para para la distribuci�n de GnuPG es el sitio
 oficial de GnuPG, ftp://ftp.guug.de/pub/gcrypt/gnupg/.  En las p�ginas
 oficiales de GnuPG, http://www.gnupg.org/download.html tambi�n se
 pueden encontrar enlaces a r�plicas oficiales.

 Debido a restricciones legales no se permite bajar material
 criptogr�fico desde servidores localizados en los EE.UU., a los no
 residentes en este pa�s.  En EE.UU. existen unas leyes que imponen
 restricciones a la exportaci�n de c�digo criptogr�fico as� como de
 programas que los incluyan.  Por esta raz�n PGP se encuentra siempre
 disponible en dos versiones:  una internacional y otra para los EE.UU.
 El c�digo fuente para la versi�n internacional fue exportado en
 formato ascii imprimido en un libro.  A continuaci�n fue escaneado en
 Europa (Oslo) y recompuesto.  Se puede obtener m�s informaci�n al
 respecto en la p�gina internacional de PGP, http://www.pgpi.com/.  La
 versi�n internacional de PGP puede ser importada libremente a los
 EE.UU. siempre y cuando no se vuelva a reexportar fuera de �stos.  Una
 vez se ha instalado una versi�n de GnuPG o PGP, se deber�a verificar
 la firma digital que acompa�a al fichero (Ver ``Firmar y Verificar'').


 2.2.  Configuraci�n


 GnuPG se puede obtener como un paquete de binarios de Debian,
 http://www.debian.org/ (.deb), como un paquete de binarios de RedHat,
 http://www.redhat.com/ (.rpm), o en c�digo fuente.  Los paquetes son
 archivos comprimidos de los ficheros binarios que se pueden instalar
 con las correspondientes herramientas, seg�n la distribuci�n.  Si se
 necesita instalar GnuPG en otros sistemas operativos, entonces lo debe
 compilar uno mismo a partir de los fuentes.  Se agradece que quien
 compile un paquete de instalaci�n para un sistema o arquitectura
 diferente, lo haga de dominio p�blico.

 Dado que la mayor�a del desarrollo de GnuPG tiene lugar en m�quinas
 x86 bajo Linux (http://www.linux.org/, la migraci�n a un sistema
 diferente no deber�a ser ning�n problema.  La lista de sistemas
 operativos que est�n soportados por GnuPG se puede encontrar en las
 p�ginas de GnuPG (http://www.gnupg.org/.  El procedimiento que se
 describe a continuaci�n no es exclusivo de ninguna plataforma.  Este
 procedimiento se puede usar para compilar e instalar GnuPG partiendo
 de un archivo comprimido del c�digo fuente (loquesea.tar.gz).

 Descomprimir y desempaquetar el paquete del c�digo fuente con la orden
 (si estamos usando GNU tar):



      $ tar zxvf gnupg-?.?.?.tar.gz




 El siguiente paso es cambiar al directorio que contenga el c�digo
 fuente, y ejecutar el gui�n de configuraci�n:



      $ ./configure




 Con este paso no deber�a suceder nada especial;  si ejecutamos




 $ ./configure --help




 se pueden ver las opciones de configuraci�n que existen para la
 compilaci�n.  Si durante la internacionalizaci�n (GET text) ocurriera
 alg�n problema, se puede incluir una versi�n que venga con c�digo
 fuente, usando la opci�n



      --with-included-gettext




 o desactivarla usando la opci�n



      --disable-NLS





 2.3.  Compilaci�n


 A continuaci�n, para empezar a compilar ejecutaremos la orden de
 compilaci�n:



      $ make




 Compilaci�n que deber� finalizar sin problemas.  Si ocurriera algo
 anormal, se seguir�n los siguientes pasos (en el mismo orden en el que
 se describen aqu�): Primero, intentar solucionarlo por uno mismo
 (haciendo uso de la documentaci�n existente);  segundo, asegurarnos de
 que no es un error conocido (comprobar el fichero BUGS en
 http://www.gnupg.org.  Si estos pasos no resuelven el problema, enviar
 la pregunta a la lista de correo de GnuPG (en ingl�s) (ver ``Fuentes
 de Informaci�n'').  Por si el problema estuviera relacionado con la
 compilaci�n, se deber�a intentar make clean, ejecutar configure de
 nuevo, e intentar otra vez la compilaci�n.  Si nada de esto soluciona
 el problema, es el momento de preocuparse de verdad.


 2.4.  Instalaci�n


 Suponiendo que hayamos compilado el programa sin problemas, el
 siguiente paso es instalarlo.  Para ello ejecutaremos la orden de
 instalaci�n:



      $ make install



 que copiar� el programa y las p�ginas de manual en el directorio de
 instalaci�n.  Si no hemos cambiado el directorio de instalaci�n cuando
 ejecutamos ./configure, �ste ser� /usr/local/share/gnupg/ por defecto.
 Es posible encontrar este directorio en el fichero options.skel.
 Cuando se cambie options.skel, si se copia a ~/.gnupg/options, se
 usar�n los ajustes t�picos.  Al crear ~/.gnupg/ la acci�n copiar
 deber�a ser autom�tica.  Todas las opciones posibles est�n bien
 documentadas, y tratar de explicarlas aqu� no ser�a de utilidad.

 Se puede ejecutar GnuPG como suid root.  De este modo el programa se
 ejecutar� con todos los permisos que tiene el superusuario, y se
 excluye la posibilidad de que ciertas partes del programa se guarden
 externamente y puedan ser le�das por cualquiera.  Sin entrar a valorar
 los riesgos de ejecutar el programa como superusuario, se deber�a
 alertar de los peligros que conllevar�a un troyano, ya que �stos, si
 se est� ejecutando como superusuario, pueden da�ar todo el sistema.
 Si por esta raz�n, o por cualquier otra, se decide no ejecutar GnuPG
 como root, es posible desactivar el aviso activando no-secmem-warning
 en ~/gnupg/options.


 3.  Uso y gesti�n de las claves



 3.1.  Generaci�n de una clave


 Con la orden



      $ gpg --gen-key




 se genera un nuevo par de claves (el par se compone de clave privada y
 clave p�blica).  La primera pregunta es qu� algoritmo se va a usar.
 Para m�s informaci�n sobre algoritmos, ver la lista de respuestas a
 Preguntas de Uso Frecuente (PUF, FAQ en ingl�s) sobre PGP DH vs. RSA
 FAQ en http://www.hertreg.ac.uk/ss/pgpfaq.html o ``Applied
 Cryptography''.  El algoritmo recomendado por GnuPG es DSA/ElGamal, ya
 que �ste no est� patentado.

 La siguiente pregunta es la longitud de la clave.  Esta parte depende
 de los requerimientos del usuario.  Es necesario elegir entre la
 seguridad y el tiempo de los procesos.  Cuanto mayor sea una clave,
 menor ser� el riesgo de que el mensaje sea descodificado si es
 interceptado, pero tambi�n aumentar� el tiempo que emplear� para el
 c�lculo de los procesos.  El tama�o m�nimo que requiere GnuPG es de
 768 bits, aunque mucha gente opina que deber�a ser de 2048 (que es el
 m�ximo con GnuPG en este momento).  Para DSA 1024 es un tama�o fijo.
 Cuando la seguridad es una prioridad m�s alta que el tiempo, la opci�n
 es elegir el tama�o de clave m�s grande que se permita.

 El sistema nos pedir� a continuaci�n que se introduzca el nombre,
 comentario y direcci�n de correo electr�nico.  El c�digo se calcular�
 en base a estas entradas.  Esto se puede cambiar m�s tarde (ver
 ``Administraci�n de Claves'').  La direcci�n de correo electr�nico que
 se escoja deber�a ser una v�lida, ya que se usar� para firmar el
 identificador de usuario.  Si esta direcci�n se modifica en alg�n
 modo, la firma no corresponder�.  Finalmente, se puede introducir un
 comentario.


 El �ltimo paso consiste en introducir una contrase�a.  N�tese la
 diferencia entre los t�rminos anglosajones para la palabra
 �contrase�a�: el t�rmino "password" indica una "palabra de paso",
 mientras que el t�rmino "passphrase" indica una "frase de paso".  Por
 tanto esta contrase�a se debe componer de m�s de una palabra.  Para
 que una contrase�a sea efectiva (segura), deber� cumplir los
 siguientes requisitos:


 �  que sea larga;

 �  que combine may�sculas, min�sculas y n�meros;

 �  que contenga caracteres especiales (no alfanum�ricos);

 �  que sea dif�cil de adivinar.  Por lo tanto, que no sean nombres,
    fechas significativas, n�meros de tel�fono, n�meros de documentos,
    ...

 En general, para una contrase�a fuerte es aconsejable intercalar
 maY�sCUlas con mIn�sCulas, n�meros, otros caracteres no alfanum�ricos,
 etc.  Al escoger las palabras y frases debemos evitar aquellas
 palabras demasiado obvias, o fechas significativas, y nunca usar citas
 de libros o frases famosas.  Dicho esto, debemos asegurarnos de que la
 contrase�a que elijamos sea lo suficientemente dif�cil para que no
 pueda ser traspasada por un �ataque de fuerza bruta�, ni siquiera por
 un �ataque de diccionario�, pero lo suficientemente f�cil como para
 que la recordemos.  Si olvid�ramos una contrase�a nuestra clave
 quedar�a totalmente inutilizada, y los criptogramas con ella cifrados,
 indescifrables.  Ante esta posibilidad se recomienda crear siempre
 certificados de revocaci�n junto con las claves (ver ``Certificados de
 Revocaci�n'').

 Una vez se han introducido todos los datos requeridos, empieza el
 proceso de generaci�n de las claves, que tardar� un tiempo dependiendo
 del tama�o de �stas.  Durante este proceso el programa recoge datos
 aleatorios que usar� para generar las claves;  un modo para ayudar a
 generar estos datos es cambiando a una consola virtual diferente y
 usando el teclado mientras el proceso est� en marcha.


 3.2.  Exportaci�n de claves


 La orden para exportar la clave es:



      $ gpg --export [UID]




 Si no designamos un identificador de usuario (UID) todas las claves
 presentes en el anillo de claves ser�n exportadas.  El resultado es
 enviado por defecto a stdout, pero con la opci�n -o podemos
 especificar que sea enviado a un fichero.  Se recomienda usar la
 opci�n -a para que el resultado sea un fichero de 7-bit ASCII en lugar
 de un fichero binario.

 Al exportar la clave p�blica se ampl�a el abanico de personas con las
 que se podr� comunicar de modo seguro.  La clave se puede exportar
 poni�ndola en una p�gina web, mediante finger, ftp, haci�ndola
 accesible en un servidor de claves p�blicas, o cualquier otro m�todo.


 3.3.  Importaci�n de claves


 Cuando se recibe la clave p�blica de otra persona hay que a�adirla a
 la base de datos (anillo de claves) para poder hacer uso de ella.  La
 orden para importarlas es la siguiente:



      $ gpg --import [fichero]




 Si se omite el nombre del fichero se leer�n los datos de stdin.  El
 fichero puede contener una sola clave o varias a la vez,
 pertenecientes a la misma o a diferentes personas.


 3.4.  Revocaci�n de claves


 Existen diversos motivos por los que se pueda querer revocar una
 clave.  Por ejemplo, si la clave secreta ha sido robada, o si se ha
 olvidado la contrase�a de �sta.  En cualquier caso la orden de
 revocaci�n es:



      $ gpg --gen-revoke




 Esto crear� un Certificado de revocaci�n.  Para ello es necesaria la
 clave secreta, de lo contrario cualquiera podr�a hacer un certificado
 y revocar una clave que no le perteneciera.  En el caso anterior en el
 que la contrase�a ha sido olvidada, se hace imposible generar un
 certificado de revocaci�n.  Por este motivo es muy aconsejable generar
 un certificado de revocaci�n a continuaci�n de la generaci�n de la
 clave.  Es primordial guardar este certificado en un lugar seguro para
 que nadie pueda usarlo y revocar la clave.


 3.5.  Administraci�n de claves


 Existe un fichero que es una suerte de base de datos, en el que se
 guardan todos los datos relacionados con las claves, incluidos los
 valores relativos al grado de confianza (Ownertrust);  para m�s
 informaci�n sobre esto v�ase ``Firmar las claves''. Con la orden



      $ gpg --list-keys




 se muestran todas las claves existentes.  Para poder ver tambi�n las
 firmas en cada clave, utilice la orden:



      $ gpg --list-sigs

 (ver ``Firmar las claves'' para m�s informaci�n).  Para ver las
 huellas digitales (fingerprints):



      $ gpg --fingerprint




 Las �huellas digitales� sirven para confirmar la identidad de la
 persona.  Esta orden nos muestra una lista alfanum�rica que podemos
 comprobar, por ejemplo, por tel�fono, con la persona en cuesti�n.

 Para ver el listado de las claves secretas:



      $ gpg --list-secret-keys




 Nota: el listado de las huellas digitales y las firmas de las claves
 secretas no es de ninguna utilidad.

 Para eliminar una clave p�blica:



      $ gpg --delete-key UID




 Para eliminar una clave secreta:



      $ gpg --delete-secret-key




 Existe otra orden que es relevante para trabajar con las claves:



      $ gpg --edit-key UID




 Para esta orden necesitaremos la contrase�a, y podemos, entre otras
 cosas, editar la fecha de caducidad, a�adir una huella digital y
 firmar la clave.



 3.6.  Firma de las claves


 Como se ha mencionado anteriormente en la introducci�n, existe un
 tal�n de Aquiles en el sistema: la autentificaci�n de las claves
 p�blicas.  Si se obtiene una clave p�blica err�nea, ya se puede
 despedir uno del valor del cifrado.  Para evitar estos riesgos est� la
 posibilidad de firmar las claves.  Cuando tenemos la certeza de que
 una clave es v�lida y pertenece a quien dice, podemos firmarla
 digitalmente, de modo que otros que conf�en en nuestra firma la puedan
 dar por v�lida.

 Usando la orden



      $ gpg --edit-key UID




 para la clave que queremos firmar, nos llevar� a la suborden



      Command> sign




 �S�lo se debe firmar una clave cuando se est� ABSOLUTAMENTE SEGURO de
 que dicha clave es aut�ntica!  En realidad, s�lo se puede estar
 totalmente seguro cuando la clave se ha recibido en mano, o por
 ejemplo si se ha recibido por correo y a continuaci�n se han
 comprobado las huellas digitales por correo.  Una clave no debe ser
 nunca firmada con base en una suposici�n.

 Bas�ndose en las firmas existentes en una clave y en el �grado de
 confianza�, GnuPG determina la validez de las claves.  El grado de
 confianza (Ownertrust) es un valor que el propietario de una clave usa
 para determinar el nivel de confianza para una cierta clave.  Estos
 valores son:


 �  1 = Don't know (No s�, no conozco)

 �  2 = I do NOT trust (Confianza nula)

 �  3 = I trust marginally (Confianza marginal)

 �  4 = I trust fully (Confianza plena)

 Si el usuario no se f�a de una firma puede indicarlo as�, y rechazar
 la confianza en �sta.  La informaci�n sobre la confianza no se guarda
 en el mismo fichero que el de las claves, sino en otro diferente.


 4.  Codificar y descodificar


 Despu�s de haber instalado y configurado todo tal y como quer�amos,
 podemos comenzar a cifrar y descifrar datos.

 Es posible que cuando estemos cifrando o descifrando un documento,
 tengamos m�s de una clave privada en nuestro anillo de claves
 privadas.  Si esto es as�, es necesario seleccionar una de ellas como
 activa.  Para ello se puede usar la opci�n



      -u UID


 o bien la opci�n



      --local-user UID




 Tambi�n podemos agregar la siguiente l�nea en el fichero de
 configuraci�n $HOME/.gnupg/options:



      default-key UID




 Si se desea indicar el UID de un destinatario para cifrar un fichero
 con su clave, puede hacerse con la opci�n



      -r




 o la opci�n



      --recipient





 4.1.  Codificar


 La orden para cifrar es la siguiente:



      $ gpg -e [fichero]




 �



      $ gpg --encrypt [fichero]




 Estas �rdenes cifrar�an un fichero con la clave que hayamos definido
 por defecto en el fichero de configuraci�n options.  Para cifrar un
 fichero con la clave de otro usuario:



 $ gpg -er Destinatario [fichero]




 Pero como ya hemos comentado anteriormente esto producir�a un
 criptograma con el nombre de fichero.gpg;  se puede a�adir la opci�n



      --armor




 para que el criptograma sea del tipo 7-bit ASCII:



      $ gpg -a -er Destinatario [fichero]




 que producir� un criptograma con la extensi�n fichero.asc.  Ya que los
 mensajes, ficheros, y otro tipo de datos que enviamos codificados van
 cifrdos con la clave del destinatario, existe el riesgo de que alguien
 lo haga suplantando nuestra identidad.  Para evitar esto basta con
 firmar digitalmente todo lo que se cifre (ver ``Firmas'').


 4.2.  Descodificar


 La orden para descifrar es:



      $ gpg [-d] [fichero]




 �



      $ gpg [--decrypt] [fichero]




 En este caso no es necesario emplear [--decrypt], siendo opcional, ya
 que gpg usa por defecto



      --decrypt.




 En todos los casos que hemos nombrado aqu� el resultado est�
 direccionado a stdout, pero puede ser redireccionado con la opci�n


      -o [fichero]




 a un fichero con cualquier otro nombre.


 5.  GnuPG + PGP


 Al ser PGP un programa m�s antiguo que GnuPG, es normal que un nuevo
 usuario de GnuPG tenga ya instalado alguna versi�n de PGP en su
 sistema, y que desee mantener sus viejas claves despu�s de
 actualizarse a GnuPG.  Pues bien, no s�lo es posible importar el
 contenido de los anillos de claves sino que, alternativamente, es
 posible que GnuPG gestione los anillos de claves de PGP 2.6.3 y PGP
 5.0.

 Hay otros �problemas� de compatibilidad sobre los que tambi�n
 trataremos en este cap�tulo, como son las firmas de tipo V4 generadas
 por GnuPG, o el uso por parte de PGP de los algoritmos propietarios
 RSA oIDEA.  Empezaremos por esto �ltimo.


 5.1.  Uso de algoritmos no libres


 El uso de algoritmos con patentes restrictivas por parte de PGP
 representa un problema por cuanto la filosof�a que inspira a GnuPG de
 implementar un sistema criptogr�fico libre.  As� pues, las patentes
 sobre estos algoritmos imposibilitan una implementaci�n total.  Pero
 GnuPG tambi�n pretende cumplir con las reglas de los �est�ndares� de
 OpenPGP http://www.d.shuttle.de/isil/gnupg/rfc2440.html.

 Existen extensiones para RSA, http://www.rsa.com e IDEA,
 http://www.ascom.ch que pueden ser instaladas y que permiten cierto
 uso de estos algoritmos.  Las claves generadas por PGP 2.6.x son del
 tipo RSA, y el algoritmo de cifrado que usa es IDEA (tambi�n puede ser
 usado por PGP 5.x).  Es posible conseguir el c�digo fuente de estos
 algoritmos en los ficheros
 ftp://ftp.guug.de/pub/gcrypt/contrib/rsa.c.Z e
 ftp://ftp.guug.de/pub/gcrypt/contrib/idea.c.Z.

 Tambi�n existen los binarios instalables de estas extensiones para
 algunas distribuciones de Linux, como Debian (comprobar para otras
 distribuciones).


 5.2.  Firma digital con GnuPG


 GnuPG es el �nico sistema capaz de implementar firmas digitales V4 (de
 acuerdo con OpenPGP) y esta es la opci�n por defecto, pero en este
 caso PGP no es capaz de verificarlas.  Es posible obligar a GnuPG a
 usar V3, de dos modos:


 �  Indic�ndolo en el fichero de configuraci�n $HOME/.gnupg/options
    a�adiendo la l�nea:



      force-v3-sigs


 �  Incluyendo esta opci�n cada vez que se desee firmar un mensaje en
    V3:



      $ gpg [opci�n] --force-v3-sigs [fichero]





 5.3.  Importaci�n de anillos de claves PGP a GnuPG


 Intentaremos explicar c�mo exportar las claves p�blicas y privadas
 desde nuestros anillos de claves PGP a los anillos de claves GnuPG.

 NOTA: este m�todo se ha extra�do del PGP2GnuPG Howto,
 http://technocage.com/~caskey/gpg/pgp2gnupgp.html de Caskey L.
 Dickson y no lo he probado personalmente.  La �ltima actualizaci�n del
 mismo data de Diciembre de 1998.  Por ello, y para poder integrar PGP
 con GnuPG, recomiendo el uso del m�todo que se explica en la
 ``siguiente secci�n'' por ser m�s sencillo y fiable.

 Suponiendo que tengamos instaladas las dos versiones de PGP para
 Unix/Linux, tenemos pues sus respectivos anillos de claves p�blicas y
 privadas en $HOME/.pgp/:


 �  pubring.pgp -> fichero de claves p�blicas de PGP 2.6.x

 �  secring.pgp -> fichero de claves privadas de PGP 2.6.x

 �  pubring.pkr -> fichero de claves p�blicas de PGP  5.x

 �  secring.skr -> fichero de claves privadas de PGP  5.x

 A continuaci�n usar�amos las �rdenes que correspondan a cada versi�n
 para extraer la(s) clave(s) que deseemos.

 As�, para extraer una clave de PGP 2.6.x:



      $ pgp -kx UID fichero anillo




 vg.:



      $ pgp -kx Pepe clavepepe2 ~/.pgp/pubring.pgp




 Esta operaci�n generar�a el fichero clavepepe2.pgp.  Para extraer
 nuestra clave privada, no tendr�amos m�s que indicar nuestro UID y el
 fichero de las claves secretas ~/.pgp/secring.pgp.  No nos consta que
 haya modo alguno de indicar m�s de un UID con PGP 2.6.3, si saben de
 alguno, por favor env�enmelo a [email protected].

 Una vez extra�da la clave s�lo queda importarla al fichero de GnuPG:

      $ gpg --import clavepepe2




 Para extraer una clave de PGP 5.0:



      $ pgpk -x UID -o fichero




 vg.:



      $ pgpk -x Pepe -o clavepepe5




 En este caso, el fichero por defecto es el de las claves p�blicas, y
 obtendr�amos el fichero clavepepe5 como hemos indicado.

 Una vez m�s, s�lo queda importar la clave:



      $ gpg --import clavepepe5




 Ya que PGP 5.0 no nos permite indicarle el fichero sobre el que
 queremos operar, la extracci�n de la clave secreta se complica un
 poco.  La soluci�n viene dada por un sistema superior como GnuPG:

 Este procedimiento pone en riesgo la clave secreta durante un breve
 periodo de tiempo, as� que no deber�a ser usado en un sistema
 multiusuario o p�blico.  Los pasos a seguir son:


 �  Extraer la clave p�blica correspondiente a la clave privada que
    queremos exportar, e importarla a GnuPG.

 �  �Borrar la contrase�a de la clave secreta! (se recomienda hacer una
    copia de seguridad del fichero secring.skr):



      $ pgpk -e UID




 vg.:








 $ pgpk -e 0x614DB9FA

 sec  1024 0x614DB9FA 1998-03-22 ---------- DSS        Sign & Encrypt

 sub  1024 0x2B9E0571 1998-03-22 ---------- Diffie-Hellman

 uid  Horacio <[email protected]>

 uid  Horacio <[email protected]>


 1024 bits, Key ID 0x614DB9FA, created 1998-03-22

 "Horacio <[email protected]>

 "Horacio <[email protected]>"






      Do you want to unset this key as axiomatic [y/N]? N

      Do you want to unset this key as axiomatic [y/N]? N

      Do you want to add a new user ID [y/N]? N

      Do you want to change your pass phrase (y/N)? Y
      Need old passphrase. Enter pass phrase: <introducir contrase�a>
      Need new passphrase. Enter pass phrase: <dejar vac�o>
      Enter it a second time. Enter pass phrase: <dejar vac�o>
      Changing master key passphrase...

      Changing subkey passphrase...

      Do want to set this as your default key [y/N]? N

      Keyrings updated.





 �  El paso siguiente ser� exportar la clave privada.  Como ya hemos
    podido ver, PGP 5.0 es incapaz de hacerlo, as� que usaremos GnuPG:



      $ gpg --export-secret-keys --secret-key-ring ~/.pgp/secring.skr 0x614DB9FA > miclave




 Todo esto en una una sola l�nea; se crear� el fichero miclave.


 �  Ahora ya podemos importar la clave secreta a GnuPG:



      $ gpg --import < miclave




 Acto seguido volveremos a introducir una contrase�a a la clave desde
 GnuPG.


 5.4.  Uso de anillos de claves PGP con GnuPG


 Es posible evitar todo lo anterior, manteniendo instaladas las
 diferentes versiones de PGP al mismo tiempo que la de GnuPG.  Siendo
 GnuPG un sistema superior y m�s reciente, puede reconocer los anillos
 de claves de PGP como propios.

 En el caso de PGP 5.0, basta con a�adir el camino completo a los
 ficheros de claves de PGP 5.0, precedido por keyring o secret-keyring,
 al final del fichero ~/.gnupg/options seg�n corresponda:



      keyring ~/.pgp/pubring.pkr
      secret-keyring ~/.pgp/secring.skr




 Los ficheros de claves de PGP 2.6.3 son reconocidos por GnuPG por
 defecto.  Si no fuera as�, bastar�a con repetir la misma operaci�n
 anterior adapt�ndola a las circunstancias:



      keyring ~/.pgp/pubring.pgp
      secret-keyring ~/.pgp/secring.pgp




 Si a continuaci�n hacemos un listado de las claves p�blicas con GnuPG,
 observaremos que lee los tres ficheros, ~/.gnupg/pubring.gpg,
 ~/.pgp/pubring.pkr, y ~/pubring.pgp:



























 $ gpg --list-keys

      /home/usuario/.gnupg/pubring.gpg
      --------------------------------
      pub 1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig)
      <[email protected]>
      pub 1024D/A95AF46C 1998-11-29 Brenno J.S.A.A.F. de Winter
      <[email protected]>
      sub 3072g/A3CA62A0 1998-11-29

    (... y dem�s claves p�blicas DSA/ElGamal...)

      /home/usuario/.pgp/pubring.pkr
      ------------------------------
      pub 1024D/FAEBD5FC 1997-04-07 Philip R. Zimmermann <[email protected]>
      sub 2048g/42F0A0A0 1997-04-07

    (... etc DSS/Diffie-Helman...)

      /home/usuario/.pgp/pubring.pgp
      ------------------------------
      pub 1024R/88A17FF5 1995-09-11 IRIS-CERT, Spain

    (... etc RSA...)




 Lo mismo suceder�a con las claves privadas:



      $ gpg --list-secret-keys

           /home/horacio/.gnupg/secring.gpg
           --------------------------------
           sec 1024D/42337AE6 1999-03-14 Horacio (comentario)
           <[email protected]>
           ssb 2048g/1F177864 1999-03-14

           /home/horacio/.pgp/secring.skr
           ------------------------------
           sec 1024D/7992AB40 1998-05-04 Horacio <[email protected]>
           uid Horacio <[email protected]>
           ssb 2048g/917366AE 1998-05-04

           /home/horacio/.pgp/secring.pgp
           ------------------------------
           sec 1024R/32D4A925 1997-09-23 Horacio <[email protected]>





 6.  Firmar y Verificar


 Firmar y verificar firmas es una parte importante de los sistemas de
 criptograf�a de clave p�blica.  El usuario puede firmar una serie de
 datos o un documento de varias maneras, para lo que usa su propia
 clave privada.  Para verificar las firmas de otros usuarios, es
 necesario poseer previamente las claves p�blicas de �stos.




 6.1.  Firmar


 Para firmar un fichero con la clave propia se usa la orden



      $ gpg -s [fichero]




 �



      $ gpg --sign [fichero]




 Esta orden, adem�s de producir una firma digital, tambi�n comprime el
 fichero, por lo que el resultado es un fichero de tipo binario (y por
 tanto ilegible).  Para producir un fichero firmado legible (ascii), se
 usa la orden



      $ gpg --clearsign [fichero]




 De este modo, tanto la firma como los datos firmados, son legibles con
 un editor.

 Cuando queramos que la firma aparezca en un fichero separado, sobre
 todo cuando se trata de firmar un fichero binario, como por ejemplo un
 archivo comprimido, o un ejecutable, usaremos la orden



      $ gpg -b [fichero]




 �



      $ gpg --detach-sign [fichero]




 Este es el modo que MIME/PGP usa para firmar los mensajes del correo
 electr�nico.  Este modo es muy �til cuando tengamos que firmar un
 binario, por ejemplo, para distribuirlo, ya que la firma se basa en el
 binario pero va en un fichero aparte.  La opci�n --armor tambi�n puede
 ser de utilidad en estos casos.

 A menudo debemos cifrar y firmar un fichero a un tiempo. La orden que
 usar�amos en este caso ser�a


      $ gpg [-u Remitente] [-r Destinatario] [--armor] --sign --encrypt [fichero]




 La funcionalidad de las opciones -u (--local-user) y -r (--recipient)
 es la que se ha descrito ya anteriormente.


 6.2.  Verificar


 Al descifrar un criptograma que tambi�n haya sido firmado
 digitalmente, la firma se verifica autom�ticamente.  En todo caso es
 posible verificar la firma simplemente con la orden



      $ gpg [--verify] [fichero]





 7.  Fuentes de Informaci�n



 7.1.  GnuPG



 �  P�gina principal de GnuPG: http://www.gnupg.org/ (en ingl�s)

 �  Archivos de la lista de correo de GnuPG
    http://www.gnupg.org/docs.html (en ingl�s)

 �  La informaci�n contenida en el paquete de instalaci�n o de fuentes,
    sobre todo:



      $ gpg --help





 7.2.  PGP


 PGP es el programa de criptograf�a m�s antiguo y, de momento, m�s
 extendido.  Se ha escrito mucha documentaci�n en torno a PGP.  Mucha
 de esta informaci�n se puede usar para entender mejor el
 funcionamiento de GnuPG.


 �  La p�gina internacional de PGP, http://www.pgpi.com/.  Desde aqu�
    es posible acceder a mucha informaci�n sobre PGP en varias lenguas
    (aunque principalmente en ingl�s).

 �  PGP DH vs. RSA FAQ, http://www.hertreg.ac.uk/ss/pgpfaq.html.
    Preguntas y respuestas sobre las diferencias entre los algoritmos
    "Diffie-Hellman" y "RSA".


 7.3.  Recursos en castellano


 Existen multitud de recursos en la red para hispanohablantes.  Aqu�
 nombraremos un par de ellos desde los que podremos acceder a muchos
 otros:


 �  P�gina del bolet�n electr�nico sobre seguridad Kript�polis:
    http://www.kriptopolis.com.

 �  P�ginas sobre PGP de RedIris: http://www.rediris.es/pgp/


 7.4.  Servidores de claves



 �  Keyserver Net, Keyserver Net

 �  http://wwwkeys.eu.pgp.net/

 �  Servidor de RedIris: http://www.rediris.es/cert/keyserver/


 7.5.  Libros



 �  B. Schneier, ``Applied Cryptography, Second Edition'', Wiley, 1996
    Deutsche Ausgabe unter dem Titel ``Angewandte Kryptographie'',
    Addison-Wesley, 1996


 8.  Sobre este Documento


 Copyright � 1999 J.H. M.G. (versi�n en castellano)
 Copyright � 1999 Brenno J.S.A.A.F. de Winter (versi�n en ingl�s)
 Copyright � 1999 Michael Fischer v. Mollard (versi�n original en
 alem�n)

 Este documento es documentaci�n libre y puede ser redistribuido o
 modificado bajo los t�rminos de la Licencia P�blica GNU, seg�n
 publicada por la Free Software Foundation en su versi�n 2 (u otra
 posterior).

 Este documento se distribuye esperando que pueda ser �til, pero SIN
 NINGUNA GARANT�A.  Ver la GNU Library General Public License,
 (http://www.gnu.org/copyleft/gpl.html), o una traducci�n de �sta al
 castellano en http://visar.csustan.edu/~carlos/gpl-es.html, para
 obtener m�s detalles.

 Deber�a haber recibido una copia de la GNU Library General Public
 License con la distribuci�n del programa;  si no es as�, puede
 recibirla escribiendo a:



      Free Software Foundation, Inc.
      59 Temple Place - Suite 330
      Boston, MA 02111-1307
      USA



 8.1.  Versiones


 Versi�n original en alem�n: La versi�n 0.1 fue la primera versi�n en
 alem�n.

 Todos los cambios para la versi�n original, en alem�n, est�n
 documentados en un fichero diff: http://www.stud.uni-
 goettingen.de/~s070674/GnuPGMiniHowto/


 �  English version 0.1.0, del 30 de Mayo de 1999. Esta versi�n es una
    traducci�n de la versi�n alemana al ingl�s, con algunos cambios.

 �  Deutsche Version 0.1.1

 �  Nueva secci�n L�mites en seguridad

 �  Mejorada la explicaci�n sobre firmas

 �  Varios cambios sugeridos por Werner Koch (�gracias!)


 �  Versi�n 0.1.2, del 29 de Mayo de 1999 (Anno 2752 ad Urbe condita).
    Esta versi�n en castellano es una traducci�n de la versi�n inglesa,
    y se han realizado algunos cambios. Se ha a�adido el cap�tulo 5
    sobre compatibilidad e interoperabilidad de GnuPG con PGP.

 �  Versi�n 0.1.3, del 28 de Septiembre de 1999. Reescrito a c�digo
    SGML (LinuxDoc) desde el c�digo HTML.  Correcci�n de algunos
    errores en castellano.

 Notas para la versi�n espa�ola:  Cualquier comentario o correcci�n al
 documento que ayude a mejorarlo es bienvenido.  Por favor, env�e
 cualquier sugerencia a [email protected].

 Notas para la versi�n inglesa:  All remarks for this document can be
 send to Brenno J.S.A.A.F. de Winter [email protected]. Comments help
 us make a better document and are greatly appreciated.

 Notas para la versi�n alemana:  Anregungen, Kritik, Verbesserungen und
 Erweiterungen einfach an Michael Fischer v. Mollard [email protected]
 goettingen.de senden, damit dieses Dokument weiter verbessert werden
 kann.


 9.  Anexo: El INSFLUG


 El INSFLUG forma parte del grupo internacional Linux Documentation
 Project, encarg�ndose de las traducciones al castellano de los Howtos,
 as� como de la producci�n de documentos originales en aquellos casos
 en los que no existe an�logo en ingl�s, centr�ndose, preferentemente,
 en documentos breves, como los COMOs y PUFs (Preguntas de Uso
 Frecuente, las FAQs. :) ), etc.

 Dir�jase a la sede del Insflug para m�s informaci�n al respecto.

 En ella encontrar� siempre las �ltimas versiones de las traducciones
 �oficiales�:  www.insflug.org. Aseg�rese de comprobar cu�l es la
 �ltima versi�n disponible en el Insflug antes de bajar un documento de
 un servidor r�plica.

 Adem�s, cuenta con un sistema interactivo de gesti�n de fe de erratas
 y sugerencias en l�nea, motor de b�squeda espec�fico, y m�s servicios
 en los que estamos trabajando incesantemente.
 Se proporciona tambi�n una lista de los servidores r�plica (mirror)
 del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
 recursos en castellano.

 En http://www.insflug.org/insflug/creditos.php3 cuenta con una
 detallada relaci�n de las personas que hacen posible tanto esto como
 las traducciones.

 �Dir�jase a http://www.insflug.org/colaboracion/index.php3 si desea
 unirse a nosotros!.

 �Cartel� Insflug, [email protected].