Ці можа платны VPN аўтарызаваць сесіі без вашага акаўнта?
Несупастаўныя токены могуць аддзяліць праверку права на доступ ад самой сесіі. Важна не тое, што напісана на экране ўваходу, а тое, як уладкаваны выпуск і пагашэнне.
Плаціць за тунель не абавязкова значыць паказваць плацежную асобу пры кожным злучэнні. Схема можа адзін раз праверыць права на доступ, выдаць кліенту крыптаграфічныя токены і дазволіць шлюзу пазней прыняць токен, не бачачы акаўнт за ім. Ці сапраўды гэта нешта хавае, залежыць ад рашэнняў пра выпуск і пагашэнне, таму стаўцеся да гэтага як да практыкавання са спецыфікацыі з чатырох раздзелаў, а не як да функцыі, якую ўключаюць.
Аддзяліце крок куплі ад кроку сесіі
Архітэктура Privacy Pass у RFC 9576 дае слоўнік: кліент, атэстатар, эмітэнт і крыніца. Кліент даказвае эмітэнту пэўную ўласцівасць і атрымлівае токены; пазней ён прадстаўляе адзін з іх крыніцы, якая вырашае, ці абслугоўваць яго. Ужытая да VPN, уласцівасць, што пацвярджаецца, можа быць адзінкай доступу.
Білінг усё роўна бачыць тое, што патрабуе яго ўласны працэс, і ніхто не сцвярджае адваротнае. Больш вузкая мэта ў тым, каб пазнейшае пагашэнне нельга было звязаць з купляй, якая спарадзіла токен. Гэта канкрэтная ўласцівасць, якую можна праверыць, і менавіта яе варта запісаць.
Выпадковая на выгляд радок-носьбіт гэтага не дае. Калі эмітэнт захоўвае значэнне побач з запісам кліента, а шлюз можа запытаць гэтую адпаведнасць, два ўзаемадзеянні звязваюцца базай даных, а не крыптаграфіяй. Канструкцыя павінна зрабіць эмітэнта няздольным адказаць на гэтае пытанне, а разгортванне — не даць эмітэнту і шлюзу аб'яднаць свае погляды.
Вызначце, на што дае права адзін токен
«Адзін токен купляе доступ» амаль нічога не тлумачыць у эксплуатацыі. Адзінка — гэта адно злучэнне, ліміт часу ці аб'ём? Ці можа кліент, які страціў адказ, працягнуць тое ж права? Што адбываецца, калі прылада перападключаецца падчас змены сеткі? Гэтыя адказы вызначаюць, ці прыдатная схема, і кожны з іх мае наступствы для прыватнасці.
| Reuse rule | What it buys | What it leaks |
|---|---|---|
| Single use per connection | Strongest unlinkability between sessions | Frequent reissuance, more purchase-to-use timing pairs |
| Bounded time window | Fewer tokens, reconnects work | Activity inside the window is linkable |
| Long-lived grant | Operationally simple | Behaves like an account reference with extra steps |
Выберыце адзін варыянт свядома і запішыце побач паводзіны пры збоі. Кліент, які пасля заканчэння чакання паўтарае спробу з новым правам, спажывае яшчэ адну адзінку — гэта адначасова і нечаканы рахунак, і сігнал прыватнасці.
Запішыце палітыку паўторнага выкарыстання і адклікання
Адкліканне — гэта месца, дзе ананімныя схемы звычайна парушаюць сваё абяцанне. Скасаванне падпіскі і ануляванне ўжо выдадзеных токенаў — розныя аперацыі, і шлюз, які ціха робіць пошук па акаўнце, каб прыняць рашэнне, у гэты момант ужо не ананімны.
Выберыце тэрмін дзеяння, ліміт выпуску і гісторыю адклікання, якія ўзгадняюцца паміж сабой. Затым праверце ўласныя запісы шлюза на палі, што зноў уводзяць сувязь, якую вы прыбралі.
sudo grep -rIl --include='*.log' -e 'Bearer ' -e 'account_id' /var/log/vpn/
Гэты пошук выводзіць файлы журналаў, што змяшчаюць палі токенаў або акаўнтаў, і гэта першае месца, дзе ўважлівая схема цячэ на практыцы. Запіс сесіі, які захоўвае значэнне токена побач з ідэнтыфікатарам акаўнта, знішчае ўсю канструкцыю, і звычайна ён з'яўляецца праз адладачную змену, да якой ніхто не вяртаўся.
Таксама вызначце, што шлюз захоўвае пасля завяршэння сесіі. Працягласць, байты і канцавы пункт карысныя для эксплуатацыі, і кожнае з іх — кавалак галаваломкі, які назіральнік хацеў бы мець. Трымайце тэрмін захоўвання кароткім, а спіс палёў кароткім, потым пераглядайце абодва, калі адладачная змена дадае слупок. Ніхто не заўважае новае поле журнала, пакуль яно не прастаіць год.
Сфармулюйце сцвярджэнне, а затым назіранні, якія застаюцца
Запішыце сцвярджэнне пра прыватнасць адным сказам разам з яго дапушчэннямі: які бок не павінен мець магчымасці звязаць якія кантэксты і што будзе, калі эмітэнт і шлюз параўнаюць нататкі. Схема, якая вытрымае гэты сказ, прыдатная да разгляду; тая, што апісана толькі як «нулявое веданне», — не.
Затым пералічыце тое, што застаецца бачным незалежна ад усяго. Адрасы крыніц, час злучэнняў, памеры пакетаў і просты факт, што купля адбылася незадоўга да з'яўлення адзінага новага злучэння, — усё гэта па-за крыптаграфіяй. Адзін кліент, які купіў адну адзінку і падключыўся адзін раз, звязваецца толькі па часе, і ніякая схема токенаў гэтага не зменіць.
Сумленны вынік — больш вузкая сувязь паміж акаўнтам і выкарыстаннем, а не нябачная сесія. Гэта ўсё яшчэ варта будаваць, калі дакументацыя так і кажа, а эксплуатацыйныя запісы адпавядаюць сцвярджэнню.