Esse artigo faz parte da revista Clube Delphi Edição 74. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML.

Criptografia no DataSnap

 

Segurança na troca de dados entre cliente e servidor
Aplicações DataSnap com SOAP utilizam a tecnologia de Web Services para solicitar e receber informações da aplicação servidora. Os dados trafegam pela rede em pacotes XML através de solicitações HTTP e podem ser facilmente captados por agentes externos. Esse fato negativo ocasionou uma grande difamação da tecnologia.
Existem vários projetos para proporcionar mais segurança aos Web Services, mas nenhum está totalmente regulamentado. Isso não é motivo para deixarmos de utilizar essa tecnologia.Afinal, nós mesmos podemos criptografar os pacotes de dados na aplicação servidora e descriptografar os pacotes na aplicação cliente.
. Em nossos testes iniciais, tentávamos uma alternativa bem genérica que criptoqrafasse todo o pacote enviado pela aplicação servidora. Mas tivemos problemas em receber esse pacote na aplicação cliente, onde não foi possível encontrar um evento que pudesse descriptografar o pacote antes de tentar abri-lo e consequentemente ocorrer um erro devido ao não conhecimento do pacote em XML pela aplicação.
Tentávamos,através de eventos e métodos dispostos pelo Delphi e pela tecnologia SOAP, encontrar maneiras de fazer essa criptografia sem alterar o código-fonte da interface IAppServerSOAP. Com o tempo e a eliminação de hipóteses sobrou uma possibilidade que foi a que efetivamente funcionou e cumpre com o proposto no artigo, criar as próprias funções de interface.
Então, veremos neste artigo como criar uma DLL que armazenará a função de criptografia e será compartilhada pela aplicação servidora e a cliente. Também criaremos uma aplicação servidora, acessando o banco de dados DBDemos com InterBase,e uma aplicação cliente que fará solicitações de consultas e alterações de dados, transmitindo e recebendo pacotes XML criptografados.

...

Quer ler esse conteúdo completo? Tenha acesso completo