seguridad-digital.png, 0 kB
SECCIONES
PORTAL
ARTÍCULOS
NOTICIAS
TUTORIALES
SERVICIOS
ENLACES
COLABORADORES
CONTRIBUIR
ACERCA DE...
LOGIN





¿Recuperar clave?
¿Quiere registrarse? Regístrese aquí
ESTADÍSTICAS
Usuarios: 620
Noticias: 215
Enlaces: 35
Visitantes: 1176179
ACTIVIDAD
Hay 16 invitados en línea
MANUAL DE USO DE GPG | Imprimir |  E-Mail
Calificación del usuario: / 12
MaloBueno 
Escrito por Jon   
Wednesday, 02 de August de 2006
Uso de GPG para entornos GNU/Linux

En entornos Windows es muy similar el uso. Para la instalación existe un ejecutable (aquí)

1)Para cada usuario se crea su directorio propio de gpg:
    /home/jon/.gnupg

Y aquí tendremos los archivos propios de gpg:
    gpg.conf --> Plantilla con ciertos valores por defecto para GPG (por ejemplo, clave primaria a usar: default-key)
    pubring.gpg --> Anillo de claves públicas (formato binario compatible con pgp)
    secring.gpg --> Anillo de claves privadas
    trustdb.gpg --> Base de datos de las confianzas depositadas por nosotros en las claves

Datos relacionados con cada par de claves:

Nombre (comentario) <correo electrónico>

Cada par de claves (pública/privada) del sistema GPG se identifica con un número (sacado a partir de un Hash de los datos introducidos en ella: identificador KeyID

Ejemplo:
pub   1024R/1E34AC41 2000-12-20
uid                  PuTTY Master Key (RSA) < Esta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla >

El KeyID es 1E34AC41

2) Práctica:
    a) Generación de un par de claves nuevo:
    gpg --gen-key -> Se meten todos los datos necesarios
    Aquí nos pide una clave de paso para cifrar (simétricamente) la escritura de la clave privada en el disco duro (nadie con acceso al disco duro puede violar nuestra clave privada...)
 
    Lo primero recomendado es generar un certificado de revocación: Por si se nos compromete la clave privada
    gpg --output revoke.asc --gen-revoke IDClave
 
    El archivo revoke.asc lo deberíamos guardar seguramente, por si acaso.
 
    gpg --default-key <keyID>: Usar una clave como por defecto

    b) Listar claves en las bases de datos:
    Privadas: gpg --list-secret-keys
    Publicas: gpg --list-keys
    Fingerprints: gpg --fingerprint <keyID>  --> Esto son "huellas resumen" que nos permiten identificar la integridad de las claves

    c) Edición de claves de las bases de datos: gpg --edit-key
    Se entra en un prompt -> posibilidad de realizar ciertas acciones sobre las claves
        Orden> help
        Orden> trust (editar confianza en la clave)
        Orden> list
        Orden> sign y lsign (firma no exportable)
        Orden> passwd
        Orden> fpr
        Orden> check
    Luego se debe guardar
        Orden> save
 
    Dar validez transitiva a una clave: Esto es importante, ya que permite implementar en la propia clave las confianzas que se tienen sobre otras claves. Hemos de entender que firmar algo implica certificarlo, es decir, darle nuestra validez y veracidad...

    Firmar una clave: gpg --sign-key <KEYid> 
    Por supuesto, para ello, el sistema debe confiar en la clave con la que se firma...

    Una vez hecho esto y editada la confianza de la mencionada clave pasamos a confiar en dicha clave, y todo lo que venga firmado por ella, al verificarlo, el sistema GPG nos lo aprobará.
