You are on page 1of 13

Encriptacin GPG Sitios Seguros.

Encriptacin. GPG. Sitios Seguros. - Parte N 10


Temas a desarrollar:
1.- Criptografa. Protegiendo el envo de datos
2. Introduccin a Firma Digital
3. GPG (Gnu Privacy Guard)
4. Sitios Web Seguros con https
Objetivos: Desarrollar habilidades en la encriptacin de la informacin. Utilizar
Firmas Seguras y Sitios Web Seguros.

1.- Criptografa. Protegiendo el envo


de datos.
En nuestro da a da si queremos guardar informacin confidencial sobre
nuestros clientes podremos destinar una oficina especial en la cual solo pueda
ingresar personal autorizado llave de por medio y si fuera necesario podramos
protegerla designando un guardia para que custodie la oficina.
Si tenemos que enviar informacin confidencial por correo utilizaremos los
servicios de la mejor empresa de correo y si queremos guardar nuestro dinero
para que no nos lo roben podremos guardarlo en una caja fuerte del banco que
nos resulte ms seguro.
Por desgracia en una red informtica estas opciones no existen y se tard
bastante en poner al alcance de todos la principal forma de proteger nuestra
informacin: la criptografa.
El cifrado de los datos nos va a permitir desde proteger nuestro correo
personal para que ningn curioso lo pueda leer, hasta controlar el acceso a
nuestros archivos de forma que slo personas autorizadas puedan examinar y
modificar su contenido, pasando por proteger nuestras claves cuando nos
conectamos a un sistema remoto o nuestros datos bancarios cuando
realizamos una compra a travs de Internet.
La criptografa es la ciencia que trata lo problemas tericos
relacionados con la seguridad en el intercambio de mensajes en clave
entre un emisor y un receptor que utilizan un canal de comunicacin.
Esta ciencia est dividida en dos grandes ramas: la criptografa, ocupada del
cifrado de mensajes en clave y del diseo de criptosistemas y el criptoanlisis,
que trata de descifrar los mensajes en clave, rompiendo as el criptosistema.

360

Encriptacin GPG Sitios Seguros.

El uso original de la criptografa era proteger la confidencialidad de


informaciones militares y polticas. En la actualidad resulta interesante y til
para cualquier persona que est interesada en la confidencialidad de sus datos.
Hoy por hoy adems de mantener en secreto ciertos datos se busca garantizar
la autenticacin en la transmisin de los datos. Es decir que podamos confiar
ciegamente que el emisor del mensaje es quien dice ser, y no otro, y la
integridad del mensaje que leemos, esto significa que sea el mismo que nos
enviaron.
Tratemos de ver de forma sencilla como es el proceso de encriptacin:
El emisor emite un texto plano, que es tratado por un cifrador con la ayuda de
una clave, k, creando un texto cifrado (criptograma). Este criptograma llega al
descifrador a travs de un canal de comunicaciones. El descifrador convierte el
criptograma de nuevo en texto plano, usando ahora otra clave, k (veremos
ms adelante que esta clave puede o no ser la misma que la utilizada para
cifrar), y este texto plano ha de coincidir con el emitido inicialmente para que
se cumplan los principios bsicos de la criptografa moderna.
El elemento ms importante en este proceso es el cifrador, que ha de utilizar el
algoritmo de cifrado para convertir el texto plano en un criptograma.
Usualmente, para hacer esto, el cifrador depende de un parmetro exterior,
que se conoce como clave de cifrado, que es aplicado a una funcin
matemtica irreversible. Slo es posible invertir la funcin si se dispone de la
clave de descifrado.
Existen dos tipos bsicos de criptografa:
1. la criptografa simtrica,
2. la criptografa asimtrica
Veamos en detalle cada una de ellas:
Cmo es el proceso de criptografa simtrica?
En la criptografa simtrica se utiliza siempre la misma clave, esta clave es
compartida tanto por el generador de una transaccin o un mensaje como por
el receptor.
El problema radica en que al tener que compartir la misma clave no se puede
identificar el emisor o fuente de un mensaje.
En la criptografa asimtrica se utilizan claves distintas, es decir que cada
una de las partes que intervienen en la transaccin poseen un par de claves:
una clave privada y una clave pblica.
Cmo es el proceso de criptografa asimtrica?

