versión 2003 (Modificado)
El servidor Web 4D puede comunicarse en modo seguro vía el protocolo SSL (Secured Socket Layer).
Definición del protocolo SSL
El protocolo SSL ha sido diseñado 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.
Al nivel de la arquitectura de red, el protocolo SSL se inserta entre la capa TCP/IP (nivel bajo) y el protocolo de alto nivel HTTP. SSL ha sido diseñado principalmente para trabajar con HTTP.
Configuración de red utilizando SSL:
Nota: el protocolo SSL también puede utilizarse para asegurar las conexiones cliente/servidor "clásicas" de 4D Server. Para mayor información, consulte la sección Encrypting Client/Server Connections en el manual de 4D Server.
El protocolo SSL está diseñado para autenticar la identidad del emisor y 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.
SSL utiliza una técnica de encripción de llave pública basada en un par de llaves asimétricas para encripción y desencripción: una llave pública y una llave privada.
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 SSL 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.
¿Cómo obtener un certificado?
Un servidor Web 4D funcionando en modo seguro necesita un certificado numérico de una autoridad de certificación. Este certificado contiene información tal como la identidad del sitio así como también la llave pública utilizada para comunicarse con el sitio. Este certificado se transmite a los 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 SSL:
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 Web. El archivo Key.pem debe estar ubicado 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. Este formato autoriza copiar y pegar las llaves como texto y enviarlas vía e-mail 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 (Mac OS, PC, Linux...) para los certificados. Sin embargo, el certificado debe estar en formato PKCS.
5. Ponga el archivo "cert.pem" en 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.
Instalación y activación del SSL en 4D
Si quiere utilizar el protocolo SSL con el servidor Web de 4D, los siguientes componentes debe estar instalados en el servidor, en diferentes ubicaciones:
4DSLI.DLL: interfaz de la capa de seguridad (Secured Layer Interface) dedicada a la gestión del SSL.
Este archivo debe estar ubicado en la carpeta [4D Extensions] de la aplicación 4D que publica la base en la Web.
key.pem: documento que contiene la llave de encripción privada.
- con 4D en modo local o 4D Server, este archivo debe estar ubicado en la carpeta de la base.
- con 4D en modo remoto, este archivo debe estar ubicado en la capeta/paquete de la aplicación 4D.
cert.pem: documento que contiene el certificado.
- con 4D en modo local o 4D Server, este archivo debe estar ubicado en la carpeta de la base.
- con 4D en modo remoto, este archivo debe estar ubicado en la capeta/paquete de la aplicación 4D.
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 SSL en las conexiones al servidor Web 4D. Sin embargo, para que las conexiones SSL sean aceptadas por el servidor Web 4D, debe "activar" el SSL. Este parámetro es accesible en la página Configuración del tema Web de las Preferencias:
Por defecto, las conexiones SSL están permitidas. Pude deseleccionar esta opción si no quiere utilizar las funcionalidades SSL con su servidor Web, o si otro servidor Web que permite conexiones seguras está operando en el mismo equipo.
El puerto TCP utilizado para las conexiones SSL es por defecto el 443. Este número de puerto puede ser modificado 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 Web Server Settings). El puerto TCP definido en esta página de las Preferencias se utiliza para las conexiones del servidor Web en modo estándar.
Nota: las otras preferencias 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 SSL o no.
Conexión de los navegadores con SSL
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 Web 4D dispone de 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. Los niveles de encriptación ofrecidos por el servidor Web 4D dependen de la versión de la librería sistema de encriptación utilizada. Por defecto, 4D ofrece una versión "Export" de la librería, donde los algoritmos simétricos están limitados a 40 bits.
Control del modo de conexión
La utilización de SSL 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 SSL 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 Secured Web 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, Secured Web connection.