4D v16.3

Usar protocolo TLS

Página Inicial

 
4D v16.3
Usar protocolo TLS

Usar protocolo TLS  


 

 

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.
  • 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: a presença do componente 4DSLI.DLL também é necessária para utilizar os comandos de criptografia de dados ENCRYPT BLOB e DECRYPT BLOB.

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 Web Server Settings). 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.

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.

A utilização de TLS no servidor web 4D não necessita de uma configuração do sistema específica. Entretanto, deve lembrar que um servidor web TLS pode igualmente funcionar em um modo não seguro. O modo de conexão pode trocar para outro modo se o navegador necessita fazer isso (por exemplo, na área da URL do navegador, o usuário pode substituir “HTTPS” por “HTTP”). O desenvolvedor pode proibir ou redirecionar as petições efetuadas em um modo não seguro. O comando WEB Is secured connectionpermite obter o modo de conexão atual.



Ver também 

DECRYPT BLOB
ENCRYPT BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
WEB Is secured connection
Web Server Settings

 
PROPRIEDADES 

Produto: 4D
Tema: Web Server

 
HISTÓRIA 

 
PALAVRAS CHAVES 

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

 
ARTICLE USAGE

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