4D v18

Utilizar el protocolo TLS (HTTPS)

Inicio

 
4D v18
Utilizar el protocolo TLS (HTTPS)

Utilizar el protocolo TLS (HTTPS)  


 

 

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, los siguientes componentes 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:
    - Windows, junto al archivo ejecutable de la aplicación 4D o 4D Server.
    - Mac, en la subcarpeta Native Components del paquete 4D o 4D Server.
    Nota: 4DSLI también es necesario para utilizar los comandos de encripción ENCRYPT BLOB y DECRYPT BLOB.
  • 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:
      • en bases binarias, estos archivos deben estar junto al archivo de estructura de la base
      • en bases proyecto, estos archivos deben estar junto a la carpeta proyecto
    • con 4D en modo remoto, esto archivos deben estar en la carpeta de recursos locales de la base en el equipo remoto (para más 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). Debe copiar los archivos manualmente en el equipo remoto.
      Nota:
      los archivos predeterminados key.pem y cert.pem se suministran con 4D. Para un mayor nivel de seguridad, le recomendamos que reemplace estos archivos con sus propios certificados.

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 TLS sean aceptadas por el servidor web 4D, debe “activarlas” activando HTTPS. 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 son permitidas. Pude deseleccionar la opción HTTPS si no quiere utilizar las funcionalidades TLS con su servidor web, o si otro servidor web que permite conexiones seguras está operando en el mismo equipo.

El puerto HTTPS dedicado para las conexiones TLS es por defecto el 443. Este número de puerto puede modificarse en el área Número de puerto HTTPS, por ejemplo, para reforzar la seguridad del servidor web (para mayor información sobre este punto, consulte la sección Parámetros del servidor web). El puerto HTTP 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.

PFS agrega una capa adicional de seguridad a sus comunicaciones. En lugar de utilizar llaves de intercambio preestablecidas, PFS crea llaves de sesión cooperativamente entre las partes que se comunican utilizando algoritmos Diffie-Hellman (DH). La manera conjunta en que se construyen las llaves crea un "secreto compartido" que impide que las partes externas puedan comprometerlas.

Cuando TLS está activado en el servidor web 4D, PFS se habilita automáticamente. Si el archivo dhparams.pem (documento que contiene la llave privada DH del servidor) aún no existe, 4D lo generará automáticamente con un tamaño de llave de 2048. La generación inicial de este archivo podría demorar varios minutos. El archivo se coloca con los archivos key.pem y cert.pem, como se discutió en la sección anterior (Instalación y activación del TLS en 4D).

Si usa una lista de cifrado personalizada y desea habilitar PFS, debe verificar que contenga entradas con algoritmos DH o ECDH (curva elíptica Diffie-Hellman).

Nota: para más información, consulte el selector SSL cipher list del comando SET DATABASE PARAMETER

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. 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 necesita que se marque la casilla "Activar HTTPS" en el dialogo de configuración de la base. Esto asegura que las conexiones con el servidor web pueden ocurrir en un modo seguro. Sin embargo, tenga en cuenta que si la casilla de selección "Activar HTTP" también está marcada, el navegador puede cambiar entre HTTPS y HTTP (por ejemplo, en el área URL del navegador, el usuario puede reemplazar "https" por "http").

Notas:

  • Puede obtener el modo de conexión actual utilizando el comando WEB Is secured connection.
  • La activación de HTTP y/o HTTPS también se puede establecer para la sesión utilizando el comando WEB SET OPTION.

Puede prohibir o redirigir las solicitudes realizadas en un modo no seguro:

  • Para prohibir las redirecciones HTTP, desmarque la opción "Activar HTTP" (o utilice el selector correspondiente WEB SET OPTION). En este caso, el servidor web 4D ignorará las solicitudes HTTP del cliente y se mostrará un mensaje de error.
  • Para redirigir automáticamente las solicitudes HTTP a HTTPS, puede activar HTTP Strict Transport Security (HSTS) utilizando el comando WEB SET OPTION con el selector Web HSTS enabled. Esto exigirá el uso de TLS y garantizará que todas las comunicaciones se realicen a través de HTTPS. Consulte la descripción del comando WEB SET OPTION para obtener información detallada sobre HSTS.



Ver también 

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

 
PROPIEDADES 

Producto: 4D
Tema: Servidor Web

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

 
PALABRAS CLAVES 

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

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v18)