Edison Timbe Ticec 2016 5
Edison Timbe Ticec 2016 5
Edison Timbe Ticec 2016 5
Javier Vargas1, David Guevara1, Franklin Mayorga1, Franklin Sánchez2, Daniel Díaz3
1
Facultad de Ingeniería en Sistemas, Electrónica e Industrial, Universidad Técnica de Ambato, Av.
Los Chasquis y Río Payamino, Ambato, Ecuador.
2
Departamento de Electrónica, Telecomunicaciones y Redes de Información, Escuela Politécnica
Nacional, Ladrón de Guevara E11-253, Quito, Ecuador.
3
Carrera de Ingeniería de Sistemas, Universidad Politécnica Salesiana, Av. Rumichaca S/N y Av.
Móran Valverde, Quito, Ecuador.
Autores para correspondencia: [email protected], [email protected], [email protected],
[email protected], [email protected].
Fecha de recepción: 19 de junio del 2016 - Fecha de aceptación: 24 de julio del 2016
ABSTRACT
This paper describes the processes involved in the creation and evaluation of a Tool for Automatic
Generation of Security Infrastructure in Communications using Java. Incorporation of security services
in the source code of distributed applications is not that easy and requires, on the one hand the creation
of a manual for the security of infrastructure based on digital certificates of public and private
OpenSSL keys, and/or security stores. On the other hand, the application developer must incorporate
manually in the source code the functions and/or procedures that properly manage certificates, keys and
stores, to secure automatic implementation of the security services.
Keywords: OpenSSL, Automatic Generation, digital certificates, security stores.
RESUMEN
El presente trabajo describe el proceso realizado y resultados obtenidos de la creación de una
Herramienta para la Generación Automática de Infraestructura de Seguridad en Comunicaciones
usando Java. La incorporación de estos servicios de seguridad en el código fuente de las aplicaciones
distribuidas no es fácil, se requiere, por un lado, la creación manual de una infraestructura de seguridad
basada en certificados digitales de clave pública y privadas OpenSSL, y/o almacenes de seguridad. Por
otro lado, el desarrollador de aplicaciones debe de incorporar, también manualmente, en su código
fuente aquellas funciones y/o procedimientos que gestionen de forma adecuada los certificados, claves
y almacenes con el objetivo de implementar los servicios de seguridad de forma automatizada.
Palabras clave: OpenSSL, Generación Automática, certificados digitales, almacenes de seguridad.
1. INTRODUCCIÓN
El amplio uso de Internet para el envío y recepción de información considerable, contempla la gestión
de sistemas de seguridad en la comunicación entre un emisor y receptor representado en el concepto
de cliente/servidor. Los sistemas tales como, software de comunicación electrónica, aplicaciones de
web segura, conexiones a terminales, etc., requieren la implementación de servicios de seguridad,
integridad, confiabilidad al instante de negociar la conexión entre cliente/servidor, para así
salvaguardar su información. Actualmente existen herramientas y métodos para la seguridad de la
información, una herramienta para la utilidad de gestión de claves públicas y privadas es IKEYMAN
de IBM (Park, 2007), un método de autenticación segura y cifrado de aplicaciones web es SSL, TLS y
HTTPS (Clark, 2013), con el propósito de mantener la seguridad de la información aplicando métodos
TIC.EC 47
MASKANA, CEDIA 2016
de encriptación como por ejemplo el algoritmo RSA (Gröbert, 2010), referencial a OpenSSL (Khalil-
Hani, 2010), para la obtención de la clave de acceso tanto para el cliente como para el servidor, así
estas entidades necesitan contar con una autoridad de certificación CA (López Jiménez, 2015), capaz
de generar claves públicas TrustStore y privadas KeyStore (Lakhe, 2014), almacenes de seguridad y
paquetes o extensiones de seguridad de Java (Alarcos, 2013). La idea propuesta es la implementación
de una herramienta apta para generar estos requerimientos del cliente/servidor diferenciando de la
herramienta IKEYMAN, con la generación de forma automática de la infraestructura de seguridad y el
código base necesario para la conexión entre cliente/servidor como se ilustra en la Figura 1.
2. MATERIALES Y MÉTODOS
Este proceso se desarrolla en tres fases de forma automática desde la herramienta. Fase uno consiste en
la creación de los certificados, claves públicas y privadas necesarias; fase dos se crean los almacenes de
seguridad Java asociados a su aplicación a partir de los certificados y claves mencionadas en la fase
uno; fase tres se genera el código fuente base de seguridad asociado a la aplicación de usuario y a los
almacenes de la fase dos.
Cada una de las tres fases está asociada a un módulo o sistema específico:
TIC.EC 48
MASKANA, CEDIA 2016
Es un sistema automático que desde Java permite generar almacenes de seguridad necesarios en
TIC.EC 49
MASKANA, CEDIA 2016
aplicaciones de seguridad, bien sea aplicaciones cliente/servidor SSL o aplicaciones de generación y/o
verificación de firma, aplicaciones de acceso seguro a una Bases de Datos, etc. Normalmente la
generación de almacenes de seguridad se realiza de forma manual con la herramienta Keytool
(Ahrendt, 2005), que forma parte de la distribución de la Máquina Virtual Java.
Para el caso de estudio del proyecto se crea estos almacenes de forma automática a partir de los
ficheros de certificados por el sistema automático de generación de certificados S:A:G:C, como se
ilustra en la Figura 3. El número y la tipología de los almacenes son destinados dependiendo del tipo de
entidad o de la aplicación.
TIC.EC 50
MASKANA, CEDIA 2016
3. RESULTADOS Y DISCUSIÓN
De acuerdo a las características de la herramienta descrita, se subdivide en etapas o pruebas por cada
uno de los módulos: Pruebas (S:A:G:C).
La carpeta o “CA/newcerts”, va generando los certificados enviados al cliente, hay que tener en
cuenta los detalles de cada certificado enviado como se ilustra en la Figura 5.
La generación de una herramienta cliente/servidor facilita él envió del fichero con el certificado
debidamente firmado por la entidad certificadora CA como se ilustra en la Figura 6.
El servidor es el encargado de enviar el fichero firmado por CA para el cliente tenga un
certificado validado por el servidor, luego el cliente imprime su certificado debidamente generado
como se ilustra en la Figura 7 (Hielscher, 2006).
El cliente SSL carga el fichero AlmacenTrust creado con la herramienta Keytool (Herrera
Acebey, 2011), conteniendo el certificado de clave pública del servidor, El cliente verifica el
certificado del servidor utilizando el almacén “AlmacenTrust” que contiene el certificado de la CA.
Por otro lado, la v2.6 uso de la carpeta CA para generar certificados, utiliza almacenes como
AlmacenSRTrust, AlmacenTrust, el servidor verifica este certificado de la misma forma que hacia el
cliente con el certificado del servidor (“AlmacenSRTrust”) como se ilustra en la Figura 8.
TIC.EC 51
MASKANA, CEDIA 2016
TIC.EC 52
MASKANA, CEDIA 2016
TIC.EC 53
MASKANA, CEDIA 2016
El cliente SSL con autenticación establece la conexión con parámetros dentro de los almacenes;
AlmacenTrust y AlmacenCL con el certificado firmado por la CA como se ilustra en la Figura 10, por
otro lado para autentificar al servidor con parámetros del AlmacenTrust y un certificado del cliente
firmado por la CA, se crea partir de la dirección IP del servidor y el puerto de conexión como se ilustra
en la Figura 11, con sus respectivos certificados se guardan en la carpeta del servidor nombrada
“Cliente Servidor SIN/CON autenticación”. Los resultados comprueban la comunicación exitosa entre
el cliente y el servidor SIN y CON Autenticación del código generado, además se muestra el almacén
del cliente/servidor debidamente firmado.
Los beneficios e impactos del proyecto, realizan un análisis de los usuarios, beneficiarios
inmediatos y mediatos, incluyendo a CEDIA y sus miembros para implementar una herramienta que
permite generar de forma automática la infraestructura y el código fuente de aplicaciones de seguridad
en el desarrollo de aplicaciones propietarias reduciendo el coste de proceso, se consigue potenciar los
recursos disponibles para los usuarios de la Red CEDIA, al estar ahora protegidos con servicios de
seguridad. El construir de forma sencilla sistemas de transferencia segura de aplicaciones corporativas
de firma de documentos por múltiples usuarios reduciendo el coste de la gestión. Además la renovación
temporal de la infraestructura de seguridad es fácilmente actualizada con la herramienta desarrollada:
Es decir, cuando caduquen los certificados digitales y/o los almacenes de seguridad la herramienta
recreara la nueva infraestructura de forma automática.
TIC.EC 54
MASKANA, CEDIA 2016
4. CONCLUSIONES
AGRADECIMIENTO
TIC.EC 55
MASKANA, CEDIA 2016
REFERENCIAS
Acebey, J.H., 2006. Certificados digitales. Revista Acta Nova, 3(3), 1-11.
Ahrendt, W., T. Baar, B. Beckert, R. Bubel, M. Giese, R. Hähnle, P.H. Schmitt, 2005. The key tool.
Software & Systems Modeling, 4(1), 32-54.
Alarcos, B., E.D.L. Hoz, M. Sedano, M. Calderón, 2003. Performance analysis of a security
architecture for active networks in Java. Disponible en
http://www.google.com.ec/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwjmqr
zvka7PAhXH7D4KHaSHDIIQFggiMAE&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdo
c%2Fdownload%3Fdoi%3D10.1.1.579.4621%26rep%3Drep1%26type%3Dpdf&usg=AFQjCNFx
Y_7CYFeO7H08aNCnwlBbXJGpxg&bvm=bv.133700528,d.cWw.
Clark, J., P.C. van Oorschot, 2013. SoK: SSL and HTTPS: Revisiting past challenges and evaluating
certificate trust model enhancements. In Security and Privacy (SP) 2013 IEEE Symposium on, pp.
511-525.
Gröbert, F., 2010. Automatic identification of cryptographic primitives in software. Deplima Thesis,
Ruhr-University Bochum, Germany.
Hielscher, R.P., V. Delgado, 2006. Aplicaciones prácticas de la criptografía. Anales de Mecánica y
Electricidad, 83(2), 10-16.
Khalil-Hani, M., V.P. Nambiar, M.N. Marsono, 2010. Hardware Acceleration of OpenSSL
cryptographic functions for high-performance Internet Security. In: Intelligent Systems,
Modelling and Simulation (ISMS), 2010 International Conference on, pp. 374-379.
Kurzyniec, D., V. Sunderam, 2001. Efficient cooperation between Java and native codes–JNI
performance benchmark. In: The 2001 international conference on parallel and distributed
processing techniques and applications. Disponible en
https://www.researchgate.net/publication/228752983_Efficient_cooperation_between_Java_and_n
ative_codes-JNI_performance_benchmark.
Lakhe, B., 2014. Setting Up a KeyStore and TrustStore for HTTP Encryption. In: Practical Hadoop
Security (pp. 181-182), Apress.
López Jiménez, J.M., J.F. Otria Silva, E.P. Santiago Posadas, 2015. Implementación de una autoridad
certificadora con la herramienta openca para generar certificados digitales. Disponible en
http://tesis.ipn.mx/handle/123456789/15042.
Pajin, M.K.A., D., Bukvić, M. Stojaković, I. Barišić, B. Jakovljević, 2015. Securing service access with
digital certificates. Disponible en
http://services.geant.net/cbp/Knowledge_Base/Security/Documents/gn3-na3-t4-abpd106.pdf, 58
pp.
Park, H., S. Redford, 2007. Client certificate and IP address based multi-factor authentication for
J2EE web applications. In: Proceedings of the 2007 conference of the center for advanced studies
on Collaborative research, pp. 167-174. IBM Corp.
Pianegiani, F., D. Macii, P. Carbone, 2003. An open distributed measurement system based on an
abstract client-server architecture. Instrumentation and Measurement, IEEE Transactions on,
52(3), 686-692.
Schaumont, P., I. Verbauwhede, 2003. Domain-specific codesign for embedded security. Computer,
36(4), 68-74.
TIC.EC 56