Pengantar
QUIC Packet Number Encryption merupakan bagian dari mekanisme header protection pada protokol QUIC. Fitur ini membantu menyamarkan Packet Number sehingga nilainya tidak terlihat secara langsung oleh pihak yang mengamati lalu lintas jaringan.
QUIC sendiri dibangun di atas UDP dan menggunakan TLS untuk keamanan koneksi. Dalam RFC 9001, IETF menjelaskan bahwa bagian tertentu dari header QUIC, termasuk Packet Number, dilindungi menggunakan key yang berbeda dari key untuk perlindungan payload (dikutip dari: RFC 9001 – Using TLS to Secure QUIC).
Apa Itu QUIC Packet Number?
Packet Number adalah nomor yang digunakan QUIC untuk mengidentifikasi urutan paket dalam sebuah packet number space.
Nomor tersebut memiliki fungsi penting dalam proses:
- Deteksi paket yang hilang.
- Pengurutan paket.
- Acknowledgment.
- Rekonstruksi nonce kriptografi.
- Pencegahan pemrosesan paket duplikat.
Menurut RFC 9000, Packet Number QUIC dapat berada dalam rentang 0 hingga 2^62-1. Namun, nilai yang dikirim pada header hanya menggunakan 1 hingga 4 byte untuk mengurangi ukuran paket (dikutip dari: RFC 9000 – QUIC Transport Protocol).
baca juga : Type Confusion Vulnerability: Memahami Celah yang Bisa Memicu Memory Corruption
Mengapa Packet Number Perlu Dilindungi?
Jika Packet Number dikirim tanpa perlindungan, pengamat jaringan dapat memperoleh informasi tambahan mengenai urutan paket yang sedang dikirim.
QUIC menggunakan header protection untuk menyamarkan bagian tertentu dari header. Perlindungan ini tidak dimaksudkan untuk mengenkripsi seluruh header. Tujuannya adalah menyembunyikan informasi tertentu yang tidak perlu diketahui oleh pihak di luar endpoint.
Dengan pendekatan tersebut, QUIC dapat mempertahankan informasi yang diperlukan protokol tanpa mengekspos Packet Number secara langsung.
Bagaimana Header Protection Bekerja?
1. Payload Dilindungi
Pertama, payload QUIC diproses menggunakan AEAD (Authenticated Encryption with Associated Data). Key yang digunakan berasal dari secret yang diperoleh melalui proses TLS.
RFC 9001 menjelaskan bahwa QUIC menggunakan key yang berasal dari TLS untuk memberikan perlindungan terhadap paket (dikutip dari: RFC 9001 – Packet Protection).
2. Ciphertext Diambil sebagai Sample
Setelah payload dilindungi, sebagian ciphertext digunakan sebagai sample.
Sample tersebut menjadi input untuk algoritma header protection.
3. Mask Dibuat
QUIC menggunakan header protection key untuk menghasilkan sebuah mask.
Algoritmanya bergantung pada cipher suite yang digunakan. QUIC mendefinisikan mekanisme berbasis AES dan ChaCha20.
4. Packet Number Di-XOR
Mask tersebut kemudian digunakan untuk melakukan operasi XOR terhadap Packet Number.
Akibatnya, nilai Packet Number yang berada di jaringan tidak menunjukkan nilai aslinya secara langsung.
Apa Saja yang Dilindungi?
Header protection tidak mengenkripsi seluruh header QUIC.
Pada long header, bagian yang dilindungi mencakup beberapa bit pada byte pertama serta Packet Number. Sementara itu, pada short header, perlindungan juga mencakup Key Phase bit dan Packet Number (dikutip dari: RFC 9001 – Header Protection).
Beberapa informasi lain tetap terlihat karena dibutuhkan untuk pemrosesan paket di jaringan.
Packet Number Bukan Enkripsi Payload
Hal penting yang perlu dipahami adalah Packet Number Encryption bukan pengganti enkripsi data.
Payload QUIC dilindungi menggunakan mekanisme packet protection berbasis AEAD. Sementara itu, header protection digunakan untuk menyamarkan bagian tertentu dari header.
Dengan demikian, kedua mekanisme memiliki fungsi berbeda:
| Mekanisme | Fungsi |
|---|---|
| Packet Protection | Melindungi payload |
| Header Protection | Menyamarkan bagian tertentu dari header |
| Packet Number Protection | Menyamarkan Packet Number |
| TLS 1.3 | Menyediakan key dan keamanan handshake |
Pendekatan berlapis tersebut menjadi bagian penting dari desain keamanan QUIC.
Hubungan Packet Number dengan Nonce
Packet Number memiliki peran kriptografi yang penting.
Dalam QUIC, Packet Number digunakan bersama packet protection IV untuk membentuk nonce AEAD. RFC 9001 menjelaskan bahwa Packet Number yang telah direkonstruksi digabungkan dengan IV untuk menghasilkan nonce yang digunakan dalam proses perlindungan paket (dikutip dari: RFC 9001 – Packet Protection Keys).

