TECHNICAL SHEET


1.GENERAL INFORMATION ABOUT THE INVENTION


1.1 Title of invention


PUBLIC KEY AUTHENTICATION METHOD


1.2 Subject area


INFORMATION SECURITY

2.PARTICIPANT INFORMATION


FULL NAME: JONATHAN FRANCHESCO TORRES BACA
AGE: 28
PHONE NUMBER: 051 958429349
EMAIL: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
IDE: 45329234
ADDRESS: Av. Gran Chimu 1264
COUNTRY: Peru
REGION: Lambayeque
PROFESSION: Software Developer


3. TECHNICAL DETAIL


3.1 Technical background


Patent:
US 2013/0246796 A1
Title:
SYSTEM AND METHOD FOR SECURING DATABASE ACTIVITY.
Inventors:
Aviad Lichtenstadt, Tel Aviv (IL); Guy
Lichtman, HertZliya (IL); Slavik
Markovich, Los Altos, CA (US)
Assignee:
McAfee, Inc.
Publication date:
Sep. 19, 2013

Abstract:
A method is provided in one example embodiment that includes detecting database activity associated with a statement having a signature, validating the signature; and evaluating the statement as a signed statement if the signature is valid. In more particular embodiments, the signature may include a unique script identifier and a hash function of a shared key. In yet other embodiments, validating the signature may include checking a session variable and comparing the statement to a list of signed statements.


Technical field
This specification relates in general to information systems, and more particularly, to a system and method for securing database activity. Background Databases and their database management system (DBMS) counterparts have evolved to facilitate designing, building, and maintaining complex information systems, but databases and DBMSs themselves have also evolved into quite complex systems. The size, capabilities, and performance of databases and DBMSs have grown by orders of magnitude along with the progress of technology in the areas of processors, computer memory, computer storage, and computer networks.


Databases often contain sensitive data, which usually resides within tables that can be used by various applications. Many types of controls can be implemented to protect databases (and the sensitive data within them). For example, network security measures may be used to guard against unauthorized external access, while database activity monitoring tools can be used to audit internal activity and guard against authorized access for unauthorized purposes. However, these controls may not be able to differentiate adequately between authorized and unauthorized access to sensitive data by an authorized user. A manual investigation is often necessary to determine if many activities are approved. Thus, significant challenges remain for designing and implementing systems and methods for
securing database activity.


3.2 Difference between proposed innovation and background


The public key authentication method or GO method is designed to safeguard the connectivity data to the storing services, meanwhile it allows controlling and monitoring the users’ authentication in 3 levels, which means there is a system user for each database user, thus GO method guarantees the monitoring of SQL activities for each one authenticated user. Unlike to the background, GO method does not sign the running sentences, but when the systems and storing services validated the user credentials, GO method stores the object connectivity within the RAM memory in a list key - value. The key is a plain text called public key which is encrypted by any encrypting algorithm and the value is the objectconnectivity that allows communication between the applications and the storing services.


As it was mentioned above the Go method is based in a 3 levels authentication, the higher and riskier level is denominated "SUPERGOADMIN" authentication, the users who want to be authenticated at this level must provide connectivity data to storage services and the public key, which is encrypted and is also the key to store the object connectivity in a key - value list. The middle level is denominated “GOADMIN" authentication, the users who want to be authenticated at this level must provide a logic user name and a key, the database schema to which will be connected and a public key in addition to the public key generated by the “SUPERGOADMIN" authentication, this SUPERGOADMIN's key is essential in this process, inasmuch as "SUPERGOADMIN" users authenticate to the "GOADMIN" users. The last level is denominated "GOUSER", this is end users authentication, in this level the users must provide a logic user name and a key, a non-repudiation key and the public key generated by the “GOADMIN" authentication.


In summary, "SUPERGOADMIN" allows to authenticate “GOADMIN" users and “GOADMIN" allows to authenticate "GOUSER" users. The main objective of this method is safeguard the connectivity data and also serve as a user’s authentication method, its implementation’s benefits are:

  • Allows to develop a DAM (Database activity monitor), which can control and monitor the system and database users’ SQL activities.
  • Allows to management the load balancing.
  • Allows a dynamic storing service both physically and logically. It means that no matter neither the logical location (network level) nor physical location (geolocation) of the storing service.
  • Allows to develop a strategy of licenses for applications SAAS type.

