Resumo
- RFC 9879 incorpora PBMAC1 ao PKCS #12, exige suporte a PBKDF2/HMAC-SHA-256 e corrige a codificação de senha definida no RFC 9579.
- Um leitor antigo pode prosseguir até o material de chave cifrado sem entender a nova integridade, enquanto senha e parâmetros KDF continuam sujeitos a ataques próprios.
- Uma migração auditável separa o perfil efetivo, o resultado do MAC, a política de falha e o destino da chave.
PKCS #12 carrega certificados, chaves privadas e outros segredos entre plataformas. “O arquivo abriu” é apenas um evento dessa viagem. A sintaxe pode ter sido aceita, a parte cifrada pode ter sido decifrada, o MAC pode ter sido confirmado, os parâmetros podem ter vencido o piso local e a chave pode ter chegado ao cofre correto. Misturar esses estados transforma compatibilidade em uma promessa de segurança que o formato não fez.
Publicado em setembro de 2025 como RFC informativo do IETF, RFC 9879 torna RFC 9579 obsoleto e atualiza RFC 7292 e RFC 8018. Ele permite id-PBMAC1 no DigestAlgorithmIdentifier do PKCS #12. Quando selecionado, os parâmetros PBMAC1 precisam estar presentes e coerentes; o valor de integridade deve ser calculado sobre authSafe com esses parâmetros.
O avanço é desacoplar escolhas. O método histórico do PKCS #12 limitava a evolução da derivação de chave MAC. PBMAC1 declara KDF e função de autenticação. Todos os implementadores precisam oferecer PBKDF2 com HMAC-SHA-256 tanto para a verificação quanto para a PRF do PBKDF2. Outros HMACs SHA-2 são recomendados, e KDFs como scrypt podem ser adicionados.
Essa extensibilidade torna o conjunto de parâmetros parte da prova. O comprimento da chave derivada é obrigatório. Parâmetros PBKDF2 sem keyLength não podem ser aceitos; HMAC-SHA-256 deve usar saída de 32 octetos. PBKDF2 com HMAC-SHA-1 não é recomendado, e outros resumos de 160 bits ou menos são proibidos.
Há ainda dois campos que parecem mais importantes do que são. Com PBMAC1, macSalt e iterations no nível externo devem ser ignorados, embora seja aconselhável mantê-los não vazios e positivos por compatibilidade. Uma ferramenta de inventário que lê só esses campos pode exibir um número de iterações que não participou do cálculo real.
O leitor antigo forma a segunda fronteira. O RFC afirma que a nova sintaxe pretende permitir a decifragem do material de chave por aplicativos incapazes de interpretar a nova integridade, desde que eles consigam ignorar a falha na verificação do MAC. Isso evita um corte brusco durante a adoção. Também impede que “decifrou” seja usado como sinônimo de “verificou”. Nenhum produto específico é apontado pelo documento.
A senha acrescenta uma correção de bytes. RFC 9579 dizia BMPString com terminador NULL. O erratum técnico 7974 registrou que a implementação usada nos vetores conservou UTF-8. RFC 9879 então exige UTF-8 sem NULL final nem BOM. Uma tela pode mostrar os mesmos caracteres enquanto duas pilhas entregam bytes diferentes à KDF.
Os vetores incluem arquivos válidos em combinações SHA-256 e SHA-512 e arquivos inválidos por iteração, sal ou ausência de comprimento. Passar por eles prova um cálculo delimitado. Não prova uma senha forte, um modo de falha fechado, adoção em toda a frota ou custódia correta depois da importação.
O próprio RFC observa que KDFs podem gerar chaves de apenas um octeto e que os parâmetros KDF não são protegidos criptograficamente. Saídas tão curtas facilitam força bruta contra o HMAC. Recomenda-se rejeitar comprimentos abaixo de 20 octetos e permite-se recusar parâmetros fracos. Essa faculdade precisa virar uma política executável.
RFC 8018 completa o quadro: criptografia baseada em senha admite busca offline. Sal e iterações aumentam o custo, mas não criam entropia. Scrypt procura cobrar também memória do atacante; RFC 9879 o permite, não o torna universal. Dois arquivos marcados PBMAC1 podem, portanto, representar forças e trajetórias de falha diferentes.
O registro operacional deve conservar a sequência: recebimento; versões; OID e parâmetros efetivos; aprovação da política; bytes da senha; MAC correto ou incorreto; resultado separado da decifragem; autorização de uso; cofre de destino; comportamento na reexportação. Nenhuma etapa posterior deve apagar a incerteza anterior.
Fontes
- https://www.rfc-editor.org/rfc/rfc9879.html
- https://www.rfc-editor.org/rfc/rfc9579.html
- https://www.rfc-editor.org/errata/eid7974
- https://www.rfc-editor.org/rfc/rfc7292.html
- https://www.rfc-editor.org/rfc/rfc8018.html
- https://www.rfc-editor.org/rfc/rfc7914.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance

