4D v17.4

Usar protocolo TLS (HTTPS)

Página Inicial

 
4D v17.4
Usar protocolo TLS (HTTPS)

Usar protocolo TLS (HTTPS)  


 

 

O servidor web 4D pode comunicar-se em modo seguro através do protocolo TLS (Transport Layer Security)l -- o sucessor do protocolo SSL (Secured Socket Layer). Como padrão, a versão mínima compatível em 4D é TLS 1.2.

O protocolo TLS (sucessor do SSL) foi criado para dar segurança ao intercâmbio de dados entre duas aplicações, principalmente entre um servidor web e um navegador. Este protocolo é amplamente utilizado e for compatível com a maioria dos navegadores web.

Ao nível da arquitetura de rede, o protocolo TLS se insere entre a capa TCP/IP (nível baixo) e o protocolo de alto nível HTTP. TLS foi criado principalmente para trabalhar com HTTP.

Configuração de rede utilizando TLS:

Nota: O protocolo SSL também pode ser utilizado para garantir as conexões cliente/servidor "clássicas" de 4D Server. Para maior informação, consulte a seção Criptografar conexões cliente-servidor no manual de 4D Server e a seção Configuração do servidor SQL de 4D no manual de referência SQL.

O protocolo TLS está criado para autenticar a identidade do emissor e receptor, assim como a confidencialidade e integridade da informação intercambiada:

  • Autenticação: a identidade do emissor e receptor são confirmadas.
  • Confidencialidade: os dados enviados são criptografados de modo a que uma terceira pessoa possa entender a mensagem.
  • Integridade: os dados recebidos não foram alterados, por acidente ou de forma fraudulenta.
TLS utiliza uma técnica de criptografia de chave pública baseada em um par de chaves assimétricas para criptografia e descriptografia: uma chave pública e uma chave privada.
A chave privada se utiliza para criptografar os dados, e é conservada pelo emissor (o site web). A chave pública se utiliza para descriptografar a informação e se enviar aos receptores (navegadores web) através de um certificado. Quando utiliza TLS em Internet, o certificado é entregue através de uma autoridade de certificação, como Verisign®. O site web paga à autoridade certificadora para entregar um certificado que garantiza a autenticação do servidor e que contenha a chave pública que permita o intercâmbio de dados em modo seguro.

Nota: Para maior informação sobre o método de criptografia e o uso de chaves públicas/privadas, consulte a descrição do comando ENCRYPT BLOB.

Um servidor Web 4D em modo seguro necessita um certificado numérico de uma autoridade de certificação. Este certificado contém informação tal como a identidade do site além da chave pública utilizada para se comunicar com o site. Este certificado é transmitido aos navegadores web que se conectam ao site. Quando tiver identificado e aceito o certificado, se estabelece a comunicação em modo seguro.

Nota: Um navegador aceita unicamente aos certificados de uma autoridade de certificação referenciada em suas propriedades.

A escolha da autoridade de certificação depende de vários fatores. Se a autoridade de certificação é conhecida, o certificado será aceito por muitos navegadores, entretanto o preço será mais alto.

Para obter um certificado digital:

1. Gere uma chave privada utilizando o comando GENERATE ENCRYPTION KEYPAIR.

Advertência: Por razões de segurança, a chave privada deve sempre ser mantida secreta. Na verdade, deve permanecer sempre na máquina do servidor web. O arquivo Key.pem deve estar localizado na pasta da estrutura do banco.

2. Utilize o comando  GENERATE CERTIFICATE REQUEST para fazer uma solicitação de certificado.

3. Envie a solicitação à autoridade de certificação que tiver escolhido.
Para preencher a solicitação de certificação, necessita contatar a autoridade de certificação. A autoridade de certificação verifica que a informação transmitida seja correta. A solicitação do certificado é gerada em um BLOB utilizando o formato PKCS. Este formato autoriza copiar e pegar as chaves como texto e enviá-las através de e-mail sem modificar o conteúdo da chave. Por exemplo, pode guardar o BLOB que contém a solicitação do certificado em um documento de texto (utilizando o comando BLOB TO DOCUMENT ), depois abrir e copiar e colar seu conteúdo em um e-mail ou formulário web a enviar à autoridade de certificação.

4. Quando tiver recebido seu certificado, crie um arquivo de texto chamado “cert.pem” e cole os conteúdos do certificado nele.
Pode receber um certificado de várias formas (geralmente por e-mail ou um formulário HTML). O servidor web 4D aceita a maioria dos formatos de texto (OS X, PC, Linux...). Entretanto, o certificado deve estar em formato PEM, ou seja PKCS, codificado em base 64.

Nota: os caracteres de fim de linha CR não estão suportados; deve utilizar CRLF ou LF.

5. Ponha o arquivo “cert.pem” no local correto. Para o Web Server, esta é a pasta que contém a estrutura da banco.

Agora o servidor web pode funcionar em modo seguro. Um certificado é válido geralmente entre seis meses e um ano.