360

Encriptacin GPG Sitios Seguros.

En este sistema, cada persona obtiene un par de claves, llamadas clave pblica
y clave privada.
La clave pblica de cada una, como su nombre lo indica, es de dominio pblico
y la privada se mantiene en secreto. La necesidad de que emisor y receptor
compartan la misma clave queda eliminada: las comunicaciones slo necesitan
de la clave pblica y entonces la clave privada no se transmite ni se comparte,
es una "realmente Privada".
De sta forma no es necesario confiar en los canales de comunicacin,
corriendo el riesgo de que alguien est 'escuchando' en la lnea de
comunicacin o de que se viole el secreto de la clave privada.
Cualquier persona puede enviar un mensaje confidencial con slo utilizar la
clave pblica, pero el mensaje slo puede desencriptarse con la clave privada
que posee nicamente el receptor. Ms an, la criptografa asimtrica puede
utilizarse tanto para la autenticacin (firmas digitales) como para mantener la
privacidad (encriptado).
La ventaja principal de este mtodo de cifrado es su mayor seguridad. Las
claves privadas no se transmiten ni se revelan a persona alguna. En el
sistema simtrico, siempre existe la posibilidad de que sea descubierta durante
la transmisin.

2.

Introduccin a Firma Digital.

Otra ventaja importante consiste en que proporciona un mtodo de firma


digital.
La autenticacin digital es un proceso por el cual el receptor de un mensaje
digital puede mantener confidencial la identidad del que lo enva y/o la
integridad del mensaje.
Pero ....
cmo este proceso en la prctica?
Vemoslo en un ejemplo, supongamos que Mariana le quiere enviar un
documento a Fabin, obtiene su clave pblica y la utiliza para encriptar el
documento; luego lo enva. Cuando Fabin lo recibe, utiliza su clave privada
para desencriptarlo y leerlo. Nadie escucha ni puede desencriptar el mensaje.
Por qu? Porque Fabin recibe documentos que slo l puede desencriptar.

360

Encriptacin GPG Sitios Seguros.

En este caso el mensaje est protegido mientras la clave privada


permanece solo en manos de Fabin.
Cuando un receptor desea recibir una informacin cifrada, ha de hacer
llegar a todos los potenciales emisores su clave pblica, para que estos
cifren los mensajes con dicha clave.
De este modo, el nico que podr descifrar el mensaje ser el legtimo
receptor, mediante su clave privada.

3.-

GPG (Gnu Privacy Guard)

GPG es una herramienta conocida como un sistema de firma digital para correo
electrnico.
Una firma digital es un bloque de caracteres que acompaa a un documento,
acreditando quin es su autor y que no ha existido manipulacin posterior de
los datos. El proceso de firma digital que realiza este software consiste en
aplicar un algoritmo sobre el texto a firmar, obteniendo un extracto de longitud
fija y nico para ese mensaje. Este extracto cuya longitud oscila entre 176 y
160 bits se somete al cifrado (RSA DSS) mediante la clave secreta del autor,
previa peticin de contrasea.

360

Encriptacin GPG Sitios Seguros.

