Archive for the 'seguridad' Category

July 11th 2008

GPG II

Manejo de archivos

Cifrado

Supongamos que tenemos un archivo llamado repub13.txt en /home/invitado.

  1. Abrimos una ventana del explorador de archivos, nautilus.
    Applications -> System tools -> File Browser.
  2. Localizamos el archivo repub13.txt, lo seleccionamos, y le damos click con el botón secundario del mouse.
    Cifrado
  3. Damos click en la opcion Encrypt...
    Selección Llave
  4. Seleccionamos la llave que deseamos usar para cifrar el archivo y damos click en OK. Listo, tenemos nuestro archivo cifrado.
    Cifrado completo

Hay que notar que lo ciframos usando nuestra llave publica, es decir, solo podrá ser descifrado con nuestra llave privada, solo lo podremos descifrar nosotros. Si por el contrario lo hubiéramos cifrado con la llave publica de Nicolas Sarmiento, solo él, podría descifrarlo.

Descifrado

Supongamos que tenemos un archivo llamado repub13.txt.pgp en /home/invitado.

  1. Abrimos una ventana del explorador de archivos, nautilus.
    Applications -> System tools -> File Browser.
  2. Localizamos el archivo repub13.txt.pgp, lo seleccionamos, y le damos click con el botón secundario del mouse.Decrypt File
  3. Damos click en la opción Open with "Decrypt File".Password
  4. Proporcionamos la contraseña de la llave privada y damos click en OK. Listo, tenemos nuestro archivo descifrado.File Decrypted

Hay que notar que siempre que se cifra un documento se usa la llave publica, no la privada.

Firmado

Supongamos que tenemos un archivo llamado repub13.txt en /home/invitado.

  1. Abrimos una ventana del explorador de archivos, nautilus.
    Applications -> System tools -> File Browser.
  2. Localizamos el archivo repub13.txt, lo seleccionamos, y le damos click con el botón secundario del mouse.
    Sign
  3. Damos click en la opcion Sign.Choose Key
  4. Seleccionamos la llave que deseamos usar para firmar el archivo y damos click en OK.
    Password
  5. Proporcionamos la contraseña de la llave privada y damos click en OK.
    File signed
  6. Listo, tenemos nuestro archivo firmado.

Para firmar un documento siempre se usa una llave privada.

Verificar firma

Supongamos que tenemos un archivo llamado repub13.txt.sig en /home/invitado.

  1. Abrimos una ventana del explorador de archivos, nautilus.
    Applications -> System tools -> File Browser.
  2. Localizamos el archivo repub13.txt.sig, lo seleccionamos, y le damos click con el botón secundario del mouse.Verify Signature
  3. Damos click en la opción Open with "Verify Signature".
  4. El aviso de firma válida se muestra en la esquina inferior derecha de la pantalla.
    Signature Verified

Para comprobar la validez de la firma se usa la llave publica.

Una vez que tenemos nuestro archivo cifrado este puede ser enviado a otras personas, claro estas personas solo lo podrán descifrar si el archivo fue cifrado con su llave publica. Si tenemos un archivo firmado que deseamos enviar a otra personas, tendremos que enviar tanto el archivo original, el que se firmo, como el archivo con extensión .sig resultante de la firma.

Manejo de cadenas

