14
 DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] Trabajo realizado para la materia de criptografía ESI5 UNIPILOTO   Doc. Jhon Jairo Parra Leon UNIVERSIDAD PILOTO DE COLOMBIA Especialización en Seguridad Informática Criptografía Instalación de servidor openCa en Linux fedora Autores: DIANA CAROLINA ECHEVERRIA ROJAS HECTOR LEONIDAS DUARTE GARCIA openCA: Es una i nfraestructura de Clave Pública (PKI) siendo uno de los de mayor aceptación. El problema es que la mayoría de aplicaciones se puede asegurar con los certificados y claves, pero es realmente difícil y costoso de instalar las PKI, la razón es que la flexibilidad del software TrustCenter (especialmente para Unix) es caro. Este fue el punto de partida de OpenCA. El objetivo es la producción de un sistema de código abierto TrustCenter para apoyar a la comunidad con una buena solución, de bajo costo y con garantía de futuro para su infraestructura de base. OpenCA comenzó en 1999. La primera idea consistió en tres partes principales - una interfaz web Perl, un backend OpenSSL para la operación de cifrado y una base de datos. Este simple concepto sigue siendo el lema de hoy en día. Casi todas las operaciones se pueden realizar a través de alguna de las interfaces web. OpenCA tiene seis interfaces pre-configuradas y muchas más se pueden crear a partir de ellas, dependiendo de la necesidad. El back-end de cifrado aún OpenSSL, que no es en absoluto una situación de desventaja. Se quiere construir una infraestructura de la organización de una PKI, siendo este el principal objetivo de OpenSSL. La base de datos almacena toda la información necesaria acerca de los objetos de los usuarios de cifrado, como solicitudes de firma de certificado (CSR), certificados, solicitudes de revocación de certificados (CRRS) y listas de certificados revocados (CRL). Hay muchos elementos que todavía necesitan ser implementados. Hoy en día OpenCA cuenta con el apoyo de los siguientes elementos (esto es una lista incompleta solo para darles una idea de la complejidad del tema es):  Public interface  LDAP interface  RA interface  CA interface  SCEP  OCSP  IP-filters for interfaces

OpenCa Hector Diana

Embed Size (px)

Citation preview

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 1/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

UNIVERSIDAD PILOTO DE COLOMBIA

Especialización en Seguridad Informática

Criptografía

Instalación de servidor openCa en Linux fedora

Autores:

DIANA CAROLINA ECHEVERRIA ROJAS

HECTOR LEONIDAS DUARTE GARCIA

openCA: Es una infraestructura de Clave Pública (PKI) siendo uno de los de

mayor aceptación. El problema es que la mayoría de aplicaciones se puede

asegurar con los certificados y claves, pero es realmente difícil y costoso de

instalar las PKI, la razón es que la flexibilidad del software TrustCenter

(especialmente para Unix) es caro. Este fue el punto de partida de OpenCA. El

objetivo es la producción de un sistema de código abierto TrustCenter para

apoyar a la comunidad con una buena solución, de bajo costo y con garantía

de futuro para su infraestructura de base.

OpenCA comenzó en 1999. La primera idea consistió en tres partes principales

- una interfaz web Perl, un backend OpenSSL para la operación de cifrado y

una base de datos. Este simple concepto sigue siendo el lema de hoy en día.

Casi todas las operaciones se pueden realizar a través de alguna de las

interfaces web. OpenCA tiene seis interfaces pre-configuradas y muchas más

se pueden crear a partir de ellas, dependiendo de la necesidad. El back-end de

cifrado aún OpenSSL, que no es en absoluto una situación de desventaja. Se

quiere construir una infraestructura de la organización de una PKI, siendo este

el principal objetivo de OpenSSL. La base de datos almacena toda la

información necesaria acerca de los objetos de los usuarios de cifrado, como

solicitudes de firma de certificado (CSR), certificados, solicitudes de revocación

de certificados (CRRS) y listas de certificados revocados (CRL).

Hay muchos elementos que todavía necesitan ser implementados. Hoy en día

OpenCA cuenta con el apoyo de los siguientes elementos (esto es una lista

incompleta solo para darles una idea de la complejidad del tema es):

•  Public interface•  LDAP interface•  RA interface•  CA interface•  SCEP•  OCSP•  IP-filters for interfaces

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 2/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

•  Passphrase based login•  Certificate based login (including smartcards)•  Role Based Access Control•  Flexible Certificate Subjects•  Flexible Certificate Extensions•  PIN based revocation•  Digital signature based revocation•  CRL issuing•  Warnings for soon to expire certificates•  support for nearly every (graphical) browser

Generalidades de OpenCA

La jerarquía básica

La idea básica de cada PKI X.509 (Public Key Infrastructure) es una

organización jerárquica fuerte. Esto se traduce en un árbol de bases de datossi tratamos de crear una arquitectura distribuida PKI