Karena itu, Packet Number tidak hanya berfungsi untuk mengurutkan paket. Nilainya juga berkaitan langsung dengan proses enkripsi.
baca juga : gRPC Security Best Practice: Cara Mengamankan Komunikasi Microservices Modern
Bagaimana Receiver Membaca Packet Number?
Receiver menerima Packet Number yang masih terlindungi.
Pertama, receiver menentukan panjang Packet Number dari bagian header yang telah diproses. Selanjutnya, header protection dihapus menggunakan key yang sesuai.
Setelah itu, receiver dapat merekonstruksi Packet Number penuh berdasarkan informasi yang tersedia dan nomor paket terbesar yang telah diterima.
Proses ini memungkinkan QUIC menggunakan Packet Number yang relatif pendek di jaringan tanpa kehilangan konteks urutan paket.
Manfaat Header Protection
Mengurangi Informasi yang Terlihat
Header protection membuat pengamat pasif tidak dapat langsung membaca beberapa field penting dari header.
Memperkuat Privasi Protokol
Tidak semua informasi transport perlu tersedia secara terbuka. Karena itu, QUIC membatasi bagian header yang dapat diamati.
Mendukung Keamanan Paket
Header protection bekerja bersama packet protection. Kombinasi keduanya membuat paket QUIC lebih sulit dimanipulasi atau dianalisis hanya berdasarkan informasi header.
Apakah Packet Number Benar-Benar Rahasia?
Tidak tepat jika disebut bahwa Packet Number sepenuhnya rahasia.
Tujuan header protection adalah memberikan confidentiality terhadap field tertentu dari header, bukan membuat seluruh metadata jaringan menjadi tidak terlihat.
Connection ID, misalnya, tetap digunakan dalam proses routing dan dapat terlihat pada kondisi tertentu. Selain itu, ukuran paket, waktu pengiriman, dan pola traffic masih dapat diamati oleh pihak yang berada di jalur komunikasi.
Karena itu, header protection meningkatkan privasi protokol, tetapi tidak menghilangkan seluruh kemungkinan traffic analysis.
QUIC Packet Number Encryption vs TCP Sequence Number
QUIC dan TCP sama-sama memiliki mekanisme untuk melacak urutan data. Namun, pendekatan keduanya berbeda.
TCP menggunakan Sequence Number yang berada pada header TCP. Sementara itu, QUIC menggunakan Packet Number dalam mekanisme transport yang sekaligus terintegrasi dengan perlindungan kriptografi.
QUIC juga memiliki beberapa packet number space, yaitu Initial, Handshake, dan Application Data. RFC 9000 menjelaskan bahwa pemisahan tersebut membantu memberikan pemisahan kriptografi antar jenis paket (dikutip dari: RFC 9000 – Packet Number Spaces).
Mengapa Teknologi Ini Penting?
QUIC dirancang untuk jaringan modern yang membutuhkan koneksi cepat, aman, dan dapat beradaptasi dengan perubahan jaringan.
Perlindungan Packet Number menjadi salah satu bagian kecil tetapi penting dari desain tersebut. Dengan menggabungkan TLS 1.3, AEAD, packet protection, dan header protection, QUIC dapat melindungi data sekaligus mengurangi informasi sensitif yang terlihat pada header.
Teknologi ini juga menjadi salah satu alasan QUIC memiliki desain keamanan yang berbeda dari protokol transport tradisional.
Kesimpulan
QUIC Packet Number Encryption merupakan bagian dari mekanisme header protection yang digunakan QUIC untuk menyamarkan Packet Number pada header.
Mekanisme ini menggunakan header protection key dan sample dari ciphertext untuk menghasilkan mask. Mask tersebut kemudian digunakan untuk melindungi Packet Number tanpa mengenkripsi seluruh header.
Selain itu, Packet Number memiliki fungsi penting dalam loss detection, packet ordering, duplicate detection, dan pembentukan nonce AEAD.
Dengan demikian, perlindungan Packet Number bukan sekadar fitur privasi. Mekanisme tersebut merupakan bagian dari desain keamanan QUIC yang bekerja bersama TLS 1.3 dan packet protection.