Cifrado

  1. Abrimos una instancia del editor de texto de GNOME, Gedit.
    Applications -> Accessories -> Text Editor.
  2. Supongamos que tenemos un texto ya escrito.
    Texto original
  3. Damos click en la opción Edit -> Encrypt...
    Encrypt
  4. Seleccionamos la llave publica con la que deseamos encriptar el texto, y damos click en OK.
    Private Key
  5. Listo, ya tenemos el texto cifrado.
    1. -----BEGIN PGP MESSAGE-----
    2. Version: GnuPG v1.4.6 (GNU/Linux)
    3.  
    4. hQQOA/6iW3Kor+huEBAAkLnl7xI39j1aFaUNfgi9rObeKK2r9VrGUur1CTjBISDK
    5. 709IVXA1all44Rzonl8uUxqUACzXuBaMn+ygNaYTyve9QTDxbyDiWKLxbIE+mlMN
    6. NrMgHMfLBPHJbDnsdK0X9u9M+XD7rbY84BtlJ46Zo+Vm2lPJ2eHOSfLXFzH+upYZ
    7. 4qYyxHPo+bNB3b94meWyLQFUvl6XAjb8tO1lfiZRPQdTmFDKtFz8wORl3v/nR+wK
    8. aa10Yfn/I3i5K35zasWGUdJ+AweNII0cTHIJnDg7YwkyhI64wG1ZEfQg6AacgwIc
    9. nMi9KKPYXzOaes4ruY8+oUNet4/mTFyrFKy7pJXCY+OrV5eaNkL3lkPy6vyDYcjB
    10. 3rgexoGFVfuepUr743YWPIfvnb9dSLokQVNeeUyip1WSB7BdvkLGNmnlmTX8hPXt
    11. 1eSGlEYBrCt18QvryVFGriJ8h8BSrvVUYDR4FX5haxld6dJJDPbQognWdKHeKBSP
    12. 6CHO7FbeqN8sLgSQ402GXbPVACsb45By22XQrV5E/+vH3LxujrFEKlG2bVIhLFze
    13. gODruaHz+Fmmi/FLL+3EYEfCzDCDySjLcVRGRJMFKjTO/SkRt3ktqjAVfZ/YUzwg
    14. nUG6HL/3xERcr+e+RnL5rF7/XQGPOgBdWe44O0hVDqb15KbsMuQi20mGkcV2bgQP
    15. /ReS65eQzPwXxPlApM12enCe7RuZ6duS7OBAKrvWJGiRNOzGA9QVEkzLTh7w8LWu
    16. 7x3JL59AvrSMUd95BfcdSvASvkFFvhiooM6zelyQsEbQONWfjy78Qejjwyyq6adG
    17. V1jqmA+WZZIPpPbbjCTNNrHpv3Fb4gn+/SK0McAJKBZW8REAjvl2y5BrbuhXi471
    18. mLWVj8hMFVaUSLepu52buXxtwx6hYFs0gKbCtx9YiVWkxbmZvXYcUiZWf9WTUE9J
    19. EkArH9JYxnc3pg+R4dicDeL36AcR3JyovorK63Z+LWvH7qfD4D67lgSzffCWQilL
    20. 1dlg6cQUx60SM8QvvMbZAhctwpkj/KggeBpcAnhpe3TNKePYMQ91FeLsPuFMjVaH
    21. kxMtP3oTknZ1RTXWmO1jUdyt49h2rx7EUT7o/bZU5iOoiWGu1/N0A1IkHvTRe4S5
    22. KvlXERrr8fTS0EobX9ahW3wo1OKZjpwLPX1hzskkWFxQebO+CPs64ngMnXGrwT65
    23. uNSk0UkEbFsS96ouQ/miUKp0l5WfM3WcchL8PLkYX0oGHo5izauEaWu49C0L0SQQ
    24. EGO3enm45NW1AIxDdo7+XAUDR17FBPVLo/0jsKK98TaNaO7BN0Yve6XmKKzDfc/j
    25. rZMc0ggR6UcXa3TmLs4FE9o+rv0/T0JRQCbNpGv8vLBR0sEcATyWm3EkTMkMbZ0y
    26. EK2B5FT8u7WIGv3Au8aDymLkmzGyQz02TVlAYVWjJfWVhcKksp97gNcoGlz43OZT
    27. 3Vjfq42ojn/DzhURdR9YJZv+8dqELQBBuDoEs3kf4abJGxHUzTxRaag5N0lrLFpR
    28. puZwRuRnnICQMtd0KKA7aZ4st7UZTNJG4yIXQB2iRKB9oCX/GszMf62YjaSpOTEY
    29. RCkiBnT65gB6OLDik5sz6yZdRfOL6VaXbR/2efWssd1i+szRGEwKSWpGpYeRJjEq
    30. eq50HJs5iG/AHA37xuKxmCOb+o52oudk9liOuBfs9N4osEpLvqkisrRV0KGnhwak
    31. 4QqdDoAG5jdceVDae7bBJpSmeJRrNge3jdo9pGkOFgskL4hgbg3foz7vjmGQp8eE
    32. dOdR6sVKWsW5fdyePPDVNIlCHEuSuspkAxX4K6yfmGofzhi3d88HHP3UIx9xbpeZ
    33. vJAaTCN+c9ZapbnxvB/clwf5elEeVAbofNnyxLpGV48QOhGkhGx3FOZBuRrHUWOT
    34. Z4fhEyLEClc36mZ+4uM+TU4RibxpHlFs0kFzdtL38yoIShQJpKVDbZ8aNNniXPfc
    35. rffbuogNdQBkqzxQ8q0CiSpvshdOe0II/ZfJqsaGL3E=
    36. =dwT4
    37. -----END PGP MESSAGE-----