Para verificar la firma, el receptor descifra la firma con la clave pblica del
emisor, comprime con la funcin hash al texto original recibido y compara el
resultado de la parte descifrada con la parte comprimida, si ambas coinciden el
emisor tiene garanta de la parte descifrada con la parte comprimida, si ambas
coinciden el emisor tiene garanta que el texto no ha sido modificado.
El mecanismo de firma digital soporta los servicios de integridad de datos,
autenticacin de origen y no repudio con prueba de origen. Para proporcionar
el servicio de no repudio con prueba de entrega es necesario forzar al receptor
a enviar al emisor un recibo firmado digitalmente.
Podemos obtener esta aplicacin de:
http://www.gnupg.org/ o ftp://ftp.gnupg.org/gcrypt/
La instalacin se explica muy bien en el archivo INSTALL y en los archivos que
hay en el directorio doc, que trae el paquete.
Lo primero que hay que hacer una vez instalado es generar el par de llaves
pblica y privada que usaremos, ya que el gpg utiliza un sistema de
codificacin asimtrico.
Qu es todo esto?
Los sistemas de codificacin simtricos utilizan una clave para cifrar y descifrar
los datos. Esto quiere decir que si alguien conoce la clave de cifrado puede
interpretar los mensajes que "capture" y tenga esa clave como firma. Los
sistemas asimtricos utilizan una clave, llamada pblica, para encriptar la
informacin y una clave, llamada privada, para descifrarla.Con este mtodo,
por ms que se sepa la clave pblica, no se pueden interpretar los datos de un
mensaje cifrado.
El primer paso que ejecutaremos ser:
$ gpg --gen-key
gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
gpg: ATENCIN: se est usando memoria insegura!
gpg: por favor, vea http://www.gnupg.org/faq.html para ms informacin
Por favor seleccione tipo de clave deseado:
(1) DSA y ElGamal (por defecto)
(2) DSA (slo firmar)
(5) RSA (slo firmar)
Su eleccin:

360

Encriptacin GPG Sitios Seguros.

Para que no salga el mensaje:


gpg: ATENCIN: se est usando memoria insegura!
Tendremos que colocar en el archivo ~/.gnupg/gpg.conf una lnea que
contenga:
no-secmem-warning
Como podemos ver, lo primero que se nos pide es el algoritmo de cifrado, y el
recomendado es el que aparece por defecto, ya que no est patentado.
Su eleccin: 1
El par de claves DSA tendr 1024 bits.
Listo para generar un nuevo par de claves ELG-E.
el tamao mnimo es 768 bits
el tamao por defecto es 1024 bits
el tamao mximo recomendado es 2048 bits
De qu tamao quiere la clave (1024)?
Lo siguiente es la longitud de la clave, cuanto ms larga, ms segura, pero
lleva ms tiempo generarla y firmar correos, etc. Con el tamao por defecto
tenemos un buen nivel de seguridad.
El tamao requerido es de 1024 bits
Por favor, especifique el perodo de validez de la clave.
0 = la clave nunca caduca
<n> = la clave caduca en n das
<n>w = la clave caduca en n semanas
<n>m = la clave caduca en n meses
<n>y = la clave caduca en n aos
Validez de la clave (0)?
Seguimos con el perodo de validez de la clave, vamos a elegir que nunca
caduque:
Key nunca caduca
Es correcto (s/n)? s
Necesitamos ahora un identificador de usuario para identificar nuestra clave.
El programa construye el identificador a partir del Nombre Real, Comentario y
Direccin de Correo Electrnico de esta forma:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

360

Encriptacin GPG Sitios Seguros.

