Pagar por un túnel no tiene por qué significar presentar la identidad de facturación en cada conexión. Un diseño puede comprobar la elegibilidad una vez, entregar al cliente testigos criptográficos y dejar que la puerta de enlace acepte después un testigo sin ver la cuenta que hay detrás. Si eso oculta realmente algo depende de las decisiones de emisión y canje, así que trátalo como un ejercicio de especificación con cuatro secciones y no como una función que se activa.

Separa el paso de compra del paso de sesión

La arquitectura Privacy Pass del RFC 9576 da el vocabulario: un cliente, un atestador, un emisor y un origen. El cliente demuestra alguna propiedad al emisor y recibe testigos; más tarde presenta uno al origen, que decide si lo atiende. Aplicado a una VPN, la propiedad atestada podría ser una sola unidad de acceso.

La facturación sigue viendo lo que necesita su propio proceso, y nadie afirma lo contrario. El objetivo más estrecho es que el canje posterior no pueda ligarse a la compra que produjo el testigo. Esa es una propiedad concreta y verificable, y es la que merece la pena escribir.

Una cadena portadora de aspecto aleatorio no lo proporciona. Si el emisor guarda el valor junto a un registro de cliente y la puerta de enlace puede pedir esa correspondencia, las dos interacciones quedan ligadas por una base de datos y no por la criptografía. La construcción debe hacer que el emisor no pueda responder esa pregunta, y el despliegue debe impedir que el emisor y la puerta de enlace unan sus visiones.

Decide qué autoriza un solo testigo

«Un testigo compra acceso» no responde casi nada en términos operativos. ¿La unidad es una sola conexión, una cuota de tiempo o un volumen? ¿Puede un cliente que perdió su respuesta retomar la misma concesión? ¿Qué ocurre cuando un dispositivo se reconecta durante un cambio de red? Esas respuestas deciden si el diseño es utilizable, y cada una tiene una consecuencia para la privacidad.

Reuse ruleWhat it buysWhat it leaks
Single use per connectionStrongest unlinkability between sessionsFrequent reissuance, more purchase-to-use timing pairs
Bounded time windowFewer tokens, reconnects workActivity inside the window is linkable
Long-lived grantOperationally simpleBehaves like an account reference with extra steps

Elige uno a propósito y escribe al lado el comportamiento en caso de fallo. Un cliente que reintenta con un derecho nuevo tras un tiempo de espera consume otra unidad, lo que es a la vez una sorpresa de facturación y una señal de privacidad.

Escribe la política de reutilización y revocación

La revocación es donde los diseños anónimos suelen romper su propia promesa. Cancelar una suscripción e invalidar testigos ya emitidos son operaciones distintas, y una puerta de enlace que hace en silencio una consulta de cuenta para decidir ya no es anónima en ese punto.

Elige una caducidad, un límite de emisión y una historia de revocación que encajen entre sí. Después revisa los registros propios de la puerta de enlace en busca de campos que reintroduzcan el vínculo que has eliminado.

sudo grep -rIl --include='*.log' -e 'Bearer ' -e 'account_id' /var/log/vpn/

Esa búsqueda lista archivos de registro que contienen campos de testigo o de cuenta, y es el primer lugar donde un diseño cuidadoso se filtra en la práctica. Un registro de sesión que guarda el valor del testigo junto a un identificador de cuenta arruina toda la construcción, y normalmente llega mediante un cambio de depuración que nadie revisó.

Define también qué conserva la puerta de enlace cuando termina una sesión. Duración, bytes y extremo son útiles para las operaciones, y cada uno de ellos es una pieza del rompecabezas que un observador querría tener. Mantén corto el periodo de retención y corta la lista de campos, y luego revisa ambos cuando un cambio de depuración añada una columna. Nadie nota un campo de registro nuevo hasta que lleva un año ahí.

Enuncia la afirmación y después las observaciones que quedan

Escribe la afirmación de privacidad en una frase con sus supuestos: qué parte debe ser incapaz de vincular qué contextos, y qué pasa si el emisor y la puerta de enlace comparan notas. Un diseño que sobrevive a esa frase es revisable; uno descrito solo como «conocimiento cero» no lo es.

Después enumera qué permanece visible pase lo que pase. Direcciones de origen, horas de conexión, tamaños de paquete y el simple hecho de que una compra ocurrió poco antes de que apareciera la única conexión nueva quedan todos fuera de la criptografía. Un solo cliente que compra una unidad y se conecta una vez es vinculable solo por el momento, y ningún diseño de testigos cambia eso.

El resultado honesto es un vínculo más estrecho entre cuenta y uso, no una sesión invisible. Sigue mereciendo la pena construirlo, siempre que la documentación lo diga y los registros operativos coincidan con la afirmación.

Artículos relacionados