Оплата туннеля не обязана означать, что при каждом подключении предъявляется платёжная личность. Схема может один раз проверить право на доступ, выдать клиенту криптографические токены и позволить шлюзу позже принять токен, не видя учётной записи за ним. Скрывает ли это что-то на самом деле, зависит от решений о выдаче и погашении, поэтому относитесь к этому как к упражнению по спецификации из четырёх разделов, а не как к функции, которую включают.

Отделите шаг покупки от шага сессии

Архитектура Privacy Pass из RFC 9576 даёт словарь: клиент, аттестатор, эмитент и источник. Клиент доказывает эмитенту некоторое свойство и получает токены; позже он предъявляет один из них источнику, который решает, обслуживать ли его. В применении к VPN аттестуемым свойством может быть одна единица доступа.

Биллинг по-прежнему видит то, что нужно его собственному процессу, и никто не утверждает обратного. Более узкая цель — чтобы последующее погашение нельзя было связать с покупкой, породившей токен. Это конкретное, проверяемое свойство, и именно его стоит записать.

Случайно выглядящая bearer-строка этого не даёт. Если эмитент хранит значение рядом с записью клиента, а шлюз может запросить это соответствие, оба взаимодействия связаны базой данных, а не криптографией. Построение должно сделать эмитента неспособным ответить на этот вопрос, а развёртывание — не дать эмитенту и шлюзу объединить свои представления.

Решите, что авторизует один токен

«Один токен покупает доступ» операционно почти ничего не объясняет. Единица — это одно подключение, лимит времени или объём? Может ли клиент, потерявший ответ, возобновить то же разрешение? Что происходит, когда устройство переподключается во время смены сети? Эти ответы определяют, пригодна ли схема, и у каждого есть последствие для приватности.

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

Выберите один вариант осознанно и запишите рядом поведение при сбое. Клиент, который после тайм-аута повторяет попытку с новым правом, расходует ещё одну единицу — это одновременно сюрприз в счёте и сигнал о приватности.

Опишите политику повторного использования и отзыва

Отзыв — это место, где анонимные схемы обычно нарушают собственное обещание. Отмена подписки и аннулирование уже выданных токенов — разные операции, а шлюз, который тихо выполняет поиск по учётной записи, чтобы принять решение, в этот момент перестаёт быть анонимным.

Выберите срок действия, лимит выдачи и историю отзыва, которые сочетаются друг с другом. Затем проверьте собственные записи шлюза на поля, которые возвращают связь, которую вы убрали.

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

Этот поиск перечисляет лог-файлы, содержащие поля токена или учётной записи, — первое место, где аккуратная схема протекает на практике. Запись сессии, хранящая значение токена рядом с идентификатором учётной записи, разрушает всю конструкцию, и обычно она появляется из отладочного изменения, к которому никто не возвращался.

Также определите, что шлюз хранит после завершения сессии. Длительность, байты и конечная точка полезны для эксплуатации, и каждый из них — кусочек головоломки, который наблюдатель хотел бы иметь. Держите срок хранения коротким, а список полей коротким, и пересматривайте оба, когда отладочное изменение добавляет столбец. Никто не замечает новое поле лога, пока оно не просуществует год.

Сформулируйте утверждение, а затем наблюдения, которые остаются

Запишите утверждение о приватности одним предложением вместе с допущениями: какая сторона не должна иметь возможности связать какие контексты и что произойдёт, если эмитент и шлюз сверят записи. Схема, которая выдерживает это предложение, поддаётся проверке; та, что описывается только как «нулевое знание», — нет.

Затем перечислите то, что остаётся видимым в любом случае. Исходные адреса, время подключений, размеры пакетов и простой факт, что покупка произошла незадолго до появления единственного нового подключения, — всё это вне криптографии. Единственного клиента, который купил одну единицу и подключился один раз, можно связать только по времени, и никакая схема токенов это не изменит.

Честный результат — более узкая связь между учётной записью и использованием, а не невидимая сессия. Это всё равно стоит строить, если документация говорит об этом прямо, а эксплуатационные записи соответствуют утверждению.

Похожие статьи