3.3 Technical advantages

 

  • Safeguard the connectivity data, because these neither are stored on a plain text nor are embedded in the source code, in addition these are destroyed once obtained the object connectivity.
  • High performance, since the object connectivity is stored on the application server’s RAM memory in one client - server architecture, improving in this way the connectivity time with the storing services.
  • Control the number of connections and open sessions. Allows to develop a DAM (Database activity monitor), which can control and monitor the system and database users’ SQL activities.
  • Allows a dynamic storing service both physically and logically. It means that no matter neither the logical location (network level) nor physical location (geolocation) of the storing service.
  • Allows to management the load balancing.

3.4 Invention Description


GO AUTHENTICATION METHOD OR PUBLIC KEY AUTHENTICATION METHOD


I.- ABSTRACT
It is a method which safeguards the connectivity data to the storing services, allowing developers to connect their applications without worrying about exposing the data in physical files or embedding the connectivity data within the source code. It also provides a user authentication model in 3 levels, it is a solution ideally suited to corporative groups which manage big business units, due to the centralization of users' information, allowing to control and monitor the users' SQL activities.


II.- OBJECTS

  • Protect the connectivity data to storing services
  • Provide a user authentication model in 3 levels
  • Monitor the users’ SQL activities
  • Centralize users’ information
  • Allow to management the load balancing
  • Assure the users' non-repudiation

III.- COMPONENTS


1. SUPERGOADMIN USER
This user authenticates at database level. It allows the "GOADMIN" user authentication by using a public key generated by "SUPERGOADMIN" at the authentication time, this is why "SUPERGOADMIN” must be authenticated before all the other users. This user has a data store named in the same way,where the users' information is stored (GOADMIN and GOUSER), allowing a centralized administration of the users and their credentials.


2. GOADMIN USER
This user authenticates its credentials at system level and database level, the system credentials are compared within user table of SUPERGOADMIN database, with objective of exchanging this data by connectivity data to the GOADMIN database. It allows the GOUSER authentication using public key generated by GOADMIN, that's why GOADMIN must be authenticated before GOUSER. The GOADMIN database contains user credentials GOUSER, which enable to perform DML operations over the tables related to the
company business rules, it can be said that a GOADMIN database is a business database.


3. GOUSER USER
This user authenticates its credentials at system level and database level, the system credentials are compared within user table of GOADMIN database, with objective of exchanging this data by connectivity data to the GOADMIN database. The GOUSER users are considered as end users of the information system, they are not a database owner since they have reading and writing privileges over GOADMIN database's objects


4. Connectivity data
These data are used by developers to connect their application to a certain database e.g., MySQL, Postgres, Oracle, etc.


5. Private Key
This key must be kept secret by the assigned users to avoid unauthorized access to their accounts or log on to the system.


6. Public key
This key is provided from a user with higher hierarchy to others authorized users in order to allow them to use its session or connection to the database to authenticate themselves to the system.


7. Non-repudiation key
It enables to identify the user’s connections and make a manual inspection when there is an anomaly related to double access to the system from many network points. The manual procedure is to ask to the authorized user his/her non - repudiation key, thus identifying the abnormal connection and taking appropriate
actions.

 

8. Technological devices
Devices which allows to connect to network LAN or WLAN, most popular devices to manipulate information systems are laptops, smartphones, tablets, etc.


9. Data Input Interface
It allows input and output data.

 

10. Encryption algorithm
Allows to encrypt information in order to keep it safe from unauthorized users.


11. RAM
It allows to store data and programs which are run over the operating systems.


12. Key Value lists
They are array nx2, n rows and 2 columns. In the First column is the key and in
the second the value, so that it only can access the value by the key.


13. Database
Structure which enable persist data over time


IV.- DESCRIPTION


GO AUTHENTICATION METHOD allows to the developers to create information systems without the risk of exposing connectivity data (D1) to the databases (B1, B2 and B3), as well as end users authentication (U3). This method sends the connectivity data to the server via an interface, once the connectivity data is verified the connection to the database is opened, all the connection are stored on server's RAM (R1) on a key value list.

Figure 1 shows the three security levels of this method, which begins from the highest and riskiest level, this is why it is recommended to make the authentication in a safe environment and if possible from the application server itself (server which host our application running).

