Autor: Juan Manuel Merlos T茅varFecha: Octubre 2005
Hay cierto tipo de tareas que requieren el uso de la tecnlog铆a de la criptograf铆a de clave p煤blica. En mi experiencia personal el uso principal ha sido durante la creaci贸n de redes privadas virtuales.
Por suerte o por desgracia para el lector de este texto (en funci贸n de lo que busque) no vamos a explicar los conceptos de la criptograf铆a de clave p煤blica, s贸lo introduciremos vagamente el concepto de autoridad de certificaci贸n.
Autoridad de Certificaci贸n (cuyo acr贸nimo es AC o en Ingl茅s CA): Es una entidad que que se encarga de firmar digitalmente certificados. Un usuario crea un certificado que le identifica, a continuaci贸n, 茅ste le solicita a la autoridad de certificaci贸n que le firme ese certificado de tal forma que cualquier usuario que conf铆e en esa autoridad de certificaci贸n pueda confiar tambi茅n en la veracidad de la identidad usuario cuyo certificado ha sido firmado. Una autoridad de certificaci贸n poseer谩 un certificado que ser谩 distribu铆do de forma p煤blica y que servir谩 a los usuarios para comprobar si la firma ha sido hecha por dicha autoridad de certificaci贸n.
Las herramientas necesarias para la creaci贸n de una autoridad de certificaci贸n bajo el sistema operativo GNU/Linux se encuentran en el paquete openssl. Para realizar su instalaci贸n en el caso de Debian GNU/Linux:
apt-get install openssl
Los pasos para crear nuestra autoridad de certificaci贸n son los siguientes:
Editar el fichero /etc/openssl (/usr/lib/ssl/openssl.cnf)
Crear una autoridad de certificaci贸n (CA.sh ha de estar en el path, en Debian est谩 en el directorio /usr/lib/misc/)
cd
mkdir miCA
cd miCA
/usr/lib/misc/CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 1024 bit RSA private key
......................................++++++
..++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Provincia
Locality Name (eg, city) []:Ciudad
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Merlos.org
Organizational Unit Name (eg, section) []:Certificados
Common Name (eg, YOUR name) []:Nombre AC
Email Address []:mimail@site.com
Se crear谩n b谩sicamente dos ficheros importantes, el certificado de la AC y su clave privada. Cada vez que queramos firmar un certificado tendremos que utilizar la clave que se nos pidi贸 al crear la AC.
demoCA/cacert.pem demoCA/private/cakey.pem
En general, el certificado de la autoridad de certificaci贸n (cacert.pem) deber谩 poseerlo cualquier usuario que desee comprobar la autenticidad de otros certificados firmados digitalmente por nuestra autoridad de certificaci贸n.
Pasos para crear un nuevo certificado firmado por la autoridad de certificaci贸n:
cd
cd miCA
openssl req -new -keyout newkey.pem -out newreq.pem -days 360
cat newkey.pem newreq.pem > new.csr
openssl ca -policy policy_anything -out newcert.pem -infiles new.csr
Cuando ejecutemos la solicitud del certificado (openssl req) se nos pedir谩n los datos del usuario que ser谩 propietario del certificado (son los mismos campos de datos que se nos pidieron al crear la AC).
Los ficheros creados son:
newkey.pem: Clave privada del usuario
newreq.pem: Solicitud de Certificado (Certificate request)
newcert.pem: Certificado X.509 del usuario firmado por la AC
Es posible que tengamos que convertir los certificados a formatos aceptados por sistemas operativos comerciales (l茅ase MS WinDows), para ello podremos ejecutar los siguientes comandos:
openssl x509 -in cacert.pem -out cacert.cer -sha1 -outform DER
openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -certfile demoCA/cacert.pem -out newcert.p12
Cuando se importe este certificado P12, se estar谩 importando tambi茅n el certificado de la autoridad de certificaci贸n, as铆 como la clave privada, as铆 que s贸lo es necesario este fichero.
openssl ca -gencrl -out crl.pem
Este fichero contiene la informaci贸n de los certificados que han sido revocados, por tanto, cuando revoquemos alg煤n certificado deberemos actualizar este fichero y copiarlo en los lugares que lo utilicen.
Esta tarea se realiza cuando un certificado ha dejado de tener validez o ya no confiamos en la persona que lo posee
openssl ca -revoke certificado.pem
openssl dhparam -out dh1024.pem 1024