Wireshark הוא כלי בקוד פתוח שיכול לפענח פרוטוקולי רשת בפרוטוקול Thread סטאק, כמו IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link פהment), UDP, ו-CoAP.
כלי הסינון של Pyspinel מתחבר להתקן Thread NCP או RCP וממיר אותו למאגר חבילות פרוזדורים, יצירת זרם pcap (לכידת חבילות) או מועברים ישירות לתוך Wireshark.
כדי להשתמש ב-Wireshark עם Pyspinel, עיין בהמלצות ההתקנה לשלב הבא. צריך גם להגדיר את Wireshark להצגה נכונה של חבילות Thread ולקבל מדידות 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
כדי להגדיר פרוטוקולים, בוחרים באפשרות Preferences... (העדפות) ב-Wireshark ומרחיבים את הקטע פרוטוקולים.
6LoWPAN
בוחרים באפשרות 6LoWPAN מרשימת הפרוטוקולים ומאמתים או משנים את הפרטים הבאים ההגדרות:
- מבטלים את הסימון של האפשרות Derive ID בהתאם ל-RFC 4944.
- עדכון של Context 0 עם קידומת מקומית ברשת עבור שרשור היעד עמוקה מאוד,
Wireshark משתמש בתצורות הקשר כדי לנתח את כתובת ה-IPv6 הדחוסה להציג את כתובות המקור והיעד של IPv6 בצורה נכונה.
כדי להציג את הכתובות של קידומות אחרות ב-Mesh שהוגדרו בשער: לעדכן מזהי הקשר אחרים בקידומות האלה.
כדי לקבל את מזהה ההקשר של קידומת ספציפית ברשת, צריך להציג את נתוני הרשת של פרוטוקול Thread TLV בכל הודעת תגובה של נתוני MLE. לדוגמה:
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
בוחרים באפשרות CoAP מרשימת הפרוטוקולים ומגדירים את יציאת CoAP UDP ל-61631. כך ניתן להבטיח שהודעות TMF (כמו בקשת כתובת) יוצגו.
IEEE 802.15.4
בוחרים באפשרות IEEE 802.15.4 מרשימת הפרוטוקולים ומאמתים או משנים את ההגדרות הבאות:
- מגדירים את 802.15.4 Ethertype (בקידוד הקסדצימלי) ל-"0x809a".
- מגדירים בחבילת האבטחה את האפשרות 'הצפנה AES-128', 'יושרה של 32 ביט'. הגנה".
לוחצים על הלחצן Edit... (עריכה) לצד Deecryption Keys (מפתחות פענוח). להוסיף את מפתח המאסטר של רשת פרוטוקול Thread לפענוח מנות.
- לוחצים על הסמל + כדי להוסיף מפתח פענוח.
- מזינים את מפתח המאסטר של רשת פרוטוקול Thread בעמודה מפתח פענוח.
- להזין את המספר 1. בתור אינדקס המפתח לפענוח.
בוחרים Thread hash מתיבת רשימת העמודות Key hash.
לוחצים על אישור כדי לשמור את מפתח הפענוח.
שרשור
בוחרים באפשרות Thread מרשימת הפרוטוקולים ומאמתים או משנים את הפרטים הבאים ההגדרות:
- להזין '00000000' למונה של רצף שרשורים.
- מבטלים את הסימון של האפשרות שימוש במזהה מספר החשבון הקבוע (PAN) בתור שתי הספרות הראשונות של מפתח המאסטר.
- מסמנים את האפשרות רכישה אוטומטית של מונה רצף של פרוטוקולי Thread.
לוחצים על הלחצן אישור כדי לשמור את השינויים בפרוטוקול.
יכול להיות שחלק מתנועת ה-Thread ינותחו כפרוטוקול ZigBee. כדי לעשות את זה כמו שצריך להציג את שני הפרוטוקולים האלה, לערוך את הפרוטוקולים המופעלים ב-Wireshark:
- ב-Wireshark, עוברים אל Analyze (ניתוח) ולוחצים על Enabled Protocols (פרוטוקולים מופעלים).
צריך לבטל את הסימון של הפרוטוקולים הבאים:
- LwMesh
- ZigBee
- ZigBee Green Power
הגדרת RSSI של Wireshark
כדי להציג RSSI ב-Wireshark:
- בוחרים באפשרות העדפות..., מרחיבים את הקטע פרוטוקולים ולוחצים על IEEE 802.15.4.
מגדירים את FCS Format:
- אם פרוטוקול IEEE 802.15.4 TAP מושבת: מטא-נתונים של TI CC24xx.
- אם מכשיר IEEE 802.15.4 TAP מופעל: ITU-T CRC-16. אם אתם עוקבים
המדריך להשניית מנות (Packet Sniffing) של ה-NRF52840 של מוליך למחצה נורדי,
DK, אפשר למצוא מידע נוסף בדגל
--tap
.
לוחצים על אישור כדי לשמור ולחזור לתפריט העדפות.
בקטע העדפות, לוחצים על מראה ואז על עמודות.
הוספת רשומה חדשה:
- כותרת: RSSI
- טיפוס: Custom (בהתאמה אישית)
- שדות: wpan.rssi