Figure also shows that GOUSER users (U3) do not own any database, so there is no necessary to have a user of database for each one of them, thus reducing the connections number to the database server, only in case it was necessary to monitor the SQL activities of the GOUSER user, the user (U3) must beassigned a user database.

 

SUPERGOADMIN user Authentication(Zoom in)


Figure 2 shows through a flow diagram, how the SUPERGOADMIN user (U1) is authenticated and opens a connection to database.
The user U1 sends the connectivity data (D1), these data contains the private key (KS1), to the database (B1) and the public key (KP1), through technological devices (DT1), which are connected to a network LAN or WAN, communicates with the application server, that contains the computing system which implements the GO AUTHENTICATION METHOD, this communication is done by an interface (I1), this interface allows to send the data (D1 and KP1), using the HTTP protocol, to application server, where the connectivity data (D1) are read, the public key (KP1) is encrypted, the next step is to consult the encrypted public key in a key value list, which is stored on application server's RAM (R1).


If the encrypted key is already in the key value list, it means the user (U1) was authenticated previously, in order to keep the integrity throughout of the transmission from the client to the server, the encrypted key is transformed from ASCII code into hexadecimal code. Part of the connectivity data are the user and database's name, they are encrypted and transformed as was previously the KP1. The KP1, the user and database's name are stored on the application server's session and the user (U1) is redirected to
SUPERGOADMIN’S administration interface, giving a welcome greeting (M2).


If the encrypted key is not in the key value list (CV1), which is stored on application server's RAM (R1), then the connectivity to the database is checked using the connectivity data (D1), which were previously read, and the persistence technology , according to the used language, as JDBC, JPA and JDO, if there is no connection to Super-GoAdmin database (B1) an error message (M1) is sent and shown through an interface, but if the connection is correct, the object connectivity is stored in the key value list (CV1), this
object connectivity can only be obtained through an encrypted public key and. Afterward the process of storing the token on the application server is run.


GOADMIN user Authentication(Zoom in)



Figure 3 shows through a flow diagram, how the GOADMIN user (U2) is authenticated and opens a connection to database.
Once the user U1 is authenticated, communicates its public key (KP1) to the user U2. U2 sends the authentication data (data which are compared with the data stored in user table of Super-GoAdmin database (B1) and exchanged by connectivity data belonging to user U2), its public key (KP2) and U1's public key (KP1), using technological devices (DT2), which are connected to a network LAN or WAN , communicates with the application server, that contains the computing system which implements the GO AUTHENTICATION METHOD, this communication is done by an interface (I2), this interface allows to send the data (D2, KP1 and KP2), using the HTTP protocol, to application server, where the logic data (D2) are read, the public keys KP1 and KP2 are encrypted, the next step is to consult the encrypted public key KP1 in a key value list (CV1), which is stored on application server's RAM (R1).


If the encrypted key KP1 is not in the key value list (CV1) an error message (M3) is sent and shown through an interface because the user U1 is not previously authenticated. Otherwise, the logic credentials (D2) are verified with the data stored in the user table of Super-GoAdmin database (B1), using the object connectivity obtained by the encrypted public key (KP1).


If the logic credentials (D2) are not validated, an error message (M4) is sent and shown through an interface because U2’s authentication is incorrect. Otherwise, the connectivity data are obtained for GOADMIN user (U2) to verify the connectivity to its GoAdmin database (B2).


If U2 cannot establish with its database, an error message (M5) is sent and shown through an interface because of an error occurred in the authentication at database level. Otherwise, the objective connectivity belonging to U2 is stored in the key value list (CV1) which is stored on application server's RAM (R1) and the encrypted public key KP2 is transformed from ASCII code into hexadecimal code. Part of the connectivity data are the user and database's name, they are encrypted and transformed as was previously the KP2. The KP2, the user and database's name are stored on the application server's session and the user (U2) is redirected to GOADMIN's administration interface, giving a welcome greeting (M6).


GOUSER user Authentication(Zoom in)

Figure 4 shows through a flow diagram, how the GOUSER user (U3) is authenticated and opens a connection to database.
Once the user U2 is authenticated, communicates its public key (KP2) to the user U3. U3 sends the authentication data (data which are compared with the data stored in user table of GoAdmin database (B2) and exchanged by connectivity data belonging to user U3), its non-repudiation key (KNR1) and U2's public key (KP2), using technological devices (DT3), which are connected to a network LAN or WAN , communicates with the application server, that contains the computing system which implements the GO AUTHENTICATION METHOD, this communication is done by an interface (I3), this interface allows to send the data (D3, KNR1 and KP2), using the HTTP protocol, to application server, where the logic data (D3) are read, the non-repudiation key KNR1 and public key KP2 are encrypted, the next step is to consult the encrypted public key KP2 in a key value list (CV1), which is stored on application server's RAM (R1).


