Criptografia com preservação de formato para garantir a privacidade de dados financeiros e pessoais

Gonzalo Álvarez Marañón    26 octubre, 2020
Criptografia com preservação de formato para garantir a privacidade de dados financeiros e pessoais

Suas informações pessoais se espalham por milhares de bancos de dados de organizações públicas e privadas. Como proteger sua confidencialidade para que ela não caia em mãos erradas? À primeira vista, a solução parece óbvia: criptografá-lo. Infelizmente, em criptografia, as coisas nunca são simples, criptografar informações dessa maneira tem muitas desvantagens. Vamos ver com um exemplo.

Desvantagens da criptografia de dados confidenciais

Imagine que uma loja online ou sua instituição financeira deseja criptografar o número do cartão de crédito que mantém em seu banco de dados. Eles poderiam recorrer à solução de criptografia padrão: use AES, por exemplo, no modo CTR com uma chave de 128 bits e com um vetor de inicialização aleatório. Se o número do seu cartão for 4444 5555 1111 0000, o resultado da criptografia com AES-128-CTR é mostrado na tabela a seguir, codificado de diferentes maneiras comuns:

Texto claro4444 5555 1111 0000
Texto criptografado em Base64U2FsdGVkX1 / Kgcb0V8G ++ 1DWcwyu47pWXflP2CiVda51Ew ==
Texto hexadecimal criptografado53616c7465645f5f3601f1e979348111d342c038e9275492a1966fd8659f61a89869
Texto criptografado não criptografadoSalgado__ݺ▒Ii <½║ ‘{☺Éqc »▬ @ Çþ¶ÔÈ × C♂ ♦

Como você pode ver, o formato do texto cifrado não tem nada a ver com o formato do texto claro original:

  • Alterar o comprimento: o texto cifrado é muito mais longo do que o texto não criptografado. Isso violaria os limites de comprimento padrão para cartões de crédito impostos pelo banco de dados.
  • Mude o formato: ninguém reconheceria aquele chouriço como um número de cartão de crédito. Se um invasor cibernético rouba seu banco de dados, você não precisa ser muito inteligente para descobrir que o que você está roubando não é um cartão de crédito pronto para usar.
  • Alterar o conjunto de caracteres: não passaria em qualquer validação do conteúdo do registro, pois contém caracteres que não são números e muito menos em sua forma não codificada, que parece o WhatsApp de um adolescente. O texto cifrado causaria problemas no esquema de dados.

Esta transformação de texto simples em uma string monstro quebrará muitos sistemas:

  • Você não poderá armazená-lo em bancos de dados que não estão preparados para aceitar este novo formato.
  • Você não poderá transmiti-lo por meio dos gateways de pagamento para usar.
  • Você terá que decifrar cada vez que usá-lo.
  • Você não poderá pesquisar um número de cartão específico no banco de dados para consultar suas operações.

Te parece pouco? Bem, os problemas não param por aí. Se durante uma consulta ao banco de dados, o valor criptografado for descriptografado para leitura e, em seguida, criptografado novamente, o AES no modo CTR usará um novo vetor de inicialização aleatório, de modo que a criptografia final não se parecerá com o valor criptografado anterior . Como prova, nesta nova tabela você tem o mesmo valor do cartão criptografado com a mesma chave, mas com outro vetor de inicialização:

Texto claro4444 5555 1111 0000
Texto criptografado em Base64U2FsdGVkX18OyY1wEH1Co2mFw3nXazm9e6yCGqLLAyTbug ==
Texto hexadecimal criptografado53616c7465645f5f09c2cb2e14abda1d21bea9d22e3653e8310e6e8551a94bbf1467
Texto criptografado não criptografadoSalgado__Ñ╬T7¶Í «é¿r═§yG» ¬³hºƒð7 → {╩e

Nada para ver, certo? Como consequência, esqueça o uso de dados criptografados como uma chave exclusiva para identificar uma linha em um banco de dados, porque eles mudam de criptografia para criptografia.

Resumindo: criptografar dados formatados de maneira muito rígida, como um cartão de crédito, apresenta limitações práticas aparentemente intransponíveis . Mas então, se a mudança de formato impede sua criptografia, como cumprir os regulamentos mais recentes, como o GDPR, o PCI DSS ou o PSD2? Como preservar a confidencialidade dos dados sem prejudicar a funcionalidade dos bancos de dados?

Que solução a criptografia oferece?

A resposta que os criptógrafos têm para esse dilema é conhecida como criptografia de dados com formatação preservada (Format-Preserving Encryption, FPE). O FPE estende algoritmos de criptografia clássicos, como AES, para que o texto cifrado mantenha o comprimento e formato originais. Além do mais, no caso particular de um cartão de crédito, o valor criptografado pode até mesmo ser feito para passar no cheque Luhn. Veja como o número do cartão de crédito antigo seria criptografado usando o FPE:

Texto claro4444 5555 1111 0000
Texto cifrado com FPE1234 8765 0246 9753

Com o FPE, um cartão de crédito é criptografado em uma cadeia que ainda parece um cartão de crédito e passa em todos os cheques.

Graças ao FPE, os dados não causam mais erros em bancos de dados, formatos de mensagem ou aplicativos legados. E qual é a grande vantagem do FPE? Você pode processar e analisar os dados enquanto eles estão criptografados, pois eles continuarão a atender às regras de validação.

Claro, existem vários dados altamente formatados, além dos números de cartão de crédito, que podem ser protegidos com sucesso usando o FPE:

  • Número IMEI
  • Numero de conta bancária
  • Número de telefone
  • Número da Segurança Social
  • Código postal
  • DNI                                            
  • endereço de email
  • Etc.

Esses identificadores são usados ​​rotineiramente por todos os tipos de indústrias: comércio eletrônico, financeiro, saúde, etc. A questão é: quão seguros são esses métodos de criptografia?

FPE no mundo real

Em 2013 o NIST adotou em sua recomendação SP 800-38G três algoritmos para criptografar os dados preservando o formato, denominados, respectivamente, FF1, FF2 e FF3. Se você está curioso sobre o nome, ele se deve ao uso de um esquema de cifra muito antigo: a cifra Feistel; portanto, os algoritmos baseados nele são chamados de criptografia com preservação de F ormatel baseada em F eistel ou FF. FF2 nem viu a luz do dia, pois foi quebrado durante o processo de aprovação. Quanto ao FF3, em 2017 eles já encontraram fragilidades, que foram reforçadas em sua versão posterior FF3-1. Por enquanto, FF1 e FF3-1 mantêm o tipo.

Apesar de tudo, os algoritmos do FPE ainda têm limitações:

  • Os algoritmos FPE são determinísticos: o texto simples idêntico resultará em texto cifrado idêntico quando criptografado com a mesma chave, ao contrário da criptografia convencional, que geralmente é aleatória. No entanto, para dados com formatos menos exigentes, como um endereço de e-mail, a aleatoriedade pode ser facilmente adicionada, já que um endereço de e-mail pode ter qualquer comprimento, ao contrário de, por exemplo, um número de telefone que sempre terá 9 dígitos.
  • Os esquemas do FPE não fornecem integridade de dados (você não tem garantia se os dados criptografados foram adulterados) ou autenticação do remetente (você não tem garantia de quem criptografou os dados).

Em suma, o FPE continua como um problema de pesquisa aberto, no qual ainda veremos muitos avanços tanto na criptoanálise (quebra de algoritmos) quanto na criação de novos e mais poderosos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *