Resumo

  • A RFC 9708 define o uso de chaves e assinaturas HSS/LMS em X.509, PKIX e CMS. Uma chave privada LM-OTS deve assinar uma única vez, por isso o signatário precisa registrar permanentemente quais folhas já consumiu.
  • A validade de uma assinatura isolada não prova a unicidade do histórico. Uma gravação perdida, a restauração de máquina virtual ou a clonagem podem disponibilizar outra vez uma folha cuja assinatura já chegou ao público.
  • A ordem operacional é o controle: reservar e persistir o estado sucessor antes de liberar a assinatura, manter um único escritor efetivo e reconciliar cada saída com um consumo irreversível.

O painel de recuperação anuncia que a máquina voltou. O endpoint responde, a cadeia de certificados continua válida e os verificadores aceitam as novas assinaturas. Ainda assim, a recuperação pode ter restaurado um segredo que o mundo externo já viu ser utilizado. O serviço voltou; a história correta da chave, não.

Essa separação é o ponto mais importante da RFC 9708. Publicada em janeiro de 2025 na trilha de padrões, ela atualiza a integração do Hierarchical Signature System e do Leighton–Micali Signature scheme com certificados e Cryptographic Message Syntax. O texto substitui a RFC 8708, alinha a codificação ao uso de certificados, resolve erratas e incorpora novos conjuntos de parâmetros. A camada de representação melhora; a obrigação de estado permanece.

A RFC 8554 mostra o mecanismo abaixo dela. O estado da chave privada contém o índice da próxima assinatura de uso único. A operação de assinatura produz uma assinatura e o estado privado seguinte. Como a árvore tem capacidade fixa, chega um momento em que não há próximo estado. Se o mesmo estado secreto for usado duas vezes, deixam de existir garantias criptográficas e uma falsificação pode se tornar viável.

Portanto, o ativo protegido não é apenas o segredo. É o segredo acompanhado de uma contabilidade verdadeira de tudo o que já foi gasto.

Uma assinatura válida não certifica a trajetória do signatário

LM-OTS associa cada chave privada a uma assinatura. LMS reúne muitas dessas chaves sob uma raiz de Merkle, e HSS pode organizar árvores em níveis. Isso dá ao operador um volume útil, porém limitado, de assinaturas. O verificador encontra na assinatura uma posição da árvore e uma trilha que pode confrontar com a chave pública.

O mesmo verificador não descobre, apenas com esse objeto, se um clone utilizou aquela posição. A validação é local; a exclusividade é uma propriedade de todas as instâncias, cópias, backups e rotas de failover. Os recibos precisam continuar separados:

Recibo Conclusão estreita
chave pública aceita a política admite essa chave HSS/LMS
algoritmo interpretado formato e parâmetros são reconhecidos
assinatura verificada o objeto satisfaz o procedimento matemático
índice observado uma posição específica aparece na assinatura
posição reservada um escritor atribuiu aquela folha
avanço persistido o armazenamento não volátil deixou de oferecê-la
assinatura exportada o resultado cruzou a fronteira do serviço
histórico reconciliado nenhuma outra saída ocupa a mesma posição
efeito confirmado um consumidor agiu sobre o conteúdo assinado

A terceira linha não prova a oitava. A RFC 9708 exige o controle das folhas usadas e alerta que a perda de integridade desse controle pode provocar reutilização. Os exemplos são operações comuns: gravações persistentes podem falhar; máquinas virtuais podem ser fotografadas ou clonadas. O algoritmo não precisa ser quebrado quando a infraestrutura quebra a continuidade temporal.

O estado precisa ser confirmado antes da entrega

Se o serviço gera e devolve uma assinatura para só depois salvar o índice incrementado, uma falha entre esses eventos é suficiente. O chamador conserva a assinatura; o serviço reiniciado acredita que a folha ainda está livre. Uma confirmação de escrita também não basta se a alteração ficou em cache volátil e desaparece após a queda.

A publicação NIST SP 800-208 trata a gestão de estado como a grande dificuldade das assinaturas hash-based com estado. No perfil definido ali, um módulo conforme incrementa o identificador da folha e persiste esse avanço em memória não volátil antes de exportar a assinatura ou aceitar outra solicitação. Primeiro vem a reserva; depois, a marca durável de consumo; em seguida, a conclusão da assinatura; só então a saída.

