Paket terlindungi tidak kedaluwarsa secara kriptografis, jadi paket yang sah lima menit lalu masih sah sekarang, karena enkripsi dan perlindungan integritas tidak mengatakan apa pun tentang kapan byte dihasilkan. Penyerang yang dapat menangkap dan mengirim ulang lalu lintas tidak perlu memecahkan sandi. Itulah sebabnya setiap protokol terowongan yang serius membawa status urutan di samping kuncinya.

Mekanismenya kecil, dan mode kegagalannya mudah dikacaukan dengan kehilangan paket.

Ciphertext yang sah bukan ciphertext yang segar

Autentikasi menjawab satu pertanyaan: apakah byte ini datang tanpa perubahan dari pemegang kunci. Autentikasi tidak menjawab apakah ini pertama kali penerima melihatnya. Paket yang diputar ulang sepenuhnya lolos uji pertama, dan justru karena itu pemeriksaan integritas saja tidak dapat menghentikan pemutaran ulang dan karena itu protokol membutuhkan aturan kedua tentang penerimaan. Penerima yang hanya mengautentikasi tidak punya pertahanan terhadap penyerang yang memegang rekaman.

Aturan itu murah diterapkan dan murah dinyatakan: terima paket terlindungi tertentu satu kali, di bawah kunci tertentu. Segala hal lain di bidang ini mengikuti bagaimana implementasi melacak satu kali itu.

Membaca pembuangan karena pemutaran ulang sebagai kegagalan dekripsi mengirim Anda ke subsistem yang sepenuhnya salah.

Nomor urut dan sebuah jendela

IPsec ESP membawa nomor urut dan penerima menyimpan jendela geser nilai yang baru diterima, sedangkan spesifikasi ESP menjelaskan ukuran jendela bawaan dan opsi memperluasnya. WireGuard menempuh jalur berbeda dengan penghitung per kunci dan pemeriksaan eksplisit terhadapnya. Tak satu pun rancangan mengasumsikan paket datang berurutan, karena jaringan nyata menyusunnya ulang. Keduanya menoleransi penyusunan ulang, dan tak satu pun menoleransi pengulangan.

Jendelalah yang memungkinkan toleransi itu. Paket yang sedikit di belakang nilai tertinggi yang terlihat masih dapat diterima jika belum pernah diterima; paket yang jauh di belakang, atau yang slotnya sudah ditandai, dibuang. Perbesar jendela dan Anda menoleransi lebih banyak penyusunan ulang dengan biaya lebih banyak status per asosiasi.

Penghitung diagnostik menunjukkan kasus mana yang Anda alami. Pembuangan karena pemutaran ulang menaikkan penghitung tertentu, bukan kesalahan umum, dan membaca penghitung itu adalah pengamatan berguna pertama.

nstat -az | grep -i XfrmIn
ip -s xfrm state | head -n 30
wg show wg0 transfer

Status milik kunci, bukan milik host

Status penghitung terikat pada asosiasi keamanan atau epoch kunci, jadi penggantian kunci menciptakan konteks baru dan ruang urutannya sendiri. Membersihkan penghitung tanpa mengganti kunci, atau memakai ulang asosiasi setelah penyetelan ulang manual, melanggar asumsi yang menjadi landasan jendela penerima. Itulah sebabnya ada penggantian kunci yang digerakkan protokol, bukan tombol setel ulang yang terlihat oleh operator.

Ketika terowongan berperilaku buruk setelah intervensi manual, tanyakan apakah intervensi menyentuh status urutan. Konfigurasi yang tampak identik dapat berperilaku berbeda karena status yang diwarisinya bukan status yang diharapkannya.

Diagnosis penyebabnya sebelum menonaktifkan apa pun

Kehilangan, penyusunan ulang, lalu lintas ganda, dan cacat implementasi semuanya muncul sebagai pengiriman ulang, dan hanya satu di antaranya masalah pemutaran ulang. Menonaktifkan pemeriksaan untuk membungkam kebisingan menghapus properti yang Anda andalkan dan membuat penyebab aslinya lebih sulit ditemukan, karena sekarang pengiriman ulang tidak punya penjelasan sama sekali.

Kumpulkan bukti terbatas: pengenal asosiasi, nomor urut, dan penghitung, tanpa muatan. Itu cukup untuk membedakan duplikat dari kedatangan yang disusun ulang, dan itu tidak mengubah berkas diagnostik Anda menjadi salinan lalu lintas pengguna.

Apa yang tidak dijanjikan pemeriksaan

Perlindungan pemutaran ulang adalah properti pemrosesan paket di dalam satu protokol. Itu tidak berarti operator tidak menyimpan log, bahwa situs web tidak dapat mengenali akun, atau bahwa sesi bersifat anonim. Itu pertanyaan terpisah tentang sistem terpisah, dan rancangan anti-pemutaran-ulang yang kuat tidak menjawab satu pun darinya.

Perangkat lunak yang dipelihara dengan setelan yang didukung adalah kendali praktis yang tersedia bagi pengguna. Protokol menangani paketnya; segala hal lain tetap merupakan keputusan operasional.

Artikel terkait