Base64 != Criptografia
Jovem Sysadmin vou te contar um segredo que será muito útil para a sua carreira, Base64 não é algoritmo de criptografia, vou repetir, Base64 não é algoritmo de criptografia. Lembre-se disso, Base64 não é algoritmo de criptografia. Base64 é um modelo de codificação de texto para binário.
Estava lendo no Estadão sobre o mais recente vazamento de dados de um sistema de pacientes do SUS, dados de pacientes com COVID-19 curados ou não foram expostos. Na reportagem fala que o sistema utiliza encriptação baseado em Base64!!! Não pode ser, não pode ser!! Pode sim, infelizmente pode sim!
Aqui vão três razões para não considerar o Base64 como mecanismo de encriptação ou segurança de dados para qualquer sistema, veja:
Razão 1
Existe uma tabela de referência do mapeamento entre as letras maiúsculas, minúsculas e números, para o seu valor equivalente em binário, essa tabela é pública, não é segredo, está na Internet e esse mapeamento é fixo.
Razão 2
É a coisa mais simples do mundo codificar e decodificar um texto em Base64. Suponha que o sistema do SUS tenha os seguintes dados:
- usuário: Joao
- senha: senha_do_joao
- CPF: 01020304-05
Codificando:
echo "Joao" |base64
Sm9hbwo=
$ echo "senha_do_joao" |base64
c2VuaGFfZG9fam9hbwo=
echo "01020304-05 " |base64
MDEwMjAzMDQtMDUgCg==
Muito bem, esses seriam os resultados da suposta encriptação de dados do sistema dos SUS. Vamos tentar descobrir esses dados “encriptados”.
Decodificando:
echo Sm9hbwo= |base64 -D
Joao
echo c2VuaGFfZG9fam9hbwo= |base64 -D
senha_do_joao
MDEwMjAzMDQtMDUgCg== |base64 -D
01020304-05
É tristemente fácil né?!?
Razão 3
Para ser considerado um tipo de criptografia deveria utilizar algum mecanismo de cifragem por hash criptográfico ou utilizar algum mecanismo de encriptação por meio de chaves simétricas ou assimétricas.
No exemplo mais simples de utilização de criptografia, Alice e Bob teriam duas chaves de criptografia, uma pública e uma privada, e eles trocariam mensagens de forma segura assim:
- Alice e Bob compartilham suas chaves públicas entre si
- Bob escreve um documento e encripta esse documento com sua privada
- Bob manda o documento para Alice
- Alice recebe o documento e o decripta com a chave pública de Bob
Esse seria a forma mais simples de fazer um documento ser transmitido por um meio inseguro e ser lido apenas pelas pessoas interessadas no assunto.
Resumo
São três boas razões para ser convencido. Mas se algum dia, você sentir que as forças da natureza te forçam a encriptar alguma coisa com Base64, lembre-se! “Base64 não é algoritmo de criptografia”.
Abraço! Que a força esteja com você!
DICA RÁPIDA DE LIVRO
Estou lendo atualmente o livro O Projeto Fênix: Um romance sobre TI, DevOps e sobre ajudar o seu negócio a vencer
Referências
MENTORIA
Curtiu o blog? Quer trocar uma ideia comigo sobre algum post?
Marca Aqui! É um papo gratuito
oferecido para quem é leitor do blog, podemos falar de temas como: DevOps, SRE e carreira em TI.
Te convido a ver os outros posts do blog Infra-as-Code garanto que tem coisas legais lá!!
|