Um passaporte digital do produto não mostra o mesmo a todos. Uma compradora vê os dados públicos. Uma oficina de reparação ou uma empresa de recondicionamento vê mais. Uma autoridade de fiscalização do mercado vê tudo. Isso está esclarecido e as normas europeias já o estabelecem expressamente.
A questão interessante é mais subtil: se alguém tiver acesso a campos protegidos para além dos dados públicos, poderá então comprovar que são precisamente esses campos que são autênticos? Ou terá de confiar em que a plataforma os selecionou corretamente e os transmitiu sem alterações?
Imagine um notário que não autentica a carta na sua totalidade, mas sim cada parágrafo individualmente. A carta pública é disponibilizada a todos. Quem tiver direito a mais informação recebe os parágrafos adicionais, e cada um deles continua a ostentar o selo do mesmo notário. Foi assim que construímos a nossa plataforma. Na maioria das plataformas, a resposta honesta à pergunta acima é: confiança. No nosso caso, é: prova, para cada campo que só é acrescentado no momento da divulgação. Este artigo explica por que razão esta diferença é importante e por que razão optámos pelo caminho mais trabalhoso.
Todos cumprem a regra de acesso da mesma forma
Anorma EN 18239, a norma europeia relativa aos direitos de acesso, segurança e confidencialidade no DPP, exige que o acesso seja controlado campo a campo: para cada campo existe uma regra que define quem o pode ver. Este é o requisito correto e não é difícil de cumprir. Quanto ao estatuto destas normas, já o detalhámos no nosso artigo sobre as normas harmonizadas.
A forma habitual de o fazer é através de um filtro no servidor. O servidor sabe quem está a fazer a consulta, verifica o que essa pessoa tem permissão para ver e devolve exatamente essa parte da informação. A norma não exige mais do que isso. O leitor tem de confiar que o servidor selecionou a informação de forma honesta e que nada foi alterado durante o processo. Para um folheto informativo público, isso é suficiente. No entanto, trata-se de muita confiança quando se trata de um valor no qual um reciclador baseia diretamente o preço de uma pilha usada.
Há aqui um senão que a norma não aborda: o excerto chega sem selo.
A solução mais óbvia é assinar os dados. Para os dois extremos da escala, uma assinatura comum funciona bem: assinar a visualização pública, assinar o conjunto de dados completo. O procedimento detalhado encontra-se na secção «Assinaturas e Certificados» do DPP. No meio, o sistema falha. Uma assinatura sobre todo o documento abrange exatamente os campos que estavam presentes no momento da assinatura. Se se revelar adicionalmente um campo protegido a um leitor autorizado, esse campo fica fora do conjunto assinado e chega-lhe sem cobertura. Ninguém assina antecipadamente todas as combinações possíveis de «quem vê o quê», pois o número de combinações dispara. Recorre-se então ao filtro sem selo, e o nível intermédio volta a basear-se na confiança.
Assinar cada campo individualmente
Existe uma estrutura melhor, e é sobre ela que construímos a plataforma. Em vez de assinar o documento final como um bloco único, o criador define cada campo individualmente numa única etapa (para os especialistas em normas: o procedimento do W3C ecdsa-sd-2023).
Cada visualização começa, assim, com os mesmos campos públicos. O que um leitor vê para além disso é adicionado campo a campo, e cada um desses campos continua a remeter para a chave pública do fabricante, offline, sem necessidade de nova assinatura e sem confiança na entidade que compilou a visualização. Os campos sem direito de acesso simplesmente não existem. Não estão ocultos, mas sim ausentes, e nada sobre eles transparece.
Uma passagem: a oficina de reparação
Uma oficina de reparação manifestou um interesse legítimo relativamente a uma bateria, um dos níveis de acesso expressamente previstos no regulamento relativo às baterias. O sistema da sua oficina autentica-se na nossa interface com a sua chave e solicita o passe. A resposta é o mesmo passe público que a compradora também vê, mas com mais um campo: as instruções de desmontagem, que só são reveladas a leitores autorizados. Não há um segundo documento, nem uma versão especial.
Antes de a empresa confiar neste campo, o seu software verifica o selo fornecido em relação à chave pública do fabricante. Se a verificação for bem-sucedida, incluindo o campo adicional, a empresa sabe que estas instruções provêm, ao pormenor, do fabricante e que ninguém ao longo do processo as alterou. Caso a verificação falhe, a empresa descarta a visualização na sua totalidade. Garantir que receba exatamente os campos a que tem direito continua a ser tarefa do nosso controlo de acesso. A novidade reside no passo seguinte: a empresa verifica por si própria se o que recebe é autêntico, sem nos consultar.
Por que razão «intacto» é o ponto essencial
Um selo intacto não significa que o conteúdo seja verdadeiro. Significa: foi exatamente isto que o fabricante escreveu e, desde então, ninguém alterou qualquer caractere. Assim, todos aqueles que apenas transmitiram o documento ficam fora da questão da confiança: a memória intermédia, a rede, o arquivo, nós.
Quem lhe entregou o passaporte já não tem importância.
E um selo é binário. Ou está intacto ou não está; não existe um selo «meio quebrado». Por isso, não se trata de uma diferença gradual se os campos adicionais chegarem até si com o seu selo ou sem ele: sem selo, não estão apenas ligeiramente menos comprovados, estão completamente sem comprovação.
Ambos os métodos para visualização
Qualquer pessoa pode verificar isso por si própria. A Transpareo Time Machine é a nossa aplicação de visualização de código aberto para passaportes de produto: percorre o histórico de versões de um passaporte e, ao fazê-lo, recalcula cada assinatura no navegador do utilizador, sem consultar nenhum dos nossos servidores. O passaporte de uma t-shirt contém uma assinatura que abrange todo o documento, enquanto o de uma bateria apresenta a validação campo a campo.
Ambos são padrões abertos do W3C, que qualquer pessoa pode implementar. A assinatura que abrange todo o documento é significativamente mais económica de criar e manter, e quem apenas disponibiliza dados públicos consegue satisfazer os requisitos com ela. O facto de a Time Machine dominar ambos os procedimentos é intencional: o passaporte mantém-se um formato padrão comum, que qualquer ferramenta adequada pode verificar, não apenas a nossa.
A quem isso beneficia e o que a norma exige
Para além dos dados públicos ## ,a quem é que, afinal, é divulgada alguma informação? Não é à compradora ocasional. São os processadores, que avaliam o valor de um conjunto de baterias usado; as seguradoras, que calculam o preço de um risco; as empresas de reciclagem, que separam os compostos químicos; e as autoridades, que instruem um processo. Leitores cujas decisões dependem de dinheiro ou segurança. E, na abordagem habitual, precisamente os leitores que não recebem qualquer selo relativamente aos campos em que assenta a sua decisão. Consideramos que um selo de certificação deve significar o mesmo para todos: cada campo apresentado provém do fabricante e não foi alterado desde então. Um selo que apenas abrange os campos públicos é um selo incompleto.
Dizemo-lo abertamente: nada disto é obrigatório. A norma EN 18239 exige que o acesso seja controlado, e um filtro no servidor cumpre essa função na perfeição. Tornar os campos divulgados verificáveis é algo que fazemos além disso, porque todo o sentido de um passaporte assinado reside no facto de ninguém ter de confiar na plataforma. Excluir o nível intermédio como exceção restabelece precisamente a confiança que a assinatura deveria eliminar.
O mesmo princípio permite que um campo seja omitido
Definir cada campo individualmente acarreta uma segunda característica, e esta é, de facto, exigida pela legislação europeia. O Regulamento Geral sobre a Proteção de Dados confere às pessoas o direito de solicitar a eliminação dos seus dados pessoais. Um conjunto de dados assinado como um bloco não pode cumprir este requisito sem destruir a própria assinatura.
Como, neste caso, cada campo é independente, é possível remover um único campo, enquanto todo o resto continua a ser válido. Caso dados pessoais sejam incluídos acidentalmente num passaporte, estes são removidos de forma limpa e o passaporte mantém-se válido: sem necessidade de reemissão, sem registo histórico danificado. Os campos cuja conservação é exigida por lei permanecem inalterados; o que for passível de eliminação pode ser eliminado mediante pedido, mesmo anos mais tarde.
Por que razão isto é difícil e como o resolvemos
Não fomos nós ## queinventámos o procedimento; trata-se de uma norma pública do W3C. O difícil não é ter a ideia. O difícil é implementá-la de forma a que um passaporte continue a ser válido daqui a dez anos. Uma assinatura comum baseia-se nos bytes de um documento. A assinatura por campo baseia-se nos seus dados individuais e, para tal, o passaporte é transformado, antes da assinatura, num formato fixo, no qual cada dado aparece como uma frase separada. Este formato deve ser reproduzido, carácter a carácter, daqui a dez anos; caso contrário, o selo deixará de ser válido. Três aspetos aparentemente insignificantes impedem isso, e resolvemos os três na sua origem.
Os números perdem o seu tipo. Um valor como 2,0, após passar por um formato de dados comum, regressa como 2. Para um ser humano, é a mesma coisa; para a sintaxe fixa, é uma frase diferente. No nosso sistema, cada valor é armazenado com o seu tipo, e a publicação é interrompida assim que surgir sequer um número sem tipo.
As designações, por si só, não têm significado. Cada nome de campo deve remeter para um significado unívoco num dicionário; caso contrário, o campo desaparece silenciosamente durante a conversão e o selo não o abrange. No nosso sistema, cada dicionário está disponível localmente e nunca é obtido através da rede; um nome de campo desconhecido interrompe a assinatura, em vez de apresentar silenciosamente um resultado vazio.
As entradas necessitam de nomes fixos. Cada entrada no documento possui, no nosso sistema, um identificador fixo, para que a sintaxe permaneça a mesma em cada execução, em vez de atribuir novos nomes auxiliares de cada vez.
A parte mais delicada reside na chave própria do fabricante. Para cada emissão, é necessária uma chave adicional de curta duração, com a qual os campos divulgáveis são assinados individualmente. Esta chave é gerada e descartada pelo próprio fabricante. Se estivesse na nossa posse, poderíamos inventar campos individuais posteriormente. Cada passaporte ostenta dois selos deste tipo: um do fabricante e outro da Transpareo, mesmo para um campo divulgado individualmente.
Para nós, este esforço é justificado. Cada passaporte é assinado no momento da publicação e encadeado à versão anterior, e o arquivo inalterável de dez anos entra em vigor assim que os passaportes forem registados no Registo DPP da UE. Assinar cada campo, em vez de todo o bloco, constitui uma extensão deste núcleo, não um acréscimo.
Onde nos encontramos
Optámos pela prova, para todos os leitores, porque um selo deve significar uma coisa única, independentemente de quem o observe. Quem quiser ver como funciona: os dois passaportes de exemplo com links acima podem ser verificados diretamente no navegador, sem necessidade de consultar um servidor.
Perguntas sobre este artigo
Existe alguma norma que imponha a assinatura campo a campo?
Não. A norma europeia EN 18239, relativa aos direitos de acesso no DPP, exige que o acesso seja controlado campo a campo, e um filtro no servidor cumpre integralmente esse requisito. Tornar os campos divulgados passíveis de verificação é uma decisão nossa e não um requisito imposto por qualquer entidade reguladora. Consideramos que este esforço se justifica, pois todo o sentido de um passe assinado reside no facto de ninguém ter de confiar na plataforma. O estatuto destas normas está descrito na nossa publicação sobre as normas harmonizadas.
Apenas divulgamos dados públicos. Será que precisamos disso?
Provavelmente não, e é isso mesmo que afirmamos. Uma assinatura que abrange todo o documento cobre um passaporte cujos campos são todos públicos, sendo significativamente mais económica de implementar e manter. A validação campo a campo justifica-se assim que surge um segundo grupo-alvo, como uma rede de reparação, uma empresa de reciclagem ou uma autoridade a quem, de outra forma, entregaria excertos sem selo. Ambos os procedimentos são normas abertas do W3C (ecdsa-sd-2023 para a assinatura por campo); qualquer ferramenta que domine a norma pode verificá-las, e ambas funcionam atualmente no Transpareo Time Machine, no passaporte de uma t-shirt e no passaporte de uma bateria.
É possível apagar posteriormente os dados pessoais sem invalidar o passaporte?
Sim, e esta parte é, de facto, exigida pela legislação europeia. O Regulamento Geral sobre a Proteção de Dados confere às pessoas o direito de solicitar a eliminação dos seus dados pessoais, e um registo de dados assinado como um bloco não pode cumprir essa exigência sem destruir a sua própria assinatura. Uma vez que, neste caso, cada campo é definido individualmente, é possível remover um único campo, enquanto todo o resto continua a ser válido, sem necessidade de reemissão e sem que o histórico de versões seja comprometido. Os campos que a lei exige que sejam conservados permanecem inalterados.
Quem detém a chave de assinatura?
Cada passaporte ostenta dois selos, e um deles pode ser o seu. Cada emissão requer, além disso, uma chave de curta duração que assina individualmente os campos divulgáveis; esta é gerada e descartada pelo próprio fabricante, pois, se ficasse na nossa posse, poderíamos inventar campos individuais posteriormente. Verificamos o selo recebido em relação à chave pública registada antes de o considerarmos fiável. Cada passaporte ostenta, assim, dois selos de duas entidades independentes, tanto para um campo divulgado individualmente como para o conjunto completo de dados.
Será que um passaporte ainda será válido daqui a dez anos?
É precisamente aí que reside o esforço. A assinatura por campo calcula com base nos dados individuais de um documento, em vez de nos seus bytes; por isso, a mesma forma fixa de escrita tem de ser reproduzida, carácter a carácter, uma década mais tarde. Três fatores comprometem essa precisão, e nós eliminámos todos eles na sua origem. Cada valor é armazenado com o seu tipo, cada dicionário encontra-se nas nossas instalações e nunca é obtido através da rede, e cada entrada possui um identificador fixo. O arquivo imutável de dez anos está criado e entra em vigor assim que os passaportes forem registados no registo da UE. Mais informações sobre este assunto na nossa análise do regulamento relativo ao registo.




