การดักจับและเล่นสัญญาณซ้ำ
ดักรับและเล่นการส่งสัญญาณ RF ซ้ำ
การดักจับและเล่นสัญญาณซ้ำ เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
แนวคิดการโจมตีแบบเล่นซ้ำ
การโจมตีแบบเล่นซ้ำ เป็นจุดอ่อนของ RF ที่เรียบง่ายและพบได้บ่อยที่สุด นั่นคือจับการส่งสัญญาณที่ถูกต้องไว้ แล้วส่งซ้ำภายหลังเพื่อให้เกิดผลเช่นเดิม ไม่จำเป็นต้องถอดรหัส หากเครื่องรับยอมรับสัญญาณเดิมซ้ำสองครั้ง
วิธีนี้ใช้ได้กับอุปกรณ์ใดก็ตามที่ส่งคำสั่งแบบคงที่:
- อุปกรณ์เปิดประตูโรงรถราคาถูก
- รีโมตกุญแจรถพื้นฐานที่ไม่มีรหัสหมุนเวียน
- กริ่งประตูไร้สาย เซนเซอร์สัญญาณเตือน และเต้ารับควบคุมระยะไกล
- รีโมตควบคุมอุตสาหกรรมบางชนิดสำหรับเครนและประตูรั้ว
หากสัญญาณที่จับไว้ยังใช้ได้หลังจากผ่านไปหลายนาทีหรือหลายวัน ระบบนั้นก็มีช่องโหว่จากการออกแบบ
การค้นหาความถี่เป้าหมาย
ก่อนจับสัญญาณ ให้ระบุว่าอุปกรณ์ส่งสัญญาณที่ใด รีโมตสำหรับผู้บริโภคส่วนใหญ่อยู่ใน ย่าน ISM: 315 MHz (อเมริกาเหนือ), 433.92 MHz (ยุโรปและพื้นที่ส่วนใหญ่ของโลก), 868 MHz และ 915 MHz
ปรับจูน RTL-SDR ให้กวาดผ่านย่านความถี่เหล่านี้ กดรีโมต แล้วดู กราฟน้ำตกเพื่อค้นหาการพุ่งขึ้นของพลังงาน รหัส FCC ID ที่พิมพ์อยู่บนอุปกรณ์มักเปิดเผยความถี่ใช้งานที่แน่นอนได้จากเอกสารยื่นต่อหน่วยงานกำกับดูแลที่เปิดเผยต่อสาธารณะ
# Browse the 433 MHz band live and watch the waterfall
gqrx
# Or auto-identify known devices on the air
rtl_433 -f 433.92M -Aการจับสัญญาณส่ง
เมื่อทราบความถี่แล้ว ให้บันทึก ตัวอย่างข้อมูล I/Q ดิบขณะที่อุปกรณ์กำลังส่งสัญญาณ จับสัญญาณที่ชัดเจนและแยกออกจากสัญญาณอื่น เพื่อให้วิเคราะห์และเล่นซ้ำได้ง่าย
RTL-SDR ที่รับได้อย่างเดียวก็เพียงพอสำหรับการจับสัญญาณ แต่การส่งสัญญาณภายหลังต้องใช้ HackRF หรืออุปกรณ์ที่คล้ายกัน จดบันทึกความถี่กึ่งกลางและอัตราการสุ่มตัวอย่างที่ใช้ให้ถูกต้องเสมอ เพราะคุณต้องเล่นซ้ำด้วยพารามิเตอร์ที่ตรงกัน
# Capture raw I/Q at 433.92 MHz, 2 Msps
rtl_sdr -f 433.92M -s 2048000 -n 4096000 remote.iq
# Capture with HackRF for later transmit on the same hardware
hackrf_transfer -r remote.iq -f 433920000 -s 2000000การเล่นซ้ำด้วยเครื่องส่ง
ในการเล่นซ้ำ ให้ส่งไฟล์ I/Q ที่จับไว้กลับออกไปด้วยความถี่และอัตราการสุ่มตัวอย่างเดิม โดยใช้ฮาร์ดแวร์ที่สามารถส่งสัญญาณได้ เช่น HackRF
เนื่องจากเครื่องรับจะเปรียบเทียบกับรูปคลื่นดิบ การส่งซ้ำที่เหมือนเดิมทุกประการจึงทำให้คำสั่งเดิมเกิดผลอีกครั้ง ให้เล่นซ้ำภายในกล่องหุ้มป้องกันสัญญาณเสมอ เว้นแต่คุณจะได้รับอนุญาตอย่างชัดแจ้งและการอนุมัติตามกฎหมายให้ส่งสัญญาณ
# Replay the captured file with HackRF
hackrf_transfer -t remote.iq -f 433920000 -s 2000000 -x 40
# -x sets TX gain; keep it minimal and use proper antennasการถอดรหัสแทนการเล่นซ้ำแบบไม่วิเคราะห์
การเล่นซ้ำแบบไม่วิเคราะห์ใช้ได้ผล แต่การถอดรหัสสัญญาณจะทำให้คุณเข้าใจมากขึ้นและรองรับการโจมตีที่ชาญฉลาดยิ่งขึ้น เครื่องมืออย่าง Universal Radio Hacker (URH) ช่วยให้คุณดีมอดูเลตสัญญาณ พึงคืนลำดับบิต และระบุโครงสร้างได้
- ค้นหา คำนำสัญญาณ และ คำซิงก์
- ระบุ อัตราสัญลักษณ์และการเข้ารหัส (มักเป็น Manchester หรือ PWM)
- ค้นหาข้อมูลคำสั่งส่วนที่คงที่
เมื่อถอดรหัสแล้ว คุณสามารถสร้างการส่งสัญญาณใหม่ ป้อนค่าผิดรูปแบบลงในช่องข้อมูล หรือยืนยันได้ว่าส่วนใดของข้อความเปลี่ยนแปลงระหว่างการกดแต่ละครั้ง
รหัสหมุนเวียนและเหตุใดการเล่นซ้ำจึงล้มเหลว
รีโมตกุญแจรถสมัยใหม่ป้องกันการเล่นซ้ำแบบพื้นฐานด้วย รหัสหมุนเวียน (รหัสเปลี่ยนความถี่) การกดแต่ละครั้งจะใช้รหัสใหม่ที่คำนวณจากความลับร่วมและตัวนับที่เพิ่มขึ้น
- เครื่องส่งและเครื่องรับจะรักษาการซิงโครไนซ์ผ่านตัวนับ
- รหัสที่จับไว้จะใช้ไม่ได้ทันทีที่เครื่องรับเลื่อนตัวนับผ่านรหัสดังกล่าว
- การเล่นซ้ำรหัสเก่าจะถูกปฏิเสธโดยตรง
ระบบอย่าง KeeLoq ทำให้แนวทางนี้แพร่หลาย รหัสหมุนเวียนยกระดับความปลอดภัยขึ้นอย่างมาก แต่ดังที่ฉากถัดไปจะแสดงให้เห็น ข้อบกพร่องในการนำไปใช้งานยังคงสร้างช่องโหว่ได้
การเอาชนะรหัสหมุนเวียน: RollJam
รหัสหมุนเวียนยังคงพ่ายแพ้ต่อเทคนิค การจับสัญญาณและรบกวน ซึ่งมีการสาธิตที่โด่งดังในชื่อ RollJam:
- ผู้โจมตี รบกวนเครื่องรับ ขณะเดียวกันก็ จับสัญญาณการกดรีโมตครั้งแรกของผู้เสียหายบนย่านความถี่แคบที่เครื่องรบกวนไม่ครอบคลุม
- รีโมตทำงานไม่สำเร็จ ผู้ใช้จึงกดอีกครั้ง ผู้โจมตีจับรหัสที่สองไว้ แล้วเล่นซ้ำรหัสแรก
- ขณะนี้ผู้โจมตีมีรหัสอนาคตหนึ่งรหัสที่ยังไม่ได้ใช้และยังคงใช้ได้
เนื่องจากเครื่องรับไม่เคยเห็นรหัสแรก รหัสดังกล่าวจึงยังใช้ได้ วิธีนี้อาศัยช่วงเผื่อการยอมรับของโพรโทคอล แทนที่จะเจาะการเข้ารหัสลับ
การใช้ช่องโหว่จากการปรับการซิงค์ตัวนับรหัสหมุนเวียน
เครื่องรับรหัสหมุนเวียนบางรุ่นยอมรับรหัสภายใน ช่วงเวลาปรับการซิงค์ใหม่ เพื่อรองรับการกดปุ่มโดยไม่ตั้งใจขณะอยู่นอกระยะ หากช่วงนี้กว้างเกินไปหรือกำหนดขอบเขตไม่ดี ผู้โจมตีที่จับรหัสต่อเนื่องไว้หลายรหัสอาจคาดเดาหรือบังคับให้เกิดการปรับการซิงค์ใหม่ได้
การนำ KeeLoq ไปใช้งานในรุ่นเก่ายังมีปัญหาการกู้คืนคีย์ของผู้ผลิตด้วย การดึงคีย์หลักจากรีโมตเพียงเครื่องเดียวทำให้สามารถโคลนผลิตภัณฑ์ทั้งสายได้ สิ่งเหล่านี้เป็นข้อบกพร่องในการนำไปใช้งาน ไม่ใช่ความล้มเหลวของแนวคิดรหัสหมุนเวียนเอง
การรบกวนสัญญาณและการทำให้บริการใช้งานไม่ได้
การรบกวนสัญญาณทำให้ย่านความถี่เต็มไปด้วยสัญญาณรบกวน จนเครื่องรับที่ถูกต้องไม่สามารถได้ยินการส่งสัญญาณที่ถูกต้องได้ นี่เป็นองค์ประกอบพื้นฐานของ RollJam และเป็นภัยคุกคามแบบทำให้บริการใช้งานไม่ได้ในตัวเอง
- เซนเซอร์สัญญาณเตือนไร้สายอาจถูกรบกวนจนเหตุการณ์เปิดประตูไม่ไปถึงแผงควบคุม
- ระบบเข้าออกโดยไม่ใช้กุญแจและรีโมตควบคุมอาจถูกตัดสัญญาณ
การรบกวนสัญญาณเป็นสิ่งผิดกฎหมายในแทบทุกเขตอำนาจศาล แม้จะทำเพื่อการทดสอบก็ตาม ให้สาธิตเฉพาะในห้องปฏิบัติการที่มีการป้องกันสัญญาณและได้รับอนุญาตอย่างชัดแจ้งเท่านั้น ประเด็นสำคัญของเรื่องนี้คือการเข้าใจว่าผู้โจมตีผสานการรบกวนสัญญาณเข้ากับการจับสัญญาณอย่างไร และเหตุใดระบบจึงต้องตรวจจับการสูญเสียสัญญาณ
สรุปเครื่องมือ
ขั้นตอนการจับสัญญาณและเล่นซ้ำที่ใช้งานได้จริงใช้ชุดเครื่องมือขนาดกะทัดรัด:
- RTL-SDR — สำรวจและจับสัญญาณ (รับอย่างเดียว)
- HackRF One — จับและส่งสัญญาณสำหรับการทดสอบการเล่นซ้ำ
- URH — ดีมอดูเลต ถอดรหัส และสร้างสัญญาณ
- rtl_433 — ระบุอุปกรณ์ที่รู้จักได้อย่างรวดเร็ว
- Flipper Zero — สะดวกสำหรับการจับและเล่นซ้ำสัญญาณย่านความถี่ต่ำกว่า 1 GHz แบบง่ายในภาคสนาม
Flipper เป็นที่นิยมสำหรับสาธิตการเล่นซ้ำกับรีโมตที่ใช้รหัสคงที่ แต่จะถูกป้องกันโดยรหัสหมุนเวียนที่นำไปใช้อย่างถูกต้อง ซึ่งเป็นประเด็นสำคัญที่คุณต้องการให้ลูกค้าเข้าใจ
การป้องกันการโจมตีแบบเล่นซ้ำ
คำแนะนำจากการประเมินการเล่นซ้ำมีดังนี้:
- เปลี่ยน รหัสคงที่เป็นรหัสหมุนเวียนที่ผ่านการยืนยันตัวตน หรือการยืนยันตัวตนแบบท้าทาย-ตอบกลับ
- ใช้ ช่วงเวลาปรับการซิงค์ใหม่ที่แคบและมีขอบเขตชัดเจน รวมถึงคีย์เข้ารหัสเฉพาะสำหรับอุปกรณ์แต่ละเครื่อง และอย่าใช้คีย์หลักร่วมกัน
- เพิ่ม เวลาประทับหรือค่าที่ใช้ครั้งเดียว เพื่อให้คำสั่งแต่ละรายการใช้ได้เพียงครั้งเดียวและใช้ได้เพียงช่วงเวลาสั้น ๆ
- ใช้ การตรวจจับการรบกวนสัญญาณ โดยแผงควบคุมสัญญาณเตือนควรถือว่าการสูญเสียสัญญาณเซนเซอร์อย่างกะทันหันเป็นเหตุการณ์การดัดแปลง
- เลือกใช้ โพรโทคอลแบบสองทิศทาง ซึ่งเครื่องรับยืนยันคำสั่งแต่ละรายการ
หลักการสำคัญคือ คำสั่งที่สามารถบันทึกและเล่นซ้ำให้เหมือนเดิมทุกประการนั้นไม่ปลอดภัย การดำเนินการที่ได้รับอนุญาตทุกครั้งต้องมีเอกลักษณ์ทางการเข้ารหัส
ตรวจสอบความเข้าใจ
โปรดทดสอบความเข้าใจเกี่ยวกับการโจมตีแบบเล่นซ้ำต่อรหัสหมุนเวียน
ทบทวน
ขณะนี้คุณสามารถจับ วิเคราะห์ และเล่นสัญญาณ RF ซ้ำ รวมทั้งให้เหตุผลเกี่ยวกับวิธีป้องกันสัญญาณเหล่านี้ได้แล้ว:
- การโจมตีแบบเล่นซ้ำ จะส่งคำสั่งแบบคงที่ที่จับไว้แล้วซ้ำ และใช้ได้ผลกับรีโมตแบบรหัสตายตัว
- ขั้นตอนการทำงาน: ค้นหาความถี่ในย่าน ISM จับสัญญาณ I/Q ด้วย RTL-SDR เล่นสัญญาณซ้ำด้วย HackRF และถอดรหัสด้วย URH
- รหัสหมุนเวียน ป้องกันการเล่นซ้ำแบบพื้นฐานได้ แต่ RollJam (การจับสัญญาณและรบกวน) รวมถึงหน้าต่างการซิงค์ใหม่ที่อ่อนแอหรือคีย์หลักที่ใช้ร่วมกัน ก็เปิดช่องโหว่ขึ้นมาอีกครั้ง
- การรบกวนสัญญาณ เป็นสิ่งผิดกฎหมายนอกห้องปฏิบัติการที่มีการป้องกันและได้รับอนุญาต และเป็นพื้นฐานของการโจมตีแบบปฏิเสธการให้บริการและ RollJam
- การป้องกันต้องใช้คำสั่งที่ผ่านการยืนยันตัวตนและใช้ได้ครั้งเดียว การซิงค์ใหม่ภายในขอบเขต คีย์แยกสำหรับแต่ละอุปกรณ์ และการตรวจจับการรบกวนสัญญาณ
เนื้อหานี้ทำให้หลักสูตรการแฮ็ก RF และระบบไร้สายเสร็จสมบูรณ์ ตั้งแต่พื้นฐาน SDR ไปจนถึงบลูทูธ การสื่อสารแบบไร้สัมผัส และการเล่นสัญญาณซ้ำ
เรียนรู้ Cyber Security Academy ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 76
- บทเรียน
- 303
คำถามที่พบบ่อย
บทเรียน “การดักจับและเล่นสัญญาณซ้ำ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การดักจับและเล่นสัญญาณซ้ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การดักจับและเล่นสัญญาณซ้ำ”
ดักรับและเล่นการส่งสัญญาณ RF ซ้ำ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การดักจับและเล่นสัญญาณซ้ำ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน RF และ SDR
- การโจมตี Bluetooth และ BLE
- ความปลอดภัยของ RFID และ NFC
- การดักจับและเล่นสัญญาณซ้ำ