If the encrypted key KP2 is not in the key value list (CV1) an error message (M7) is sent and shown through an interface, because the user U2 is not previously authenticated. Otherwise, the logic credentials (D3) are verified with the data stored in the user table of GoAdmin database (B2), using the object connectivity obtained by the encrypted public key (KP2).


If the logic credentials (D3) are not validated, an error message (M8) is sent and shown through an interface because U3’s authentication is incorrect. Otherwise, the connectivity data are obtained for GOUSER user (U3) to verify the connectivity to GoAdmin database (B2), where U3 has access to write and read.


If U3 cannot establish with B2 database, an error message (M9) is sent and shown through an interface because of an error occurred in the authentication at database level. Otherwise, a unique token (TK1) is generated using the KNR1, the objective connectivity belonging to U3 is stored in the key value list (CV1) which is stored on application server's RAM (R1) and the key is the token TK1, which is encrypted and transformed from ASCII code into hexadecimal code. Part of the connectivity data are the user and database's name used by GOUSER to establish a connection with B2 , they are encrypted and transformed as was previously the KNR1. The KNR1, the user and database's name are stored on the application server's session and the user (U3) is redirected to GOUSER's administration interface, giving a welcome greeting (M10).

 

DATOS DEL INVESTIGADOR

Investigador

Nombres y apellidos:

Jonathan Franchesco Torres Baca

Edad:

27

Teléfono:

958429349

E-mail:

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Número de DNI [1]

45329234

Dirección:

Av Gran Chimu 1264 – La Victoria , Chiclayo

 

Departamento:

Lambayeque

Profesión u ocupación:

Ingeniero de Sistemas

 

ÁREA DE INVESTIGACIÓN: Seguridad Informática

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 DEL MÉTODO

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.


 

Figura 1: Niveles de seguridad

 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: AMPLIAR IMAGEN


Figura 2: Autenticación 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: AMPLIAR IMAGEN


Figura 3: Autenticación 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: AMPLIAR IMAGEN


Figura 4: Autenticación 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.

Antecedentes Técnicos:

 La presente invención permite Monitorear la actividad SQL, haciendo uso de un script    que permita firmar cada sentencia SQL que se ejecutará en la base de datos, está firma determina si la sentencia cuenta con autorización para ser ejecutada o no, permitiendo de esta manera la creación de un DAM (Database activity monitor) que permita controlar y dar seguimiento a la actividad SQL dentro de nuestras base de datos. A continuación se detalla el antecedente:

Patente US 2013/0246796 A1

                       Información de Patente:

                                   Título:

SYSTEM AND METHOD FOR SECURING

DATABASE ACTIVITY.

 

Inventores:

Aviad Lichtenstadt, Tel Aviv (IL); Guy

Lichtman, HertZliya (IL); Slavik

Markovich, Los Altos, CA (US)

 

Cesionario:

McAfee, Inc.

 

Fecha de Publicación:

            Sep. 19, 2013

                       Abstract:

A method is provided in one example embodiment that includes detecting database activity associated with a statement having a signature, validating the signature; and evaluating the statement as a signed statement if the signature is valid. In more particular embodiments, the signature may include a unique script identifier and a hash function of a shared key. In yet other embodiments, validating the signature may include checking a session variable and comparing the statement to a list of signed statements.

 

TECHNICAL FIELD

This specification relates in general to information systems, and more particularly, to a system and method for securing database activity.

 

BACKGROUND

Databases and their database management system (DBMS) counterparts have evolved to facilitate designing, building, and maintaining complex information systems, but databases and DBMSs themselves have also evolved into quite complex systems. The size, capabilities, and performance of databases and DBMSs have grown by orders of magnitude along with the progress of technology in the areas of processors, computer memory, computer storage, and computer networks.

 

