Wireshark เป็นเครื่องมือโอเพนซอร์สที่สามารถถอดรหัสโปรโตคอลเครือข่ายในแพ็กเกจเทรด เช่น IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link Establishment), UDP และ CoAP
เครื่องมือสนิฟเฟอร์ Pyspinel จะเชื่อมต่อกับอุปกรณ์ Thread NCP หรือ RCP และแปลงเป็นเครื่องมือสนิฟเฟอร์แพ็กเก็ตแบบเลือกรับทั้งหมด ซึ่งจะสร้างสตรีม pcap (การจับแพ็กเก็ต) เพื่อบันทึกหรือส่งไปยัง Wireshark โดยตรง
หากต้องการใช้ Wireshark กับ Pyspinel โปรดดูคำแนะนำในการติดตั้งในขั้นตอนถัดไป นอกจากนี้ คุณจะต้องกำหนดค่า Wireshark ให้แสดงแพ็กเก็ตเทรดอย่างถูกต้องและรับการวัด RSSI ด้วย
ติดตั้ง Wireshark
Linux
เปิดเทอร์มินัลและเรียกใช้คําสั่งต่อไปนี้เพื่อดาวน์โหลดและติดตั้ง Wireshark
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
เราขอแนะนำให้เรียกใช้ Wireshark ในฐานะผู้ใช้ที่ไม่ใช่ root
โดยให้กำหนดค่าแพ็กเกจอีกครั้ง ดังนี้
sudo dpkg-reconfigure wireshark-common
เมื่อได้รับกล่องโต้ตอบถามว่า "ผู้ใช้ที่ไม่ใช่ผู้ใช้ระดับซูเปอร์จะบันทึกแพ็กเก็ตได้ไหม" ให้เลือกใช่ จากนั้นเพิ่มผู้ใช้ wireshark
และอัปเดตสิทธิ์ของไฟล์ ดังนี้
sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap
macOS และ Windows
ดาวน์โหลดและติดตั้ง Wireshark หากต้องการเพิ่มประสิทธิภาพการรักษาความปลอดภัยให้กับระบบปฏิบัติการ โปรดดูWireshark - ข้อมูลเฉพาะแพลตฟอร์มเกี่ยวกับสิทธิ์ในการบันทึก
กำหนดค่าโปรโตคอล Wireshark
หากต้องการกำหนดค่าโปรโตคอล ให้เลือกค่ากำหนด... ใน Wireshark แล้วขยายส่วนโปรโตคอล
6LoWPAN
เลือก 6LoWPAN จากรายการโปรโตคอล แล้วยืนยันหรือเปลี่ยนการตั้งค่าต่อไปนี้
- ยกเลิกการเลือกสร้างรหัสตาม RFC 4944
- อัปเดต Context 0 ด้วยคำนำหน้า Mesh Local สำหรับเครือข่ายเทรดเป้าหมาย
Wireshark ใช้การกำหนดค่าบริบทเพื่อแยกวิเคราะห์ที่อยู่ IPv6 ที่บีบอัดและแสดงที่อยู่ต้นทางและปลายทาง IPv6 อย่างถูกต้อง
หากต้องการแสดงที่อยู่สำหรับคำนำหน้าอื่นๆ ใน Mesh ที่กําหนดค่าไว้ในเกตเวย์ ให้อัปเดตรหัสบริบทอื่นๆ ด้วยคำนำหน้าเหล่านั้น
หากต้องการดูรหัสบริบทของคำนำหน้าใน Mesh ที่เฉพาะเจาะจง ให้ดูข้อมูลเครือข่ายเทรด TLV ในข้อความตอบกลับข้อมูล MLE เช่น
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
เลือก CoAP จากรายการโปรโตคอล แล้วตั้งค่าพอร์ต UDP ของ CoAP เป็น 61631 วิธีนี้ช่วยให้มั่นใจว่าข้อความ TMF (เช่น การขอที่อยู่) จะแสดง
IEEE 802.15.4
เลือก IEEE 802.15.4 จากรายการโปรโตคอล แล้วยืนยันหรือเปลี่ยนการตั้งค่าต่อไปนี้
- ตั้งค่า 802.15.4 Ethertype (ในรูปแบบเลขฐาน 16) เป็น "0x809a"
- ตั้งค่า Security Suite เป็น "การเข้ารหัส AES-128, การป้องกันความสมบูรณ์ 32 บิต"
คลิกปุ่มแก้ไข... ข้างคีย์การถอดรหัส ซึ่งเป็นที่ที่คุณเพิ่มคีย์หลักของเครือข่ายเทรดสำหรับการถอดรหัสแพ็กเก็ต
- คลิก + เพื่อเพิ่มคีย์การถอดรหัส
- ป้อนคีย์หลักของเครือข่ายเทรดในคอลัมน์คีย์การถอดรหัส
- ป้อน "1" เป็นดัชนีคีย์การถอดรหัส
เลือกแฮชชุดข้อความจากกล่องรายการของคอลัมน์แฮชคีย์
คลิกตกลงเพื่อบันทึกคีย์การถอดรหัส
ชุดข้อความ
เลือก Thread จากรายการโปรโตคอล แล้วยืนยันหรือเปลี่ยนการตั้งค่าต่อไปนี้
- ป้อน "00000000" สำหรับตัวนับลำดับชุดข้อความ
- ยกเลิกการเลือกใช้รหัส PAN เป็น 2 อ็อกเต็ตแรกของคีย์หลัก
- เลือกรับตัวนับลำดับชุดข้อความโดยอัตโนมัติ
คลิกปุ่ม OK เพื่อบันทึกการเปลี่ยนแปลงโปรโตคอล
การเข้าชมเทรดบางรายการอาจได้รับการวิเคราะห์ว่าเป็นโปรโตคอล ZigBee หากต้องการแสดงโปรโตคอล 2 รายการนี้อย่างถูกต้อง ให้แก้ไขโปรโตคอลที่เปิดใช้ใน Wireshark
- ใน Wireshark ให้ไปที่วิเคราะห์ แล้วคลิกโปรโตคอลที่เปิดใช้
ยกเลิกการเลือกโปรโตคอลต่อไปนี้
- LwMesh
- ZigBee
- ZigBee Green Power
กำหนดค่า RSSI ของ Wireshark
วิธีแสดง RSSI ใน Wireshark
- เลือกค่ากําหนด... แล้วขยายส่วนโปรโตคอล จากนั้นคลิก IEEE 802.15.4
ตั้งค่ารูปแบบ FCS
- หากปิดใช้ TAP ของ IEEE 802.15.4: ข้อมูลเมตา TI CC24xx
- หากเปิดใช้ TAP ของ IEEE 802.15.4: ITU-T CRC-16 หากคุณทําตามคู่มือการสํารวจแพ็กเก็ตสําหรับ Nordic Semiconductor nRF52840 DK โปรดดูข้อมูลเพิ่มเติมใน
--tap
flag
คลิก OK เพื่อบันทึกและกลับไปที่เมนูค่ากำหนด
จากค่ากําหนด ให้เลือกลักษณะที่ปรากฏ แล้วเลือกคอลัมน์
วิธีเพิ่มรายการใหม่
- ชื่อ: RSSI
- ประเภท: กำหนดเอง
- ฟิลด์: wpan.rssi