Criptografia: simétrica, assimétrica, hashes e assinaturas digitais
Criptografia simétrica e assimétrica, hashes, assinaturas digitais, gestão de chaves e aplicações em APIs
Edição aprofundada — material de estudo e consulta profissional
Por João Ricardo Dutra••Material integral
Figura 7.1 - Mapa das principais primitivas criptograficas.
Este capitulo apresenta os fundamentos matematicos e operacionais da criptografia moderna e conecta cada primitiva ao uso real em , , , assinaturas de mensagens, cofres de chaves e . O objetivo e permitir que o leitor reconheca o papel de cada algoritmo, seus parametros criticos e os riscos de uma composicao incorreta.
Objetivos do capitulo
Distinguir confidencialidade, integridade, autenticidade, autorizacao e nao repudio, evitando atribuir a um algoritmo propriedades que ele nao fornece.
Compreender as diferencas entre criptografia simetrica e assimetrica, bem como o motivo de sistemas modernos combinarem as duas em esquemas hibridos.
Entender , modos de operacao, cifras de fluxo, , , IVs, tags e os efeitos do reuso de parametros.
Compreender funcoes , , KDFs, armazenamento de senhas e a diferenca entre simples e derivacao resistente a ataques de senha.
Entender , criptografia de curvas elipticas, troca de chaves, encapsulamento de chaves e assinaturas digitais.
Relacionar primitivas criptograficas a , , , , , , Open Finance, , , Axway e Azure Management.
Construir um processo de para falhas de assinatura, decriptacao, integridade, codificacao e acesso a chaves.
Conhecer os padroes pos-quanticos 203, 204 e 205 e compreender por que e inventario sao requisitos arquiteturais.
Como estudar este capitulo
Criptografia costuma parecer um conjunto de siglas isoladas: , , , , , EdDSA, GCM, OAEP e PSS. O aprendizado melhora quando essas siglas sao organizadas por objetivo. Primeiro identifique o servico desejado - cifrar, verificar integridade, autenticar uma mensagem, estabelecer uma chave ou assinar. Depois escolha a primitiva, o esquema e os parametros apropriados. Por fim, examine o ciclo de vida das chaves e o contexto do protocolo.
O foco nao sera demonstrar todas as provas matematicas, mas fornecer profundidade suficiente para arquitetura e operacao. O leitor deve terminar o capitulo sabendo por que usar -GCM e diferente de usar -ECB, por que uma funcao nao cifra dados, por que nao equivale a assinatura digital, por que nao deve cifrar grandes diretamente e por que o maior risco muitas vezes esta na gestao de chaves, nao no algoritmo.
Regra editorial para diagramas Para evitar textos quebrados, os diagramas deste capitulo usam apenas rotulos curtos. Explicacoes contextuais e tecnicas ficam no corpo do texto, onde o fluxo pode crescer naturalmente entre paginas. As caixas de destaque do documento sao tabelas de altura automatica, sem dimensoes fixas.
O que a criptografia resolve
A criptografia e um conjunto de tecnicas para proteger informacao contra adversarios. Em sistemas digitais, ela pode impedir a leitura de dados por pessoas nao autorizadas, detectar alteracoes, autenticar quem produziu uma mensagem, estabelecer segredos entre partes que nunca compartilharam uma chave e produzir evidencias tecnicas de autoria. Esses objetivos aparecem em protocolos de rede, armazenamento, identidade, pagamentos, e dispositivos.
Um erro comum e tratar criptografia como sinonimo de cifragem. Cifrar e apenas uma das funcoes possiveis. Uma assinatura digital, por exemplo, normalmente nao esconde o conteudo; ela permite verificar integridade e autenticidade. Uma funcao tambem nao esconde o conteudo de maneira reversivel; ela produz um resumo de tamanho fixo. Um autentica uma mensagem entre participantes que compartilham um segredo. A arquitetura segura nasce da composicao correta dessas primitivas.
No contexto de , a criptografia protege varias fronteiras. protege o canal. protege a integridade de e mensagens. pode fornecer confidencialidade de objetos. e usado em assinaturas de e autenticacao de requisicoes. Certificados e chaves privadas suportam , e assinaturas. e reduzem exposicao de chaves. Cada mecanismo responde a uma ameaca diferente.
A escolha criptografica tambem e uma decisao operacional. Algoritmos e tamanhos de chave precisam ser suportados por clientes, , bibliotecas, appliances e HSMs. Chaves precisam ser geradas, distribuidas, rotacionadas, auditadas e descartadas. Uma implementacao pode usar um algoritmo robusto e ainda ser insegura por causa de repetidos, aleatoriedade fraca, chaves compartilhadas por muitos sistemas ou que revelam material sensivel.
Objetivos de seguranca e limites das primitivas
Confidencialidade significa impedir que terceiros compreendam o conteudo protegido. Integridade significa detectar modificacoes. Autenticidade relaciona a mensagem a uma identidade ou a um detentor de chave. Disponibilidade, autorizacao e validacao de regras de negocio nao sao fornecidas automaticamente pela criptografia. Um pode usar forte e ainda permitir uma operacao indevida por falha de autorizacao.
O termo nao repudio deve ser usado com cuidado. Uma assinatura digital pode criar evidencia tecnica verificavel por terceiros, porque a chave publica e diferente da chave privada. Entretanto, a conclusao juridica de que uma pessoa nao pode negar uma acao depende de identidade, custodia da chave, auditoria, politica, dispositivo, processo de emissao e contexto legal. A matematica e uma parte do sistema probatorio, nao o sistema inteiro.
Outro limite e que criptografia protege dados em estados e fronteiras especificos. Criptografia em transito nao protege automaticamente dados depois que a aplicacao os descriptografa. Criptografia em repouso pode proteger discos roubados, mas nao impede que um processo autorizado e comprometido leia os dados. Assinaturas detectam alteracoes, mas nao garantem que o conteudo assinado e verdadeiro ou permitido.
Arquitetos devem formular a ameaca antes de escolher a primitiva. Quem e o adversario? Ele observa a rede, altera mensagens, compromete um servidor, rouba um backup, controla um cliente ou possui acesso administrativo? Qual informacao precisa permanecer secreta e por quanto tempo? Quem deve verificar a autenticidade? Essas respostas determinam algoritmo, chave, protocolo, isolamento e governanca.
Vocabulário essencial: chaves, , IVs, salts e tags
Texto claro e a informacao antes da cifragem. Texto cifrado e o resultado produzido pelo algoritmo. A chave e um valor secreto ou parcialmente publico que controla a transformacao. O algoritmo pode ser conhecido por todos; a seguranca deve depender da chave. Essa ideia e associada ao principio de Kerckhoffs: sistemas devem permanecer seguros mesmo que o adversario conheca o projeto, exceto o segredo criptografico.
significa number used once. Em muitos esquemas, ele nao precisa ser secreto, mas precisa atender a uma regra de unicidade ou imprevisibilidade. Em -GCM, reutilizar o mesmo com a mesma chave pode comprometer confidencialidade e integridade. , vetor de inicializacao, e um parametro usado por modos de operacao; seus requisitos variam. Tratar todo como "numero aleatorio qualquer" e perigoso.
e um valor associado principalmente a derivacao de chaves e armazenamento de senhas. Ele normalmente nao e secreto. Seu papel e garantir que entradas iguais produzam resultados diferentes e dificultar tabelas precomputadas. nao substitui custo computacional. Para senhas, e necessario usar uma funcao de derivacao apropriada, com parametros de memoria e tempo ajustados ao ambiente.
de autenticacao e o valor que permite verificar integridade e autenticidade em um esquema ou . A aplicacao deve rejeitar a mensagem se a verificacao da falhar, sem liberar texto claro parcial. Reduzir tags excessivamente, comparar tags de modo vulneravel a timing ou continuar o processamento apos falha de autenticacao destrói propriedades que o algoritmo deveria fornecer.
Aleatoriedade, entropia e geracao de chaves
Chaves, , salts, desafios e valores temporarios dependem de aleatoriedade adequada. Um gerador comum usado para simulacoes ou interfaces nao e necessariamente seguro para criptografia. Geradores criptograficamente seguros combinam fontes de entropia com mecanismos deterministas projetados para produzir sequencias imprevisiveis. O trata fontes de entropia e DRBGs na familia SP 800-90.
Entropia descreve incerteza. Uma chave de 256 bits nao possui 256 bits de seguranca se foi escolhida a partir de uma lista pequena, de um timestamp ou de um identificador previsivel. O tamanho nominal do campo nao corrige uma origem fraca. Chaves devem ser geradas por bibliotecas criptograficas confiaveis, sistemas operacionais, HSMs ou KMSs, evitando implementacoes caseiras.
Falhas de aleatoriedade podem ser silenciosas. Dois dispositivos inicializados com o mesmo estado podem gerar chaves repetidas. Um clonado em um momento inadequado pode reproduzir sequencias. Um contador reiniciado pode repetir . Uma biblioteca pode cair para uma fonte fraca quando a fonte principal falha. Por isso, modulos criptograficos precisam de inicializacao, health tests, isolamento e observabilidade.
Em , aleatoriedade aparece em sessoes , geracao de chaves, opacos, correlacao e protecoes contra . O nao deve usar identificadores previsiveis como segredo. Chaves geradas externamente precisam ser importadas com controles de acesso, e chaves geradas no idealmente nunca deixam a fronteira criptografica em texto claro.
Criptografia simetrica
Figura 7.2 - Comparacao entre criptografia simetrica e assimetrica.
Na criptografia simetrica, as partes usam a mesma chave secreta, ou chaves diretamente relacionadas, para cifrar e decifrar. A principal vantagem e desempenho: algoritmos simetricos processam grandes volumes com baixo custo relativo. Por isso, dados de aplicacao em , arquivos, discos e backups sao normalmente protegidos por cifras simetricas.
O desafio e distribuir a chave. Se duas partes precisam compartilhar um segredo, como esse segredo chega a ambas sem ser interceptado? Sistemas modernos resolvem isso com estabelecimento de chaves assimetrico, KEMs, canais previamente protegidos, KMSs ou processos de provisionamento. Depois que uma chave de sessao e estabelecida, a cifra simetrica protege o fluxo de dados.
Chaves simetricas exigem separacao de finalidade. A mesma chave nao deve ser reutilizada indiscriminadamente para cifragem, , ambientes, clientes e protocolos. KDFs permitem derivar chaves distintas a partir de um segredo principal e de um contexto. Essa separacao reduz o impacto de falhas e evita interacoes inesperadas entre esquemas.
A criptografia simetrica tambem nao fornece automaticamente autenticidade. Um modo que apenas cifra pode permitir alteracoes controladas no texto cifrado. Por isso, arquiteturas modernas preferem , que combina confidencialidade e autenticacao, ou uma composicao formalmente segura de cifragem e .
Cifras de bloco, cifras de fluxo e o
Figura 7.3 - Visao conceitual de uma rodada do .
Uma cifra de bloco transforma blocos de tamanho fixo. O , padronizado no 197, trabalha com blocos de 128 bits e chaves de 128, 192 ou 256 bits. Mensagens reais sao maiores ou menores que um bloco; por isso, o precisa ser usado com um modo de operacao. O algoritmo e apenas o nucleo. A seguranca da aplicacao depende do modo, do ou , da autenticacao e do tratamento de erros.
O organiza o bloco em um estado e aplica rodadas de substituicao, permutacao, mistura e adicao de chave. Essas operacoes criam confusao e difusao: relacoes simples entre entrada, chave e saida desaparecem. O numero de rodadas varia com o tamanho da chave. A implementacao deve ser resistente a canais laterais, porque uma execucao matematicamente correta pode vazar informacao por tempo, , consumo ou falhas induzidas.
Cifras de fluxo produzem uma sequencia de chave que e combinada com o texto claro, normalmente por XOR. O ChaCha20 e um exemplo moderno, frequentemente combinado com Poly1305 para formar um . Ele apresenta bom desempenho em software e e especificado para protocolos na 8439. Como em outros esquemas, reutilizar e chave pode ser catastrofico.
Em , a escolha entre -GCM e ChaCha20-Poly1305 costuma ser feita pelo protocolo ou biblioteca. Aplicacoes nao devem inventar formatos proprios sem necessidade. , , COSE e bibliotecas de ja definem algoritmos, campos e verificacoes. A interoperabilidade e a analise de seguranca de um protocolo estabelecido valem mais que uma composicao artesanal.
Modos de operacao: ECB, CBC, CTR e GCM
Figura 7.4 - Diferencas conceituais entre modos de operacao.
ECB cifra cada bloco de forma independente. Blocos iguais sob a mesma chave geram blocos cifrados iguais, revelando padroes. Por isso, ECB nao e apropriado para proteger mensagens estruturadas. Ele e um exemplo didatico importante: usar nao garante seguranca se o modo de operacao for inadequado.
CBC encadeia cada bloco com o bloco anterior e exige um com propriedades corretas. Historicamente foi amplamente usado, mas requer padding e autenticacao separada. Erros de validacao podem criar padding oracles, permitindo ao atacante aprender informacoes por respostas diferentes. Protocolos modernos tendem a preferir , reduzindo a complexidade de composicao.
CTR transforma um cifrador de bloco em uma cifra de fluxo usando contadores. Ele permite paralelismo e nao exige padding, mas a reutilizacao do mesmo contador ou com a mesma chave pode revelar relacoes entre textos claros. CTR fornece confidencialidade, nao autenticacao; precisa ser combinado com um de modo seguro.
GCM combina modo contador com autenticacao baseada em Galois, produzindo texto cifrado e . Ele suporta dados autenticados que nao sao cifrados, como cabecalhos de protocolo. GCM e eficiente e muito usado em e , mas depende fortemente da unicidade do . O esta revisando a SP 800- 38D, mas a recomendacao final vigente continua sendo a referencia operacional ate que uma revisao final a substitua.
e dados associados
Figura 7.5 - Entradas e saidas de um esquema .
significa Authenticated Encryption with Associated Data. O esquema protege confidencialidade do texto claro e autenticidade tanto do texto cifrado quanto de dados associados. pode conter metadados que precisam ser protegidos contra alteracao, mas precisam permanecer visiveis para roteamento ou processamento.
Uma operacao recebe chave, , texto claro e . Ela retorna texto cifrado e . Na abertura, o receptor apresenta os mesmos parametros e valida a . Somente depois da verificacao bem-sucedida o texto claro deve ser aceito. Esse fluxo evita que dados alterados alcancem a logica de negocio como se fossem validos.
Em formatos de e mensagem, os campos que compoem precisam ser definidos pelo padrao. Alterar serializacao, ordem, canonicalizacao ou encoding pode fazer a falhar, mesmo quando os dados parecem semanticamente iguais. Isso e comum em de : a assinatura ou cobre bytes exatos, nao um objeto abstrato interpretado livremente.
management deve ser parte do desenho. Gerar aleatorios pode ser adequado quando a probabilidade de colisao e controlada; contadores podem ser melhores em outros contextos, desde que nao reiniciem sob a mesma chave. Sistemas distribuidos precisam coordenar unicidade entre instancias ou separar chaves por instancia e contexto.
Funcoes criptograficas
Figura 7.6 - Efeito avalanche de uma funcao .
Uma funcao recebe uma mensagem de tamanho arbitrario e produz um de tamanho fixo. Ela deve ser deterministica, eficiente e resistente a pre-imagem, segunda pre-imagem e colisoes. Resistencia a pre-imagem dificulta recuperar uma entrada a partir do . Resistencia a colisao dificulta encontrar duas entradas diferentes com o mesmo .
sao usados para integridade, assinaturas, estruturas de dados, identificadores, derivacao e protocolos. Eles nao sao cifragem porque nao existe uma chave de decriptacao que recupere a mensagem. Tambem nao e seguro proteger senhas apenas calculando , pois genericos sao rapidos demais e permitem testar grandes volumes de palpites.
A familia -2 inclui e . -3, padronizada no 202, usa uma construcao diferente baseada em Keccak e oferece alternativas como SHA3-256 e funcoes XOF SHAKE. Ter familias diferentes aumenta diversidade criptografica. A escolha depende de protocolo, interoperabilidade, desempenho e requisitos de conformidade.
e nao devem ser usados quando resistencia a colisao e necessaria. Sistemas legados podem mante-los em identificadores nao adversariais, mas novos projetos devem usar algoritmos modernos. A transicao precisa considerar onde o aparece: assinatura, certificado, armazenamento, , checksum, protocolo ou integracao externa.
e
Figura 7.7 - Fluxo simplificado de .
Um Message Authentication Code produz uma usando uma chave secreta compartilhada. O receptor que possui a mesma chave recalcula a e compara. Se a verificacao for bem-sucedida, ha evidencia de que a mensagem nao foi alterada e foi produzida por alguem que conhece o segredo. e uma construcao padronizada na 2104 que combina uma funcao com uma chave.
nao cifra o conteudo. A mensagem pode permanecer legivel enquanto sua integridade e autenticidade sao protegidas. Esse modelo e comum em , de parceiros e assinaturas de requisicao. O protocolo precisa definir exatamente quais bytes entram no , incluindo metodo, caminho, timestamp, corpo, cabecalhos e canonicalizacao.
Como ambas as partes possuem o mesmo segredo, qualquer uma pode gerar tags validas. Isso limita a verificabilidade por terceiros e diferencia de assinatura digital. e excelente para autenticacao bilateral eficiente, mas nao oferece a mesma separacao de poderes de uma chave publica e privada.
A comparacao da deve ser feita em tempo constante quando possivel. O protocolo tambem precisa de protecao contra , por exemplo timestamp, e janela de aceitacao. Uma mensagem antiga com valido continua autentica; sem um mecanismo de frescor, o atacante pode retransmiti-la.
KDFs e armazenamento de senhas
Uma Key Derivation Function transforma material de chave em uma ou mais chaves com propriedades adequadas. HKDF, definido na 5869, usa uma etapa de extracao e uma etapa de expansao. Ele e comum em e protocolos de estabelecimento de chaves, porque separa chaves por contexto, rotulo e finalidade.
Senhas humanas possuem baixa entropia e precisam de funcoes desenhadas para tornar cada tentativa cara. PBKDF2 aplica repeticoes de uma funcao pseudorrandomica e permanece amplamente suportado. Argon2id, recomendado na 9106 para muitos cenarios, adiciona custo de memoria, dificultando ataques paralelos com hardware especializado. Parametros devem ser calibrados e revistos ao longo do tempo.
deve ser unico por senha e armazenado junto ao resultado. Um pepper e um segredo adicional mantido separadamente, por exemplo em ou , mas aumenta complexidade operacional e precisa de rotacao planejada. A aplicacao deve armazenar o identificador do algoritmo e seus parametros para permitir verificacao e migracao.
Em , senhas idealmente sao tratadas por provedores de identidade, nao por de recursos. Ainda assim, o entendimento de KDFs e importante para Basic Authentication legada, client secrets, cofres e processos de credenciais. Um segredo de cliente de alta entropia pode ser armazenado como para comparacao, enquanto uma chave de assinatura precisa permanecer disponivel para operacoes criptograficas.
Criptografia assimetrica
Criptografia assimetrica usa um par de chaves relacionado matematicamente. A chave publica pode ser distribuida; a chave privada deve permanecer protegida. Dependendo do esquema, a chave publica permite cifrar para o detentor da chave privada, verificar assinaturas ou participar de um acordo de chaves.
A principal vantagem e reduzir o problema de distribuicao de segredos. Um cliente pode verificar uma assinatura sem possuir a chave privada. Duas partes podem estabelecer um segredo por canal publico. Entretanto, operacoes assimetricas sao mais custosas e produzem artefatos maiores, por isso raramente protegem grandes volumes diretamente.
Chaves assimetricas tambem exigem autenticidade da chave publica. Receber uma chave publica por um canal inseguro nao prova a quem ela pertence. Certificados, , diretorios, seguro, pinning e processos de provisionamento associam chaves a identidades. O Capitulo 8 aprofundara e .
Em , chaves publicas validam e certificados; chaves privadas assinam , terminam e autenticam o perante . A separacao de chaves por ambiente, emissor, finalidade e algoritmo reduz impacto e facilita auditoria.
: cifragem, assinatura e padding
baseia sua seguranca pratica na dificuldade de fatorar um grande modulo composto por primos. Uma chave publica contem modulo e expoente publico; a chave privada contem informacao que permite a operacao inversa. A 8017 especifica esquemas de cifragem e assinatura e mostra que a operacao matematica bruta precisa de codificacao e padding seguros.
Para cifragem, RSAES-OAEP e o esquema moderno descrito no PKCS #1. nao deve cifrar grandes diretamente. O uso normal e proteger uma chave de sessao curta em . RSAES- PKCS1-v1_5 permanece em sistemas legados, mas seu historico de oraculos exige cautela e uniformidade de erros.
Para assinaturas, RSASSA-PSS introduz aleatoriedade e e geralmente preferida em novos desenhos quando o ecossistema suporta. RSASSA-PKCS1-v1_5 continua amplamente usado e interoperavel. A escolha deve seguir o padrao do protocolo e a politica da organizacao, evitando " puro" ou padding inventado.
Tamanho de chave impacta seguranca, desempenho e tamanho de assinatura. 2048 ainda aparece amplamente; requisitos mais longos podem exigir 3072 bits ou migracao para /PQC conforme horizonte de protecao. O tamanho correto deve seguir normas atuais e o periodo durante o qual a informacao precisa permanecer protegida.
Curvas elipticas, X25519 e Ed25519
Criptografia de curvas elipticas oferece niveis de seguranca elevados com chaves menores que . A seguranca se baseia na dificuldade do logaritmo discreto em grupos de pontos de uma curva. Chaves e assinaturas menores reduzem largura de banda, armazenamento e custo, embora a implementacao exija cuidado com validacao, curvas e canais laterais.
X25519, especificado na 7748, e usado para acordo de chaves. Ed25519, descrito na 8032 como uma instancia de EdDSA, e usado para assinaturas. Apesar dos nomes relacionados, eles cumprem funcoes diferentes e nao devem ser tratados como a mesma chave ou algoritmo. Protocolos precisam definir formatos e conversoes explicitamente.
e outra familia de assinatura, padronizada no 186-5. Sua seguranca de implementacao depende fortemente da geracao do por assinatura; repetir ou enviesar esse valor pode revelar a chave privada. EdDSA foi projetada com uma abordagem deterministica, mas implementacoes ainda precisam proteger chaves e resistir a falhas e canais laterais.
Em , suporte a curvas depende da implementacao e do registro de algoritmos. precisam validar algoritmo permitido, curva, key usage e origem da chave. Aceitar qualquer chave apresentada em um sem vincula-la ao emissor confiavel transforma verificacao criptografica em uma falsa garantia.
Acordo de chaves, ECDH e
Acordo de chaves permite que duas partes derivem um segredo compartilhado sem transmiti-lo diretamente. Diffie-Hellman e ECDH usam contribuicoes de ambas as partes. Em moderno, variantes efemeras fornecem forward secrecy: o comprometimento futuro da chave de identidade nao revela automaticamente sessoes passadas.
O segredo bruto produzido por um acordo de chaves nao deve ser usado diretamente. Uma incorpora contexto, e identificadores para gerar chaves de trafego distintas. Confirmacao de chave e autenticacao do evitam ataques em que um adversario se posiciona entre as partes.
Um , Key Encapsulation Mechanism, possui operacoes para gerar um de encapsulamento e um segredo compartilhado, e para recuperar esse segredo com a chave privada. O 203 padroniza ML- , um mecanismo pos-quantico. KEMs se encaixam naturalmente em criptografia hibrida e estabelecimento de chaves.
Em , o acordo de chaves costuma estar encapsulado no . Mesmo assim, o arquiteto precisa entender curvas, grupos, forward secrecy e compatibilidade. Uma lista de grupos mal configurada pode impedir ; um terminador antigo pode eliminar propriedades desejadas; um pode suportar assinatura, mas nao determinado acordo de chaves.
Assinaturas digitais
Figura 7.8 - Geracao e verificacao de assinatura digital.
Uma assinatura digital usa a chave privada para produzir um valor verificavel com a chave publica. Normalmente o algoritmo assina um ou uma representacao codificada da mensagem. A verificacao confirma que os bytes cobertos nao foram alterados e que a assinatura foi produzida por uma chave privada correspondente.
Assinar e cifrar sao operacoes diferentes. Assinatura nao oculta o conteudo. Cifrar com "chave privada" nao e uma explicacao adequada de assinaturas modernas, porque esquemas como PSS, , EdDSA e ML- DSA possuem estruturas e provas especificas. O entendimento deve seguir o esquema, nao uma analogia simplificada.
Canonicalizacao e um desafio central. pode ser serializado de varias formas equivalentes. Se produtor e verificador assinarem bytes diferentes, a verificacao falha. resolve parte desse problema definindo , protected e signing input. Protocolos de assinatura tambem precisam definir componentes derivados e ordem.
A chave privada de assinatura merece protecao forte. HSMs permitem assinar sem exportar a chave. Politicas podem exigir dupla aprovacao, imutaveis, limites de uso e separacao entre chaves de teste e producao. Se a chave e comprometida, assinaturas validas podem ser forjadas ate que a confianca seja revogada e consumidores atualizados.
Criptografia hibrida e
Figura 7.9 - Criptografia hibrida e .
Criptografia hibrida combina a eficiencia da cifra simetrica com a distribuicao de chaves assimetrica. A aplicacao gera uma chave de dados aleatoria, cifra o com e protege a chave de dados com -OAEP, ECDH/ , ou uma chave de envelope mantida em . O pacote armazena texto cifrado, , e chave encapsulada.
permite que o proteja apenas chaves pequenas, enquanto a aplicacao processa grandes volumes localmente. Isso reduz chamadas ao servico de chaves e permite rotacionar uma chave mestra recriptografando chaves de dados, sem descriptografar todos os . O desenho precisa registrar versao e identificador da chave usada.
Uma chave de dados pode ser unica por objeto, lote, sessao ou periodo, conforme risco e custo. Reutilizacao ampla aumenta o impacto de comprometimento. Chaves de envelope precisam de controles de acesso que impeçam um servico de descriptografar dados fora de seu dominio. A politica de deve refletir identidade da carga e finalidade.
e um exemplo de formato de criptografia hibrida aplicado a objetos . Ele separa algoritmo de gerenciamento de chave e algoritmo de cifragem de conteudo. que processam precisam suportar combinacoes aprovadas, controlar tamanhos e evitar decriptar conteudo antes de validar limites e contexto.
Gestao de chaves, e
Figura 7.10 - Ciclo de vida resumido de uma chave criptografica.
Algoritmos fortes dependem de chaves bem geridas. O ciclo inclui geracao, registro, distribuicao, ativacao, armazenamento, uso, rotacao, suspensao, revogacao, backup, recuperacao, arquivamento e destruicao. A SP 800-57 do organiza principios de gestao de material criptografico e ajuda a definir protecoes conforme tipo e finalidade da chave.
e um servico de gerenciamento que aplica identidade, autorizacao, auditoria e operacoes de chave. e um modulo com fronteira criptografica projetada para proteger chaves e executar operacoes. Um pode usar por baixo. Nem toda chave precisa estar no mesmo nivel, mas chaves raiz, chaves de assinatura critica e chaves de frequentemente exigem protecao reforcada.
Controle de acesso deve ser orientado a operacoes. Um servico pode precisar assinar, mas nao exportar; outro pode verificar com chave publica; um pode ativar uma nova versao, mas nao usar a chave para dados. Separar administracao, uso e auditoria reduz abuso e erro humano.
Rotacao precisa ser compatível com dados e consumidores existentes. Chaves de verificacao antigas podem permanecer publicadas ate expirarem. Chaves de decriptacao precisam ser mantidas enquanto houver dados cifrados. Identificadores de chave, como kid em , ajudam a selecionar versoes, mas nao devem ser aceitos como fonte de confianca sem um emissor e repositorio controlados.
Criptografia em , , , e
combina acordo de chaves, assinaturas ou certificados, KDFs e . O cliente e o servidor negociam parametros, autenticam o e derivam chaves de trafego. O Capitulo 6 analisou o protocolo; aqui a licao e que e uma composicao de primitivas com papeis distintos.
e um formato de . Quando protegido por , recebe assinatura ou . Quando protegido por , recebe cifragem autenticada. Um apenas codificado em nao e protegido. O deve verificar algoritmo, emissor, audiencia, tempo, chave e , nao apenas confirmar que a assinatura matematica e valida.
frequentemente usam sobre corpo, timestamp e identificadores. O consumidor precisa ler os bytes exatos recebidos antes de qualquer normalizacao que altere o corpo. A verificacao deve ocorrer antes de processar a operacao, com janela de tempo e armazenamento de identificadores para impedir .
Em Open Finance e integracoes bancarias, assinaturas podem proteger mensagens, e requisicoes de forma adicional ao . O desenho precisa deixar claro qual artefato e assinado, qual chave e usada, como a chave publica e distribuida, qual algoritmo e permitido e como revogacao e rotacao acontecem.
Aplicacao em Axway e Azure Management
Figura 7.11 - Primitivas criptograficas em uma arquitetura de .
Um pode terminar , validar certificados de cliente, verificar , produzir , assinar ou validar mensagens, chamar KMSs e proteger segredos de . Essas funcoes nao devem ser tratadas como uma unica policy de "criptografia". Cada policy tem entradas, chaves, algoritmos e falhas especificas.
No Axway , certificados, private key stores, trusted certificate stores, filters e policies compoem o fluxo. O diagnostico deve identificar se a falha ocorre no listener , na validacao de , na policy de assinatura, na decriptacao ou na conexao de saida. precisam informar identificador de chave e algoritmo sem revelar segredo ou sensivel.
No Azure Management, certificados, named values, Key Vault, managed identity e policies podem participar. A plataforma pode validar , autenticar com certificado e obter segredos de um cofre. A identidade gerenciada reduz credenciais estaticas, mas permissoes de acesso ao Key Vault e de atualizacoes precisam ser compreendidos.
Em ambos os produtos, o nao deve virar um cofre indiscriminado. Segredos precisam de dono, finalidade e rotacao. Policies devem usar algoritmos permitidos por baseline. Ambientes de desenvolvimento e producao devem ter chaves separadas. Exportacoes de configuracao e backups precisam ser protegidos, pois podem conter referencias ou material sensivel.
Erros comuns e ataques
Reutilizar em -GCM ou ChaCha20-Poly1305 e um dos erros mais graves. Dependendo do esquema, o atacante pode derivar relacoes entre textos claros, recuperar a chave de autenticacao ou forjar mensagens. Sistemas distribuidos precisam de estrategia explicita para unicidade, especialmente apos reinicio, ou clonagem.
Usar ECB, cifrar sem autenticar, validar padding com erros distinguiveis, aceitar algoritmos escolhidos pelo atacante, misturar chaves entre ambientes, desabilitar validacao de certificado e armazenar chaves em codigo sao falhas recorrentes. Muitas nao quebram a matematica; quebram o protocolo e a operacao.
Canais laterais exploram tempo, , consumo, emissao e comportamento de erro. Comparacoes de e assinatura devem evitar vazamento progressivo. Implementacoes de , e precisam usar bibliotecas maduras e recursos de hardware adequados. Escrever primitivas manualmente quase nunca e justificavel em aplicacoes corporativas.
Criptografia tambem pode falhar por excesso de confianca. Um assinado pode conter uma operacao maliciosa autorizada por uma chave comprometida. Um cifrado pode carregar erradas. Um pode validar integridade de um arquivo fornecido pelo mesmo atacante que forneceu o . A origem confiavel e o contexto importam tanto quanto a verificacao.
Criptografia pos-quantica e
Figura 7.12 - Etapas de uma transicao pos-quantica.
Computadores quanticos de escala criptograficamente relevante poderiam aplicar o algoritmo de Shor contra , Diffie-Hellman e . Cifras simetricas e tambem sofrem impacto teorico, mas podem manter margens maiores com tamanhos adequados. O risco inclui harvest now, decrypt later: capturar dados hoje para tentar decriptar no futuro.
Em agosto de 2024, o publicou 203 para ML- , 204 para ML-DSA e 205 para SLH-DSA. ML- estabelece segredos; ML-DSA e SLH-DSA produzem assinaturas. Esses algoritmos possuem tamanhos e perfis diferentes dos esquemas classicos, exigindo testes de desempenho, largura de banda, armazenamento, certificados, HSMs e protocolos.
Migracao pos-quantica nao significa trocar tudo imediatamente sem planejamento. O primeiro passo e inventario criptografico: onde , e DH aparecem, por quanto tempo os dados precisam permanecer secretos, quais fornecedores controlam a implementacao e quais dependencias nao possuem agilidade. Depois vem classificacao de risco, testes e transicao.
e a capacidade de trocar algoritmos, parametros e chaves sem reconstruir o sistema. Protocolos devem negociar apenas suites permitidas, formatos precisam identificar algoritmo e versao, e aplicacoes nao devem codificar tamanhos fixos. Estrategias hibridas combinam mecanismos classicos e pos-quanticos durante a transicao, mas precisam de especificacoes formais para evitar composicoes inseguras.
criptografico
Figura 7.13 - Arvore inicial de criptografico.
O deve separar formato, algoritmo, parametros, chave e contexto. Uma falha "invalid signature" pode significar chave publica errada, algoritmo diferente, canonicalizado de outra forma, incorreto, protegido diferente ou mensagem alterada. Trocar a chave sem testar os bytes assinados pode mascarar a causa.
Falhas de decriptacao podem vir de chave de dados errada, invalida, incorreto, diferente, padding, encoding ou versao de envelope. Em , falha de deve ser tratada como mensagem nao autentica. A aplicacao nao deve tentar "recuperar" texto parcial ou ignorar a verificacao para diagnosticar em producao.
Erros de acesso a / podem parecer criptograficos, mas ser de identidade, rede, quota, particao ou permissao. Verifique qual principal chamou, qual operacao foi negada, qual versao da chave foi selecionada e se a chave esta ativa. Latencia e de podem exigir seguro de chaves de dados ou ajustes de .
Para reproduzir uma assinatura, capture apenas dados nao sensiveis e normalize o caso em ambiente controlado. Registre algoritmo, identificador de chave, comprimento, do , timestamp e resultado, sem registrar chave privada, segredo, texto claro sensivel ou completo. Observabilidade segura e essencial para diagnostico.
Aplicacao no mundo bancario e financeiro
Bancos usam criptografia em canais digitais, pagamentos, Open Finance, PIN, cartoes, mensageria, arquivos, backups, HSMs, certificados e assinaturas de transacoes. A criticidade vem do valor financeiro, da privacidade, da regulacao e da necessidade de auditoria. Uma escolha criptografica precisa considerar disponibilidade e recuperacao, nao apenas confidencialidade.
HSMs sao comuns para chaves de alta criticidade, incluindo emissao, assinatura, processamento de pagamentos e raizes de confianca. Controles como dual control, split knowledge e trilhas de auditoria reduzem a possibilidade de uma pessoa controlar todo o ciclo. Esses controles organizacionais complementam a matematica.
Em Open Finance, e protegem canais e autenticam participantes, enquanto e controlam autorizacao. Assinaturas de mensagens podem garantir integridade em saltos intermediarios. Chaves e certificados precisam de rotacao coordenada entre instituicoes, com sobreposicao e testes para evitar indisponibilidade.
O profissional de precisa distinguir falha criptografica de falha de negocio. Uma assinatura valida demonstra que bytes foram assinados por uma chave confiavel; nao demonstra saldo, consentimento ou permissao. Policies criptograficas devem alimentar o contexto de autorizacao, e nao substitui-lo.
Tabelas de referencia tecnica
As tabelas resumem decisoes frequentes. Elas nao substituem a documentacao do protocolo nem a politica criptografica da organizacao.
Tabela 1 — Primitivas criptográficas, objetivos, exemplos e cuidados.
Primitiva
Objetivo principal
Exemplos
Cuidado essencial
Cifra simetrica
Confidencialidade eficiente
AES, ChaCha20
Modo, nonce/IV e autenticacao.
AEAD
Confidencialidade e autenticidade
AES-GCM, ChaCha20-Poly1305
Nonce unico por chave e verificacao da tag.
Hash
Resumo e integridade quando a referencia e confiavel
SHA-256, SHA-3
Nao usar hash rapido como armazenamento de senha.
MAC
Integridade e autenticacao com segredo compartilhado
HMAC-SHA-256, GMAC
Protecao contra replay e comparacao segura.
Assinatura
Integridade e autenticidade verificavel por chave publica
RSA-PSS, ECDSA, EdDSA, ML-DSA
Custodia da chave, canonicalizacao e algoritmo permitido.
KDF
Derivar chaves por contexto
HKDF
Separar finalidade, salt/contexto e comprimento.
Password KDF
Tornar palpites de senha caros
Argon2id, PBKDF2
Parametros calibrados, salt unico e migracao.
KEM / acordo
Estabelecer segredo compartilhado
X25519, ML-KEM
Autenticacao do protocolo e derivacao posterior.
Tabela 2 — Requisitos de segredo e unicidade para materiais criptográficos.
Termo
Precisa ser secreto?
Precisa ser unico?
Observacao
Chave simetrica
Sim
Deve ser independente por finalidade
Comprometimento permite cifrar/decriptar ou autenticar.
Nonce
Normalmente nao
Frequentemente sim, conforme esquema
Em GCM, reuso com a mesma chave e grave.
IV
Depende do modo
Requisitos variam
Nao presumir que IV e sempre aleatorio ou sempre secreto.
Salt
Nao
Deve ser unico por credencial/derivacao
Combate precomputacao; nao substitui custo.
Tag AEAD/MAC
Nao
Derivada de mensagem e parametros
Deve ser verificada antes de aceitar a mensagem.
Chave publica
Nao
Associacao com identidade deve ser confiavel
Pode ser distribuida por certificado ou repositorio controlado.
Chave privada
Sim
Uma por identidade/finalidade conforme politica
Idealmente nao exportavel em casos criticos.
Tabela 3 — Problemas criptográficos, hipóteses e verificações iniciais.
Problema observado
Hipoteses
Verificacoes iniciais
Assinatura invalida
Chave, algoritmo, bytes ou encoding diferentes
Comparar signing input byte a byte, kid, alg e chave do emissor.
Tag GCM invalida
Chave, nonce, AAD ou ciphertext divergente
Confirmar todos os parametros; nao liberar plaintext parcial.
HMAC diferente
Canonicalizacao, segredo ou encoding
Reproduzir metodo, caminho, timestamp e corpo bruto.
KMS access denied
Identidade ou policy
Verificar principal, operacao, chave, versao e ambiente.
Algoritmo nao suportado
Biblioteca, gateway ou HSM sem capacidade
Consultar matriz de suporte e baseline aprovado.
Erro de PEM/DER
Formato ou cadeia incorreta
Identificar container, headers, Base64, algoritmo e tipo de chave.
Falha apos rotacao
Consumidor usa chave antiga ou kid incorreto
Manter sobreposicao e publicar conjunto de verificacao atualizado.
Exemplos tecnicos comentados
Os exemplos a seguir sao didaticos. Em producao, use bibliotecas, formatos e servicos aprovados pela organizacao. Nao implemente primitivas criptograficas manualmente.
Exemplo 1 - e em Python
import hashlib
import hmac
mensagem = b"evento=pagamento&valor=100"
segredo = b"segredo-de-alta-entropia-obtido-de-um-cofre"
digest = hashlib.sha256(mensagem).hexdigest()
mac = hmac.new(segredo, mensagem, hashlib.sha256).hexdigest()
print("SHA-256:", digest)
print("HMAC-SHA-256:", mac)
# Ao verificar, prefira compare_digest para reduzir vazamento por timing.
mac_recebido = mac
assert hmac.compare_digest(mac, mac_recebido)
O produz um resumo sem chave. Qualquer pessoa consegue recalcula-lo. O inclui um segredo compartilhado e autentica a mensagem entre os detentores desse segredo. A comparacao deve usar uma funcao apropriada, e o protocolo ainda precisa de timestamp ou para evitar .
Exemplo 2 - Inspecao de algoritmos e chaves com OpenSSL
# Gerar 32 bytes aleatorios em hexadecimal.
openssl rand -hex 32
# Calcular SHA-256 de um arquivo.
openssl dgst -sha256 mensagem.json
# Gerar chave RSA para laboratorio.
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out chave-privada.pem
openssl pkey -in chave-privada.pem -pubout -out chave-publica.pem
# Assinar e verificar com RSA-PSS e SHA-256.
openssl dgst -sha256 -sigopt rsa_padding_mode:pss -sign chave-privada.pem -out assinatura.bin
mensagem.json
openssl dgst -sha256 -sigopt rsa_padding_mode:pss -verify chave-publica.pem -signature
assinatura.bin mensagem.json
O laboratorio separa chave privada e publica e usa PSS. A chave privada nao deve ser enviada ao verificador. Em ambiente real, a assinatura pode ocorrer em ou , e o verificador recebe a chave publica por um canal confiavel.
O envelope registra versao e algoritmos para permitir migracao. A chave de dados encapsulada nao e a chave mestra. O consumidor recupera a chave de dados por uma operacao autorizada no , valida a e somente entao aceita o texto claro.
Estudos de caso
Caso 1 - com valido e operacao duplicada
Um parceiro enviava assinados com - . O consumidor verificava corretamente a assinatura, mas nao registrava o identificador do evento nem validava timestamp. Um intermediario retransmitiu uma mensagem antiga. O permaneceu valido porque a mensagem nao foi alterada, e a operacao financeira foi processada duas vezes.
A correcao nao foi trocar o algoritmo. Foi adicionar timestamp assinado, janela de tolerancia, identificador unico, armazenamento de eventos processados e idempotencia no . O caso demonstra que autenticidade nao implica frescor nem unicidade de negocio.
Caso 2 - Falha intermitente de -GCM apos escalabilidade horizontal
Uma aplicacao usava um contador local como . Cada instancia iniciava o contador em zero. Quando o servico passou de uma para varias replicas, instancias diferentes reutilizaram com a mesma chave. O sistema continuou funcionando, mas perdeu garantias criptograficas e abriu possibilidade de forja.
A solucao exigiu interromper o uso da chave afetada, rotacionar material, avaliar dados expostos e adotar estrategia de distribuida ou chaves separadas por instancia. Monitoramento de unicidade e testes de reinicio foram incorporados ao .
Caso 3 - Rotacao de chave derruba consumidores
O emissor trocou a chave de assinatura e removeu imediatamente a chave publica antiga do . emitidos minutos antes continuavam dentro da validade, mas consumidores nao conseguiam verifica-los. O incidente foi interpretado inicialmente como falha de , embora a causa estivesse no ciclo de vida criptografico.
A estrategia correta manteve chaves de verificacao antigas publicadas ate o fim do maior tempo de vida de e , usou kid consistente, publicou a nova chave antes de ativar a assinatura e monitorou consumidores. Rotacao segura e uma mudanca coordenada, nao apenas substituicao de arquivo.
Caso 4 - valida assinatura com chave escolhida pelo
Uma policy aceitava uma de chave informada no proprio . O baixava a chave e confirmava que a assinatura era matematicamente valida. Um atacante gerou seu proprio par, publicou a chave e criou aceitos. A verificacao criptografica funcionava, mas a raiz de confianca era controlada pelo atacante.
A correcao vinculou cada emissor autorizado a um previamente configurado, restringiu algoritmos, validou issuer e audience e aplicou seguro. O caso mostra que uma chave publica precisa ser confiavel e associada a uma identidade; assinatura valida isoladamente nao basta.
Laboratorios de estudo
Ambiente de laboratorio Execute os testes apenas em arquivos e chaves criados para estudo. Nao copie chaves, , ou segredos de producao. O objetivo e observar propriedades e formatos, nao reproduzir material sensivel.
Calcule de dois arquivos que diferem por um caractere e compare os digests. Relacione o resultado ao efeito avalanche.
Calcule do mesmo corpo com duas chaves diferentes. Depois altere um byte da mensagem e confirme que a verificacao falha.
Gere um par de laboratorio, assine um arquivo com -PSS, verifique com a chave publica e confirme que a verificacao falha apos alterar o arquivo.
Examine uma chave PEM e identifique se ela representa chave privada, chave publica ou certificado. Converta entre PEM e DER apenas no laboratorio.
Crie um pequeno envelope conceitual contendo versao, algoritmo, id de chave, , e . Explique como cada campo participa da decriptacao.
Desenhe uma policy de para com , incluindo canonicalizacao, timestamp, protecao contra , comparacao segura e observabilidade.
Crie um inventario criptografico de uma arquitetura ficticia: , , banco, backups, filas, e parceiros. Registre algoritmo, chave, proprietario, validade e dependencia.
Escolha uma integracao / ficticia e descreva como seria uma transicao para uma abordagem hibrida com algoritmo pos-quantico, incluindo riscos de tamanho e compatibilidade.
Exercicios de revisao
Explique por que criptografia e mais ampla que cifragem.
Diferencie confidencialidade, integridade, autenticidade, autorizacao e nao repudio.
Por que o principio de Kerckhoffs favorece algoritmos publicos e chaves secretas?
Qual e a diferenca entre , e ?
Por que o precisa de um modo de operacao?
Por que ECB revela padroes?
Quais propriedades -GCM fornece e qual requisito de e critico?
Diferencie , - e assinatura -PSS.
Por que rapido nao e adequado para armazenamento de senhas?
Qual e o papel de uma como HKDF?
Por que nao deve cifrar grandes diretamente?
Diferencie X25519 e Ed25519.
Como uma assinatura digital pode falhar mesmo quando produtor e verificador usam a mesma chave?
Explique e sua relacao com .
Por que kid nao deve ser tratado como raiz de confianca?
Quais controles adicionais um com precisa para impedir ?
Descreva o ciclo de vida de uma chave e os cuidados de rotacao.
Como Axway ou Azure Management podem usar , certificados e chaves sem se tornarem repositorios indiscriminados de segredos?
Quais familias de algoritmos foram padronizadas nos 203, 204 e 205?
Por que inventario e sao pre-requisitos para migracao pos-quantica?
Glossario
Tabela 4 — Glossário do capítulo.
Termo
Definicao
AEAD
Cifragem autenticada com dados associados, produzindo ciphertext e tag.
AES
Cifra simetrica de bloco padronizada no FIPS 197.
AAD
Dados autenticados, mas nao cifrados, em um esquema AEAD.
Ciphertext
Resultado cifrado de uma mensagem.
CSPRNG / DRBG
Gerador projetado para produzir bits imprevisiveis para uso criptografico.
Digest
Saida de uma funcao hash.
Envelope encryption
Protecao de dados com chave de dados, que por sua vez e protegida por uma chave mestra ou KEM.
HMAC
MAC construido a partir de funcao hash e segredo compartilhado.
HSM
Modulo de seguranca de hardware que protege chaves e executa operacoes criptograficas.
IV
Vetor de inicializacao usado por determinados modos de operacao.
KDF
Funcao que deriva chaves a partir de material de entrada e contexto.
KEM
Mecanismo de encapsulamento de chave para estabelecer segredo compartilhado.
KMS
Servico de gerenciamento de chaves com identidade, policy, versao e auditoria.
MAC
Codigo de autenticacao de mensagem baseado em segredo compartilhado.
Nonce
Valor usado uma vez ou conforme regra de unicidade do esquema.
Plaintext
Informacao antes da cifragem.
Salt
Valor nao secreto e normalmente unico usado em derivacao, especialmente de senhas.
Tag
Valor de autenticacao produzido por MAC ou AEAD.
Criptoagilidade
Capacidade de trocar algoritmos, parametros e chaves com impacto controlado.
Observacao sobre documentos em revisao Normas criptograficas evoluem. Em julho de 2026, o mantem processos de revisao para documentos como SP 800-38D e SP 800-57. Para projetos novos, consulte sempre o status oficial da publicacao, o baseline da organizacao e as matrizes de suporte dos produtos antes de definir algoritmos e tamanhos.