Databases often contain sensitive data, which usually resides within tables that can be used by various applications. Many types of controls can be implemented to protect databases (and the sensitive data within them). For example, network security measures may be used to guard against unauthorized external access, while database activity monitoring tools can be used to audit internal activity and guard against authorized access for unauthorized purposes. However, these controls may not be able to differentiate adequately between authorized and unauthorized access to sensitive data by an authorized user. A manual investigation is often necessary to determine if many activities are approved. Thus, significant challenges remain for designing and implementing systems and methods for securing database activity.

Diferencias Técnicas:

El método de autenticación por clave pública o método de autenticación GO está diseñado para salvaguardar los datos de conectividad a los servicios de almacenamiento, a la vez que permite un control y seguimiento de la autenticación de usuarios en 3 niveles, lo que quiere decir que para cada usuario de sistema hay un correspondiente usuario de base de datos, con lo cual aseguramos el monitoreo de la actividad SQL de cada uno de los usuarios autenticados. A diferencia de el antecedente, a través del método de autenticación GO no se firman las sentencias a ejecutar, sino que cuando un usuario autentica correctamente ante el sistema y el servicio de almacenamiento se guarda el objeto de conectividad en la memoria RAM en una lista clave – valor. Donde la clave es un texto plano al cual se llama clave pública, el cual se encripta mediante cualquier algoritmo de encriptación y el valor es el objeto de conectividad que permitirá que las aplicaciones puedan comunicarse con los servicios de almacenamiento.

Como mencionamos anteriormente el método de autenticación GO se base en una autenticación en 3 niveles, al nivel más alto y de mayor riesgo lo llamaremos autenticación del supergoadmin, los usuarios que desean autenticar en este nivel tienen que proporcionar datos de conectividad al servicio de almacenamiento, además de la clave pública que se encriptará y será la clave para guardar el objeto de conectividad en un lista clave – valor. Al nivel intermedio lo llamaremos autenticación del goadmin, los usuarios que desean autenticar en este nivel tienen que proporcionar un usuario y clave lógicos, el esquema de bd al cual conectará y una clave pública, además de la clave pública generada en la autenticación del supergoadmin, la clave pública del supergoadmin es esencial en este proceso, ya que quien autentica a los goadmin son los usuarios tipo supergoadmin. Al nivel más bajo lo llamaremos autenticación gouser, esta autenticación es propia de los usuarios finales o usuarios de sistema, los usuarios que desean autenticar en este nivel tienen que proporcionar un usuario y clave lógicos además de la clave de no repudio junto con la clave pública generada en la autenticación de goadmin.

En simples palabra esto significa que supergoadmin permite autenticar a los goadmin y los goadmin permiten que los gouser autentiquen.

La principal objetivo de este método es salvaguardar los datos de conectividad, además de servir como método de autenticación de usuarios, sus beneficios al implementarlos:

* Permite desarrollar un DAM (Database activity monitor), con el cual se puede controlar y dar seguimiento a la actividad SQL de los usuarios del sistema y de la base de datos.

* Permite desarrollar balanceo de carga.

* Permite que dinamismo físico y lógico del servicio de almacenamiento, esto quiere decir que no importa la ubicación lógica (nivel de red) o física (geolocalizada) del servicio de almacenamiento.

* Permite desarrollar una estrategía y táctica de licencias para aplicaciones tipo SAAS.

Ventaja Técnica o efecto inesperado

·      La principal ventaja es salvaguardar los datos de conectividad, pues los datos jamás son guardados en archivos de texto plano o embebido en el código fuente de las aplicaciones, además son destruidos después de obtener el objeto de conectividad.

·        Alta performance, ya que el objeto de conectividad esta almacenado en la memoria RAM del servidor de aplicaciones en una arquitectura cliente – servidor, permitiendo que de esta manera mejorar el tiempo de conectividad con los servicios de almacenamiento.

·         Control de número de conexiones y sesiones abiertas en el almacén de datos.

·    Dinamismo físico y lógico del servicio de almacenamiento, esto quiere decir que no importa la ubicación lógica (nivel de red) o física (geolocalizada) del servicio de almacenamiento.

·       Permite desarrollar un DAM (Database activity monitor), con el cual se puede controlar y dar seguimiento a la actividad SQL de los usuarios del sistema y de la base de datos.

·    Permite desarrollar balanceo de carga, ya que las aplicaciones que implementen este método son independientes de la ubicación fisca o lógica del servicio de almacenamiento, permitiendo de esta manera desarrollar una sola vez y deployar las aplicaciones en varios servidores de aplicaciones

 

Escrito por @jofrantoba