Metode apa yang digunakan untuk menghitung bidang ID IP?
1
Saya sedang melakukan sedikit riset tentang metode menghasilkan bidang ID dari header IP.
Saya telah membaca sumber dan dokumen lain dan telah mengkonfirmasi bahwa Linux menghasilkan nomor acak untuk setiap peer (IP) yang berkomunikasi dengannya, dan kemudian ia menambah ID dengan 1 untuk paket IP berikutnya yang dikirimkannya ke rekan itu.
Pertanyaan saya adalah, apakah Anda tahu alasan / metode di balik perilaku ini? Mengapa melacak rekan-rekan kernel (dengan memori dan waktu CPU yang diperlukan untuk semua hal itu)?
Saya sudah memulai penelitian ini karena saya bermain sedikit dengan teknik pemindaian idle.
Ketika komputer Anda berbicara dengan komputer rekan (atau bahkan server "jarak jauh"), dan kemudian menerima respons dari komputer rekan atau jarak jauh itu, tidak cukup untuk mengetahui WHO dari mana respons itu berasal. Anda juga perlu tahu percakapan mana yang ditanggapi.
Seiring waktu, dan pada waktu tertentu, Anda mungkin memiliki beberapa percakapan terbuka antara komputer Anda dan komputer rekan lainnya (atau lebih dari satu komputer). Anda mungkin telah meminta berbagai informasi dalam campuran protokol yang sama atau berbeda. Beberapa permintaan mungkin membutuhkan waktu (lebih banyak) untuk merespons daripada yang lain. Respons terhadap permintaan tersebut tidak sinkron, dan tidak akan diterima dalam urutan yang sama atau terprediksi. Beberapa permintaan mungkin menerima beberapa respons.
Ini semua perlu dilacak sehingga ketika respons diterima, itu dapat diidentifikasi sebagai milik "percakapan" itu.
Saya tidak dapat menemukan referensi khusus untuk ini untuk kasus yang Anda gambarkan, tetapi mirip dengan bagaimana IMAP mengharapkan klien untuk memberikan "tag" yang biasanya ditambahkan dengan setiap "perintah" yang baru. Untuk ini, dan saya curiga dalam kasus yang Anda tanyakan, tidak ada persyaratan untuk "menambah" tag dengan setiap penggunaan (dan karenanya, tidak ada referensi yang mungkin ditemukan). Satu-satunya persyaratan adalah bahwa tag harus unik untuk setiap penggunaan. Dimulai dengan string (atau angka) unik, dan kemudian menambahkannya dengan setiap penggunaan memastikannya unik, tanpa harus secara khusus mengingat "tag" mana yang telah digunakan. ( IMAP RFC 3501: Bagian 2.2.1 ).
Saya percaya bahwa nomor port memberikan disambiguasi yang sedang Anda bicarakan.
Scott
@Scott - Anda mungkin memiliki beberapa percakapan ke peer / server yang sama terbuka pada saat yang sama, pada port yang sama. Misalnya, 2 (atau lebih) sesi SSH terbuka di server yang sama menggunakan nomor port yang sama (default-port 22), atau 2 (atau lebih) jendela / tab browser terbuka di server yang sama juga menggunakan nomor port yang sama (default -port 80), pada saat bersamaan.
Kevin Fegan
Ya, tetapi mereka akan selalu memiliki nomor port yang berbeda di sisi klien. (Anda tahu, angka-angka di atas 1000 yang ditetapkan oleh OS secara otomatis.)
Scott
0
Nomor urut (lihat RFC 6528 ) harus tidak dapat dilewati bagi seseorang yang tidak memiliki akses ke aliran data (beberapa serangan, terutama yang terkenal oleh Mitnick , didasarkan pada menebak dan meniru lawannya). Itu sebabnya Linux menggunakan angka acak yang benar di sini. Sistem operasi lain jauh lebih ceroboh, nmap memeriksa seberapa cermat mereka melakukannya (dan mungkin menyertakan basis data yang luas tentang bagaimana sistem melakukannya). Bahwa tidak ada sumber nomor acak yang dapat diandalkan adalah masalah khusus pada mesin seperti router WiFi.
(Ya, kerentanan semacam ini telah diketahui dan diperingatkan sejak versi TCP pertama; ya, dalam kemalasan mereka yang tak terbatas, banyak penulis sistem operasi / tumpukan jaringan hanya menggunakan yang diperbaiki, atau menambahnya secara teratur, atau sesuatu yang setara " cerdas ", sebagian besar demi" kinerja ".)
Terima kasih @vonbrand, saya sudah tahu alasan untuk menggunakan angka acak dengan bidang semacam ini (ID IP, nomor urut TCP ...), tapi terima kasih atas penjelasan dan referensi. Meski begitu, saya masih memiliki keraguan utama. Bahkan dengan Linux menggunakan nomor acak yang benar untuk paket pertama dalam "koneksi", mengapa Linux menggunakan angka yang dapat ditebak dari titik itu? Bukankah ini masalah keamanan?
Nomor urut (lihat RFC 6528 ) harus tidak dapat dilewati bagi seseorang yang tidak memiliki akses ke aliran data (beberapa serangan, terutama yang terkenal oleh Mitnick , didasarkan pada menebak dan meniru lawannya). Itu sebabnya Linux menggunakan angka acak yang benar di sini. Sistem operasi lain jauh lebih ceroboh, nmap memeriksa seberapa cermat mereka melakukannya (dan mungkin menyertakan basis data yang luas tentang bagaimana sistem melakukannya). Bahwa tidak ada sumber nomor acak yang dapat diandalkan adalah masalah khusus pada mesin seperti router WiFi.
(Ya, kerentanan semacam ini telah diketahui dan diperingatkan sejak versi TCP pertama; ya, dalam kemalasan mereka yang tak terbatas, banyak penulis sistem operasi / tumpukan jaringan hanya menggunakan yang diperbaiki, atau menambahnya secara teratur, atau sesuatu yang setara " cerdas ", sebagian besar demi" kinerja ".)
sumber