Servicio de control de accesos con módulos de autenticación personalizados (Servicio IAM)

La ciberseguridad es una de las muchas ramas que conforman la informática. Como menciona el experto en seguridad Kevin Newmeyer, no existe un consenso internacional sobre lo que constituye la ciberseguridad, pero podemos dar una definición general como el conjunto de políticas, entramiento y tecnología diseñada para proteger el entorno cibernético con la finalidad de asegurar la integridad de la información. Dentro de la misma rama de la ciberseguridad existen varios campos entre los que se encuentran: hacking ético, seguridad en la nube, control de riesgos, gestión de accesos e identidades, etc.… Este proyecto entra dentro del campo de la gestión de accesos e identidades (IAM, por sus siglas en inglés). IAM es la disciplina de seguridad que hace posible que las entidades correctas (personas o cosas) usen los recursos correctos (aplicaciones o datos) cuando los necesitan, sin interferencias, usando los dispositivos que quieran utilizar. El proyecto se centra en la unión de tres procesos de autenticación que aseguren la seguridad de accesos a unos recursos concretos. Por lo tanto, en este caso, nos enfocaremos en el control de accesos. Todos los sistemas de autenticación cuentan con alguno de estos tres factores: – Algo que sabes: contraseñas, preguntas personales, etc. – Algo que eres: huella, iris, voz, cara… – Algo que tienes: correo electrónico, teléfono móvil, tarjetas de identificación, etc. En nuestro caso queremos cumplir con los tres factores para crear un acceso lo más seguro posible. Para cumplir el primer factor he decidido utilizar la autenticación a través de usuario y contraseña ya que es un proceso con el cual la mayoría de la población ya siente cierta familiaridad. Este módulo consta de una base de datos que almacena el nombre del usuario en cuestión, enlazado con una contraseña. El desarrollo del segundo módulo que satisfará los requisitos del factor “algo que eres” será el que más trabajo de desarrollo ha tenido, ya que he optado por una autenticación algo menos común y más novedosa que basa su autenticación biométrica en el reconocimiento a partir del ritmo de tecleo del usuario. Para realizar este módulo he utilizado la solución que proporciona TypingDNA para el reconocimiento de las pulsaciones en el teclado. El tercer punto basado “algo que tienes” utilizaremos una autenticación basada en una notificación push, que será enviada a un dispositivo móvil, ya que este proceso es algo que la mayoría de la gente ya usa en muchas de sus cuentas de internet y todo casi todo el mundo posee un smartphone. En todo este proceso de desarrollo he tenido que aplicar mis conocimientos adquiridos durante mi estancia universitaria además de haber hecho un proceso de investigación y aprendizaje durante estos meses transcurridos. He aplicado conocimientos de desarrollo de software, conocimientos teóricos, conocimientos sobre ciberseguridad y gestión de accesos, entre otros muchos. Durante el proceso de autenticación que se ha desarrollado se utilizan diversos protocolos de seguridad, que serán explicado más adelante, entre los que se encuentran Oauth 2.0 y TOTP. Para el desarrollo de código necesario para el proyecto he trabajado con el IDE Visua Studio Code, en el que se ha utilizado principalmente lenguaje Java, pero también se ha utilizado XML, HTML y JavaScript. Como plataforma de gestión de accesos e identidades he optado por OpenAM de Open Identity Platform, ya que mantiene actualizaciones constantes, es de código abierto y por tanto gratuita y cumplía con todos los requisitos y permitía realizar todo lo necesario para este proyecto. Para desplegar la plataforma de IAM he utilizado Apache Tomcat que nos permite trabajar en local y desarrollar y simular todo el trabajo.
ABSTRACT
Cybersecurity is one of the branches that conforms to computer science. Kevin Newmeyer mentioned that not exist the common idea of cybersecurity definition, but we can give a general definition: a combination of politics, training, and technology designed to protect cyberspace. Within the same branch of cybersecurity, there are several fields, including ethical hacking, cloud security, management risk, identity and access management, etc. This project belongs to identity and access management (IAM). IAM is the discipline of security that enables the correct identities to access specified resources when needed. This project focuses on the union of three processes of authentication that ensure access security to concrete resources. Therefore, in this case, we will focus on access management. All authentication systems typically involve three factors: – Something you know: password, secret questions, etc. – Something you are: fingerprint, iris, face, etc. – Something you have: email, smartphone, identity card, etc. This work aims to meet the three authentication types to create the most secure process possible. To do the first factor I decided to use the authentication with username and password because it is a common process that the population is familiar with. The development of the second module is a biometric authentication, less common than the first, based on the user’s typing pattern. I Will use a based-time authentication push for the third point because people are used to using it and all have smartphones. In this development process, I have to apply all my acquired knowledge during my university time and the research work to this Project. I use software development knowledge, theory, cybersecurity, Access management, and more. I apply some protocols like Oauth 2.0 and TOTP. I work with the IDE Visual Studio Code for code development, the code development includes Java, XML, HTML, and JavaScript. I use OpenAM as an Access management platform because meets the requirements and allows us to accomplish everything necessary for the project, being open-source. I deploy it in Apache Tomcat.

