Un pasaporte digital del producto no muestra lo mismo a todos. Una compradora ve los datos públicos. Un taller de reparación o una empresa de reacondicionamiento ve más información. Una autoridad de vigilancia del mercado lo ve todo. Esto está claro, y las normas europeas ya lo establecen expresamente.
La cuestión interesante es más sutil: si alguien tiene acceso a campos protegidos más allá de los datos públicos, ¿puede demostrar que precisamente esos campos son auténticos? ¿O debe confiar en que la plataforma los ha seleccionado correctamente y los ha transmitido sin modificaciones?
Imagínese a un notario que no certifica la carta en su totalidad, sino cada párrafo por separado. Todo el mundo recibe la carta pública. Quien tenga derecho a más información, recibe los párrafos adicionales, y cada uno de ellos sigue llevando el sello del mismo notario. Así es como hemos construido nuestra plataforma. En la mayoría de las plataformas, la respuesta sincera a la pregunta anterior es: confianza. En nuestro caso, es: prueba, para cada campo que se añade en el momento de la divulgación. Este artículo explica por qué esta diferencia es importante y por qué hemos optado por el camino más laborioso.
Todos cumplen la norma de acceso de la misma manera
Lanorma EN 18239, la norma europea sobre derechos de acceso, seguridad y confidencialidad en el DPP, exige que el acceso se controle campo por campo: para cada campo existe una regla que establece quién puede verlo. Ese es el requisito adecuado, y no es difícil de cumplir. En nuestro artículo sobre las normas armonizadas hemos desglosado qué estatus tienen estas normas.
La forma habitual de lograrlo es mediante un filtro en el servidor. El servidor sabe quién realiza la consulta, comprueba qué puede ver esa persona y devuelve exactamente esa sección. La norma no exige nada más. El lector debe confiar en que el servidor ha seleccionado la información de forma honesta y no ha modificado nada durante el proceso. Para una hoja informativa pública, esto es suficiente. Sin embargo, para un valor en el que un procesador basa directamente el precio de una batería usada, se requiere mucha confianza.
Hay un inconveniente que la norma no tiene en cuenta: el fragmento se recibe sin sello.
La solución más obvia es firmar los datos. Para los dos extremos de la escala, una firma convencional funciona bien: firmar la vista pública, firmar el conjunto de datos completo. El funcionamiento detallado se describe en «Firmas y certificados» del DPP. El problema surge en el punto intermedio. Una firma sobre todo el documento cubre exactamente los campos que estaban presentes en el momento de la firma. Si se revela adicionalmente un campo protegido a un lector autorizado, dicho campo queda fuera del conjunto firmado y le llega sin protección. Nadie firma por adelantado todas las combinaciones posibles de «quién ve qué», ya que el número de combinaciones se dispara. Se recurre al filtro sin sello, y el nivel intermedio vuelve a basarse en la confianza.
Firmar cada campo por separado
Existe un diseño mejor, y sobre él construimos la plataforma. En lugar de firmar el documento final como un bloque único, el creador especifica cada campo por separado en una sola pasada (para los expertos en normas: el procedimiento del W3C ecdsa-sd-2023).
Cada vista comienza, por tanto, con los mismos campos públicos. Lo que el lector ve además se añade campo a campo, y cada uno de estos campos sigue remitiendo a la clave pública del fabricante, sin conexión, sin necesidad de volver a firmar y sin depositar confianza en la entidad que ha compilado la vista. Los campos sin derecho de acceso simplemente no aparecen. No están tachados, sino que no están ahí en absoluto, y no se filtra nada sobre ellos.
Una ronda: el taller de reparación
Un taller de reparación ha declarado un interés legítimo respecto a una batería, uno de los niveles de acceso que prevé expresamente el Reglamento sobre pilas y baterías. Su sistema de taller se conecta a nuestra interfaz con su clave y recupera el pasaporte. La respuesta es el mismo certificado público que ve la compradora, pero con un campo más: las instrucciones de desmontaje, que solo se revelan a los lectores autorizados. No se trata de un segundo documento ni de una versión especial.
Antes de que la empresa confíe en este campo, su software verifica el sello adjunto con la clave pública del fabricante. Si la verificación de la firma es correcta, incluso en lo que respecta al campo adicional, sabe que estas instrucciones proceden, carácter por carácter, del fabricante y que nadie las ha modificado en ningún momento del proceso. Si no se verifica, descarta la vista en su totalidad. Que reciba exactamente los campos que le corresponden sigue siendo tarea de nuestro control de acceso. Lo nuevo es el paso siguiente: él mismo comprueba si lo que recibe es auténtico, sin consultarnos.
Por qué lo «intacto» es precisamente la clave
Un sello intacto no garantiza que el contenido sea veraz. Lo que indica es: esto es exactamente lo que ha escrito el fabricante, y desde entonces nadie ha alterado ni un solo carácter. De este modo, queda fuera de la cuestión de la confianza cualquiera que simplemente haya transmitido el documento: la memoria intermedia, la red, el archivo, nosotros.
Ya no importa quién le haya entregado el pasaporte.
Y un sello es binario. O se mantiene o no se mantiene; no existe un sello «a medias». Por eso no es una diferencia gradual si los campos adicionales le llegan con su sello o sin él: sin sello, no están «ligeramente menos rellenos», sino que no están rellenos en absoluto.
Ambos procedimientos para su consulta
Cualquiera puede comprobarlo por sí mismo. La Transpareo Time Machine es nuestra aplicación de visualización de código abierto para los pasaportes del producto: permite navegar por el historial de versiones de un pasaporte del producto y, al hacerlo, verifica cada firma en el navegador del usuario sin necesidad de consultar ninguno de nuestros servidores. El certificado de una camiseta incluye una firma que abarca todo el documento, mientras que el de una batería presenta una validación campo por campo.
Ambos son estándares abiertos del W3C, y cualquiera puede implementarlos. La firma de todo el documento resulta considerablemente más económica de implementar y mantener, y es suficiente para quienes solo facilitan datos públicos. El hecho de que Transpareo Time Machine domine ambos procedimientos es intencionado: el carné sigue siendo un formato estándar habitual que puede verificar cualquier herramienta adecuada, no solo la nuestra.
A quién beneficia esto y qué exige la norma
¿A quién se le revela realmente algo más allá de los datos públicos? No a la compradora ocasional. Son los procesadores, que evalúan el valor de un paquete de baterías usado; las aseguradoras, que calculan el precio de un riesgo; los recicladores, que clasifican los compuestos químicos; y las autoridades, que instruyen un expediente. Lectores cuyas decisiones dependen del dinero o de la seguridad. Y, según el enfoque habitual, precisamente aquellos destinatarios que no obtienen ningún sello para los campos en los que se basa su decisión. Consideramos que un sello de certificación debería significar lo mismo para todos: cada campo mostrado procede del fabricante y no ha sido alterado desde entonces. Un sello que solo se aplica a los campos públicos es un sello a medias.
Lo decimos abiertamente: nada de esto es obligatorio. La norma EN 18239 exige que se controle el acceso, y un filtro en el servidor lo hace a la perfección. Hacemos que los campos revelados sean verificables, además, porque el sentido mismo de un pasaporte firmado es que nadie tenga que confiar en la plataforma. Excluir el nivel intermedio como excepción recupera precisamente esa confianza que la firma debía eliminar.
El mismo principio permite que se omita un campo
Centrarse en cada campo por separado conlleva una segunda característica, y esta es, de hecho, una exigencia de la legislación europea. El Reglamento General de Protección de Datos otorga a las personas el derecho a que se supriman sus datos personales. Un conjunto de datos firmado como un bloque no puede cumplir con este requisito sin destruir su propia firma.
Dado que aquí cada campo es independiente, es posible eliminar un solo campo, mientras que el resto sigue siendo válido. Si, por error, se incluyen datos personales en un pasaporte, estos se eliminan por completo y el pasaporte sigue siendo válido: no es necesario reemitirlo ni se interrumpe su historial. Los campos que la ley exige conservar permanecen intactos; lo que se puede eliminar se puede borrar previa solicitud, incluso años más tarde.
Por qué resulta complicado y cómo lo hemos resuelto
No hemos inventado nosotros el procedimiento; se trata de un estándar público del W3C. Lo difícil no es tener la idea. Lo difícil es implementarla de tal forma que un pasaporte siga siendo válido dentro de diez años. Una firma habitual se calcula a partir de los bytes de un documento. La firma por campos se calcula a partir de sus datos individuales y, para ello, antes de firmar, el pasaporte se convierte a un formato fijo en el que cada dato aparece como una frase independiente. Este formato debe reproducirse carácter por carácter dentro de diez años; de lo contrario, ningún sello volverá a ser válido. Hay tres aspectos aparentemente insignificantes que lo impiden, y los hemos resuelto de raíz a todos ellos.
Los números pierden su tipo. Un valor como 2,0, tras pasar por un formato de datos convencional, vuelve como 2. Para una persona es lo mismo, pero para el formato fijo es una frase diferente. En nuestro sistema, cada valor se almacena con su tipo, y la publicación se interrumpe en cuanto aparece siquiera un número sin tipo.
Las denominaciones no equivalen aún a un significado. Cada nombre de campo debe remitir a un significado unívoco en un diccionario; de lo contrario, el campo desaparece silenciosamente durante la conversión y el sello no lo cubre. En nuestro sistema, cada diccionario está disponible localmente y nunca se recupera a través de la red; un nombre de campo desconocido detiene la firma, en lugar de devolver silenciosamente un resultado vacío.
Las entradas necesitan nombres fijos. Cada entrada del documento lleva, en nuestro sistema, un identificador fijo, de modo que la sintaxis se mantenga igual en cada ejecución, en lugar de asignar cada vez nuevos nombres auxiliares.
La parte más delicada radica en la clave propia del fabricante. Para cada emisión se necesita una clave adicional de corta duración, con la que se firman individualmente los campos que pueden divulgarse. El propio fabricante genera y desecha esta clave. Si estuviera en nuestro poder, podríamos inventar campos individuales a posteriori. Cada pasaporte lleva dos sellos de este tipo: uno del fabricante y otro de Transpareo, incluso para un campo divulgado de forma individual.
Para nosotros, este esfuerzo está bien invertido. Con Transpareo Proofchain, cada pase se firma al publicarse y se vincula a la versión anterior, y Transpareo Vault - el archivo inalterable de diez años - entra en funcionamiento tan pronto como los pases se registran en el registro de la UE. Firmar cada campo en lugar de todo el bloque es una ampliación de este núcleo, no un añadido.
En qué punto nos encontramos
Hemos optado por la prueba, para cualquier lector, porque un sello debe significar lo mismo independientemente de quién lo observe. Si desea ver cómo funciona: los dos pases de ejemplo enlazados anteriormente se verifican directamente en el navegador, sin necesidad de consultar ningún servidor.
Preguntas sobre esta publicación
¿Existe alguna norma que establezca la firma por campos?
No. La norma EN 18239, la norma europea sobre derechos de acceso en el DPP, exige que el acceso se controle campo por campo, y un filtro en el servidor cumple plenamente este requisito. Hacer que los campos divulgados sean, además, verificables es una decisión nuestra y no un requisito que la normativa imponga a nadie. Consideramos que este esfuerzo está justificado, ya que el sentido mismo de un pase firmado radica en que nadie tenga que confiar en la plataforma. El estatus que tienen estas normas se explica en nuestro artículo sobre las normas armonizadas.
Solo publicamos datos públicos. ¿Es necesario hacerlo?
Probablemente no, y así se lo decimos. Una firma que abarque todo el documento cubre un pasaporte cuyos campos son todos públicos, y resulta considerablemente más económica de implementar y mantener. La validación campo por campo resulta útil en cuanto se añade un segundo destinatario, como una red de reparación, una empresa de reciclaje o una autoridad a la que, de otro modo, entregaría extractos sin sello. Ambos procedimientos son estándares abiertos del W3C (ecdsa-sd-2023 para la firma por campos); cualquier herramienta que domine el estándar puede verificarlos, y ambos funcionan actualmente en la Transpareo Time Machine, en el «pasaporte» de una camiseta y en el de una batería.
¿Es posible eliminar posteriormente los datos personales sin que el pasaporte pierda su validez?
Sí, y esta parte es, de hecho, un requisito de la legislación europea. El Reglamento General de Protección de Datos otorga a las personas el derecho a que se eliminen sus datos personales, y un registro de datos firmado como bloque no puede cumplir con ello sin destruir su propia firma. Dado que aquí cada campo está definido por separado, es posible eliminar un único campo, mientras que el resto sigue siendo válido, sin necesidad de volver a emitir el documento y sin que se altere el historial de versiones. Los campos que la ley exige conservar permanecen intactos.
¿Quién tiene la clave de firma?
Cada pasaporte lleva dos sellos, y uno de ellos puede ser el suyo. Además, cada expedición requiere una clave de corta duración que firme individualmente los campos que pueden divulgarse; es el propio fabricante quien la genera y la desecha, ya que, de estar en nuestro poder, podríamos inventar campos concretos a posteriori. Comprobamos el sello recibido cotejándolo con la clave pública registrada antes de darlo por válido. De este modo, cada pasaporte lleva dos sellos de dos organismos independientes, tanto para un campo concreto que se divulga como para el conjunto de datos.
¿Seguirá siendo válido un pasaporte dentro de diez años?
Ahí es precisamente donde radica la complejidad. La firma por campos se calcula a partir de los datos concretos de un documento, en lugar de a partir de sus bytes; por lo tanto, esa misma forma fija de escritura debe reproducirse, carácter a carácter, una década más tarde. Hay tres factores que pueden alterar este proceso, y los hemos eliminado de raíz a todos ellos. Cada valor se almacena con su tipo, todos los diccionarios se encuentran en nuestros servidores y nunca se recuperan a través de la red, y cada entrada lleva un identificador fijo. El archivo inalterable de diez años ya está creado y entrará en vigor tan pronto como los pasaportes se hayan inscrito en el registro de la UE. Encontrará más información al respecto en nuestro análisis del Reglamento del Registro.




