MÉTODO
DE AUTENTICACIÓN GO
O
MÉTODO
DE AUTENTICACIÓN DE CLAVE PÚBLICA.
RESUMEN
Método
de autenticación de clave pública, es un método que salvaguarda los datos de
conectividad a los almacenes de datos, permitiendo a los desarrolladores
conectar sus aplicaciones a los servicios de almacenamiento, sin tener que
preocuparse de exponer los datos en archivos físicos o embebiendo los datos de
conectividad en el código fuente. Además de proporcionar un modelo de
autenticación de usuarios en 3 niveles, ideal para grupos corporativos que
manejan varias unidades de negocio, pues centraliza la información de los
usuarios y permite monitorear la actividad SQL de los usuarios del sistema
desarrollado.
OBJETIVOS DEL
METODO
·
Proteger los datos de conectividad a los
almacenes de datos.
·
Brindar un modelo de autenticación de
usuarios en 3 niveles.
·
Permitir monitorear la actividad SQL de cada
uno de los usuarios del sistema que implementa el “METODO DE AUTENTICACIÓN DE
CLAVE PUBLICA”.
·
Permitir una administración centralizada de
usuarios del sistema.
·
Permitir realizar balanceo de carga.
·
Asegurar NO REPUDIO de parte de los usuarios
del sistema.
COMPONENTES
1.
Usuario
SuperGoAdmin:
El usuario “SuperGoAdmin” auténtica sus credenciales
a nivel base de datos, proporcionando los datos de conectividad al almacén de
datos. Este usuario permite que los usuarios “GoAdmin” autentiquen ante el
sistema mediante el uso de la clave pública que genera el usuario
“SuperGoAdmin” al momento de la autenticación, por esta razón es obligatorio
que antes de autenticar un usuario “GoAdmin” el usuario “SuperGoAdmin” ya este
previamente autenticado.
El usuario “SuperGoAdmin” cuenta con un almacén de
datos que lleva su mismo nombre, en el cual existen tablas que permiten guardar
las credenciales de los usuarios “GoAdmin” y “GoUser”, proporcionado de esta
manera una administración centralizada de usuarios.
2.
Usuario
GoAdmin:
El usuario “GoAdmin” auténtica sus credenciales a
nivel de sistema y de base de datos, siendo sus credenciales de sistema
comparadas en la tabla de usuarios del almacén de datos del usuario
“SuperGoAdmin”, con el objetivo de intercambiar estos datos por datos de
conectividad al almacén de datos de “GoAdmin”, la cual lleva su mismo nombre.
Este usuario permite que los usuarios “GoUser”
autentiquen ante el sistema mediante el uso de la clave pública que genera el
usuario “GoAdmin” al momento de la autenticación, por esta razón es obligatorio
que antes de autenticar un usuario “GoUser” el usuario “GoAdmin” ya este previamente
autenticado.
El usuario “GoAdmin” cuenta con un almacén de datos
que lleva su mismo nombre, en el cual existen tablas que permiten guardar las
credenciales de los usuarios “GoUser”, lo cuales tienen acceso a realizar
operaciones DML (lenguaje de manipulación de datos) sobre las tablas que
soportan las reglas de negocio de una empresa, se podría decir que una base de
datos del usuario “GoAdmin” es una base de datos de negocio, sobre la cual se
desarrolla un sistema de información.
3.
Usuario
GoUser:
El usuario
“GoUser” auténtica sus credenciales a nivel de sistema y de base de datos,
siendo sus credenciales de sistema comparadas en la tabla de usuarios del
almacén de datos del usuario “GoAdmin”, con el objetivo de intercambiar estos
datos por datos de conectividad al almacén de datos de “GoAdmin”.
Los
usuarios “GoUser” son considerados los usuarios finales de un sistema de
información, no cuenta con un almacén de datos, ya que estos tienen privilegios
de lectura y escritura sobre objetos de la base de datos de los usuarios tipo
“GoAdmin”.
4.
Datos
de conectividad:
Son aquellos datos que usa un desarrollador para
conectar su aplicación a un determinado almacén de datos (Ejm: Mysql, Postgres,
Oracle, etc.)
5.
Clave
privada:
Es aquella
clave que debe mantener en secreto el usuario al que se le asigno, para evitar
acceso no autorizado a su cuenta o iniciar sesión ante el sistema (Refiere a
sistema de base de datos o sistema de información).
6.
Clave
Publica:
Es aquella
clave pública que se le proporciona a otro usuario autorizado, con el único fin
de permitirle usar su sesión o conexión con la base de datos para así intentar
autenticar ante el sistema (Refiere a sistema de base de datos o sistema de
información).
7.
Clave
No Repudio:
Permite identificar tu conexión con la base de datos
y así hacer una inspección manual cuando exista alguna anomalía de doble acceso
al sistema desde diferentes puntos de red.
El procedimiento manual sería preguntar al usuario
autorizado que clave no repudio ha utilizado al momento de su autenticación,
identificando así cual es la conexión anómala al sistema, permitiendo de esta
manera identificar al intruso y así tomar las medidas necesarias.
8.
Dispositivos
Tecnológicos:
Son aquellos dispositivos o terminales que permiten
conectar a la red WAN o LAN, los dispositivos más usados para manipular
sistemas informáticos son las computadoras personales, tabletas y celulares.
9.
Interfaz
de entrada de datos:
Es aquella interfaz que permite la entrada y salida
de datos.
Ejemplo: Interfaz gráfica de autenticación de
usuarios.
10.
Algoritmo
de encriptación:
Son algoritmos que permiten cifrar la Información,
para mantenerla segura de usuarios no autorizados.
11.
Memoria
RAM:
La memoria RAM permite almacenar datos o programas
que se ejecutan en los sistemas operativos.
12.
Listas
Clave – Valor:
Son matrices tamaño nx2, n filas y 2 columnas. En la
primera columna guarda la clave y en la segunda columna el valor, de manera que
el valor solo puede ser accedido mediante la clave, en los lenguajes de
programación existen estos tipos de lista.
Ejemplo:
CLAVE
|
VALOR
|
45329234
|
JONATHAN
TORRES/M/27
|
13.
Almacén
de datos:
Estructura que permite persistir los datos en el
tiempo
DESCRIPCION
El método de autenticación GO permite a los
desarrolladores crear sus sistemas de información sin exponer los datos de
conectividad (D1) a los almacenes de datos (B1, B2, B3), así como también
permitir la autenticación de usuarios finales (U3). En este método se envían
los datos de conectividad al servidor a través de una interfaz, para luego ser
verificada y abrir sesión o conexión con el servidor de base de datos, todas
las conexiones son almacenadas en memoria RAM del servidor (R1), en un lista
clave – valor.
En la figura 1 se observa los 3 niveles de seguridad
del método de autenticación GO, el método empieza desde el nivel más alto y el
de mayor riesgo, por esta razón se recomienda hacer la autenticación en un
entorno seguro, si fuera posible desde el propio servidor de aplicaciones
(Servidor que contiene nuestra aplicación ejecutándose); en la figura también
notamos que los usuarios GoUser (U3) no son dueños de ningún almacén de datos,
así que en los GoUser (U3) no es necesario tener un usuario de base de datos
por cada uno, disminuyendo de esta manera el número de conexione en el servidor
de base de datos, pero si se necesita monitorear la actividad SQL del usuario
GoUser, es necesario que este asignado a un usuario de base de datos.
A continuación se explica el método de autenticación
GO:
Autenticación
del usuario SuperGoAdmin:
En la Figura 2 se ilustra con un
flujo grama como el usuario “SuperGoAdmin” (U1) auténtica ante el sistema y
abre una sesión o conexión al almacén de datos.
El usuario “SuperGoAdmin” (U1) envía
los datos de conectividad(D1) (dentro de estos datos se encuentra la clave
privada (KS1)) al almacén de datos (B1) junto con una clave pública (KP1) a
través de dispositivos tecnológicos (DT1) que se encuentran conectados a la red
WAN O LAN que se comunica con el servidor de aplicaciones que contiene el
Sistema (Sistema informático que implementa método de autenticación GO), esta
comunicación se realiza a través de una interfaz(I1) que permite el envío de
los datos (D1 Y KP1) y así enviarlos a través del protocolo Http hasta el
servidor de aplicaciones, donde los datos de conectividad (D1) son leídos;
recuperada la clave pública del usuario (KP1) “SuperGoAdmin” (U1) esta se
encripta mediante algún algoritmo de encriptación para luego ser consulta en una
lista clave – valor (CV1) que se encuentra almacenada en la memoria RAM (R1)
del servidor de aplicaciones;
Si existe la clave en la lista,
es porque el usuario “SuperGoAdmin” (U1) ya había autenticado correctamente
antes, entonces se convierte a hexadecimal la clave pública encriptado con el
objetivo de mantener la integridad de la clave pública en los viajes que se
realiza del cliente al servidor; luego encriptamos el usuario y nombre de base
de datos mediante algún algoritmo de encriptación para que después se
conviertan a código hexadecimal; Posterior a esta actividad almacenamos la
clave pública, el usuario y nombre de base datos anteriormente convertidos a
hexadecimal en la sesión de usuario del servidor y redirigir al usuario
“SuperGoAdmin” (U1) a la interfaz de administración y brindarle un saludo de
bienvenida al sistema (M2), ya que su autenticación fue correcta; Si no existe
la clave pública encriptada en la lista clave-valor (CV1) almacenada en memoria
RAM (R1) del servidor de aplicaciones se procede a verificar la conectividad al
almacén de datos haciendo uso de los datos de conectividad (D1) anteriormente
leídos y la tecnología competente que se necesita para esta labor; si no existe
conexión a base de datos “Super-GoAdmin” (U1) enviar mensaje de error (M1) y
mostrar a través de la interfaz, pero si
existe conexión al almacén de datos se procede a almacenar en lista clave –
valor (CV1) el objeto de conectividad, el cual solo podrá ser recuperado con
clave pública encriptada; luego se vuelve a ejecutar el subproceso de almacenar
token en el servidor de aplicaciones.
Autenticación del usuario GoAdmin:
En la Figura 3 se ilustra con un
flujo grama como el usuario “GoAdmin” (U2) auténtica ante el sistema y abre una
sesión o conexión al almacén de datos.
Una vez autenticado el usuario
“SuperGoAdmin” (U1), este comunica su clave pública (KP1) a los usuarios
“GoAdmin” (U2); con el propósito que el usuario “GoAdmin” (U2) envié los datos
de autenticación (datos lógicos comparados en la tabla de usuarios del almacén
de datos del usuario “SuperGoAdmin” (U1) que serán intercambiados por datos de
conectividad pertenecientes al usuario “GoAdmin” (U2) ) junto con su clave
pública (KP2) y la clave pública (KP1) del usuario “SuperGoAdmin” a través de
dispositivos tecnológicos (DT2) que se encuentran conectados a la red WAN O LAN
que se comunica con el servidor de aplicaciones que contiene el Sistema
(Sistema informático que implementa método de autenticación GO), esta comunicación
se realiza a través de una interfaz(I2) que permite el envío de los datos (D2,
KP1 y KP2) y así enviarlos a través del protocolo Http hasta el servidor de
aplicaciones, donde los datos lógicos (D2) son leídos; recuperada la clave
pública (KP1) del usuario “SuperGoAdmin” (U1) y la clave pública (KP2) del usuario “GoAdmin”, estas se encriptan
mediante algún algoritmo de encriptación para luego consultar la clave pública
(KP1) del usuario “SuperGoAdmin” (U1) en la lista clave – valor (CV1) que se
encuentra almacenada en la memoria RAM (R1) del servidor de aplicaciones; Si no
existe la clave pública (KP1) del usuario “SuperGoAdmin” (U1) enviar mensaje
(M3) de error en la autenticación del usuario “GoAdmin” (U2) a causa que el usuario “SuperGoAdmin” no está
autenticado; Si al contrario existiese la clave pública (KP1) en la lista clave
– valor (CV1) en la memoria RAM (R1) del servidor de aplicaciones, entonces se
verificarían las credenciales lógicas (D2) en la tabla de usuarios del almacén
de datos (B1) del usuario “SuperGoAdmin” (U1); Si las credenciales lógicas (D2)
no son válidas se envía un mensaje (M4) informando del error en la
autenticación del usuarios “GoAdmin” (U2); Si por el contrario las credenciales
lógicas (D2) son correctas se extrae los datos de conectividad para el usuario
“GoAdmin” para luego verificar la conectividad al almacén de datos (B2) del
cual es dueño el usuario “GoAdmin” (U2) y además lleva el mismo nombre; Si el
usuario “GoAdmin” (U2) no logra establecer conexión con su almacén de datos se
enviará un mensaje de error (M5) informando del error al autenticar a nivel de
base de datos; Por el contrario, si el usuario “GoAdmin” (U2) autenticara
correctamente entonces se almacenaría en la lista clave – valor (CV1) de la
memoria RAM (R1) del servidor de aplicaciones el objeto conexión del usuario
“GoAdmin”, donde la clave seria la clave pública encriptada del usuario
“GoAdmin” (U2); una vez almacena la clave pública encriptada en memoria RAM
(R1), esta es convertida a código hexadecimal; Luego encriptamos usuario y
nombre de base de datos del usuario “GoAdmin” (U2) mediante cualquier algoritmo
de encriptación y luego convertimos esos valores encriptados a código
hexadecimal para después almacenar en la sesión de usuario del servidor de aplicaciones
la clave pública encriptada y convertida a hexadecimal del usuario “GoAdmin”
(U2), así como el usuario y nombre de base de datos que fueron convertidos a
código hexadecimal que previamente se habían encriptado; luego se redirige al
usuario “GoAdmin” (U2) a la interfaz de administración de usuarios tipo
“GoAdmin” (U2) mostrando el mensaje (M6) de bienvenida.
Autenticación del usuario GoUser:
En la Figura 4 se ilustra con un
flujo grama como el usuario “GoUser” (U3) auténtica ante el sistema y abre una
sesión o conexión al almacén de datos.
Una vez autenticado el usuario “GoAdmin” (U2),
este comunica su clave pública (KP1) a los usuarios “GoAdmin” (U3); con el
propósito que el usuario “GoUser” (U3) envié los datos de autenticación (datos
lógicos comparados en la tabla de usuarios del almacén de datos del usuario
“GoAdmin” (U2) que serán intercambiados por datos de conectividad
pertenecientes al usuario “GoUser” (U3) ) junto con su clave de no repudio
(KNR1) y la clave pública (KP2) del usuario “GoAdmin” a través de dispositivos
tecnológicos (DT3) que se encuentran conectados a la red WAN O LAN que se
comunica con el servidor de aplicaciones que contiene el Sistema (Sistema
informático que implementa método de autenticación GO), esta comunicación se
realiza a través de una interfaz(I3) que permite el envío de los datos (D3, KP2
y KNR1) y así enviarlos a través del protocolo Http hasta el servidor de
aplicaciones, donde los datos lógicos (D3) son leídos; recuperada la clave
pública (KP2) del usuario “GoAdmin” (U2) y la clave de no repudio (KNR1) del usuario “GoUser”, estas se encriptan
mediante algún algoritmo de encriptación para luego consultar la clave pública
(KP2) del usuario “GoAdmin” (U2) en la lista clave – valor (CV1) que se
encuentra almacenada en la memoria RAM (R1) del servidor de aplicaciones; Si no
existe la clave pública (KP2) del usuario “GoAdmin” (U2) enviar mensaje (M7) de
error en la autenticación del usuario “GoUser” (U3) a causa que el usuario “GoAdmin” (U2) no está
autenticado; Si al contrario existiese la clave pública (KP2) en la lista clave
– valor (CV1) en la memoria RAM (R1) del servidor de aplicaciones, entonces se
verificarían las credenciales lógicas (D3) en la tabla de usuarios del almacén
de datos (B2) del usuario “GoAdmin” (U2); Si las credenciales lógicas (D3) no
son válidas se envía un mensaje (M8) informando del error en la autenticación
del usuario “GoUser” (U3); Si por el contrario las credenciales lógicas (D3)
son correctas se extrae los datos de conectividad para el usuario “GoUser” (U3)
para luego verificar la conectividad al almacén de datos (B2) al cual tiene
acceso de lectura y escritura; Si el usuario “GoUser” (U3) no logra establecer
conexión con su almacén de datos se enviará un mensaje de error (M9) informando
del error al autenticar a nivel de base de datos; Por el contrario, si el
usuario “GoUser” (U3) autenticara correctamente entonces se almacenaría en la
lista clave – valor (CV1) de la memoria RAM (R1) del servidor de aplicaciones
el objeto conexión del usuario “GoUser”, donde la clave seria la clave de no
repudio encriptada del usuario “GoUser”; una vez almacena la clave de no
repudio que fue encriptada y almacenada memoria RAM (R1), esta es convertida a
código hexadecimal; Luego encriptamos usuario y nombre de base de datos del al
que el usuario “GoUser” (U3) conectó mediante cualquier algoritmo de
encriptación y luego convertimos esos valores encriptados a código hexadecimal
para después almacenar en la sesión de usuario del servidor de aplicaciones, la
clave de no repudio encriptada y convertida a hexadecimal del usuario “GoUser”
(U3), así como el usuario y nombre de base de datos que fueron convertidos a
código hexadecimal que previamente se habían encriptado; luego se redirige al
usuario “GoUser” (U2) a la interfaz de sistema de usuarios tipo “GoUser” (U3)
mostrando el mensaje (M9) de bienvenida.
@jofrantoba - 2015
Comentarios
Publicar un comentario