Pular para o conteúdo
ecdsa.com

Aprender

Guias curtos e técnicos sobre como as assinaturas digitais funcionam de verdade — os algoritmos, os formatos byte a byte e os erros de configuração que fazem a verificação falhar. Escritos para aqueles momentos em que uma assinatura não passa na verificação e a mensagem de erro não diz nada.

TLS

Certificados TLS de 47 dias: prazos e o que automatizar

A votação SC-081 do CA/B Forum reduz certificados TLS públicos a 200, 100 e 47 dias e o reúso da validação de domínio a 10. Datas, perfis ACME, ARI, alertas.

Cadeia de suprimentos

Esquemas de assinatura APK v1–v4, rotação de chaves e Play

Assinatura de APK no Android: esquemas v1 a v4, rotação de chaves com v3 e v3.1, o novo v3.2 híbrido com ML-DSA, Play App Signing e a saída do apksigner verify.

Cadeia de suprimentos

Authenticode: chaves, carimbos do tempo e verificação

Como o Authenticode assina executáveis do Windows, a regra de HSM de 2023 para chaves, carimbos do tempo que sobrevivem ao certificado, signtool e osslsigncode.

Bitcoin

Assinatura de mensagens Bitcoin: BIP-137 e BIP-322

Assinatura de mensagens Bitcoin: cabeçalhos BIP-137, provas BIP-322 simples e completas, tipos de endereço, suporte nas carteiras e verificação testada em 2026.

Cadeia de suprimentos

Credenciais C2PA: manifestos, assinaturas e limites

Como funcionam as credenciais C2PA: manifestos, claims e assinaturas COSE, confiança e carimbos do tempo, estados de validação e por que recodificar as remove.

TLS

Fixação segura de certificados em 2026: quando e como usar

Fixação de certificados hoje: o fim do HPKP, pins SPKI em apps Android e iOS e no OkHttp, risco de bloqueio com certificados de curta duração e rotação de pins.

PKI

Certificate Transparency na prática: SCTs e alertas

Como funciona o Certificate Transparency em 2026: SCTs, logs, regras de Chrome, Apple e Firefox, busca de certificados no Cert Spotter e crt.sh, monitoramento.

E-mail

Falhas de DKIM: hash do corpo, assinatura, chaves e DNS

Por que o DKIM falha: canonicalização, hash do corpo, encaminhamento, listas de discussão, tag l=, tamanho da chave e DNS. Falhas reproduzidas e correções.

DNS

Cadeia de confiança DNSSEC: DS, DNSKEY, RRSIG e falhas

Como a validação DNSSEC vai da raiz até o seu registro: DS, DNSKEY, RRSIG, algoritmos 8, 13 e 15, verificações com dig e delv e falhas no rollover de chaves.

DPoP

DPoP explicado: tokens OAuth vinculados à chave do cliente

Como o DPoP (RFC 9449) vincula tokens de acesso OAuth à chave do cliente: prova JWT, jti, htm, htu, ath, nonces, cnf.jkt e a verificação no servidor, testada.

Algoritmos

Recuperação da chave pública ECDSA: recid, v e ecrecover

Como funciona a recuperação da chave pública ECDSA: matemática, IDs de recuperação e v, ecrecover, assinaturas compactas do Bitcoin, EIP-2098 e bugs a evitar.

Ethereum

EIP-712: o que você realmente assina e como interpretá-lo

Dados tipados EIP-712: domínio, tipos e hashes, permits ERC-2612, Permit2, aprovações ilimitadas e como ler uma solicitação de assinatura antes de assinar.

JWT

ES256 vs EdDSA para JWT: qual escolher em 2026

ES256 vs EdDSA (Ed25519) em JWT: tamanho, determinismo, maleabilidade, velocidade, 13 bibliotecas testadas, KMS e HSM, o novo nome Ed25519 e a escolha em 2026.

Gerenciamento de chaves

Chaves em hardware: Secure Enclave, StrongBox, TPM, PIV

O que as chaves em hardware garantem: Secure Enclave da Apple, TEE e StrongBox no Android, TPM 2.0 e YubiKey PIV, como o atestado prova isso e seus limites.

Assinaturas HTTP

Assinaturas de mensagens HTTP (RFC 9421) para APIs e bots

Assinaturas HTTP (RFC 9421): componentes cobertos, Signature-Input, chaves, repetição, verificação no servidor e Web Bot Auth para rastreadores e agentes de IA.

JWT

Rotação de chaves JWKS sem interrupção

Rotação de chaves de assinatura JWT sem requisições com falha: regras de kid, sobreposição, Cache-Control, cache em 7 bibliotecas e remoção de emergência.

JWT

Erros na verificação de JWT que aceitam tokens inválidos

Erros de verificação de JWT que ainda vão ao ar: alg do cabeçalho, confusão HS/RS, kid, aud, iss, exp, desvio de relógio e cache de JWKS, com código corrigido.

Pós-quântica

ML-DSA (FIPS 204) na prática: chaves, assinaturas e código

ML-DSA (FIPS 204): tamanhos 44/65/87, modo hedged ou determinístico, contexto, HashML-DSA, formatos de chave e código testado para OpenSSL, Go, Java e .NET.

TLS

TLS mútuo para APIs: certificados de cliente na prática

TLS mútuo para APIs: como funcionam certificados de cliente no TLS 1.3, CA privada, configuração de nginx, Envoy, Go e Node.js, rotação e os erros de cada um.

PKI

OCSP e CRL em 2026: como se verifica a revogação hoje

Let’s Encrypt sem OCSP, CRLs obrigatórias, navegadores com CRLite e CRLSets. O que Java, .NET, Go, Python, Node.js e curl verificam por padrão e como corrigir.