Fuente: openca-guide for Versions 0.9.2+. Pag 20

OpenCA actualmente soporta lo siguiente:

•  Nodes (for node manager)

•  CA

•  RA

•  LDAP

•  Pub

•  SCEP

Nodes: Esta interfaz maneja la base de datos y maneja todas las

funcionalidades de exportación y de importación.

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 3/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

La base de datos se puede inicializar, lo que significa que OpenCA puede crear

todas las tablas, pero OpenCA no puede crear la propia base de datos porque

esto es diferente para cada proveedor. Así que necesitamos una base de datos

con los correspondientes derechos de acceso y una nueva base de datos. La

interfaz incluye algunas funciones para el backup y la recuperación de un nodo,

pero por favor, tenga en cuenta que usted debe tener una copia de seguridadindependiente de la clave privada del CA y el certificado. No existe un

mecanismo por defecto en OpenCA de copia de seguridad de la clave privada.

No ponerlo en práctica porque primero no encontró la forma general de

seguridad de copia de seguridad de una clave privada y la segunda de la CA

HSM uso y por lo tanto, se necesita una estrategia de copia de seguridad

totalmente diferente y por lo general de propiedad.

La exportación e importación correrá a cargo de esta interfaz también. Puede

configurar diferentes reglas para la sincronización con los nodos de una mayor

y un menor nivel de la jerarquía. Esto incluye la configuración de los objetos y

el estado que pueden ser intercambiados. Los filtros configurados evitar las

inyecciones de estado de los niveles más bajos de la jerarquía

CA: La interfaz de CA tiene todas las funciones que se necesitan para crear

certificados y listas de certificados revocados (CRL). El CA también incluye

todas las funciones que puede utilizar para cambiar la configuración a través

de una interfaz web. No es posible cambiar la configuración a través de otra

interfaz web.

El CA es el hogar de los procesadores por lotes también. OpenCA incluye

algunos procesadores por lotes de gran alcance para la creación de

certificados. Estos procesadores por lotes se puede utilizar para la creación

automática de certificados de Planificación de varios recursos empresariales

(ERP) (por ejemplo SAP, SU NIS o / etc / passwd).

RA: OpenCA RA es capaz de manejar todo tipo de solicitudes. Esto incluye

cosas como la edición de las solicitudes, aprobar las solicitudes, la creación de

claves privadas con tarjetas inteligentes, eliminar solicitudes mal y usuarios de

correo electrónico

LDAP: La interfaz de LDAP se llevó a cabo para separar la gestión de LDAP por

completo del resto del software. Esto es necesario porque hay muchas

funciones que realmente son específicos para los administradores de LDAP, con

sólo unos pocos usuarios que necesitan estas características.

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 4/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Pub: La interfaz pública incluye todas las pequeñas cosas que los usuarios

necesitan. Esta es sólo una pequeña lista y tal vez es incompleta.

•  genera CSR (solicitud de certificado de firma) para Microsoft Internet

Explorer

•  genera CSR para Mozilla 1.1 + y Netscape Communicator y Navigator•  genera cliente solicita independientes y las claves privadas (por ejemplo,

Konqueror de KDE o los administradores de servidores que no saben cómo

crear una clave privada y la petición).

•  recibe con formato PEM PKCS \ # 10 solicitudes de servidores

•  certificados de matricula

•  inscribe CRL

•  Compatible con dos métodos diferentes de revocación

•  Búsqueda de certificados

•  Las pruebas de los certificados de usuario en los navegadores (Microsoft

Internet Explorer y Netscape Communicator y Navigator 4.7x)

Para el desarrollo de este laboratorio se requiere de:

  Distribución Fedora 14  Tener instalados los siguientes paquetes:

o  Mysqlo  openSSLo  perlo  Openldapo  Apacheo  DNS

  Se utilizaran dos usaurios:o  User hector – pw:clarayo  User root – pw clara1021.

Paso1:Cambier en el archivo selinux ubicado en /etc/selinux/config el estado deSELINUX asi:

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 5/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Paso2: Instalamos los paquetes requeridos para la instalación de openCA.

Mediante el comando “yum” hacemos el proceso de descargar de lasdependencias necesarias para el desarrollo de este laboratorio.

# yum install gcc openssl openssl-devel mod_ssl mysql mysql-devel mysql-

libs mysql-server perl perl-devel perl-XML-Parser *Authen::SASL*

*DB_File* *DBD::mysql* perl-Class-DBI perl-BerkeleyDB perl-BDB db4* wget

vim expat expat-devel

Ejecución instrucción necesaria para tener todos los paquetes requeridos paramontar el servidor openCA

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 6/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Número total de paquetes requeridos, de acuerdo a la versión de fedorautilizada

Paso3: 

Activar el servicio de mysql, crear la base de datos openca y asignar los

permisos para el usuario openca@localhost.#service mysqld start

#mysql –h localhost –u root –p

mysql>create database openca;

