Membayar sebuah terowongan tidak harus berarti menunjukkan identitas penagihan pada setiap koneksi. Sebuah rancangan bisa memeriksa kelayakan sekali, menyerahkan token kriptografis kepada pelanggan, dan membiarkan gerbang menerima token nanti tanpa melihat akun di baliknya. Apakah itu benar-benar menyembunyikan sesuatu bergantung pada pilihan penerbitan dan penebusan, jadi perlakukan ini sebagai latihan spesifikasi dengan empat bagian, bukan fitur yang Anda nyalakan.

Pisahkan langkah pembelian dari langkah sesi

Arsitektur Privacy Pass dalam RFC 9576 memberi kosakata: klien, pengesah, penerbit, dan asal. Klien membuktikan suatu sifat kepada penerbit dan menerima token; nanti ia menyajikan satu kepada asal, yang memutuskan apakah akan melayaninya. Jika diterapkan pada VPN, sifat yang disahkan bisa berupa satu unit akses.

Penagihan tetap melihat apa pun yang dibutuhkan prosesnya sendiri, dan tidak ada yang menyangkalnya. Tujuan yang lebih sempit adalah penebusan berikutnya tidak dapat ditautkan kembali ke pembelian yang menghasilkan token tersebut. Itu sifat yang spesifik dan dapat diuji, dan itulah yang layak dituliskan.

Rangkaian pembawa yang tampak acak tidak menyediakannya. Jika penerbit menyimpan nilai itu di samping catatan pelanggan dan gerbang dapat menanyakan pemetaan tersebut, kedua interaksi tertaut oleh basis data, bukan oleh kriptografi. Konstruksinya harus membuat penerbit tidak mampu menjawab pertanyaan itu, dan penerapannya harus mencegah penerbit dan gerbang menyatukan pandangan mereka.

Tentukan apa yang diotorisasi satu token

«Satu token membeli akses» hampir tidak menjawab apa pun secara operasional. Apakah unitnya satu koneksi, jatah waktu, atau volume? Bisakah klien yang kehilangan responsnya melanjutkan hibah yang sama? Apa yang terjadi ketika perangkat menyambung ulang saat jaringan berubah? Jawaban itu menentukan apakah rancangannya bisa dipakai, dan masing-masing punya konsekuensi privasi.

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

Pilih satu dengan sengaja dan tuliskan perilaku kegagalan di sebelahnya. Klien yang mencoba lagi dengan hak baru setelah waktu habis memakai satu unit lagi, yang sekaligus merupakan kejutan penagihan dan sinyal privasi.

Tulis kebijakan penggunaan ulang dan pencabutan

Pencabutan adalah tempat rancangan anonim biasanya melanggar janjinya sendiri. Membatalkan langganan dan membatalkan token yang sudah diterbitkan adalah operasi berbeda, dan gerbang yang diam-diam melakukan pencarian akun untuk memutuskan tidak lagi anonim pada titik itu.

Pilih masa berlaku, batas penerbitan, dan kisah pencabutan yang saling cocok. Lalu periksa catatan gerbang itu sendiri untuk bidang yang memunculkan kembali tautan yang Anda hapus.

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

Pencarian itu mendaftar berkas log yang memuat bidang token atau akun, dan itulah tempat pertama rancangan yang cermat bocor dalam praktik. Catatan sesi yang menyimpan nilai token di samping pengenal akun meruntuhkan seluruh konstruksi, dan biasanya masuk melalui perubahan penelusuran kesalahan yang tidak ditinjau ulang siapa pun.

Tentukan juga apa yang disimpan gerbang setelah sesi berakhir. Durasi, bita, dan titik akhir berguna untuk operasi, dan masing-masing adalah potongan teka-teki yang diinginkan pengamat. Jaga masa penyimpanan tetap pendek dan daftar bidang tetap pendek, lalu tinjau keduanya ketika perubahan penelusuran kesalahan menambah kolom. Tidak ada yang menyadari bidang log baru sampai ia sudah ada setahun.

Nyatakan klaimnya, lalu pengamatan yang tersisa

Tulis klaim privasi dalam satu kalimat beserta asumsinya: pihak mana yang harus tidak mampu menautkan konteks mana, dan apa yang terjadi jika penerbit dan gerbang membandingkan catatan. Rancangan yang bertahan dari kalimat itu bisa ditinjau; yang hanya dijelaskan sebagai «pengetahuan nol» tidak.

Lalu daftar apa yang tetap terlihat apa pun yang terjadi. Alamat sumber, waktu koneksi, ukuran paket, dan fakta sederhana bahwa sebuah pembelian terjadi tak lama sebelum satu-satunya koneksi baru muncul semuanya berada di luar kriptografi. Satu pelanggan yang membeli satu unit dan terhubung sekali dapat ditautkan hanya dari waktunya, dan tidak ada rancangan token yang mengubahnya.

Hasil yang jujur adalah tautan yang lebih sempit antara akun dan penggunaan, bukan sesi yang tak terlihat. Itu tetap layak dibangun, asalkan dokumentasinya mengatakan demikian dan catatan operasional sesuai dengan klaimnya.

Artikel terkait