Uma queda depois da persistência e antes da saída talvez desperdice uma folha. O custo é capacidade. Já a queda depois da saída e antes da persistência ameaça a promessa de uso único. Em resultado duvidoso, a folha deve ser queimada, não devolvida ao estoque disponível.

Esse detalhe muda o sentido de práticas familiares. Repetir uma chamada não é necessariamente idempotente. Restaurar backup não é necessariamente restaurar segurança. Subir outro clone não é necessariamente escalar. Para a chave ativa, o estado só pode avançar.

A redundância pode multiplicar a autoridade

Duas réplicas com o mesmo estado privado podem gerar assinaturas individualmente válidas e escolher índices sobrepostos. Um banco compartilhado não resolve o problema se qualquer nó exportar antes da confirmação durável. Dois módulos de hardware também não resolvem se receberam o mesmo estado e não possuem subárvores mutuamente exclusivas.

É possível serializar o consumo em um módulo soberano, repartir subárvores sem sobreposição, usar um contador monotônico de hardware ou cercar o escritor antigo antes de autorizar o sucessor. Cada solução precisa provar a propriedade que anuncia. “Em hardware” não é recibo de exclusividade; “alta disponibilidade” não é sinônimo de escritor único.

O perfil do NIST vai além da sintaxe geral da IETF: limita parâmetros aprovados, exige geração de chaves e assinaturas em módulos criptográficos de hardware e impede a exportação do segredo. Essa é uma exigência para implementações que alegam conformidade com o perfil, não uma característica automática de todo sistema RFC 9708. A publicação do padrão prova a existência das regras; não prova a execução de uma implantação específica.

Certificados levam a chave pública, não a memória privada

A RFC 9708 define o identificador de objeto, exige parâmetros ausentes em AlgorithmIdentifier e transporta a chave pública HSS/LMS sem um invólucro ASN.1 adicional. Em X.509, o key usage precisa indicar assinatura, e não criptografia ou acordo de chaves. A convenção se encaixa na arquitetura da RFC 5280 e nos módulos ASN.1 da RFC 5912.

No CMS da RFC 5652, a entrada assinada depende da presença de atributos assinados. Sem atributos, assina-se o conteúdo diretamente. Com atributos, resume-se o conteúdo e assina-se a codificação DER de SignedAttributes, incluindo tipo de conteúdo e message digest. Ecossistemas de objetos assinados, como o empacotamento de firmware da RFC 4108, podem assim adotar HSS/LMS em contêineres conhecidos.

Esses formatos definem o objeto verificável. Um certificado vincula chave pública e sujeito sob determinada política, mas não atesta que nenhum snapshot antigo guarde o estado privado. Um verificador CMS observa os bytes protegidos, não a descarga de disco perdida no signatário. A interoperabilidade distribui a confiança na chave; não distribui a prova de continuidade do estado.

Capacidade é uma decisão de governança

O número de folhas é finito. O operador precisa conhecer conjunto de parâmetros, estrutura hierárquica, taxa esperada, vida útil, reserva e prazo para colocar a chave sucessora em circulação. Uma explosão de uso pode ser ataque, evento legítimo ou erro de telemetria, mas sempre reduz a margem. Voltar a um índice baixo não aumenta a capacidade: falsifica o livro de consumo.

O registro LMS da IANA mantém os typecodes padronizados. A página do RFC Editor, as formas texto e XML, o histórico no IETF e o índice de erratas comprovam o estado documental. Não mostram o saldo de folhas de uma instalação nem a correção de seu processo de recuperação.

O teste de código em execução de Heng Lu desloca a pergunta para a transição executável: o consumo ficou durável antes da saída? A especificação inicial mínima preserva um piso comum sem apagar escolhas locais de isolamento e continuidade. A separação das camadas da realidade impede confundir três afirmações: existe um padrão, o objeto verifica e o histórico operacional é íntegro.

HSS/LMS não elimina a confiança operacional; muda onde ela precisa ser demonstrada. A construção reduz dependência de certas hipóteses ameaçadas pela computação quântica, mas exige do sistema uma memória implacável. A chave é um segredo unido ao passado que não pode esquecer.

Fontes