Descifrado

Partiendo del texto cifrado en la sección anterior.

  1. Damos click en la opción Edit -> Decrypt/Verify.
    Encrypted Text
  2. Proporcionamos la contraseña para la llave privada y damos click en OK.
    Password
  3. Listo, ya tenemos el texto descifrado.
    Texto original

Hay que tener en mente que no debemos modificar nada dentro de las 'etiquetas'


-----BEGIN PGP MESSAGE-----
-----END PGP MESSAGE-----


Fuera de ellas se puede agregar lo que sea. Posteriormente si deseamos descifrar el mensaje no habra problema alguno.

De la misma manera si solo se desea cifrar una parte de todo el texto que hay en el archivo, se selecciona la parte del texto deseado y se procede de la misma forma que se explico anteriormente.

Para decifrarlo no hace falta seleccionarlo y se procede de la forma que se explico anteriormente.

Firmado

  1. Abrimos una instancia del editor de texto de GNOME, Gedit.
    Applications -> Accessories -> Text Editor.
  2. Supongamos que tenemos un texto ya escrito.
    Texto original
  3. Damos click en la opción Edit -> Sign...
    Sign
  4. Seleccionamos la llave privada con la que deseamos firmar el texto, y damos click en OK.
    Choose Private Key
  5. Proporcionamos la contraseña para la llave privada y damos click en OK.
    Password
  6. Listo, ya tenemos el texto firmado.
    1. -----BEGIN PGP SIGNED MESSAGE-----
    2. Hash: SHA1
    3.  
    4. Gravitation cannot be held responsible for people falling in love. How on earth can you explain in terms of chemistry and physics so important a biological phenomenon as first love? Put your hand on a stove for a minute and it seems like an hour. Sit with that special girl for an hour and it seems like a minute. That's relativity.
    5. Albert Einstein
    6. US (German-born) physicist (1879 - 1955)
    7. We can learn even from our enemies.
    8. Ovid, Metamorphoses
    9. Roman poet (43 BC - 17 AD)
    10. What is done out of love always takes place beyond good and evil.
    11. Friedrich Nietzsche, Beyond Good and Evil, Aphorism 153
    12. German philosopher (1844 - 1900)
    13. -----BEGIN PGP SIGNATURE-----
    14. Version: GnuPG v1.4.6 (GNU/Linux)
    15. iD8DBQFIdUEtdyFlPZxVi/cRAtUGAKCnJslgk87F3tWfD+r8zKFNlLK7FwCgjJmV
    16. a6LagYC43fgK0Urse9iz/t8=
    17. =Di6S
    18. -----END PGP SIGNATURE-----

Verificar firma

Partiendo del texto firmado en la sección anterior.

  1. Damos click la opción Edit -> Decrypt/Verify.
    Verify Sign
  2. El aviso de firma válida se muestra en la esquina inferior derecha de la pantalla.
    Valid Signature

Hay que tener en mente que no debemos modificar nada dentro de las 'etiquetas'


-----BEGIN PGP SIGNED MESSAGE-----
-----END PGP SIGNATURE-----

Fuera de ellas se puede agregar lo que sea. Posteriormente si deseamos verificar la firma del mensaje no habra problema alguno.

De la misma manera si solo se desea firmar una parte de todo el texto que hay en el archivo, se selecciona la parte del texto deseado y se procede de la misma forma que se explico anteriormente.

Para verificar la firma no hace falta seleccionarlo y se procede de la forma que se explico anteriormente.

Nota: Si no se muestran las opciones de cifrado/firma en el editor de texto, es necesario activar el plugin correspondiente.
Edit -> Preferences
En la pestaña Plugins, habilitar la opción Text Encryption.

No Comments yet »

June 30th 2008

GPG

Introducción

La seguridad en las comunicaciones es un tema muy importante y delicado que no debemos tomar a la ligera, en internet sobre todo en donde el robo de identidad y de información es muy frecuente. Para evitar esto podemos tomar algunas medidas al respecto.

GPG es una herramienta de cifrado y firmas digitales, es la alternativa libre a PGP, ambas herramientas están basadas en el estándar OpenPGP. GPG es software libre.

El estándar OpenPGP usa como sistema de cifrado/firma un par de llaves: publica y privada. A esto se le conoce como Sistemas de cifrado asimétrico. Estas llaves nos permiten cifrar o firmar un documento.

