Tunel üçün ödəniş etmək hər bağlantıda ödəniş kimliyini təqdim etmək demək deyil. Dizayn yararlılığı bir dəfə yoxlaya, müştəriyə kriptoqrafik tokenlər verə və şlüzün sonradan arxasındakı hesabı görmədən tokeni qəbul etməsinə imkan verə bilər. Bunun həqiqətən nəyisə gizlədib-gizləmədiyi buraxılış və istifadə seçimlərindən asılıdır, ona görə bunu açıb-söndürdüyünüz funksiya deyil, dörd bölməli spesifikasiya məşqi kimi qəbul edin.

Alış addımını sessiya addımından ayırın

RFC 9576-dakı Privacy Pass arxitekturası lüğəti verir: müştəri, təsdiqləyici, buraxıcı və mənbə. Müştəri buraxıcıya hansısa xüsusiyyəti sübut edir və tokenlər alır; sonra onlardan birini mənbəyə təqdim edir, mənbə isə onu təqdim edib-etməyəcəyinə qərar verir. VPN-ə tətbiq edildikdə təsdiqlənən xüsusiyyət bir vahid giriş ola bilər.

Hesablaşma öz prosesinin ehtiyac duyduğunu hələ də görür və heç kim bunun əksini iddia etmir. Daha dar məqsəd odur ki, sonrakı istifadə tokeni yaradan alışla əlaqələndirilə bilməsin. Bu, konkret və yoxlana bilən bir xassədir və yazılmağa dəyər olan da elə budur.

Təsadüfi görünən daşıyıcı sətir bunu təmin etmir. Əgər buraxıcı dəyəri müştəri qeydinin yanında saxlayır və şlüz həmin uyğunluğu soruşa bilirsə, iki qarşılıqlı təsir kriptoqrafiya ilə deyil, verilənlər bazası ilə bağlanır. Konstruksiya buraxıcını həmin suala cavab verə bilməyəcək hala gətirməli, yerləşdirmə isə buraxıcı ilə şlüzün baxışlarını birləşdirməsinin qarşısını almalıdır.

Bir tokenin nəyə icazə verdiyini müəyyənləşdirin

«Bir token giriş alır» əməliyyat baxımından demək olar ki, heç nəyə cavab vermir. Vahid tək bağlantıdır, vaxt kvotasıdır, yoxsa həcm? Cavabını itirmiş müştəri eyni icazəni davam etdirə bilərmi? Şəbəkə dəyişikliyi zamanı cihaz yenidən qoşulduqda nə olur? Bu cavablar dizaynın yararlı olub-olmadığını həll edir və hər birinin məxfilik nəticəsi var.

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

Birini qəsdən seçin və uğursuzluq davranışını onun yanında yazın. Gözləmə bitdikdən sonra yeni hüquqla yenidən cəhd edən müştəri daha bir vahid sərf edir ki, bu da eyni zamanda həm hesablaşma sürprizi, həm də məxfilik siqnalıdır.

Təkrar istifadə və ləğv siyasətini yazın

Ləğv anonim dizaynların adətən öz vədlərini pozduğu yerdir. Abunəliyin ləğvi və artıq buraxılmış tokenlərin etibarsızlaşdırılması fərqli əməliyyatlardır və qərar vermək üçün səssizcə hesab axtarışı aparan şlüz həmin nöqtədə artıq anonim deyil.

Bir-birinə uyğun bitmə tarixi, buraxılış limiti və ləğv hekayəsi seçin. Sonra şlüzün öz qeydlərində aradan qaldırdığınız əlaqəni yenidən gətirən sahələri yoxlayın.

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

Bu axtarış token və ya hesab sahələri olan log fayllarını sadalayır və diqqətli dizaynın praktikada ilk sızma yeri elə burasıdır. Token dəyərini hesab identifikatorunun yanında saxlayan sessiya qeydi bütün konstruksiyanı dağıdır və bu, adətən heç kimin yenidən baxmadığı bir sazlama dəyişikliyi ilə gəlir.

Sessiya bitdikdən sonra şlüzün nə saxladığını da müəyyənləşdirin. Müddət, baytlar və son nöqtə əməliyyat üçün faydalıdır və hər biri müşahidəçinin əldə etmək istədiyi tapmacanın bir parçasıdır. Saxlama müddətini qısa, sahə siyahısını qısa saxlayın, sonra sazlama dəyişikliyi sütun əlavə etdikdə hər ikisini yenidən nəzərdən keçirin. Yeni log sahəsini bir il orada qalmayana qədər heç kim görmür.

İddianı, sonra qalan müşahidələri qeyd edin

Məxfilik iddiasını fərziyyələri ilə bir cümlədə yazın: hansı tərəf hansı kontekstləri əlaqələndirə bilməməlidir və buraxıcı ilə şlüz qeydlərini müqayisə etsə nə olar. Bu cümlədən sağ çıxan dizayn nəzərdən keçirilə biləndir; yalnız «sıfır bilik» kimi təsvir olunan dizayn isə deyil.

Sonra nədən asılı olmayaraq görünən qalanları sadalayın. Mənbə ünvanları, bağlantı vaxtları, paket ölçüləri və yeganə yeni bağlantı görünməzdən az əvvəl alışın baş verdiyi faktı kriptoqrafiyadan kənardadır. Bir vahid alıb bir dəfə qoşulan tək müştəri yalnız vaxta görə əlaqələndirilə bilər və heç bir token dizaynı bunu dəyişmir.

Dürüst nəticə görünməz sessiya deyil, hesabla istifadə arasında daha dar əlaqədir. Sənədləşmə bunu deyirsə və əməliyyat qeydləri iddiaya uyğundursa, bu hələ də qurmağa dəyər.

Əlaqəli məqalələr