Se desejar utilizar o protocolo TLS como servidor web de 4D, os seguintes componentes deve estar instalados no servidor, em diferentes localizações:

  • 4DSLI.DLL (Windows) ou 4DSLI.bundle (Mac OS): interface da capa de segurança (Secured Layer Interface) dedicada à gestão doTLS.
    Este arquivo é instalado por padrão, ele é colocado:
    - Em Windows, ao lado do arquivo executável de a aplicação 4D ou 4D Server
    - Em Mac OS, na subpasta Native Components do pacote 4D ou 4D Server.
    Nota: 4DSLI também é necessário para utilizar os comandos de criptografia ENCRYPT BLOB e DECRYPT BLOB.
  • key.pem: (documento que contém a chave de criptografia privada) e cert.pem (documento que contém o certificado):
    - com 4D em modo local ou 4D Server, esses arquivos devem estar na pasta de estrutura da banco.
    - com 4D em modo remoto, esses arquivos devem estar na pasta de recursos locais doa banco na máquina remota (para maior informação sobre a localização desta pasta, consulte o parágrafo 4D Client Database Folder na descrição do comando Get 4D folder). Note que deve copiar os arquivos manualmente no máquina remoto.

Nota: os arquivos pré-determinados key.pem e cert.pem são fornecidos com 4D. Para um maior nível de segurança, lhe recomendamos que substitua esses arquivos com sues próprios certificados.

A instalação desses elementos possibilita a utilização doTLS nas conexões ao servidor web 4D. Entretanto, para que as conexões TLS sejam aceitas pelo servidor web 4D, deve “ativar” TLS. Este parâmetro é acessível na página Web, aba Configuração das Propriedades da banco:

Por padrão, as conexões TLS são permitidas. Pode deselecionar esta opção se não desejar utilizar as funcionalidades TLS com seu servidor web, ou se outro servidor Web que permite conexões seguras está operando na mesma máquina.

A porta TCP utilizada para as conexões TLS é por padrão 443. Este número de porta pode ser modificado na área Número de porta HTTPS para, por exemplo, reforçar a segurança do servidor web (para maior informação sobre este ponto, consulte a seção Configurações de Servidor Web). A porta TCP definida nesta página da propriedades é utilizada para as conexões do servidor web em modo padrão.

Nota: as outras propriedades de gestão do servidor web 4D (senha, tempo limite, tamanho da caché, etc.) se aplicam, sem importar se o servidor está operando em modo TLS ou não.

PFS agrega uma capa adicional de segurança a suas comunicações. Ao invés de utilizar chaves de intercâmbio pré-establecidas, PFS cria chaves de sessão cooperativamente entre as partes que se comunicam utilizando algoritmos Diffie-Hellman (DH). A maneira conjunta em que se construem as chaves cria um "segredo compartido" que impede que as partes externas possam comprometê-las.

Quando TLS estiver ativado no servidor web 4D, PFS se habilita automaticamente. Se o arquivo dhparams.pem (documento que contém a chave privada DH de servidor) ainda não existir, 4D o gerará automaticamente com um tamanho de chave de 2048. A geração inicial deste arquivo poderia demorar vários minutos. O arquivo é colocado junto com os arquivos key.pem e cert.pem, como foi discutido na seção anterior (Instalação e ativação SSL em 4D).

Se usar uma lista de cifrado personalizada e desejar habilitar PFS, deve verificar que contenha entradas com algoritmos DH ou ECDH (curva elíptica Diffie-Hellman).

Nota: para saber mais, consulte o seletor SSL cipher list do comando SET DATABASE PARAMETER

Para que uma conexão Web seja realizada em modo seguro, a URL enviada pelo navegador deve começar por “https” (em lugar de “http”).
Neste caso, aparece um diálogo de advertência no navegador. Se o usuário  clicar em OK, o servidor Web envia o certificado ao navegador.

O algoritmo de criptografia utilizado para a conexão é decidido pelo navegador e o servidor Web. O servidor Web 4D dispõe de vários algoritmos de criptografia simétricos (RC2, RC4, DES...). Se utilizar o algoritmo comum mais poderoso.

Advertência: O nível de criptografia permitido depende das leis atuais do país de uso.

Usar TLS com um servidor Web 4D exige marcar a checkbox "ATivar HTTPS" na caixa de diálogo Configurações de Banco de Dados. Isso assegura que conexões com o servidor Web podem ocorrer em um modo seguro. Entretanto, lembre que se a checkbox "Ativar HTTP" também estiver marcada, o navegador pode mudar entre HTTPS e HTTP (por exemplo, na área URL do navegador, o usuário pode substituir "https" por "http").

Notas:

Pode proibir ou redirecionar petições feitas em modo não -seguro:

  • Para proibir redireções http, desmarque a opção "Ativar HTTP" (ou use o seletor correspondente WEB SET OPTION). Nesse caso, as petições cliente HTTP serão ignoradas pelo servidor 4D Web e uma mensagem de erro será exibida
  • Para redirecionar automaticamente as petições HTTP para HTTPS, pode ativar  HTTP Strict Transport Security (HSTS) usando o comando WEB SET OPTION com o seletor Web HSTS enabled. Isso vai garantir o uso de TLS e assegurar que todas as comunicações serão via HTTPS. Veja a descrição do comando  WEB SET OPTION para informação detalhada sobre HSTS.



Ver também 

Configurações de Servidor Web
DECRYPT BLOB
ENCRYPT BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
HTTP SET CERTIFICATES FOLDER
WEB Is secured connection

 
PROPRIEDADES 

Produto: 4D
Tema: Web Server

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

 
PALAVRAS CHAVES 

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

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v17)
Manual de linguagem 4D ( 4D v17.1)
Manual de linguagem 4D ( 4D v17.2)
Manual de linguagem 4D ( 4D v17.3)
Manual de linguagem 4D ( 4D v17.4)