Esta es la gran potencia de GPG.

    d) A la hora de generar cualquier archivo (de claves, firma, texto cifrado) existe un formato que es cuasi legible, y que codifica en UUENCODE el contenido y lo introduce entre una cabecera y un pie que identifica el archivo --> es una opción más que recomendable

        usar --armor: Formato ASCII ARMOR (cuasi legible, UUENCODE)

    Esto nos deja dos formatos gpg:
    .asc -->ASCII
    .gpg -->Formato binario

    e) Exportación e importación de claves:
    Pública para exportar: gpg --armor --export <KeyID> > archivo
    Privada para copia seguridad: gpg --armor --export-secret-keys <KeyID> > archivo
    Pública y/o privada importar: gpg --import <nomarch>
 
    f) Para el cifrado y firma de mensajes: (certifica y sella en el tiempo un documento)
 
    Firma de un archivo de texto:
    gpg -s 1.txt
    Esto nos saca un nuevo archivo...
    1.txt --> 1.txt.gpg (firma junto al original en binario)
 
    Validacion de la firma--> gpg -v 1.txt.gpg
    Como salida saca el texto original sin la firma
    Se puede escoger con qué clave firmar (-u)

    Formato --armor --> gpg --armor -s 1.txt
    1.txt --> 1.txt.asc (firma junto a original en ASCII)
    Validacion --> gpg -v 1.txt.asc
    Sin que exista el 1.txt lo saca

    Solo cifrado: gpg -e 1.txt (con o sin --armor)->
    Por supuesto, para esta operación nos pide el receptor del mensaje (cualquier id)
 
    Para el descifrado, hay que dar el nombre del archivo de salida
    Si se omite el archivo de entrada coge la entrada estándar (stdin)
    gpg -d 1.txt.asc (o gpg) > 1.txt

    En el caso de que queramos que haya mas de un receptor: Queda más gordo, en la cabecera queda la info de para quién es cada cacho

    Firma y cifra: gpg --armor -es 1.txt
    Con -v o -d descifra y valida...
    Se puede escoger con qué clave descifrar (-u)

    Hay otros tipos de firmas, según cómo se añadan al original...
 
    Clearsigned signatures:
    gpg --clearsign doc
    El mensaje en claro primero, seguido luego de la firma, todo junto

    Detached signatures:
    El tener el documento y la firma en el mismo documento puede tener poco uso. En este caso se genera un archivo para cada uno.
    gpg --output doc.sig --detach-sig doc
    Por supuesto, se necesitan los dos archivos para realizar la verificación de la firma
    gpg --verify doc.sig doc

    g) GPG te permite el cifrado de datos con clave una simetrica (se cifrará con una clave de paso. Por defecto usará el algoritmo CAST5):
    gpg --output doc.gpg --symmetric doc
 
    Descifrar:
    gpg -d doc.gpg > doc

    h) Algo que debemos denotar es la diferencia entre la  validez de una clave (comprobación de las firmas que la acompañan) y la confianza que se les da a las mismas (editar el trust, esto queda en un archivo separado (trustdb.gpg), es local al sistema del usuario)
    gpg --list-sigs --> Nos lista las firmas añadidas que lleva una clave

    Hasta que no se firma (nos da la validez de una clave) y se edita la confianza el sistema no la considera como clave confiada...
 
    Una clave se considera válida para el sistema si cumple algunas condiciones relacionadas con las firmas que se le añaden y la confianza editada: por ejemplo, si está firmada por suficientes claves válidas, tu firma personal es suficiente (aunque hay todo un algoritmo que habla número de firmas de claves confiadas marginalmente, etc...)

3) Todo lo hemos utilizado directamente bajo la consola del sistema y tecleando los comandos "a pelon"...

Por supuesto existen frontends de usuario, que realizarán todas estas tareas "escondidas" del usuario...

Un ejemplo muy claro (ya que GPG es un sistema criptográfico que se adapta muy bien al correo electrónico) es el plugin para Mozilla Thunderbird --> OpenPGP (Extension Enigmail)

Hasta aquí hemos llegado.
 
 
Seguridad Digital - Licencia CC v2.5