​La ciberseguridad es una de las muchas ramas que conforman la informática. Como menciona el experto en seguridad Kevin Newmeyer, no existe un consenso internacional sobre lo que constituye la ciberseguridad, pero podemos dar una definición general como el conjunto de políticas, entramiento y tecnología diseñada para proteger el entorno cibernético con la finalidad de asegurar la integridad de la información. Dentro de la misma rama de la ciberseguridad existen varios campos entre los que se encuentran: hacking ético, seguridad en la nube, control de riesgos, gestión de accesos e identidades, etc.… Este proyecto entra dentro del campo de la gestión de accesos e identidades (IAM, por sus siglas en inglés). IAM es la disciplina de seguridad que hace posible que las entidades correctas (personas o cosas) usen los recursos correctos (aplicaciones o datos) cuando los necesitan, sin interferencias, usando los dispositivos que quieran utilizar. El proyecto se centra en la unión de tres procesos de autenticación que aseguren la seguridad de accesos a unos recursos concretos. Por lo tanto, en este caso, nos enfocaremos en el control de accesos. Todos los sistemas de autenticación cuentan con alguno de estos tres factores: – Algo que sabes: contraseñas, preguntas personales, etc. – Algo que eres: huella, iris, voz, cara… – Algo que tienes: correo electrónico, teléfono móvil, tarjetas de identificación, etc. En nuestro caso queremos cumplir con los tres factores para crear un acceso lo más seguro posible. Para cumplir el primer factor he decidido utilizar la autenticación a través de usuario y contraseña ya que es un proceso con el cual la mayoría de la población ya siente cierta familiaridad. Este módulo consta de una base de datos que almacena el nombre del usuario en cuestión, enlazado con una contraseña. El desarrollo del segundo módulo que satisfará los requisitos del factor “algo que eres” será el que más trabajo de desarrollo ha tenido, ya que he optado por una autenticación algo menos común y más novedosa que basa su autenticación biométrica en el reconocimiento a partir del ritmo de tecleo del usuario. Para realizar este módulo he utilizado la solución que proporciona TypingDNA para el reconocimiento de las pulsaciones en el teclado. El tercer punto basado “algo que tienes” utilizaremos una autenticación basada en una notificación push, que será enviada a un dispositivo móvil, ya que este proceso es algo que la mayoría de la gente ya usa en muchas de sus cuentas de internet y todo casi todo el mundo posee un smartphone. En todo este proceso de desarrollo he tenido que aplicar mis conocimientos adquiridos durante mi estancia universitaria además de haber hecho un proceso de investigación y aprendizaje durante estos meses transcurridos. He aplicado conocimientos de desarrollo de software, conocimientos teóricos, conocimientos sobre ciberseguridad y gestión de accesos, entre otros muchos. Durante el proceso de autenticación que se ha desarrollado se utilizan diversos protocolos de seguridad, que serán explicado más adelante, entre los que se encuentran Oauth 2.0 y TOTP. Para el desarrollo de código necesario para el proyecto he trabajado con el IDE Visua Studio Code, en el que se ha utilizado principalmente lenguaje Java, pero también se ha utilizado XML, HTML y JavaScript. Como plataforma de gestión de accesos e identidades he optado por OpenAM de Open Identity Platform, ya que mantiene actualizaciones constantes, es de código abierto y por tanto gratuita y cumplía con todos los requisitos y permitía realizar todo lo necesario para este proyecto. Para desplegar la plataforma de IAM he utilizado Apache Tomcat que nos permite trabajar en local y desarrollar y simular todo el trabajo.
ABSTRACT
Cybersecurity is one of the branches that conforms to computer science. Kevin Newmeyer mentioned that not exist the common idea of cybersecurity definition, but we can give a general definition: a combination of politics, training, and technology designed to protect cyberspace. Within the same branch of cybersecurity, there are several fields, including ethical hacking, cloud security, management risk, identity and access management, etc. This project belongs to identity and access management (IAM). IAM is the discipline of security that enables the correct identities to access specified resources when needed. This project focuses on the union of three processes of authentication that ensure access security to concrete resources. Therefore, in this case, we will focus on access management. All authentication systems typically involve three factors: – Something you know: password, secret questions, etc. – Something you are: fingerprint, iris, face, etc. – Something you have: email, smartphone, identity card, etc. This work aims to meet the three authentication types to create the most secure process possible. To do the first factor I decided to use the authentication with username and password because it is a common process that the population is familiar with. The development of the second module is a biometric authentication, less common than the first, based on the user’s typing pattern. I Will use a based-time authentication push for the third point because people are used to using it and all have smartphones. In this development process, I have to apply all my acquired knowledge during my university time and the research work to this Project. I use software development knowledge, theory, cybersecurity, Access management, and more. I apply some protocols like Oauth 2.0 and TOTP. I work with the IDE Visual Studio Code for code development, the code development includes Java, XML, HTML, and JavaScript. I use OpenAM as an Access management platform because meets the requirements and allows us to accomplish everything necessary for the project, being open-source. I deploy it in Apache Tomcat. Read More