Skip to main content

Usar criptografia em aplicativos personalizados

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Descrever a classe Crypto do Apex.
  • Explicar os diferentes casos de uso da classe Crypto do Apex e da criptografia personalizada.
  • Implementar a criptografia em seu próprio aplicativo.

O que é a Classe Crypto do Apex?

Quando se trata de implementar criptografia em seu aplicativo Salesforce, o Apex oferece a você a flexibilidade de escrever suas próprias funções criptográficas personalizadas e permite usar muitas funções pré-criadas. Nesta unidade, vamos percorrer algumas das funções mais poderosas que o Salesforce oferece para criar resumos, códigos de autenticação de mensagem (MACs), assinaturas e funções de criptografia e descriptografia por meio da classe Crypto do Apex. 

A classe Crypto disponibiliza conjuntos de funções que são especialmente valiosas para proteger suas comunicações. Usando estas funções, você consegue proteger eficazmente os dados confidenciais contra pessoas indesejadas, verificar se os dados da mensagem estão completos e inalterados e verificar a autenticidade dos remetentes e destinatários. Cada uma destas funções suporta vários algoritmos diferentes. Isso proporciona um bom nível de controle sobre a composição da sua solução, minimizando o trabalho extra necessário para proteger seu aplicativo. 

Criptografia e descriptografia para proteger a confidencialidade 

A criptografia e a descriptografia podem ser processadas facilmente e de forma flexível com as funções Apex Crypto.Encrypt() e Crypto.Decrypt(), que são compatíveis com os algoritmos AES128, AES192 e AES256. As funções de criptografia e descriptografia são essenciais para garantir a confidencialidade dos dados do seu aplicativo. Em seguida, você tem a opção de gerar sua própria chave de criptografia ou usar o método Crypto.generateAESKey(Integer keylength). Para proteger as chaves de criptografia, você pode usar as técnicas que praticou na unidade anterior para armazenar segredos em tipos de metadados personalizados protegidos ou configurações personalizadas protegidas. 

Resumos (hash) para proteger a integridade

Outra função útil para verificar a integridade dos dados é a função Apex Crypto.generateDigest(). Esse método gera um resumo (hash) unidirecional e é compatível com algoritmos como MD5, SHA1, SHA256 e SHA512. Os resumos (hash) podem ser muito úteis na identificação de dados corrompidos acidentalmente (ou outras modificações indesejadas). Ao efetuar verificações de comparação em resumos (hash), você pode encontrar alterações nos dados rapidamente. O resumo recalculado desses dados não corresponderá ao resumo original, o que permite confirmar que os dados foram modificados. Essa situação pode alertá-lo para eventos como dados corrompidos e alterações acidentais ou mal-intencionadas.

Observe que os algoritmos de hash possuem graus de força distintos em termos de segurança. Embora o MD5 seja compatível com a classe Crypto, ele é considerado um algoritmo de hash fraco e, por isso, o Salesforce sugere a utilização do SHA1 ou superior para calcular resumos (hash). 

Códigos de autenticação de mensagem (MACs) com base em hash para demonstrar autenticidade e integridade

Outra função útil é o método Apex Crypto.generateMac(), que pode ser usado para criar MACs. Os MACs podem ser usados juntamente com funções de resumo da mensagem para configurar MACs com base em hash (HMACs). Os HMACs são usados nos protocolos TLS e IPSec para autenticar remetentes de mensagens e fazer com que as mensagens não sejam modificadas (ou interceptadas) em trânsito. 

O método Crypto.generateMac() é compatível com os algoritmos HMACMD5, HMACSHA1, HMACSHA256 e HMAC512. As funções HMAC envolvem o uso de resumos da mensagem e de uma chave compartilhada que o remetente usa para criptografar um MAC e que o destinatário usa para descriptografar o MAC. Como o destinatário precisa descriptografar o MAC usando a chave privada compartilhada, você pode verificar a autenticidade do remetente da mensagem. Os resumos da mensagem podem, então, ser comparados para permitir que o destinatário confirme que a mensagem não foi modificada em trânsito — ou seja, por meio de um ataque man-in-the-middle. 

Como criar uma assinatura digital

As assinaturas digitais garantem a integridade e a autenticidade das mensagens. Para gerar uma assinatura digital, você pode utilizar a função Crypto.sign(), que usa o algoritmo SHA1 para criar um resumo; esse resumo é depois criptografado com uma chave privada usando RSA. Com essa configuração, o destinatário de uma mensagem pode usar uma chave pública para descriptografar a mensagem (que foi criptografada com a chave privada do remetente) e comparar o resumo da mensagem enviado com o resumo gerado a partir da mensagem recebida, permitindo que o destinatário confirme a sua integridade. 

Agora que você sabe como implementar a criptografia em seu aplicativo Salesforce, você pode usar a flexibilidade do Apex para aproveitar as funções pré-criadas ou para escrever suas próprias funções criptográficas personalizadas. 

A criptografia, em conjunto com recursos da plataforma como os oferecidos pela classe Crypto do Apex, ajuda a garantir a segurança dos aplicativos que você cria para a Salesforce Platform. E aplicativos seguros são a chave para a confiança e o sucesso do cliente. 

Recursos

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira