  ``GNU Privacy Guard'' (GnuPG) Mini Como
  Michael Fischard v. Mollard fischer@math.uni-goettingen.de
  (versin alemana)
  J.S.A.A.F. de Winter brenno@dewinter.com (versin inglesa)
  castellana)
  v0.1.3, septiembre de 1999

  Este documento trata sobre la instalacin, configuracin y uso de Gnu
  Privacy Guard (GnuPG), un sistema de codificacin de cdigo 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 alemn por Michael Fischard v. Mollard,
  y posteriormente traducido, y revisado en algunos puntos, al ingls
  por Brenno J.S.A.A.F. de Winter.  La traduccin de este documento al
  castellano se ha llevado a cabo a partir de la versin inglesa.  El
  captulo 5 se ha aadido en la versin en castellano, y tambin se han
  incluido algunos recursos y otra informacin en castellano.  sta es
  una revisin de la versin 0.1.2, y no incluye ninguna temtica nueva,
  tan slo su conversin de cdigo HTML a cdigo SGML para su posterior
  reconversin a otros formatos.  Tambin se han corregido algunos
  errores de forma o traduccin.
  ______________________________________________________________________

  ndice general









































  1. Conceptos bsicos

     1.1 Sistemas de claves pblicas
     1.2 Firmas digitales
     1.3 Anillos de confianza
     1.4 Lmites de seguridad

  2. Instalacin y configuracin

     2.1 Cdigo fuente de GnuPG
     2.2 Configuracin
     2.3 Compilacin
     2.4 Instalacin

  3. Uso y gestin de las claves

     3.1 Generacin de una clave
     3.2 Exportacin de claves
     3.3 Importacin de claves
     3.4 Revocacin de claves
     3.5 Administracin 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 Importacin 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 Informacin

     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 bsicos



  1.1.  Sistemas de claves pblicas



  Para poder entender mejor el sistema de codificacin usado por los
  sistemas de claves asimtricas (es decir, claves pblicas y privadas),
  es necesario entender las diferencias con los sistemas de claves
  simtricas (es decir, claves secretas).

  Los sistemas de cifrado con clave simtrica 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
  electrnico, el remitente cifrara el mensaje con una clave secreta, y
  para que el destinatario pueda descifrarlo, necesitara 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 asimtricas usan
  claves distintas para el cifrado y posterior descifrado de los datos.
  En un caso como el anterior, el remitente usara la clave pblica del
  destinatario para cifrar el mensaje, y el destinatario descifrara el
  mensaje con su propia clave privada.  As pues, la clave privada no
  debe ser accesible para nadie que no sea el propio dueo de la misma,
  mientras que la clave pblica, puede ser entregada a cualquier
  persona.  En un sistema de cifrado bien implementado, la clave privada
  no debe derivar nunca de la clave pblica.


  1.2.  Firmas digitales


  El concepto de la firma digital se basa en la verificacin de la
  autora 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 pblica del remitente.

  Este mtodo es de especial utilidad para reducir riesgos de seguridad
  en nuestros sistemas (nos podran enviar un supuesto parche para un
  programa, y ste en realidad ser un virus o un troyano);  tambin
  podran enviarnos informacin o datos, como provenientes de una fuente
  lcita o fiable.  En ambos casos, no sera muy difcil falsificar la
  direccin y nombre del remitente, pero s imposible falsificar la
  firma digital de ste.

  Como ya hemos dicho, la verificacin de un mensaje firmado
  digitalmente se lleva a cabo mediante el uso de la clave pblica del
  remitente sobre el texto del propio mensaje.  De este modo no slo
  podemos verificar la identidad del autor, sino que tambin podemos
  comprobar la integridad del mensaje, ya que la firma digital ha sido
  generada con el texto y la clave privada.  As pues, una alteracin o
  modificacin del texto a posteriori, o cualquier manipulacin del
  mensaje (especialmente si hacemos uso de las especificaciones
  MIME/PGP), dara como resultado un error en la verificacin.


  1.3.  Anillos de confianza


  Un punto flaco en los algoritmos de clave asimtrica es la transmisin
  del cdigo pblico.  Es posible que una persona ponga en circulacin
  cdigo con un identificador de usuario falso.  Si se codifican
  mensajes con este pseudo cdigo, el intruso los puede descodificar y
  leerlos.


  La solucin PGP (y por consiguiente la solucin GnuPG) est en firmar
  los cdigos.  La clave pblica 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 confa en el
  remitente y cuando se sabe con seguridad que dicha clave pertenece a
  ste.  Slo cuando se puede confiar plenamente en la clave del
  firmante, se puede confiar en la firma que acompaa 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, podramos buscar el telfono en la gua y llamarle, y que nos
  la dijera de palabra para poder compararla), antes de darle una
  confianza absoluta.


  1.4.  Lmites 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;
  tambin 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 ningn 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
  criptoanlisis, anlisis del cdigo, o cualquier otro modo, no es
  probable que lo hicieran pblico.  Pero an 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 transfera al atacante mediante FTP.  Si en este
  caso hubiramos escogido una contrasea dbil o fcil, un simple
  anlisis que consistiera en un ataque de diccionario la descubrira
  en poco tiempo.

  Otra posibilidad tcnica, aunque ms difcil, es la de los troyanos
  que recogen entradas de teclado y las transmiten al asaltante.
  Tambin es posible, aunque muy difcil, pasar el contenido de una
  pantalla a otra. En este ltimo caso no sera necesario ningn
  anlisis sobre datos cifrados, ya que se obtendran antes de su
  cifrado.

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

  La idea no es la de recrear una atmsfera de paranoia entre la gente,
  sino dejar claro que para implementar un sistema seguro no basta con
  la instalacin de un programa criptogrfico, que si bien es un paso
  hacia un sistema ms seguro, no es una solucin completa.  Troyanos
  como el aparecido en Marzo de 1999 (Melissa) probaron que muchas
  compaas no se encuentran preparadas en temas de seguridad.



  2.  Instalacin y configuracin



  2.1.  Cdigo fuente de GnuPG


  El sitio oficial para para la distribucin de GnuPG es el sitio
  oficial de GnuPG, ftp://ftp.guug.de/pub/gcrypt/gnupg/.  En las pginas
  oficiales de GnuPG, http://www.gnupg.org/download.html tambin se
  pueden encontrar enlaces a rplicas oficiales.

  Debido a restricciones legales no se permite bajar material
  criptogrfico desde servidores localizados en los EE.UU., a los no
  residentes en este pas.  En EE.UU. existen unas leyes que imponen
  restricciones a la exportacin de cdigo criptogrfico as como de
  programas que los incluyan.  Por esta razn PGP se encuentra siempre
  disponible en dos versiones:  una internacional y otra para los EE.UU.
  El cdigo fuente para la versin internacional fue exportado en
  formato ascii imprimido en un libro.  A continuacin fue escaneado en
  Europa (Oslo) y recompuesto.  Se puede obtener ms informacin al
  respecto en la pgina internacional de PGP, http://www.pgpi.com/.  La
  versin 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 versin de GnuPG o PGP, se debera verificar
  la firma digital que acompaa al fichero (Ver ``Firmar y Verificar'').


  2.2.  Configuracin


  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 cdigo fuente.  Los paquetes son
  archivos comprimidos de los ficheros binarios que se pueden instalar
  con las correspondientes herramientas, segn la distribucin.  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 instalacin para un sistema o arquitectura
  diferente, lo haga de dominio pblico.

  Dado que la mayora del desarrollo de GnuPG tiene lugar en mquinas
  x86 bajo Linux (http://www.linux.org/, la migracin a un sistema
  diferente no debera ser ningn problema.  La lista de sistemas
  operativos que estn soportados por GnuPG se puede encontrar en las
  pginas de GnuPG (http://www.gnupg.org/.  El procedimiento que se
  describe a continuacin no es exclusivo de ninguna plataforma.  Este
  procedimiento se puede usar para compilar e instalar GnuPG partiendo
  de un archivo comprimido del cdigo fuente (loquesea.tar.gz).

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



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




  El siguiente paso es cambiar al directorio que contenga el cdigo
  fuente, y ejecutar el guin de configuracin:



       $ ./configure




  Con este paso no debera suceder nada especial;  si ejecutamos




  $ ./configure --help




  se pueden ver las opciones de configuracin que existen para la
  compilacin.  Si durante la internacionalizacin (GET text) ocurriera
  algn problema, se puede incluir una versin que venga con cdigo
  fuente, usando la opcin



       --with-included-gettext




  o desactivarla usando la opcin



       --disable-NLS





  2.3.  Compilacin


  A continuacin, para empezar a compilar ejecutaremos la orden de
  compilacin:



       $ make




  Compilacin que deber finalizar sin problemas.  Si ocurriera algo
  anormal, se seguirn los siguientes pasos (en el mismo orden en el que
  se describen aqu): Primero, intentar solucionarlo por uno mismo
  (haciendo uso de la documentacin 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 ingls) (ver ``Fuentes
  de Informacin'').  Por si el problema estuviera relacionado con la
  compilacin, se debera intentar make clean, ejecutar configure de
  nuevo, e intentar otra vez la compilacin.  Si nada de esto soluciona
  el problema, es el momento de preocuparse de verdad.


  2.4.  Instalacin


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



       $ make install



  que copiar el programa y las pginas de manual en el directorio de
  instalacin.  Si no hemos cambiado el directorio de instalacin 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
  usarn los ajustes tpicos.  Al crear ~/.gnupg/ la accin copiar
  debera ser automtica.  Todas las opciones posibles estn bien
  documentadas, y tratar de explicarlas aqu no sera 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 ledas por cualquiera.  Sin entrar a valorar
  los riesgos de ejecutar el programa como superusuario, se debera
  alertar de los peligros que conllevara un troyano, ya que stos, si
  se est ejecutando como superusuario, pueden daar todo el sistema.
  Si por esta razn, 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 gestin de las claves



  3.1.  Generacin 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 pblica).  La primera pregunta es qu algoritmo se va a usar.
  Para ms informacin sobre algoritmos, ver la lista de respuestas a
  Preguntas de Uso Frecuente (PUF, FAQ en ingls) 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 tambin aumentar el tiempo que emplear para el
  clculo de los procesos.  El tamao mnimo que requiere GnuPG es de
  768 bits, aunque mucha gente opina que debera ser de 2048 (que es el
  mximo con GnuPG en este momento).  Para DSA 1024 es un tamao fijo.
  Cuando la seguridad es una prioridad ms alta que el tiempo, la opcin
  es elegir el tamao de clave ms grande que se permita.

  El sistema nos pedir a continuacin que se introduzca el nombre,
  comentario y direccin de correo electrnico.  El cdigo se calcular
  en base a estas entradas.  Esto se puede cambiar ms tarde (ver
  ``Administracin de Claves'').  La direccin de correo electrnico que
  se escoja debera ser una vlida, ya que se usar para firmar el
  identificador de usuario.  Si esta direccin se modifica en algn
  modo, la firma no corresponder.  Finalmente, se puede introducir un
  comentario.


  El ltimo paso consiste en introducir una contrasea.  Ntese la
  diferencia entre los trminos anglosajones para la palabra
  contrasea: el trmino "password" indica una "palabra de paso",
  mientras que el trmino "passphrase" indica una "frase de paso".  Por
  tanto esta contrasea se debe componer de ms de una palabra.  Para
  que una contrasea sea efectiva (segura), deber cumplir los
  siguientes requisitos:


    que sea larga;

    que combine maysculas, minsculas y nmeros;

    que contenga caracteres especiales (no alfanumricos);

    que sea difcil de adivinar.  Por lo tanto, que no sean nombres,
     fechas significativas, nmeros de telfono, nmeros de documentos,
     ...

  En general, para una contrasea fuerte es aconsejable intercalar
  maYsCUlas con mInsCulas, nmeros, otros caracteres no alfanumricos,
  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
  contrasea que elijamos sea lo suficientemente difcil para que no
  pueda ser traspasada por un ataque de fuerza bruta, ni siquiera por
  un ataque de diccionario, pero lo suficientemente fcil como para
  que la recordemos.  Si olvidramos una contrasea nuestra clave
  quedara totalmente inutilizada, y los criptogramas con ella cifrados,
  indescifrables.  Ante esta posibilidad se recomienda crear siempre
  certificados de revocacin junto con las claves (ver ``Certificados de
  Revocacin'').

  Una vez se han introducido todos los datos requeridos, empieza el
  proceso de generacin de las claves, que tardar un tiempo dependiendo
  del tamao 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.  Exportacin 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 sern exportadas.  El resultado es
  enviado por defecto a stdout, pero con la opcin -o podemos
  especificar que sea enviado a un fichero.  Se recomienda usar la
  opcin -a para que el resultado sea un fichero de 7-bit ASCII en lugar
  de un fichero binario.

  Al exportar la clave pblica se ampla el abanico de personas con las
  que se podr comunicar de modo seguro.  La clave se puede exportar
  ponindola en una pgina web, mediante finger, ftp, hacindola
  accesible en un servidor de claves pblicas, o cualquier otro mtodo.


  3.3.  Importacin de claves


  Cuando se recibe la clave pblica de otra persona hay que aadirla 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 leern 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.  Revocacin 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 contrasea de sta.  En cualquier caso la orden de
  revocacin es:



       $ gpg --gen-revoke




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


  3.5.  Administracin 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 ms
  informacin sobre esto vase ``Firmar las claves''. Con la orden



       $ gpg --list-keys




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



       $ gpg --list-sigs

  (ver ``Firmar las claves'' para ms informacin).  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 alfanumrica que podemos
  comprobar, por ejemplo, por telfono, con la persona en cuestin.

  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 pblica:



       $ 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 contrasea, y podemos, entre otras
  cosas, editar la fecha de caducidad, aadir una huella digital y
  firmar la clave.



  3.6.  Firma de las claves


  Como se ha mencionado anteriormente en la introduccin, existe un
  taln de Aquiles en el sistema: la autentificacin de las claves
  pblicas.  Si se obtiene una clave pblica errnea, 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 vlida y pertenece a quien dice, podemos firmarla
  digitalmente, de modo que otros que confen en nuestra firma la puedan
  dar por vlida.

  Usando la orden



       $ gpg --edit-key UID




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



       Command> sign




  Slo se debe firmar una clave cuando se est ABSOLUTAMENTE SEGURO de
  que dicha clave es autntica!  En realidad, slo se puede estar
  totalmente seguro cuando la clave se ha recibido en mano, o por
  ejemplo si se ha recibido por correo y a continuacin se han
  comprobado las huellas digitales por correo.  Una clave no debe ser
  nunca firmada con base en una suposicin.

  Basndose 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 fa de una firma puede indicarlo as, y rechazar
  la confianza en sta.  La informacin sobre la confianza no se guarda
  en el mismo fichero que el de las claves, sino en otro diferente.


  4.  Codificar y descodificar


  Despus de haber instalado y configurado todo tal y como queramos,
  podemos comenzar a cifrar y descifrar datos.

  Es posible que cuando estemos cifrando o descifrando un documento,
  tengamos ms 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 opcin



       -u UID


  o bien la opcin



       --local-user UID




  Tambin podemos agregar la siguiente lnea en el fichero de
  configuracin $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 opcin



       -r




  o la opcin



       --recipient





  4.1.  Codificar


  La orden para cifrar es la siguiente:



       $ gpg -e [fichero]




  



       $ gpg --encrypt [fichero]




  Estas rdenes cifraran un fichero con la clave que hayamos definido
  por defecto en el fichero de configuracin options.  Para cifrar un
  fichero con la clave de otro usuario:



  $ gpg -er Destinatario [fichero]




  Pero como ya hemos comentado anteriormente esto producira un
  criptograma con el nombre de fichero.gpg;  se puede aadir la opcin



       --armor




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



       $ gpg -a -er Destinatario [fichero]




  que producir un criptograma con la extensin 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 opcin


       -o [fichero]




  a un fichero con cualquier otro nombre.


  5.  GnuPG + PGP


  Al ser PGP un programa ms antiguo que GnuPG, es normal que un nuevo
  usuario de GnuPG tenga ya instalado alguna versin de PGP en su
  sistema, y que desee mantener sus viejas claves despus de
  actualizarse a GnuPG.  Pues bien, no slo 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 tambin
  trataremos en este captulo, 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 filosofa que inspira a GnuPG de
  implementar un sistema criptogrfico libre.  As pues, las patentes
  sobre estos algoritmos imposibilitan una implementacin total.  Pero
  GnuPG tambin pretende cumplir con las reglas de los estndares 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 (tambin puede ser
  usado por PGP 5.x).  Es posible conseguir el cdigo 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.

  Tambin 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 opcin por defecto, pero en este
  caso PGP no es capaz de verificarlas.  Es posible obligar a GnuPG a
  usar V3, de dos modos:


    Indicndolo en el fichero de configuracin $HOME/.gnupg/options
     aadiendo la lnea:



       force-v3-sigs


    Incluyendo esta opcin cada vez que se desee firmar un mensaje en
     V3:



       $ gpg [opcin] --force-v3-sigs [fichero]





  5.3.  Importacin de anillos de claves PGP a GnuPG


  Intentaremos explicar cmo exportar las claves pblicas y privadas
  desde nuestros anillos de claves PGP a los anillos de claves GnuPG.

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

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


    pubring.pgp -> fichero de claves pblicas de PGP 2.6.x

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

    pubring.pkr -> fichero de claves pblicas de PGP  5.x

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

  A continuacin usaramos las rdenes que correspondan a cada versin
  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 operacin generara el fichero clavepepe2.pgp.  Para extraer
  nuestra clave privada, no tendramos ms que indicar nuestro UID y el
  fichero de las claves secretas ~/.pgp/secring.pgp.  No nos consta que
  haya modo alguno de indicar ms de un UID con PGP 2.6.3, si saben de
  alguno, por favor envenmelo a homega@ciberia.es.

  Una vez extrada la clave slo 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 pblicas, y
  obtendramos el fichero clavepepe5 como hemos indicado.

  Una vez ms, slo queda importar la clave:



       $ gpg --import clavepepe5




  Ya que PGP 5.0 no nos permite indicarle el fichero sobre el que
  queremos operar, la extraccin de la clave secreta se complica un
  poco.  La solucin 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 debera ser usado en un sistema
  multiusuario o pblico.  Los pasos a seguir son:


    Extraer la clave pblica correspondiente a la clave privada que
     queremos exportar, e importarla a GnuPG.

    Borrar la contrasea 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 <homega@vlc.servicom.es>

  uid  Horacio <homega@correo.com>


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

  "Horacio <homega@vlc.servicom.es>

  "Horacio <homega@correo.com>"






       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 contrasea>
       Need new passphrase. Enter pass phrase: <dejar vaco>
       Enter it a second time. Enter pass phrase: <dejar vaco>
       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 lnea; se crear el fichero miclave.


    Ahora ya podemos importar la clave secreta a GnuPG:



       $ gpg --import < miclave




  Acto seguido volveremos a introducir una contrasea 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 ms reciente, puede reconocer los anillos
  de claves de PGP como propios.

  En el caso de PGP 5.0, basta con aadir el camino completo a los
  ficheros de claves de PGP 5.0, precedido por keyring o secret-keyring,
  al final del fichero ~/.gnupg/options segn 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, bastara con repetir la misma operacin
  anterior adaptndola a las circunstancias:



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




  Si a continuacin hacemos un listado de las claves pblicas 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)
       <dd9jn@gnu.org>
       pub 1024D/A95AF46C 1998-11-29 Brenno J.S.A.A.F. de Winter
       <brenno@dewinter.com>
       sub 3072g/A3CA62A0 1998-11-29

     (... y dems claves pblicas DSA/ElGamal...)

       /home/usuario/.pgp/pubring.pkr
       ------------------------------
       pub 1024D/FAEBD5FC 1997-04-07 Philip R. Zimmermann <prz@pgp.com>
       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 sucedera con las claves privadas:



       $ gpg --list-secret-keys

            /home/horacio/.gnupg/secring.gpg
            --------------------------------
            sec 1024D/42337AE6 1999-03-14 Horacio (comentario)
            <homega@vlc.servicom.es>
            ssb 2048g/1F177864 1999-03-14

            /home/horacio/.pgp/secring.skr
            ------------------------------
            sec 1024D/7992AB40 1998-05-04 Horacio <homega@vlc.servicom.es>
            uid Horacio <homega@correo.com>
            ssb 2048g/917366AE 1998-05-04

            /home/horacio/.pgp/secring.pgp
            ------------------------------
            sec 1024R/32D4A925 1997-09-23 Horacio <homega@vlc.servicom.es>





  6.  Firmar y Verificar


  Firmar y verificar firmas es una parte importante de los sistemas de
  criptografa de clave pblica.  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 pblicas 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, adems de producir una firma digital, tambin 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
  electrnico.  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 opcin --armor tambin puede
  ser de utilidad en estos casos.

  A menudo debemos cifrar y firmar un fichero a un tiempo. La orden que
  usaramos en este caso sera


       $ 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 tambin haya sido firmado
  digitalmente, la firma se verifica automticamente.  En todo caso es
  posible verificar la firma simplemente con la orden



       $ gpg [--verify] [fichero]





  7.  Fuentes de Informacin



  7.1.  GnuPG



    Pgina principal de GnuPG: http://www.gnupg.org/ (en ingls)

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

    La informacin contenida en el paquete de instalacin o de fuentes,
     sobre todo:



       $ gpg --help





  7.2.  PGP


  PGP es el programa de criptografa ms antiguo y, de momento, ms
  extendido.  Se ha escrito mucha documentacin en torno a PGP.  Mucha
  de esta informacin se puede usar para entender mejor el
  funcionamiento de GnuPG.


    La pgina internacional de PGP, http://www.pgpi.com/.  Desde aqu
     es posible acceder a mucha informacin sobre PGP en varias lenguas
     (aunque principalmente en ingls).

    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:


    Pgina del boletn electrnico sobre seguridad Kriptpolis:
     http://www.kriptopolis.com.

    Pginas 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. (versin en castellano)
  Copyright  1999 Brenno J.S.A.A.F. de Winter (versin en ingls)
  Copyright  1999 Michael Fischer v. Mollard (versin original en
  alemn)

  Este documento es documentacin libre y puede ser redistribuido o
  modificado bajo los trminos de la Licencia Pblica GNU, segn
  publicada por la Free Software Foundation en su versin 2 (u otra
  posterior).

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

  Debera haber recibido una copia de la GNU Library General Public
  License con la distribucin 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


  Versin original en alemn: La versin 0.1 fue la primera versin en
  alemn.

  Todos los cambios para la versin original, en alemn, estn
  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 versin es una
     traduccin de la versin alemana al ingls, con algunos cambios.

    Deutsche Version 0.1.1

    Nueva seccin Lmites en seguridad

    Mejorada la explicacin sobre firmas

    Varios cambios sugeridos por Werner Koch (gracias!)


    Versin 0.1.2, del 29 de Mayo de 1999 (Anno 2752 ad Urbe condita).
     Esta versin en castellano es una traduccin de la versin inglesa,
     y se han realizado algunos cambios. Se ha aadido el captulo 5
     sobre compatibilidad e interoperabilidad de GnuPG con PGP.

    Versin 0.1.3, del 28 de Septiembre de 1999. Reescrito a cdigo
     SGML (LinuxDoc) desde el cdigo HTML.  Correccin de algunos
     errores en castellano.

  Notas para la versin espaola:  Cualquier comentario o correccin al
  documento que ayude a mejorarlo es bienvenido.  Por favor, enve
  cualquier sugerencia a homega@ciberia.es.

  Notas para la versin inglesa:  All remarks for this document can be
  send to Brenno J.S.A.A.F. de Winter brenno@dewinter.com. Comments help
  us make a better document and are greatly appreciated.

  Notas para la versin alemana:  Anregungen, Kritik, Verbesserungen und
  Erweiterungen einfach an Michael Fischer v. Mollard fischer@math.uni-
  goettingen.de senden, damit dieses Dokument weiter verbessert werden
  kann.


  9.  Anexo: El INSFLUG


  El INSFLUG forma parte del grupo internacional Linux Documentation
  Project, encargndose de las traducciones al castellano de los Howtos,
  as como de la produccin de documentos originales en aquellos casos
  en los que no existe anlogo en ingls, centrndose, preferentemente,
  en documentos breves, como los COMOs y PUFs (Preguntas de Uso
  Frecuente, las FAQs. :) ), etc.

  Dirjase a la sede del Insflug para ms informacin al respecto.

  En ella encontrar siempre las ltimas versiones de las traducciones
  oficiales:  www.insflug.org. Asegrese de comprobar cul es la
  ltima versin disponible en el Insflug antes de bajar un documento de
  un servidor rplica.

  Adems, cuenta con un sistema interactivo de gestin de fe de erratas
  y sugerencias en lnea, motor de bsqueda especfico, y ms servicios
  en los que estamos trabajando incesantemente.
  Se proporciona tambin una lista de los servidores rplica (mirror)
  del Insflug ms cercanos a Vd., e informacin relativa a otros
  recursos en castellano.

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

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

  Cartel Insflug, cartel@insflug.org.






















































