EPT Protocol

EPT Protocol

Documentación

Encrypted Parameterization Transfer

El Protocolo de parametrización encriptada (en inglés Encrypted Parameterization Transfer o EPT) es un protocolo de red para la paratrización de valores variables entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para transferir parámetros de cuelquier valor en ambas direcciones, independientemente del sistema operativo utilizado en cada equipo.
El servicio EPT es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 14200. Este servicio envía los paquetes de cifrados en forma de encriptación con dos claves que el usuario proporciona al sistema, tanto en cliente como en servidor y que en ningún caso viajan por los paquetes de red, lo que hace de este protocolo un sistema de transferencia seguro de ataques externos que intenten modificar la información.
EPT comprueba en la salida y en la llegada la integridad de los datos, si hay una variación en uno de solo de sus bytes, el paquete es descartado automáticamente.

El Modelo EPT

El siguiente modelo representa el diagrama de un servicio EPT.
En el modelo, el intérprete de protocolo (EPT_Protocol) de usuario inicia la conexión de control en el puerto 14200. Las órdenes EPT estándar las genera el EPT_Protocol de usuario y se transmiten al proceso servidor a través de la conexión de control. Las respuestas estándar se envían desde la EPT_Protocol del servidor hasta la EPT_Protocol de usuario por la conexión de control como respuesta a las órdenes.
Estas órdenes EPT especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema de parámetros. El proceso de transferencia de datos de usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 14200) y transferir los datos en función de los parámetros que se hayan especificado.
También hay que destacar que la conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el tiempo que dura la conexión EPT.
El protocolo EPT está basado en tres capas de orden inverso. La capa EPT_Protocol, la capa EPT_Param y la capa EPT_Encrypt.

El Modelo EPT

La versión actual del protocolo, diciembre de 2019 es 1.0.0.0
Consta de 6 bloques de memoria:
  • Bloque 1 – Versión del protocolo. Un integer de cuatro byes, cada bytes asigna el número de versión.
  • Bloque 2 – Un entero que transporta el tamaño total del datagrama, incluyendo el tamaño de EPT_Params.
  • Bloque 3 – Contiene la dirección IP de la maquina de origen guardado en un entero de 4 bytes.
  • Bloque 4 – Contiene la dirección IP de la maquina de destino guardado en un entero de 4 bytes.
  • Bloque 5 – TypeData. Tipo de datos envíados por el protocolo definido en EPT_Protocol_TypeData para la deserialización de EPT_Params. En la versión 1.0.0.0, hay cuatro tipo de datos:
    • 0 = Null: Los datos del diagrama no son válidos o el paquete de datos debe ser ignorado por el receptor.
    • 1 = ResponseConnect: Recibe una respuesta en las dos direcciones, del servidor al cliente o del cliente al servidor.
    • 2 = Parameterization: El protocolo transporta los valores de los parametros asignados en EPT_Params.
    • 3 = SaturaterdServer: No se ha podido conectar porque el servidor está saturado.

EPT_Params

EPT_Params es una clase que transporta los parámetros y sus valores personalizados por el usuario. Una vez creado los parámetros personalizados del usuario, EPT los serializa en un array binario y lo añade al datagrama, lo encripta y lo transporta por socket por TCP/IP al otro lado de la conexión, que lo recibe y hace la operación inversa.
Esta clase está implementada en una librería para .NET llamada EPT.Dll basada en la arquitectura de datos binarios JBin.

EPT_Encrypt

Encripta el datagrama una vez creado antes del transporte por la red TCP/IP. La encriptación utilizada es através de la librería JBin. El tipo de encriptación es con el estándar de Rijndael.
AES (Advanced Encryption Standard) o Rijndael es un esquema de cifrado por bloques adoptado como un estándar de cifrado por el gobierno de los Estados Unidos. AES fue anunciado por el Instituto Nacional de Estándares y Tecnología (NIST) después de un proceso de estandarización que duró 5 años. Se transformó en un estándar efectivo el 26 de mayo de 2002. Desde 2006, el AES es uno de los algoritmos más populares usados en criptografía simétrica.