O que é um registro NDEF assinado, e o que ele prova?
Que o conteúdo carrega uma assinatura feita com uma chave específica, e que o conteúdo não mudou desde então. O que ele não estabelece é que esta tag é a original, porque a assinatura viaja com o conteúdo e se copia perfeitamente numa tag virgem junto com todo o resto.
O que ele é
Um registro levado junto com os outros na mensagem, que guarda uma assinatura calculada sobre eles e um jeito de identificar a chave que a produziu.
Ele é conteúdo, exatamente no sentido em que todo o resto da tag é conteúdo. Ocupa espaço na mensagem e é lido como qualquer outro registro.
O tipo de registro, os algoritmos permitidos e os arranjos de certificados são definidos pela Signature Record Type Definition, uma especificação técnica do NFC Forum. Ela deliberadamente não define uma infraestrutura de chaves públicas, que é a lacuna que esta página descreve.
Quais plataformas e aplicativos o verificam, em vez de apenas carregá-lo, é a pergunta que decide se ele faz alguma coisa na prática.
O que ele prova
Que quem preparou esse conteúdo tinha a chave. Se só quem publica tem de fato essa chave, um conteúdo com essa assinatura veio de quem publica.
E que o conteúdo não foi editado desde então. Um registro alterado depois da assinatura deixa de corresponder a ela, então a assinatura falha.
Essas duas propriedades são reais e valem alguma coisa. O problema começa quando as pessoas as estendem a uma terceira propriedade que não decorre delas.
O que ele não prova
Que esta tag é a tag que quem publica gravou. A assinatura está dentro do conteúdo, o conteúdo se copia por inteiro, e a cópia carrega uma assinatura que é verificada sem falha.
Esse é o ponto que as pessoas acham contraintuitivo, e ele é a questão inteira: uma assinatura autentica uma mensagem, e não o objeto que a carrega.
Ela também não prova nada sobre o item em que a tag está colada, nem se a tag foi movida de um item para outro.
Para qualquer uma dessas coisas, a prova tem de vir do chip, e não do conteúdo, o que é um mecanismo diferente com um custo diferente.
Onde vale a pena usar
Onde a preocupação é um conteúdo alterado, e não tags duplicadas: uma tag numa parede pública que alguém poderia regravar para apontar para outro lugar.
Onde um leitor do outro lado de fato verifica a assinatura, o que em geral quer dizer um aplicativo feito para isso, e não o comportamento comum do sistema.
A assinatura custa memória, o que num chip pequeno é uma limitação real, e custa o trabalho operacional de guardar uma chave com segurança por anos.
Onde a preocupação é a falsificação, ela é a ferramenta errada, e comprá-la vai produzir um esquema que falha exatamente quando é posto à prova.
Perguntas frequentes
Uma assinatura impede que uma tag seja copiada?
Não. A assinatura é conteúdo, e o conteúdo se copia por inteiro. A cópia carrega uma assinatura que é verificada sem falha.
A assinatura impede que o conteúdo seja alterado?
Sim, no sentido de que um conteúdo alterado deixa de corresponder à assinatura. É para isso que ela serve.
Um celular verifica a assinatura automaticamente?
Em geral não. A verificação costuma exigir um aplicativo feito para isso, e é isso que decide se ela ajuda.
O que devo usar contra a falsificação?
Um chip que prova que guarda uma chave. A prova tem de vir do chip, e não do conteúdo.