Nombre y apellidos:
Aqu tenemos que escribir lo que nos solicita.
Nombre y apellidos: Pedro prueba
Direccin de correo electrnico: pedro@pedrito.com.ar
Comentario: El mejor usuario
Ha seleccionado este ID de usuario:
"Pedro prueba (El mejor usuario) <pedro@pedrito.com.ar>"
Cambia (N)ombre, (C)omentario, (D)ireccin o (V)ale/(S)alir?
Aceptamos las opciones.
Cambia (N)ombre, (C)omentario, (D)ireccin o (V)ale/(S)alir? v
Necesita una contrasea para proteger su clave secreta.
Es necesario generar muchos bytes aleatorios. Es una buena idea realizar
alguna otra tarea (trabajar en otra ventana/consola, mover el mouse, usar la
red y los discos) durante la generacin de nmeros primos. Esto da al
generador de nmeros aleatorios mayor oportunidad de recoger suficiente
entropa (el porcentaje de informacin y redundancia que contienen).
.+++++++++++++++++++++++++++++++++++++++++++++++
++++++++.++++++++++++++++++++.+++++++++++++++++++
++++++..+++++.+++++.+++++..+++++++++++++++.++++
+........>.+++++...........>+++++<+++++...................>+++++<+++++++
+++++++++++++.+++++.+++++++++++++++++++++++++++++
+.+++++++++++++++++++++++++.++++++++++++++++++++.
++++++++++.+++++++++++++++.+++++++++++++++>++++
+.......<+++++...>+++++....................................<+++++...........>.++++
+.................................>+++++.<+++++.................++++
+^^^^^^^^^^^
gpg: /home/pedro/.gnupg/trustdb.gpg: se ha creado base de datos de confianza
claves pblica y secreta creadas y firmadas.
clave marcada como de confianza absoluta.
pub 1024D/C8F3702B 2003-05-16 Pedro prueba (El mejor usuario)
<pedro@pedrito.com.ar>
Huella de clave = B124 FD41 717E 0761 5E7D B4E5 4EA7 4AF9 C8F3 702B sub
1024g/2BA33BAE 2003-05-16
Listo, ya tenemos nuestro par de claves, ahora pondremos en un archivo la
clave pblica, para compartirla.
$ gpg --export -a
-----BEGIN PGP PUBLIC KEY BLOCK----Version: GnuPG v1.2.1 (GNU/Linux)
mQGiBD7EUHsRBADkAfVr9jWrbPKbnND6Fpo4a/qCi9HANt0L4Cze9DaRR2WvQh
Og
39TIMBZxQIXN4b7I6RP+hKEwifmpylV7+GRdqvKGOGO6f5yGE+GCrsh3iGG5X28
v
UjYFBE8GY8+k5ZKoUUA352J4KaudIOM0qfhzM8bqeFpPo7Divlis0JBIBwCg1Ixe

360

Encriptacin GPG Sitios Seguros.

EDTYXPA3IuxmRi7FFqAvytMEANnaFr8ArZDSw9PEY5dR0Zdx1lDzQ+Tn1YMd23E
C
c13gwmzve8FLPnNpod8LDH58VBUBgVKFbBmBXz6SQrp/WZfE6MMgVucpTD0vz
8RW
UO3887Hr7Y/nRDzbYhcLdf7iQ739gWCaKMorA8lfWtIU+mWW2tU/K/pCWXNWyiz
0
MsAtBAC2t09SGsqJi0BBw2KUjsfIVxAEeslsO7y7d1BqvmgiFkMssvhdjLRq0E6q
YL0Y5Nb3MOGJxUxaVPYIGti8oa7QTnpZoh52NJyWPnJ500NrdImJ46LkvYgF2M3/
s46k7t5BDqmZf1eAvVf8pfPQlEEdASj6lYqd0DXeO32bdokbALQ2UGVkcm8gcHJ1
ZWJhIChFbCBtZWpvciB1c3VhcmlvKSA8cGVkcm9AcGVkcml0by5jb20uYXI+iFkE
ExECABkFAj7EUHsECwcDAgMVAgMDFgIBAh4BAheAAAoJEE6nSvnI83Ar6mcAnie
k
0xksKzV02ccYIKNOSTg85gBOAJsE5BVH1TVPdA5sdU9NcR46j3I3ibkBDQQ+xFCI
EAQAuwcteknhMkGBH7OQWsrpQH+4ESSOYfFathqwSLzx4U00t9AlmwMKgxa8w
yyv
Mnl4Cr4xdAj9G1/Py981Eklill1xQAukJaEJxY4dLfEvRwlSngd6QnLiIiqfYJBa
oWnX6YkkzR1O2CVNDYDWGmbwdWrLC6fF6AM7llefZJnhTXcABA0D/3k6wVmSz
Nfy
P37uOnkIDjM2yiwzdBX0VBMuNIRz/6INtynFn6sbaqpxI0ijHl4DWo0yaaQo3Ca1
KC7hV+auJA48L5jR/XhJm8FszfnN01Jo6ueZic/TTJdMFPLH376DoUeOpUsGdwNp
F0KAKOWFEJO+6KhGVnM2Ugr2rjB9K+DliEYEGBECAAYFAj7EUIgACgkQTqdK+cjz
cCvXdgCfYOt8YtslYI8LfVjzSVPheixwmMYAn26TG6HROvvz27yf8JAyJu8ud4el
=urZ5
-----END PGP PUBLIC KEY BLOCK----Si no colocamos la opcin -a, la salida sera binaria. Ahora tenemos que
mandarla por mail o direccionar la salida a un archivo y enviarlo de alguna
forma a la persona que queremos que me escriba mensajes cifrados usando mi
clave pblica.
$ gpg -export [uid]
$ gpg -import [archivo]
Con import tomamos la/las claves de un archivo y las agregamos a nuestro
anillo de claves.
Con la opcin -fingerprint, podemos ver la huella de la clave y verificar que sea
correcta y se corresponda con su dueo.
$ gpg -fingerprint
/home/pedro/.gnupg/pubring.gpg
-----------------------------pub 1024D/C8F3702B 2003-05-16 Pedro prueba (El mejor usuario)
<pedro@pedrito.com.ar>
Huella de clave = B124 FD41 717E 0761 5E7D B4E5 4EA7 4AF9 C8F3 702B
sub 1024g/2BA33BAE 2003-05-16
Para encriptar un archivo usamos (genera archivo.gpg):
$ gpg -e archivo

