Criptografia
Criptografia e a pratica de proteger informacoes transformando-as em um formato ilegivel, conhecido como texto cifrado, de forma que apenas pessoas com a chave de descriptografia possam le-las. Esta tecnica e utilizada para garantir a confidencialidade e seguranca de dados sensiveis, como senhas, informacoes financeiras e comunicacoes eletrônicas
.
As mais utilizadas no mercado:
AES (Advanced Encryption Standard)
Muito usada para proteger dados em repouso, como arquivos armazenados em dispositivos ou bancos de dados.
RSA (Rivest-Shamir-Adleman)
Utilizada na troca segura de chaves, assinaturas digitais e comunicacao segura (como em HTTPS).
Criptografia SHA (Secure Hash Algorithm)
Transformacoes unidirecionais que tornam praticamente impossivel reverter ao valor original, uteis para validar conteudo sem expor o dado.
Criptografia de Curvas Elipticas (ECC - Elliptic Curve Cryptography)
Proporciona o mesmo nivel de seguranca do RSA, mas com chaves menores e mais eficientes.
Como e aplicado na programacao segura?
A criptografia e uma das bases da programacao segura, sendo aplicada de diversas formas em sistemas, APIs, bancos de dados e aplicacoes web. Aqui estao algumas das formas mais comuns de aplicar criptografia na pratica da programacao segura, divididas por uso:
Protecao de Senhas de Usuarios (com Hash)
Senhas nunca devem ser armazenadas diretamente no banco de dados.
Sao aplicadas funcoes hash criptograficas (como SHA-256 ou bcrypt) para transformar a senha em uma representacao irreversivel.
Transmissao Segura de Dados (com HTTPS + TLS)
Em APIs ou aplicacoes web, os dados trafegam criptografados por meio do protocolo HTTPS, que usa TLS (Transport Layer Security).
Esse processo envolve criptografia assimetrica (RSA/ECC) para troca de chaves, e simetrica (AES) para transmissao.
Criptografia de Dados Sensiveis em Banco de Dados
Informacoes como CPF, cartoes de credito, e enderecos podem ser criptografadas com AES antes de serem salvas no banco.
A chave e armazenada separadamente (idealmente em um gerenciador de segredos, como AWS KMS ou Vault).
Assinaturas Digitais e Tokens de Acesso
Tokens como JWT (JSON Web Token) sao assinados com uma chave secreta (HMAC) ou par de chaves (RSA).
Garante que o token nao foi alterado.