4D v16.3

Utilizar el protocolo TLS

Inicio

 
4D v16.3
Utilizar el protocolo TLS

Utilizar el protocolo TLS  


 

 

El servidor web 4D puede comunicarse en modo seguro vía el protocolo TLS (Secured Socket Layer), el sucedor de SSL (Secured Socket Layer). Por defecto, la versión mínima soportada en 4D es TLS 1.2.

El protocolo TLS (sucesor de SSL) ha sido diseñado para dar seguridad al intercambio de datos entre dos aplicaciones, principalmente entre un servidor web y un navegador. Este protocolo es ampliamente utilizado y es compatible con la mayoría de los navegadores web.

A nivel de la arquitectura de red, el protocolo de seguridad se inserta entre la capa TCP/IP (nivel bajo) y el protocolo de alto nivel HTTP, para el cual está destinado principalmente.

Configuración de red utilizando TLS:

Nota: el protocolo TLS también puede utilizarse para asegurar las conexiones cliente/servidor "clásicas" de 4D Server, así como también las conexiones del servidor SQL. Para mayor información, consulte la sección Encriptar las conexiones cliente-servidor en el manual de 4D Server y la sección Configuración del servidor SQL de 4D en el manual de referencia SQL.

El protocolo TLS está diseñado para autenticar la identidad del emisor y del receptor, así como la confidencialidad e integridad de la información intercambiada:

• Autenticación: la identidad del emisor y receptor son confirmadas.

• Confidencialidad: los datos enviados se encriptan de manera que una tercera persona pueda entender el mensaje.

• Integridad: los datos recibidos no han sido alterados, por accidente o fraudulentamente.

La llave privada se utiliza para encriptar los datos, es conservada por el emisor (el sitio web). La llave pública se utiliza para desencriptar la información y se envía a los receptores (navegadores web) por medio de un certificado. Cuando utiliza TLS en Internet, el certificado se entrega por medio de una autoridad de certificación, como Verisign®. El sitio web paga a la autoridad certificadores por entregar un certificado que garantice la autenticación del servidor y que contenga la llave pública que permita el intercambio de datos en modo seguro.

Nota: para mayor información sobre el método de encriptación y el empleo de llaves públicas/privadas, consulte la descripción del comando ENCRYPT BLOB.

Un servidor funcionando en modo seguro necesita un certificado numérico de una autoridad de certificación. Este certificado contiene información tal como el ID del sitio, así como también la llave pública utilizada para comunicarse con el sitio. Este certificado se transmite a los clientes (navegadores web) que se conectan al sitio. Una vez identificado y aceptado el certificado, se establece la comunicación en modo seguro.

Nota: un navegador acepta únicamente los certificados de una autoridad de certificación referenciada en sus propiedades.

La elección de la autoridad de certificación depende de varios factores. Si la autoridad de certificación es conocida, el certificado será aceptado por muchos navegadores, sin embargo el precio será más alto.

Para obtener un certificado digital:

1. Genere una llave privada utilizando el comando GENERATE ENCRYPTION KEYPAIR.

Advertencia: por razones de seguridad, la llave privada siempre debe mantenerse secreta. De hecho, debe permanecer siempre en el equipo del servidor. Para el servidor web, el archivo Key.pem debe estar en la carpeta de la estructura de la base.

2. Utilice el comando GENERATE CERTIFICATE REQUEST para hacer una solicitud de certificado.

3. Envíe la solicitud a la autoridad de certificación que haya elegido.
Para llenar la solicitud de certificación, necesita contactar la autoridad de certificación. La autoridad de certificación verifica que la información transmitida sea correcta. La solicitud del certificado se genera en un BLOB utilizando el formato PKCS codificado en base64 (formato PEM). Este principio autoriza copiar y pegar las llaves como texto y enviarlas vía e-mail con total seguridad sin modificar el contenido de la llave. Por ejemplo, puede guardar el BLOB que contiene la solicitud del certificado en un documento de texto (utilizando el comando BLOB TO DOCUMENT), luego abrir y copiar y pegar su contenido en un email o formulario web a enviar a la autoridad de certificación.

4. Una vez haya recibido su certificado, cree un archivo de texto llamado “cert.pem” y pegue los contenidos del certificado en él.