360

Encriptacin GPG Sitios Seguros.

Para encriptarlo con la clave de otro usuario:


$ gpg -er usuario archivo
Podemos agregar la opcin -a para que genere un archivo ascii (genera
archivo.asc).
Para descifrar el archivo:
$ gpg -o pepe -d pepe.asc
Necesitamos una contrasea para desbloquear la clave secreta del usuario:
"Pedro prueba (El mejor usuario) <pedro@pedrito.com.ar>"
clave ELG-E de 1024 bits, ID 2BA33BAE, creada el 2003-05-16(ID clave primaria
C8F3702B)
gpg: cifrado con clave ELG-E de 1024 bits, ID 2BA33BAE, creada el 2003-05-16
"Pedro prueba (El mejor usuario) <pedro@pedrito.com.ar>"
Usamos el -o para que la salida sea dirigida hacia all y -d para descifrar el
mensaje.
Para firmar un archivo o mail con nuestra clave usamos (el ej. genera
archivo.txt.asc):
$ gpg -a -s archivo.txt
Ojo!!! el archivo .asc creado contiene la informacin y la firma, si queremos
tener en un slo archivo la firma, sin la informacin usamos:
$gpg -a -b archivo.txt
Para verificar una firma tipeamos en la consola:
$ gpg -v archivo.txt.asc
Ejemplo:
$ gpg -v archivo.txt.asc
gpg: cabecera de armadura: Version: GnuPG v1.2.1 (GNU/Linux)
gpg: asumiendo que hay datos firmados en `archivo.txt'
gpg: Firma creada el vie 16 may 2003 00:32:58 ART usando clave DSA ID
C8F3702B
gpg:
Firma
correcta
de
"Pedro
prueba
(El
mejor
usuario)
<pedro@pedrito.com.ar>"

360

Encriptacin GPG Sitios Seguros.

Para borrar una clave usamos el siguiente comando:


$ gpg --delete-key [UID]

4.-

Sitios Web Seguros con https.

Lo primero que tenemos que hacer es crear un nuevo sitio. Lo hacemos de


la siguiente forma:
Nos cambiamos al directorio /var/www/ con cd.
Una vez all ejecutamos el comando mkdir para generar un nuevo directorio
llamado seguro.
Nos cambiamos a l utilizando nuevamente cd y creamos con nuestro
editor de texto un archivo index.html
En l escribimos la estructura, bsica, muy bsica de un documento html:
<html>
<head>
</title> Sitio seguro </title>
</head>
<h1 align="center">Bienvenido a Seguro </h1><
<body>
</html>
Ahora que ya tenemos la carpeta de nuestro sitio y su pgina principal
vamos a configurar el Servidor Web.
cd /etc/apache-ssl
Parados en este directorio ejecutamos en la consola el siguiente comando
para generar la clave encriptada:
openssl genrsa -des3 httpsd.key
Luego tipeamos lo siguiente:
openssl reg -new -x509 httpsd.key
Para generar el certificado que vamos a mostrarle a quienes visiten nuestro
sitio como garanta de seguridad ejecutamos el siguiente comando:
httpsd key > httpsd.crt
Ahora vamos a editar el archivo /etc/hosts y agregarle abajo de todo la ip
de nuestra mquina y el nombre de dominio de nuestro sitio seguro.

360

Encriptacin GPG Sitios Seguros.

vi /etc/hosts
10.10.3.x www.seguro.com.ar
Ya tenemos todo listo para preparar nuestro sitio seguro.
Cuando nos conectemos a este sitio, vamos a ver que hay una diferencia.
Cul es?
Lo primero que nos aparece es el cartel con el certificado. Los certificados
suelen ser otorgados por una entidad certificante que sigue ciertas normas.
En este caso nosotros mismos nos vamos a entregar nuestro certificado
usando la misma norma que las entidades.
Sin embargo no sera vlido que lo mostrramos en Internet, porque a
nadie le interesa que nos certifiquemos a nosotros mismos... por qu van a
creernos? Sera como que nuestra mam dijera que somos buenitos y no le
hacemos mal a nadie....
Sigamos.... lo que tenemos que hacer ahora es indicarle a Apache dnde
est nuestro nuevo sitio.
Hacemos
vi /etc/apache/httpd.conf
Hay una lnea de este archivo, con nmero....1309, ms o menos que dice:
<VirtualHost _default:443>
Nosotros tenemos que transformar esto en nuestro virtual host, pero para
que funcione tenemos que agregar una nueva variable por encima de la
lnea anterior.
NameVirtualHost
Esta variable va a tener la ip de cada uno de nuestros equipos. Esto le
indicar a Apache que cada vez que llegue una conexin para esta ip la
busque en este virtual host.
NameVirutalHost 10.10.3.x
<VirtualHost www.seguro.com.ar:443>
OJO!!! Tienen que borrar el _default.
Vamos bien hasta ahora???

360

Encriptacin GPG Sitios Seguros.

Despus tenemos algunas variables que ya conocemos como


DocumentRoot, en este caso esta variable tiene que apuntar al directorio
en dnde tenemos guardado el sitio
DocumentRoot "/var/www/seguro"
Despus siguen variables un poco menos importantes como el email del
Administrador. Esta variable siempre es til si queremos recibir en nuestro
mail notificaciones de problemas.
ServerAdmin webmaster@seguro.com.ar
ServerName www.seguro.com.ar
Y despus vienen las variables de los errores y los accesos.
Hasta aqu estamos configurando las mismas variables que configuramos
para cualquier servidor virtual
ErrorLog logs/seguro_error_log
TransferLog logs/seguro_access_log
Despus de ellas tenemos otras variables que son muy importantes!
Busquemos una que dice:
SSLCertificateFile /etc/apache-ssl
Esta variable indica dnde est nuestro certificado.

Ahora dnde est la clave de nuestro sitio seguro?


SSLCertificateKeyFile /etc/apache-ssl
Una vez que tenemos definidas estas dos variables, guardamos el archivo y
probamos si funciona levantando nuevamente el servicio. Cuando levanta
el servicio nos tiene que pedir una clave, ah tipeamos la que definimos
previamente.
OJO! En el navegador tenemos que usar https, no http!
https://www.seguro.com.ar
.y ah, si todo funcion bien nos muestra el certificado.

360

Encriptacin GPG Sitios Seguros.

Nos aclara por supuesto que este certificado lo firm .ah! nosotros! Con
todos los detalles que definimos y recin cuando le demos OK nos mostrar
la pgina definida como index.
Lo que hacemos con esto es encriptar todos los datos que pasan entre una
mquina y otra. Si tuviramos que crear un web mail podramos poner la
pgina de login encriptado. Podemos optar por encriptar todo el sitio slo
el login.
Algunos webmails no los tienen porque los certificados se pagan. Como
generalmente la gente no agrega sola el protocolo seguro nosotros
tendremos que redireccionarlo.
Hay varias formas de hacer esto, podemos redireccionar directamente
permitirle a la persona que decida ingresar al sitio seguro.

360

You might also like