mysql>grant all privileges on openca.* openca@localhost identified by

“openca”;

Con el commando show database; se visualiza la existencia de la DB openca

Paso4:Descargar los archivos fuentes de OpenCA en una ruta: Para el desarrollo de

este paso utilizaremos el comando mkdir para crear un fichero en la siguiente

posición /opt/openca-archivos/

#mkdir /opt/openca-archivos/

#cd /opt/openca-archivos/

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 7/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Paso5:Luego utilizaremos el comando wget para descargar los paquetes openca-tools-1.3.0.tar.gz y tar   xvzf  openca‐base‐1.1.1.tar.gz 

# wget http://www.openca.org/alby/download?target=openca-tools-

1.3.0.tar.gz 

# wget http://www.openca.org/alby/download?target=openca-base-

1.1.1.tar.gz

openca-tools-1.3.0.tar.gz 

openca-base-1.1.1.tar.gz 

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 8/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Paso6:Procedemos a descomprimir los archivos openca-tools-1.3.0.tar.gz yopenca-base-1.1.1.tar.gz mediante el comando tar xvzf.

# tar xvzf openca-tools-1.3.0.tar.gz

# tar xvzf openca-base-1.1.1.tar.gz

openca‐tools

‐1.3.0.tar.gz

 

openca‐

base‐

1.1.1.tar.gz 

Paso7:Ingresamos al fichero openca-tools-1.3.0 mediante la instrucción cd /opt/openca-archivos/openca-tools-1.3.0

# cd /opt/openca-archivos/openca-tools-1.3.0

openca-tools-1.3.0

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 9/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Paso8:Instalamos el paquete utilizando las siguientes instrucciones.

#./configure

#make clean

#make

#make install

Paso9:Ingresamos al fichero openca-base-1.1.1 mediante la instrucción cd /opt/openca-archivos/openca-base-1.1.1 y en este fichero creamos un archivo.sh donde incluiremos las siguientes instrucciones, luego procederemos aejecutarlo mediante una de estas instrucciones “sh nombreArchivo” ó “./nombreArchivo”.

./configure --prefix=/opt/openca-1.1.0 \

--with-ca-organization="HECTORSOFT" \

--with-httpd-fs-prefix=/var/www \

--with-httpd-main-dir=pki \--with-db-name=openca \

--with-db-host=localhost \

--with-db-user=openca \

--with-db-password= \

--with-db-type=mysql \

--with-service-mail-account="[email protected]"

# cd /opt/openca-archivos/ openca-base-1.1.1 # vi script.sh

Paso10:Ejecutamos el archivo creado

#./script.sh

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 10/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Resultado de la ejecución del script

Paso11: Ejecutar los siguientes comandos:

#make clean

#make

#make install-offline install-online

Resultado luego de utilizar la instrucción make install-offline install-online

Paso12:Se crea un enlace simbólico al archivo que inicia el servicio en la ruta donde seponen los archivos que inician los servicios del sistema operativo.

# ln –s /opt/ openca-1.1.0/etc/init.d/openca /etc/init.d/openca

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 11/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Paso13: Descarga de unos archivos que corrigen el error al arrancar el servicio deopenca y los sobrescribimos en sus respectivas rutas.Ya que a la hora de la instalación ha surgido una serie de errores, este error ha

sido descrito en la wiki oficial de Openca:(http://wiki.openca.org/wiki/index.php/ERR_USER_UNKNOWN)

Antes de iniciar es necesario posicionarse en /opt/openca-1.1.0

# cd /opt/openca-1.1.0

# wget http://ftp.openca.org/openca-

base/fixes/v1.1.1/err_user_unknown/User.pm

# wget http://ftp.openca.org/openca-

base/fixes/v1.1.1/err_user_unknown/initServer

# scp User.pm lib/openca/perl_modules/perl5/OpenCA/User.pm

# scp initServer lib/openca/functions/initServer

Resultado obtenido

Paso14:Iniciamos los servicios de openCA y httpd

#service openca start

#service httpd start

Resultado obtenido

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 12/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 13/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Ingresamos con la clave loguin y el password claray1021. (clave del root)

Inicializamos la base de datos de openca

5/13/2018 OpenCa Hector Diana - slidepdf.com

http://slidepdf.com/reader/full/openca-hector-diana 14/14

 

DIANA CAROLINA ECHEVERRIA ROJAS ‐ [email protected] 

HECTOR LEONIDAS DUARTE GARCIA ‐ [email protected] 

Trabajo realizado para la materia de criptografía ESI‐5 UNIPILOTO  – Doc. Jhon Jairo Parra Leon 

Verificamos que la base de datos tenga las tablas

Paso15: Si presenta un error por falta de permisos para crear carpetas desde el entornografico se realiza el siguiente paso:

Nota: para prevenir error de soket es necesario iniciar en el siguiente orden losservicios:

#service mysqld start

#service httpd start#service openca start