AH atau ESP? Putuskan dari apa yang harus dilindungi paket
AH mengautentikasi lebih banyak bagian paket dan tidak mengenkripsi apa pun; ESP dapat mengenkripsi dan mengautentikasi. Pilih berdasarkan bidang yang harus dilindungi, lalu sepakati modenya.
Dua usulan IPsec dapat menyebut algoritme integritas berbasis SHA yang sama namun meminta protokol perlindungan berbeda; AH dan ESP bukan dua ejaan dari satu pengaturan autentikasi. Baca dulu protokolnya, lalu algoritmenya, lalu modenya, dan sebagian besar ambiguitas hilang. AH mengautentikasi paket termasuk bidang header IP yang tetap tidak berubah selama perjalanan, sedangkan ESP mengautentikasi dan mengenkripsi apa yang dienkapsulasinya serta membiarkan header luar. Perbedaan itulah yang menentukan lebih banyak penerapan daripada nama hash mana pun.
Apa yang dicakup AH dan tidak oleh ESP
AH menyediakan integritas, autentikasi asal data, dan layanan anti-pemutaran ulang yang didefinisikannya, dan sama sekali tidak memberikan kerahasiaan. Cakupannya meliputi data lapisan atas dan bidang header IP yang dianggap tetap oleh aturannya, tepat bagian yang ditinggalkan ESP dalam mode transport. Bila persyaratan menyatakan header IP itu sendiri harus diautentikasi, AH adalah protokol yang menjawabnya.
Cakupan itu juga sebabnya AH rapuh di lapangan. Bidang yang dapat berubah seperti TTL, checksum header, dan beberapa opsi tidak dapat diautentikasi karena router dapat menulisnya ulang, sehingga protokol menolkan bidang itu sebelum menghitung pemeriksaan. Jadi apa pun yang menulis ulang alamat merusak perhitungan, bukan hanya kebijakan.
NAT mengubah pilihan menjadi batasan
Penerjemahan alamat menulis ulang sumber atau tujuan pada header IP yang baru saja diautentikasi AH, sehingga pemeriksaan integritas gagal di ujung jauh, dan gagal sebagai kesalahan protokol, bukan pesan yang bisa dibaca. ESP tidak mengautentikasi header luar, itulah sebabnya ESP dengan lintasan NAT bekerja sedangkan AH di belakang NAT tidak. Terowongan yang kedua sisinya berada di belakang router biasa adalah tempat hal ini muncul pertama. Karena itu pertanyaan pertama bukanlah protokol mana yang lebih kuat, melainkan apakah ada penerjemah di antara kedua sisi.
Bila ada, AH tersingkir, dan pembicaraan beralih ke ESP serta pilihan algoritmenya. Ini batasan, bukan preferensi, karena itu tempatnya di awal keputusan, bukan di akhir.
Mode melipatgandakan pertanyaan
ESP dalam mode transport melindungi muatan lapisan atas dan membiarkan header IP, sedangkan dalam mode terowongan ia mengenkapsulasi seluruh paket dalam, termasuk header IP dalam, dan melindunginya. AH memiliki dua mode yang sama, jadi AH atau ESP sebenarnya empat kombinasi sebelum algoritme apa pun dipilih.
Algoritme ESP mode gabungan kemudian menyelesaikan integritas tanpa protokol kedua. AES-GCM dan ChaCha20-Poly1305 mengautentikasi dan mengenkripsi dalam satu konstruksi, jadi menambahkan AH di atasnya tidak membeli apa pun tetapi memakan header lain dan negosiasi lain. Arsitekturnya mengizinkan AH dan ESP bersama, dan pertanyaan praktisnya adalah apakah gateway dan rilis Anda mendukung kombinasi itu dan apakah seseorang dapat merawatnya setelahnya.
Pengganti jujur untuk AH saja
Varian ESP integritas saja mempertahankan algoritme dan melepaskan klaim enkripsi alih-alih memalsukannya, dan ia melewati NAT. Bila rancangan lama memakai AH karena membutuhkan autentikasi tanpa kerahasiaan, varian itulah terjemahan langsungnya, bukan terowongan terenkripsi dengan catatan tempelan.
Melihat ESP dalam usulan juga bukan bukti enkripsi. Bacalah algoritme enkripsinya: entri NULL berarti hanya integritas, dan entri mode gabungan berarti keduanya.
Putuskan dalam tiga pertanyaan
Tanyakan apakah kerahasiaan diperlukan, apakah ada penerjemah di jalur, dan bidang header mana yang harus diautentikasi. Ketiga jawaban itu menunjuk satu protokol dan satu mode, dan menuliskannya lebih cepat daripada membaca RFC lagi nanti.
Lalu verifikasi apa yang diterima, bukan apa yang diusulkan. ip xfrm state memperlihatkan protokol, mode, dan algoritme asosiasi yang terpasang, dan ketidakcocokan tidak memasang apa pun, yang merupakan kegagalan lebih bersih daripada terowongan yang naik tanpa perlindungan yang dimaksud.
Pisahkan kegagalan autentikasi, cakupan selektor, dan kesalahan perutean dari pilihan ini. Ketiganya memberi gejala berbeda, dan menyalahkan protokol untuk masalah selektor adalah cara andal menghabiskan sehari mengganti hash tanpa alasan.