MAVLINK-
CYBERSÄKERHET
MAVLINK-SÄKERHET
MAVLink är drönarvärldens universella kommunikationsprotokoll — ArduPilot, PX4, Silvus MANET och QGroundControl talar alla MAVLink. Protokollet designades för effektivitet (små paket, låg latens) men inte för säkerhet. MAVLink 1.0 hade ingen autentisering eller kryptering — vem som helst med en 25 euro SDR-mottagare kunde avlyssna och injicera kommandon. MAVLink 2.0 adderar signering men fortfarande ingen kryptering.
MAVLink 2.0-meddelandesignering använder HMAC-SHA256: varje paket inkluderar en 6-byte signatur beräknad från paketinnehållet och en delad hemlig nyckel (32 byte). Mottagaren verifierar signaturen innan den accepterar paketet. Ett paket med felaktig signatur avvisas — fienden kan inte injicera falska kommandon utan nyckeln.
Signeringsmekanism — SHA-256 HMAC
Signeringsbegränsning: signaturen autentiserar avsändaren men krypterar inte innehållet. Fienden kan fortfarande avlyssna och läsa all telemetri — drönarposition, hastighet, kurs, sensorstatus, AI-detektionsresultat. Denna information har underrättelsevärde: fienden vet var dina drönare flyger och vad de ser. Åtgärd: MANET-lagret (Silvus StreamCaster) tillhandahåller AES-256-kryptering som skyddar all MAVLink-trafik i transit.
Den 32 byte långa nyckeln genereras slumpmässigt (openssl rand -hex 32) och laddas in på drönarens flygkontroller via USB vid installation. Nyckeln lagras i flyktigt RAM, inte i beständigt flashminne. Vid strömavbrott försvinner nyckeln — drönaren kan inte förhöras om sin nyckel efter fysisk tillfångatagning. Operatören förvarar nyckeln på en USB-enhet som aldrig lämnar personen. Varje drönare i flottan kan ha en unik nyckel, eller alla drönare i en enhet kan dela en nyckel för förenklad hantering (med avvägningen att om en drönares nyckel komprometteras komprometteras alla).
Attackscenarier och motåtgärder
Kommandoinjektionsförsvar: utan signering kan en fientlig operatör med SDR och GNURadio konstruera giltiga MAVLink-paket och sända dem till din drönare — "gå till koordinat XYZ" eller "avväpna motorer". Med signering aktiverad: drönaren ignorerar alla paket utan giltig HMAC. Angriparen skulle behöva den hemliga nyckeln — som laddas från operatörens USB vid start och aldrig sänds över radio.
Återuppspelningsattack: fienden spelar in ett signerat MAVLink-paket och återsänder det senare. MAVLink 2.0 motverkar detta med tidsstämpel — varje paket inkluderar en sekvens av tidsstämpelvärden och mottagaren avvisar paket med tidsstämpel äldre än senast mottagna. Begränsning: klockssynkronisering mellan drönare och markstation måste vara inom 1 sekund — om klockorna driftar kan giltiga paket avvisas.
Uppsättning av MAVLink-signering (verifierad)
# MAVLink 2.0 Signing — Anti-Spoofing Protection
# pip install pymavlink
import hashlib, struct, time
def sign_mavlink_packet(packet_bytes, key_bytes, timestamp_us):
"""Sign a MAVLink 2.0 packet with HMAC-SHA256."""
# MAVLink 2.0 signature: 6 bytes timestamp + 6 bytes signature
ts_bytes = struct.pack('
Firmwarehärdning reducerar attackytan: stäng alla UART-portar som inte används (SERIAL3_PROTOCOL=-1 i ArduPilot), avaktivera MAVLink CLI (Command Line Interface) som ger full systemåtkomst via seriell port, och aktivera kortsäkerhetsfunktioner (BL_LOCK=1 förhindrar firmware-nedladdning via USB). Varje öppen port är en potentiell angreppsvektor.
MANET-krypteringens betydelse: utan Silvus AES-256-kryptering sänds all MAVLink-trafik i klartext — signerad men läsbar. Med kryptering: alla paket mellan alla noder i meshen krypteras ända-till-ända. Fienden som avlyssnar radiokanalerna ser enbart krypterat brus. Nyckeln roteras inom 1 timme efter drönarförlust (se tillfångatagen drönarprotokoll).
Relaterade kapitel
Attackdemonstration (SITL)
Den mest kritiska säkerhetsluckan i MAVLink är inte teknisk — det är mänsklig. Operatörer som glömmer att aktivera signering (MAV2_SIGNING_KEY ej konfigurerad) eller som använder standardnycklar (alla nollor) exponerar hela flottan. Lisa 26 förflygchecklista inkluderar signeringsverifiering: markstationen testar att drönaren avvisar osignerade paket innan start godkänns.
MAVLink 2.0-specifikation (mavlink.io). ArduPilot signeringsdokumentation. Silvus StreamCaster krypteringskonfiguration. NIST SP 800-57 rekommendationer för kryptografisk nyckelhantering. Ukrainsk MAVLink-angreppsanalys (öppen källa, 2024).
Extern källa: Kryptering – Wikipedia
Källor
Se de kategoriserade källsektionerna tidigare på denna sida för specifika referenser som stöder varje påstående. Tekniska baslinjer: ArduPilot utvecklardokumentation; ExpressLRS hårdvarudokumentation; NATO STANAG 4609 Ed. 4, 4671 och 2022; Watling & Reynolds, "Meatgrinder", RUSI (2023); ISW-arkiv på understandingwar.org. FSG-A har ingen egen operativ erfarenhet.