Kas tasuline VPN saab sessioone autoriseerida ilma sinu kontota?
Sidumatud load võivad eraldada õiguse kontrolli sessioonist endast. Tähtis on väljastamise ja lunastamise disain, mitte sisselogimisekraani silt.
Tunneli eest maksmine ei pea tähendama maksmisidentiteedi esitamist igal ühendusel. Disain saab õiguse üks kord kontrollida, anda kliendile krüptograafilised load ja lasta lüüsil hiljem loa vastu võtta, nägemata selle taga olevat kontot. Kas see tegelikult midagi varjab, sõltub väljastamise ja lunastamise valikutest, seega käsitle seda neljaosalisse spetsifikatsiooni harjutusena, mitte funktsioonina, mille sisse lülitad.
Eralda ostu samm sessiooni sammust
Privacy Passi arhitektuur RFC 9576 annab sõnavara: klient, tõendaja, väljastaja ja päritolu. Klient tõestab väljastajale mingi omaduse ja saab load; hiljem esitab ühe päritolule, mis otsustab, kas seda teenindada. VPN-ile rakendatuna võiks tõendatav omadus olla üks juurdepääsuühik.
Arveldus näeb endiselt seda, mida selle enda protsess vajab, ja keegi ei väida vastupidist. Kitsam eesmärk on, et hilisemat lunastamist ei saaks siduda ostuga, mis loa tekitas. See on konkreetne ja testitav omadus ning just seda tasub kirja panna.
Juhuslikuna näiv kandevstring seda ei anna. Kui väljastaja hoiab väärtust kliendi kirje kõrval ja lüüs saab seda vastavust küsida, on kaks tegevust seotud andmebaasi, mitte krüptograafiaga. Konstruktsioon peab muutma väljastaja võimetuks sellele küsimusele vastama, ja juurutus peab takistama väljastajat ja lüüsi oma vaateid ühendamast.
Otsusta, mida üks luba autoriseerib
«Üks luba ostab juurdepääsu» ei vasta operatiivselt peaaegu millelegi. Kas ühik on üks ühendus, ajakvoot või maht? Kas klient, kes kaotas oma vastuse, saab sama õigust jätkata? Mis juhtub, kui seade võrguvahetuse ajal uuesti ühendub? Need vastused otsustavad, kas disain on kasutatav, ja igal neist on tagajärg privaatsusele.
| 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 |
Vali üks teadlikult ja kirjuta selle kõrvale rikkekäitumine. Klient, kes pärast ajalõppu proovib uuesti uue õigusega, kulutab veel ühe ühiku, mis on korraga nii arveldusüllatus kui ka privaatsussignaal.
Kirjuta taaskasutuse ja tühistamise poliitika
Tühistamine on koht, kus anonüümsed disainid tavaliselt oma lubaduse murravad. Tellimuse lõpetamine ja juba väljastatud lubade kehtetuks muutmine on erinevad toimingud, ja lüüs, mis teeb otsustamiseks vaikselt kontopäringu, ei ole selles punktis enam anonüümne.
Vali aegumine, väljastuspiir ja tühistamislugu, mis omavahel kokku sobivad. Seejärel vaata lüüsi enda kirjed üle väljade osas, mis toovad tagasi eemaldatud seose.
sudo grep -rIl --include='*.log' -e 'Bearer ' -e 'account_id' /var/log/vpn/
See otsing loetleb logifailid, mis sisaldavad loa- või kontovälju, ja see on esimene koht, kus hoolikas disain praktikas lekkida võib. Sessioonikirje, mis hoiab loa väärtust konto identifikaatori kõrval, hävitab kogu konstruktsiooni, ja see saabub tavaliselt silumismuudatusega, mida keegi uuesti ei vaadanud.
Määratle ka, mida lüüs pärast sessiooni lõppu alles hoiab. Kestus, baidid ja lõpp-punkt on operatsioonidele kasulikud ja igaüks neist on pusletükk, mida vaatleja tahaks. Hoia säilitusaeg lühike ja väljade loend lühike, seejärel vaata mõlemad üle, kui silumismuudatus lisab veeru. Keegi ei märka uut logivälja enne, kui see on olnud seal aasta.
Sõnasta väide ja seejärel vaatlused, mis jäävad
Kirjuta privaatsusväide ühes lauses koos selle eeldustega: milline osapool peab olema võimetu milliseid kontekste siduma, ja mis juhtub, kui väljastaja ja lüüs märkmeid võrdlevad. Disain, mis selle lause üle elab, on ülevaatamiseks sobiv; ainult kui «nullteadmine» kirjeldatud disain ei ole.
Seejärel loetle, mis jääb nähtavaks sõltumata kõigest. Lähteaadressid, ühendusaeg, paketi suurused ja lihtne tõsiasi, et ost toimus vahetult enne ainsa uue ühenduse ilmumist, on kõik väljaspool krüptograafiat. Üks klient, kes ostab ühe ühiku ja ühendub korra, on sidutav ainuüksi ajastuse järgi, ja ükski loadisain ei muuda seda.
Aus tulemus on kitsam side konto ja kasutuse vahel, mitte nähtamatu sessioon. Seda tasub siiski ehitada, kui dokumentatsioon seda ütleb ja operatiivsed kirjed väitega sobivad.