วิธีอ่านการแลกเปลี่ยน IKE_SA_INIT ใหม่ในไฟล์แคปเจอร์
การเจรจา IKEv2 ใหม่อ่านได้ก่อนที่กุญแจจะเกิดขึ้น บันทึกความพยายาม อ่านส่วนหัว จับคู่คำตอบ และแยก IKE จาก ESP บนพอร์ต 4500
เริ่มจากแคปเจอร์ที่เริ่มก่อนแพ็กเก็ตแรกของความพยายาม ไม่อย่างนั้นคุณจะอ่านกลางบทสนทนา การเจรจาที่กำลังทำงานอยู่แล้วจะแสดงการแลกเปลี่ยนที่เข้ารหัสและการต่ออายุคีย์ และทั้งสองอย่างไม่เหมือนช่วงเปิด การเปิดคือส่วนที่ถอดรหัสได้โดยไม่ต้องมีคีย์ จึงตอบคำถามเรื่องการเข้าถึงได้ดีนัก การตรวจสี่ข้อตามลำดับจะพาคุณจากแคปเจอร์ใหม่ไปสู่ข้อสรุปที่ป้องกันได้ว่าฝ่ายใดหยุดพูด
ข้อแรก ยืนยันว่าแคปเจอร์เริ่มจากต้น
แคปเจอร์ที่เริ่มหลังอุโมงค์ขึ้นจะมีการไหลของข้อมูลที่ห่อหุ้มและ keepalive เป็นระยะ และทั้งสองอย่างถูกเข้ารหัสหรือเกือบว่าง เริ่มไคลเอนต์ใหม่และบันทึกความพยายามนั้นเอง หรือจงใจกระตุ้นการเชื่อมต่อใหม่ขณะที่แคปเจอร์ทำงาน หากคุณสร้างความพยายามใหม่ไม่ได้ ให้เขียนไว้ในบันทึกของคุณ เพราะการถอดรหัสใดก็ไม่สามารถกู้ช่วงเปิดที่คุณไม่เคยบันทึกได้
จำกัดแคปเจอร์ไว้ที่ปลายทั้งสองและ UDP 500 กับ 4500 เพื่อให้ไฟล์เล็กพอที่จะอ่าน บนโฮสต์ที่ทำงานหนัก แคปเจอร์ที่ไม่กรองจะฝังการเจรจาไว้ใต้ทราฟฟิกที่ไม่เกี่ยวข้อง
tcpdump -i any -n -s 0 -w fresh-ike.pcap 'udp port 500 or udp port 4500'เก็บไฟล์ไว้เมื่อความพยายามน่าสนใจ เพราะแคปเจอร์เดียวกันตอบคำถามสองข้อถัดไป คือการแลกเปลี่ยนคืออะไร และมีอะไรกลับมาหรือไม่ ติดป้ายด้วยเวลาเริ่มและคู่ปลายที่คุณกรอง บันทึกที่ไม่มีสองข้อเท็จจริงนี้จะไร้ประโยชน์ในอีกหนึ่งสัปดาห์ เมื่อที่อยู่เปลี่ยนไปและไม่มีใครจำได้ว่าบันทึกความพยายามใดไว้
ข้อสอง อ่านส่วนหัวก่อนเพย์โหลด
ส่วนหัว IKE บรรจุดัชนีพารามิเตอร์ความปลอดภัย ชนิดการแลกเปลี่ยน และ ID ข้อความ และในการเจรจาใหม่ ค่าเหล่านี้มีเอกลักษณ์ ผู้เริ่มสร้าง SPI ที่ไม่เป็นศูนย์ คำขอเริ่มต้นบรรจุ SPI ของผู้ตอบที่เป็นศูนย์เพราะยังไม่เห็นคำตอบ ชนิดการแลกเปลี่ยนคือ IKE_SA_INIT และ ID ข้อความเป็นศูนย์ สิ่งอื่นทั้งหมดเป็นของการเจรจาเดียวกันในระยะหลังหรือความพยายามอื่นโดยสิ้นเชิง
เพย์โหลดข้อเสนอ การแลกเปลี่ยนคีย์ และ nonce ในการแลกเปลี่ยนแรกนี้อ่านได้แบบเปิดเผย การอ่านได้ไม่ได้หมายถึงผ่านการรับรอง และ ณ จุดนี้ไม่มีฝ่ายใดพิสูจน์ตัวตนได้
ค่าส่วนตัวของ Diffie-Hellman ไม่เคยข้ามสาย จึงทำให้แคปเจอร์ไม่ช่วยให้คุณได้คีย์เซสชัน การรับรองตัวตนเกิดขึ้นในการแลกเปลี่ยนถัดไป ซึ่งได้รับการปกป้องด้วยสิ่งที่การแลกเปลี่ยนแรกตกลงกันไว้ หากมีคนถามว่าฝ่ายหนึ่งเป็นของจริงหรือไม่ การแลกเปลี่ยนนี้ตอบคำถามนั้นไม่ได้ ทำได้เพียงแสดงว่าทั้งสองฝ่ายตกลงข้อเสนอและสร้างความลับร่วมที่ไฟล์ไม่มี
ข้อสาม จับคู่คำขอกับคำตอบ
จับคู่ด้วยคู่ SPI ชนิดการแลกเปลี่ยน และ ID ข้อความ แล้วตรวจธงคำตอบ การส่งซ้ำจะวน ID ข้อความเดิมและไม่ใช่ความพยายามเข้าสู่ระบบครั้งที่สอง การนับแพ็กเก็ตแทนการแลกเปลี่ยนคือทางที่ทำให้การเจรจาที่สมบูรณ์ดีกลายเป็นวงวนผี
คำตอบอาจเป็นการปฏิเสธได้ เช่น คำขอคุกกี้ การแจ้งเตือนกลุ่มที่ยอมรับไม่ได้ หรือข้อผิดพลาดเกี่ยวกับข้อเสนอ สิ่งเหล่านี้เป็นคำตอบที่ชอบด้วยกฎหมาย และหมายความว่าเส้นทางทำงานแต่นโยบายไม่ทำงาน ถอดรหัสการแจ้งเตือนแทนที่จะถือทุกคำตอบเป็นความสำเร็จ เมื่อการแจ้งเตือนระบุกลุ่มหรือข้อเสนอ การแก้ไขอยู่ที่ฝั่งการกำหนดค่า ไม่ใช่ที่ไฟร์วอลล์
ทิศทางก็สำคัญ คำขอที่ไม่มีการตอบกลับและคำตอบที่ไม่เคยไปถึงไคลเอนต์เป็นข้อบกพร่องที่ต่างกัน และเฉพาะอย่างหลังเท่านั้นที่ดูเหมือนหมดเวลาในฝั่งไคลเอนต์
ข้อสี่ แยก IKE ออกจากทุกอย่างอื่นบน 4500
พอร์ต 4500 บรรจุสามสิ่งที่มีลักษณะคล้ายกันในมุมมองสรุป คือ IKE ที่อยู่หลังเครื่องหมาย non-ESP ศูนย์สี่ไบต์, ESP ที่ห่อหุ้มซึ่งตำแหน่งเครื่องหมายมี SPI ที่ไม่เป็นศูนย์ และ keepalive สั้น เครื่องหมายนั้นคือสิ่งที่แยก IKE ออกจาก ESP ที่ห่อหุ้ม ดังนั้นอ่านไบต์เหล่านั้นก่อนจะเรียกทราฟฟิกว่า IKE ป้ายแคปเจอร์ที่อ่านว่า 4500 คือหมายเลขพอร์ต ไม่ใช่โพรโทคอล
ESP ที่ห่อหุ้มเป็นเพย์โหลดที่เข้ารหัสซึ่งตีความไม่ได้หากไม่มีคีย์ และการมีอยู่ของมันอาจเป็นสัญญาณของอุโมงค์ที่ทำงานอยู่มากกว่าข้อบกพร่อง
เฝ้าดูทั้งสองพอร์ตสำหรับความพยายามเดียวกัน เพราะ IKE อาจย้ายไป 4500 หลังตรวจพบ NAT แม้จะเปิดบน 500 ร่องรอยที่กรองเฉพาะ 500 จะดูเงียบในจังหวะที่การเจรจาสำเร็จและย้ายที่พอดี ขยายตัวกรองและอ่านหน้าต่างเวลาเดิมอีกครั้งก่อนสรุปสิ่งใดจากการไม่มีอยู่
ความเงียบ ณ จุดสังเกตหนึ่งจุดหมายถึงอะไร
การไม่มีการตอบกลับที่ไคลเอนต์พิสูจน์เพียงสิ่งที่จุดนั้นสังเกตเห็น การกรอง การกำหนดเส้นทาง ที่อยู่ปลายทางผิด บริการที่หยุดทำงาน และโพรโทคอลไม่ตรงกัน ล้วนก่อให้เกิดร่องรอยว่างเปล่าแบบเดียวกัน
ICMP unreachable ที่เกี่ยวข้องเพิ่มหลักฐาน แต่ให้อ่านแพ็กเก็ตที่อ้างอิงภายในและบันทึกที่อยู่ของอุปกรณ์ที่ส่งมัน
การปฏิเสธจากเราเตอร์เป็นเหตุการณ์ที่ต่างจากข้อผิดพลาดที่ผ่านการรับรองซึ่งฝ่ายตรงข้ามส่งกลับ และเฉพาะอย่างหลังเท่านั้นที่พิสูจน์ว่าบริการยังมีชีวิต เชื่อมโยงความพยายามเดียวกันกับบันทึกของเซิร์ฟเวอร์หรือการสังเกตที่ได้รับอนุมัติ เพื่อรู้ว่าคำขอมาถึงและคำตอบออกไปหรือไม่ เก็บแคปเจอร์ให้จำกัดและเป็นส่วนตัว เพราะฟิลด์แฮนด์เชกที่อ่านได้ไม่ได้ทำให้ส่วนที่เหลือของไฟล์ปลอดภัย ผลลัพธ์ที่คุ้มค่าคือคำขอและคำตอบที่จับคู่ได้หนึ่งคู่ หรือช่องว่างที่บันทึกไว้หนึ่งช่องพร้อมจุดสังเกตที่ระบุชื่อ