Apa yang dibuktikan spesifikasi protokol VPN dan apa yang tidak
Spesifikasi menetapkan format pesan, algoritme, dan asumsi ancaman. Spesifikasi tidak dapat menjamin build yang Anda pasang atau cara operator menangani akun Anda.
Dokumen protokol adalah kontrak antarimplementasi, dan membacanya dengan cermat memberi tahu Anda apa yang akan dipertukarkan dua rekan yang patuh dan properti apa yang dimaksudkan para perancang untuk dijamin. Dokumen itu tidak memberi tahu Anda biner mana yang berjalan di server yang Anda sambungkan, bagaimana server itu dikonfigurasi, atau apa yang terjadi pada catatan akun Anda sesudahnya. Itu tiga jenis bukti yang berbeda, dan memperlakukan spesifikasi sebagai ketiganya adalah cara sebuah nama protokol mulai melakukan pekerjaan yang tidak dapat dilakukannya. Menjaga ketiganya tetap terpisah adalah keseluruhan latihannya.
Dokumen itu adalah awal sebuah argumen, bukan kesimpulannya.
Apa yang sebenarnya ditetapkan dokumen
Deskripsi protokol untuk WireGuard mendefinisikan jabat tangan Noise IK, himpunan primitif yang tetap, tata letak pesan, dan pembingkaian transport yang kemudian membawa paket. Untuk IKEv2 artefak yang sebanding adalah RFC 7296, yang menetapkan pertukaran, muatan, dan negosiasi proposal. Dalam kedua kasus cakupannya tepat: pesan, mesin status, dan asumsi yang membuat tujuan keamanan berlaku.
Mode opsional mempersulit pembacaan. Properti yang berlaku untuk satu jabat tangan mungkin tidak berlaku untuk penerapan dengan susunan autentikasi berbeda atau konfigurasi cadangan.
Di mana jaminan berhenti
Analisis formal menjawab pertanyaan tentang sebuah model. Pekerjaan verifikasi WireGuard memakai model simbolik dalam pembuktian Tamarin, yang dapat menunjukkan bahwa rancangan menahan serangan tertentu berdasarkan asumsinya; itu tidak menunjukkan bahwa implementasi ruang pengguna yang dikirim tidak memiliki bug keamanan memori. Celah antara model dan mesin itulah tempat insiden nyata hidup. Membaca bukti sebagai sertifikat implementasi adalah kesalahan kategori.
Kerahasiaan maju mengilustrasikan batas yang sama. Properti itu bergantung pada kunci yang dimusnahkan sesuai maksud protokol, dan itu properti implementasi serta lingkungannya, bukan format pesan. Rancangan yang menetapkan penghapusan tidak dapat memaksakannya pada platform yang memindahkan memori ke disk.
Ketergantungan berlapis melebarkan celah itu: pustaka TLS di balik terowongan berbasis TLS, antarmuka kernel yang dipakai terowongan ruang pengguna, dan pembangkit bilangan acak semuanya berada di luar teks protokol.
Ikuti byte sampai ke dalam build
Beranjak dari dokumen ke artefak dengan mengidentifikasi versi, lalu membandingkannya dengan apa yang benar-benar melayani lalu lintas. Produk yang menyebut sebuah protokol dapat menambahkan komponen penyediaan, telemetri, dan manajemen yang tidak pernah dijelaskan spesifikasi.
openvpn --version | head -3 wg --version dpkg -l | grep -E 'openvpn|wireguard|libssl' ss -lunp | grep -E '1194|51820' sha256sum ./wireguard-tools_1.0.20210914_amd64.deb
Build yang dapat direproduksi dan checksum yang diterbitkan memungkinkan pohon sumber dihubungkan ke biner yang didistribusikan. Tanpa tautan itu, sumber yang diterbitkan hanya membuktikan bahwa inspeksi mungkin, bukan bahwa berkas yang berjalan cocok dengannya.
Konfigurasi termasuk dalam langkah yang sama. Suite cipher, rekan yang diizinkan, dan pengaturan perutean adalah pilihan penerapan, dan build yang patuh namun dikonfigurasi sembarangan tetap menghasilkan terowongan yang lemah.
Pisahkan praktik operasional
Catatan akun, data pembayaran, dan pengajuan dukungan adalah keputusan operator yang tidak dibatasi teks protokol mana pun. Laporan audit mencakup komponen yang disebutkan dalam lingkup yang dinyatakan, dan kebijakan privasi menjelaskan niat serta praktik; tidak satu pun menggantikan yang lain, dan tidak satu pun merupakan pernyataan kriptografis.
Kesimpulan yang tepat bersifat kumulatif: spesifikasi menjelaskan rancangan, build dan konfigurasi menjelaskan terowongan, dan praktik terdokumentasi operator menjelaskan segala sesuatu yang tidak pernah dilihat terowongan. Sebutkan mana yang Anda verifikasi, dan klaim itu tetap benar.