OpenID Connect

Validação do token de ID OIDC, passo a passo

Valide tokens de ID OpenID Connect pelo Core 3.1.3.7: iss, aud, azp, assinatura, exp, nonce, at_hash e c_hash, e as peculiaridades de Entra ID, Google e Auth0.

Cadeia de suprimentos

OpenPGP em 2026: RFC 9580, chaves v6 e a cisão do GnuPG

OpenPGP hoje: RFC 9580 e chaves v6, Ed25519 e X25519, a RFC 9980 pós-quântica, o LibrePGP do GnuPG vs. Sequoia, testes de interoperabilidade e conselhos.

Chaves de acesso

Passkeys para desenvolvedores: WebAuthn sem achismo

Passkeys para desenvolvedores: registro e login WebAuthn, atestado, passkeys sincronizadas, verificação do usuário, algoritmos COSE e DOMException, testados.

Documentos

Assinaturas de PDF explicadas: ByteRange, CMS, PAdES e LTV

Como funciona a assinatura de PDF: ByteRange, objeto CMS, níveis PAdES, carimbos do tempo RFC 3161, LTV, por que é válida, mas não confiável, e como verificar.

Java

PKIX path building failed no Java: causas e soluções reais

Por que o Java lança PKIX path building failed: CA privada, intermediário ausente, trust store errado, raízes desatualizadas, SNI. Como diagnosticar e corrigir.

Pós-quântica

Migração pós-quântica em 2026: plano para desenvolvedores

O que já é pós-quântico por padrão em 2026, o que falta mudar e os prazos reais (NIST IR 8547, CNSA 2.0, UE, Reino Unido) para troca de chaves e assinaturas.

SAML

Validação de assinaturas SAML: o que verificar e por quê

Como validar assinaturas SAML: referências XMLDSig, canonicalização, por que ler dados só do elemento assinado e as verificações de Audience, Recipient e tempo.

SD-JWT

SD-JWT e SD-JWT VC: divulgação seletiva em carteiras EUDI

SD-JWT (RFC 9901) e SD-JWT VC: claims ocultas em digests com salt, vinculação de chave contra repetição, relação com carteiras EUDI e mdoc, situação em 2026.

Algoritmos

secp256k1 explicada: a curva do Bitcoin e do Ethereum

secp256k1: parâmetros, o endomorfismo que a acelera, por que o Bitcoin e o Ethereum a usam, low-S, codificação de chaves e endereços, suporte nas plataformas.

Ethereum

Sign-In with Ethereum (EIP-4361): verifique no servidor

Sign-In with Ethereum bem feito: mensagem EIP-4361, validação de nonce, domínio e URI, verificação no servidor, ERC-1271 e ERC-6492 para carteiras inteligentes.

Cadeia de suprimentos

Assinar releases com Sigstore: cosign, bundles, identidade

Assinatura keyless com Sigstore: certificados Fulcio, log Rekor, bundles cosign, verificação da identidade, proveniência npm e atestados de artefatos do GitHub.

Gerenciamento de chaves

Assinatura com KMS em nuvem: AWS, Google Cloud e Azure

Assine com AWS KMS, Google Cloud KMS e Azure Key Vault: tipos de chave, digest ou mensagem, ECDSA DER ou bruto, JWTs, arquivos, permissões e logs de auditoria.

SSH

Certificados SSH vs authorized_keys: CAs e principals

Certificados OpenSSH em vez de authorized_keys: CAs de usuário e de host, principals, validade, ssh-keygen -s, sshd, revogação por KRL e os erros que aparecem.

SSH

ssh-keygen em 2026: tipos de chave, frase secreta e agente

Qual chave SSH gerar em 2026: Ed25519, chaves FIDO -sk, o novo híbrido ML-DSA, RSA 3072; rodadas de KDF, riscos de encaminhar o agente, certificados e rotação.

TLS

X25519MLKEM768: a troca de chaves híbrida no TLS 1.3

Como funciona o híbrido X25519MLKEM768 no TLS 1.3: tamanhos do key share, ponto de código 0x11EC, quem o ativa por padrão, como verificar e o que pode quebrar.

PKI

Campos do certificado X.509 explicados com exemplos reais

Campos X.509 em certificados reais: titular vs. SAN, Key Usage e EKU, Basic Constraints, AKI e SKI, CRL, OCSP e AIA, SCTs e o que cada regra significa hoje.

Modos de falha

Reutilização de nonce no ECDSA: como um número repetido revela a chave privada

Por que reutilizar o nonce k do ECDSA vaza a chave privada: a dedução, as falhas do PlayStation 3 e do Android, r repetidos no Bitcoin e a correção da RFC 6979.

Formatos

Formatos de assinatura ECDSA: DER vs bruto (P1363), high-S e armadilhas entre bibliotecas

Por que a assinatura ECDSA tem duas codificações, ASN.1 DER e r‖s bruto (IEEE P1363): layout de bytes, high-S vs low-S e padrões de Node.js, Go, Python e Java.

JWT

ES256 vs RS256 em JWTs: como escolher e como não cair em armadilhas

ES256 vs RS256 em JWT: valores de alg, tamanho do token, fixação dos algoritmos, por que nunca aceitar alg none e por que a assinatura ES256 é r‖s bruto.

Algoritmos

ECDSA vs RSA: qual algoritmo de assinatura usar e quando

ECDSA vs RSA: tamanhos de chave e assinatura (P-256 vs RSA-3072), velocidade, uso em TLS, SSH, JWTs e blockchains, o requisito do nonce e os prazos PQC do NIST.

Prefere mexer em bytes de verdade? As ferramentas do Laboratório de assinaturas rodam inteiramente no seu navegador.