Puede recibir un certificado de varias formas (generalmente por e-mail o un formulario HTML). El servidor web 4D acepta la mayoría de los formatos de texto (OS X, PC, Linux.). Sin embargo, el certificado debe estar en formato PEM, es decir PKCS, codificado en base 64.

Nota: los caracteres de fin de línea CR no están soportados; debe utilizar CRLF o LF.

5. Ubique el archivo “cert.pem” en la ubicación adecuada. Para el servidor web, es la carpeta que contiene la estructura de la base.
Ahora el servidor web puede funcionar en modo seguro. Un certificado es válido por lo general entre seis meses y un año.

Para que pueda utilizar el protocolo TLS con el servidor web de 4D, varios elementos deben estar instalados en el servidor, en diferentes ubicaciones:

  • 4DSLI.DLL (Windows) o 4DSLI.bundle (Mac OS): Interfaz de la capa segura dedicada a la gestión del TLS.
    Este archivo se instala por defecto en:
    - Bajo Windows, junto al archivo ejecutable de la aplicación 4D o 4D Server.
    - Bajo Mac OS, en la subcarpeta Native Components del paquete 4D o 4D Server.
  • key.pem: (documento que contiene la llave de encripción privada) y cert.pem (documento que contiene el certificado):
    - con 4D en modo local o 4D Server, estos archivos deben estar en la carpeta de estructura de la base.
    - con 4D en modo remoto, esto archivos deben estar en la carpeta de recursos locales de la base en el equipo remoto (para mayor información sobre la ubicación de esta carpeta, consulte el párrafo Carpeta base 4D Client en la descripción del comando Get 4D folder). Note que debe copiar los archivos manualmente en el equipo remoto.

Nota: la presencia del componente 4DSLI.DLL también es necesaria para utilizar los comandos de encriptación de datos ENCRYPT BLOB y DECRYPT BLOB.

La instalación de estos elementos hace posible la utilización del TLS en las conexiones al servidor web 4D. Sin embargo, para que las conexiones seguras sean aceptadas por el servidor web 4D, debe “activar” TLS. Este parámetro es accesible en la página Web, pestaña Configuración de las Propiedades de la base:

Por defecto, las conexiones TLS están activas. Pude deseleccionar esta opción si no quiere utilizar las funcionalidades TLS con su servidor web, o si otro servidor que permite conexiones seguras está operando en el mismo equipo.

El puerto TCP utilizado para las conexiones TLS es por defecto el 443. Este número de puerto puede modificarse en el área Número de puerto HTTPS para, por ejemplo, reforzar la seguridad del servidor web (para mayor información sobre este punto, consulte la sección Parámetros del servidor web). El puerto TCP definido en esta página de la propiedades se utiliza para las conexiones del servidor web en modo estándar.

Nota: las otras propiedades de gestión del servidor web 4D (contraseña, tiempo límite, tamaño de la caché, etc.) se aplican, sin importar si el servidor está operando en modo TLS o no.

Para que una conexión Web se efectúe en modo seguro, simplemente el URL enviado por el navegador debe comenzar por “https” (en lugar de “http”).
En este caso, aparece un diálogo de advertencia en el navegador. Si el usuario hace clic en OK, el servidor Web envía el certificado al navegador.

El algoritmo de encripción utilizado para la conexión es decidido por el navegador y el servidor Web. El servidor ofrece varios algoritmos de encriptación simétricos (RC2, RC4, DES...). Se utiliza el algoritmo común más poderoso.

Advertencia: el nivel de encriptación permitido depende de las leyes actuales del país de uso.

La utilización de TLS en el servidor web 4D no necesita de una configuración del sistema específica. Sin embargo, debe tener en cuenta que un servidor web TLS puede igualmente funcionar en un modo no seguro. Se puede cambiar el modo de conexión si el navegador lo necesita (por ejemplo, en el área del URL del navegador, el usuario puede reemplazar “HTTPS” por “HTTP”). El desarrollador puede prohibir o redireccionar las peticiones efectuadas en un modo no seguro. El comando WEB Is secured connection permite obtener el modo de conexión actual.



Ver también 

DECRYPT BLOB
ENCRYPT BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
Parámetros del servidor web
WEB Is secured connection

 
PROPIEDADES 

Producto: 4D
Tema: Servidor Web

 
HISTORIA 

 
PALABRAS CLAVES 

cert.pem, key.pem, 4DSLI.DLL

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)