La llave publica debe distribuirse a todas las personas con las que queremos mantener comunicación cifrada y/o que quieran verificar nuestras firmas, mientras que la llave privada la mantendremos nosotros, y nunca la compartiremos, para descifrar los mensajes que nos envían las demás personas.

Lo que se cifra con la llave publica se descifra con la llave privada y viceversa, lo que se cifra con la llave privada se descifra con la llave publica. En otras palabras, si queremos enviar un mensaje de tal forma que solo el destinatario lo pueda leer, debemos usar la llave publica de esta persona para cifrar el mensaje así con su llave privada esta persona descifrara el mensaje; si queremos enviar un documento firmado debemos usar nuestra llave privada para cifrarlo y con nuestra llave publica cualquier persona podrá descifrarlo y comprobara que fuimos nosotros quienes lo enviamos.

Ejemplos

Supongamos que Pedro quiere enviar un mensaje cifrado a Jaime, para esto Pedro debe tener la llave publica de Jaime y cifrar el mensaje con esta, posteriormente, Jaime, con su llave privada descifra el mensaje de Pedro.

Supongamos que Pedro quiere enviar un mensaje firmado a Jaime, para esto Pedro debe usar su llave privada y cifrar el mensaje con esta, posteriormente, Jaime, con la llave publica de Pedro descifrara el mensaje.

Creación de un par de llaves

Requisitos

Lo primero que tenemos que hacer es instalar GPG en nuestro sistema. Para instalarlo, desde una consola y como root.

# apt-get install gnupg

También podemos bajar el código fuente desde la pagina de descargas de GPG o los binarios (la mejor opción para usuarios de Windows).

Con esto ya podemos crear nuestro par de llaves, pero tendríamos que hacerlo desde la consola. Afortunadamente hay un entorno gráfico que nos permite hacer lo mismo. Lo instalamos.

# apt-get install seahorse

Creación

Con esto ya tenemos todo listo para crear nuestro juego de llaves. Iniciamos seahorse.

$ seahorse

Esta es la pantalla principal de seahorse:

Pantalla principal

Damos click a la opción Nuevo y después en continue.

Nueva Clave GPG

En la siguiente pantalla introducimos nuestro nombre completo, e-mail y un comentario. El único dato obligatorio es el nombre. En la parte de opciones avanzadas, en la opción tipo de encriptado dejamos seleccionada la opción DSA Elgamal, en la opción fortaleza de la clave podemos dejar 2048 o elegir un valor mas grande, en la opción expiration date seleccionamos Never expires. Y damos click en crear.

Datos

La siguiente pantalla nos preguntara por una contraseña, que podemos dejar en blanco. Y damos click en continuar.

La siguiente pantalla nos muestra el progreso de la creación de las llaves, tarda un poco, sean pacientes.

Proceso

Por ultimo ya tenemos nuestro par de llaves creadas.

Final

Nuestro identificador es 9C558BF7, esta clave la compartiremos con las personas que deseemos mantener comunicación.

Distribución de la llave publica

Compartir nuestra llave publica

Ahora vamos a colocar en un servidor nuestra llave publica para que cualquiera la pueda consultar.

Nos vamos a Editar -> Preferencia en la pestaña servidores de claves, seleccionamos algún servidor y damos click en cerrar.

Preferencias

Regresamos a la pantalla principal. Seleccionamos Remota -> Sincronizar y damos click en sincronizar.

Sincronizar

Ahora nuestra clave publica ya esta disponible para todo el mundo ver.

Obtención de otras llaves publicas

Para esto debemos obtener el identificador de la otra persona y el nombre del servidor en donde este su llave publica.

Supongamos que el servidor es hkp://pgp.mit.edu:11371, y el identificador de la llave publica es C5A3CF1E, también nos puede servir el correo electrónico de esa persona, nicolas(at)ihtoa(dot)org o su nombre, Nicolas Sarmiento.

Teniendo esto, nos vamos a Remote -> Find remote keys, y en el cuadro de texto search for keys containing escribimos el identificador de la clave o el nombre de la persona o su dirección de e-mail, en la opción Where to search seleccionamos el servidor en el cual vamos a buscar. Damos click en search.

Buscar

Se mostrara una pantalla en la cual aparece el resultado de la búsqueda, seleccionamos la clave que vamos a importar y damos click en import.

importar

Finalmente, en la pantalla principal de seahorse nos vamos a la pestaña Other Collected Keys y veremos la llave publica importada.

Llaves publicas

Enlaces

2 Comments »