En trio av forskare delade mellan Italien och Storbritannien har nyligen publicerade ett papper om kryptografiska osäkerheter de hittade i en allmänt känd smart glödlampa.
Forskarna verkar ha valt sin målenhet, TP-Link Tapo L530E, på grundval av att det är "för närvarande [den] bästsäljaren på Amazon Italien," så vi vet inte hur andra smarta glödlampor står sig, men deras rapport har mycket att lära oss ändå.
Forskarna säger att:
Vi kontaktade plikttroget TP-Link via deras Vulnerability Research Program (VRP) och rapporterade alla fyra sårbarheter vi hittade.
De erkände dem alla och informerade oss om att de började arbeta med korrigeringar både i appen och på glödlampans firmwarenivå, och planerar att släppa dem i sinom tid.
På gott och ont (författarna till tidningen säger inte om några datum för avslöjande var överenskomna med TP-Link, så vi vet inte hur länge företaget har arbetat med sina patchar), har forskarna nu avslöjat hur deras attacker fungerar, om än utan att tillhandahålla någon kopierings- och klistrad attackkod för wannabe-hemhackers att utnyttja efter behag.
Vi tyckte därför att tidningen var värd att titta närmare på.
Trådlös inställning
Liksom många så kallade "smarta" enheter är Tapo L530E designad så att den kan ställas in snabbt och enkelt via Wi-Fi.
Även om trådlös konfiguration är vanlig även för batteridrivna enheter som kan laddas och ställas in via inbyggda USB-portar, som kameror och cykeltillbehör, har glödlampor i allmänhet inga USB-portar, inte minst för utrymme och säkerhet skäl, med tanke på att de är utformade för att anslutas till och lämnas i ett eluttag.
Genom att tända och släcka en Tapo L530E-glödlampa upprepade gånger på väggströmbrytaren i en sekund i taget kan du tvinga den till inställningsläge (uppenbarligen blinkar glödlampan automatiskt tre gånger för att tala om när den är redo för konfiguration).
Som de flesta automatiskt konfigurerbara enheter gör detta att den smarta glödlampan förvandlas till en Wi-Fi-åtkomstpunkt med ett lätt igenkännligt nätverksnamn för formuläret Tapo Bulb XXXX
, där X:en bildar en sträng av siffror.
Du ansluter sedan till den tillfälliga åtkomstpunkten, som inte är lösenordsskyddad, från en app på din smartphone.
Sedan berättar du för glödlampan hur den ansluter både till ditt lösenordsskyddade Wi-Fi-hemnätverk och till ditt TP-Link molnkonto i framtiden, varefter glödlampans firmware kan starta om och ansluta sig till internet, så att du kan hantera den från appen på din telefon.
Lampan kan anslutas till hemnätverket, vilket innebär att du kan kontakta den direkt via ditt eget Wi-Fi när du är hemma, även om din internetleverantör är offline vid tillfället.
Och glödlampan kan ansluta över internet till ditt molnkonto, så du kan även skicka kommandon till det indirekt via ditt molnkonto medan du är på väg, till exempel för att tända och släcka lampor om du är sen att komma in igen för att ge intrycket att det är någon hemma.
Akta dig för bedragare
Ni kan säkert gissa vart detta är på väg.
Om appen på din telefon inte har något kryptografiskt starkt sätt att ta reda på att den verkligen har anslutit till en äkta glödlampa när du går igenom installationsprocessen...
… sedan en närliggande angripare som bara råkar starta upp en falsk Tapo Bulb XXXX
åtkomstpunkten vid rätt ögonblick kan locka dig att skicka dessa viktiga installationshemligheter till sin "imposter bulb"-enhet istället för till den riktiga varan, och på så sätt fånga både ditt Wi-Fi-lösenord och dina TP-Link-kontodetaljer.
Den goda nyheten är att forskarna märkte att både Tapo-appen och L530E-firmwaren inkluderade en grundläggande säkerhetskontroll för att hjälpa appen och dina glödlampor att hitta varandra på ett tillförlitligt sätt, vilket minskade risken för att appen skulle röja ut dina lösenord när den borde 't.
Men de dåliga nyheterna är att protokollet används för detta är du verkligen en glödlampa? utbyte var tydligt utformat för att undvika misstag snarare än att förhindra attacker.
Löst uttryckt lokaliserar appen alla glödlampor i sitt nätverk genom att sända speciella UDP-paket till port 20002 och se vilka enheter som svarar, om några.
För att hjälpa alla lysande glödlampor att bestämma att en är du där? begäran kom från Tapo-appen, snarare än från någon annan okänd produkt eller tjänst som bara råkar använda port 20002 också, begäran inkluderar vad som är känt på jargongen som en nyckelad hash.
Smakämnen Jag är här! svaret från glödlampan innehåller samma typ av knappad kontrollsumma för att hjälpa appen att filtrera bort oväntade och oönskade UDP-svar.
Enkelt uttryckt är den nyckelade hashen en kontrollsumma som inte bara baseras på data i UDP-paketet utan också på några ytterligare nyckelbytes som också viks in i kontrollsumman.
Tyvärr använder Tapo-protokollet fasta nyckelbytes för sin kontrollsumma, med samma "nyckel" fastkopplad i appen och i firmware för varje Tapo-lampa.
Med andra ord, när någon har dekompilerat antingen appen eller glödlampans firmware, eller båda, och återställt denna "nyckel", bör du anta att vem som helst och alla kommer att veta vad det är, vilket gör dem till enär du där?/Jag är här! meddelanden som är triviala att förfalska.
Än värre, forskarna fann att de inte behövde dekompilera någonting, eftersom denna inte så hemliga "nyckel" bara är 32 bitar lång, vilket betyder att genom att ställa in din egen Tapo-lampa i inställningsläge och sedan mata den är du där? meddelanden som använder alla 232 möjliga kontrollsummanycklar, kommer du så småningom att träffa rätt tangent av vad som kallas brute force.
Det är den kryptografiska motsvarigheten till att snurra på rattarna för att prova varje kombination på ett cykellås, säg från 000
till 999
, tills du har tur och låset öppnas. (I genomsnitt kommer du att öppna låset efter att ha provat hälften av de möjliga kombinationerna, men det kommer aldrig att ta dig mer än 1000 gånger.)
Faktum är att de inte behövde skicka 232 meddelanden från appen till en glödlampa för att knäcka nyckeln.
Genom att fånga bara ett känt, äkta meddelande med en giltig nyckelkodad hash i sig, kunde de sedan testa alla möjliga nycklar offline tills de producerade ett meddelande som hade samma nyckelkodade hash som det de hade sparat.
Det betyder att brute force-attacken kan fortsätta med CPU-hastighet, inte bara med Wi-Fi-nätverkspakethastighet, och forskarna säger att "I vår installation lyckades brute force attacken alltid på 140 minuter i genomsnitt."
(Vi antar att de försökte det upprepade gånger bara för att testa att deras knäckningskod fungerade korrekt, men med en fast nyckel som delas av alla Tapo-lampor, skulle bara deras första spricka ha varit tillräckligt.)
Så länge du pratar säkert, bryr jag mig inte om dig som är det
Nästa kryptografiska problem dök upp i nästa steg av installationsprocessen för glödlampor och var ett liknande misstag.
Efter att ha accepterat en glödlampa som äkta baserat på en nyckel-hash-som-faktiskt-inte-har-en-nyckel, kommer appen överens om en sessionsnyckel för att kryptera dess trafik med den "äkta" glödlampan...
…men har återigen ingen möjlighet att kontrollera om nyckelavtalet ägde rum med en riktig glödlampa eller en bedragare.
Att komma överens om en sessionsnyckel är viktigt, eftersom det säkerställer att ingen annan i nätverket kan snoka efter Wi-Fi- och Tapo-lösenorden när de sedan skickas från Tapo-appen till vad den tror är en Tapo-glödlampa.
Men att inte ha någon verifieringsprocess för själva nyckelavtalet är lite som att ansluta till en webbplats via HTTPS och sedan inte bry sig om att utföra ens den mest grundläggande kontrollen av webbcertifikatet som det skickar tillbaka: din trafik kommer att vara säker under transporten, men kunde ändå gå rakt i händerna på en skurk.
Tapo-appen identifierar sig själv för glödlampan (eller vad den tror är en glödlampa) genom att skicka den en offentlig RSA-nyckel, som den andra änden använder för att kryptera en slumpmässigt genererad AES-nyckel för att säkra data som utbyts under sessionen.
Men glödlampsenheten ger ingen form av identifiering, inte ens en kontrollsumma med en fast 32-bitars nyckel, tillbaka till Tapo-appen.
Så appen har inget annat val än att acceptera sessionsnyckeln utan att veta om den kom från en riktig glödlampa eller en bedragare.
Det kombinerade resultatet av dessa två brister är att en angripare på ditt nätverk först kan övertyga dig om att deras skurkaktiga åtkomstpunkt var en äkta glödlampa som väntar på att bli konfigurerad, och på så sätt locka dig till fel plats och sedan övertyga dig om att skicka den. en krypterad kopia av dina egna Wi-Fi- och Tapo-lösenord.
Ironiskt nog skulle de läckta lösenorden verkligen vara säkra mot alla ... förutom bedragaren med den falska åtkomstpunkten.
Nummer-använd-en gång som används om och om igen
Tyvärr finns det mer.
När vi sa ovan det "de läckta lösenorden skulle verkligen vara säkra," det var inte helt korrekt.
Sessionsnyckeln som etablerades under nyckelavtalsprocessen som vi beskrev tidigare hanteras inte korrekt, eftersom programmerarna gjorde en blunder i sin användning av AES.
När appen krypterar varje begäran som den skickar till en glödlampa använder den ett krypteringsläge som kallas AES-128-CBC.
Vi kommer inte att förklara CBC (chiffer-block kedja) här, men vi ska bara nämna att CBC-läget är utformat så att om du krypterar samma databit mer än en gång (som upprepade förfrågningar till tända ljuset och släck ljuset, där rådata i begäran är samma varje gång), får du inte samma utdata varje gång.
Om varje ljuset på och ljus av begäran kom ut identiskt, sedan när en angripare hade gissat vad en Stäng av den paket såg ut, kunde de inte bara känna igen dessa paket i framtiden utan att dekryptera dem, utan också spela upp samma paket utan att behöva veta hur man krypterar dem i första hand.
Som det händer bygger CBC-baserad kryptering effektivt på att "sådd" krypteringsprocessen för varje bit data genom att först blanda ett unikt, slumpmässigt valt datablock i krypteringsprocessen, vilket skapar en unik sekvens av krypterad data i resten av biten.
Dessa "frödata" är kända i jargongen en IV, förkortning för initieringsvektor, och även om det inte är tänkt att vara hemligt, måste det vara oförutsägbart olika varje gång.
Enkelt uttryckt: samma nyckel + unik IV = unik chiffertextutmatning, men samma nyckel + samma IV = förutsägbar kryptering.
TP-Link-kodarna genererade tyvärr en IV samtidigt som de skapade sin AES-sessionsnyckel och använde sedan samma IV om och om igen för varje efterföljande datapaket, även när tidigare data upprepades exakt.
Det är ett kryptografiskt nej.
Skickade jag sex paket, eller bara fem?
Det sista kryptografiska problemet som forskarna hittade är ett som fortfarande kan skada säkerheten även om initieringsvektorproblemet fixades, nämligen att gamla meddelanden, oavsett om en angripare vet vad de betyder eller inte, kan spelas upp senare som om de vore nya.
Typiskt, denna typ av omspelningsattack hanteras i kryptografiska protokoll av något slags sekvensnummer, eller tidsstämpel, eller båda, som ingår i varje datapaket för att begränsa dess giltighet.
Som datumet på en tågbiljett som ger dig bort om du försöker använda den två dagar i rad, även om själva biljetten aldrig blir avbokad av en biljettautomat eller stansad av en biljettkontrollant, sekvensnummer och tidsstämplar i datapaket tjäna två viktiga syften.
För det första kan angripare inte spela in trafik idag och enkelt spela upp den senare och potentiellt skapa förödelse.
För det andra kan buggykod som skickar förfrågningar upprepade gånger av misstag, till exempel på grund av uteblivna svar eller saknade nätverksbekräftelser, på ett tillförlitligt sätt upptäckas och kontrolleras.
Vad göra?
Om du använder Tapo-glödlampor, håll ögonen öppna för firmwareuppdateringar från TP-Link som löser dessa problem.
Om du är en programmerare som ansvarar för att säkra nätverkstrafik och nätverksbaserade produktinställningar, Läs igenom forskningsrapporten för att säkerställa att du inte har gjort några liknande misstag.
Kom ihåg följande regler:
- Kryptografi handlar inte bara om sekretess. Kryptering är bara en del av den kryptologiska "heliga treenigheten". konfidentialitet (kryptera det), äktheten (verifiera vem som är i andra änden), och integritet (se till att ingen manipulerat den på vägen).
- Se till att alla engångsnycklar eller IV är verkligen unika. Den vanliga jargongtermen nuncio, som används för för denna typ av data, är en förkortning för nummer använt en gång, ett ord som tydligt påminner dig om att IV aldrig får återanvändas.
- Skydda mot reprisattacker. Detta är en speciell aspekt för att säkerställa äktheten och integritet vi nämnde ovan. En angripare ska inte kunna fånga en begäran som du gör nu och blint spela om den senare utan att bli upptäckt. Kom ihåg att en angripare inte behöver kunna förstå ett meddelande om de kan spela upp det igen och potentiellt skapa förödelse.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Fordon / elbilar, Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- ChartPrime. Höj ditt handelsspel med ChartPrime. Tillgång här.
- BlockOffsets. Modernisera miljökompensation ägande. Tillgång här.
- Källa: https://nakedsecurity.sophos.com/2023/08/22/smart-light-bulbs-could-give-away-your-password-secrets/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 125
- 15%
- 25
- 32
- 700
- a
- Able
- Om oss
- ovan
- Absolut
- Acceptera
- acceptera
- tillgång
- tillbehör
- Konto
- medgav
- Annat
- adress
- AES
- Efter
- igen
- mot
- överens
- Avtal
- Alla
- tillåta
- längs
- också
- Även
- alltid
- am
- amason
- an
- och
- vilken som helst
- något
- app
- ÄR
- AS
- aspekt
- utgå ifrån
- At
- attackera
- Attacker
- Författaren
- Författarna
- bil
- automatiskt
- genomsnitt
- undvika
- bort
- tillbaka
- bakgrund-bild
- Badrum
- baserat
- grundläggande
- grund
- BE
- därför att
- varit
- BÄST
- Bättre
- mellan
- Bit
- blint
- Blockera
- gränsen
- båda
- Botten
- Broadcasting
- brute force
- inbyggd
- men
- by
- kallas
- kom
- kameror
- KAN
- fånga
- Fångande
- vilken
- Orsakerna
- Centrum
- certifikat
- laddad
- ta
- kontroll
- val
- valda
- klart
- cloud
- koda
- färg
- kombination
- kombinationer
- kombinerad
- Gemensam
- företag
- konfiguration
- konfigurerad
- Kontakta
- anslutna
- Anslutning
- kontakta
- kontrolleras
- övertyga
- korrekt
- kunde
- Kurs
- täcka
- spricka
- skapa
- skapas
- Skapa
- kryptografisk
- datum
- Datum
- Datum
- Dagar
- beslutar
- beskriven
- utformade
- detaljer
- detekterad
- anordning
- enheter
- olika
- siffror
- direkt
- avslöjande
- Visa
- do
- gör
- inte
- inte
- tappade
- grund
- under
- varje
- Tidigare
- lätt
- effektivt
- antingen
- annars
- krypterad
- kryptering
- änden
- tillräckligt
- säkerställa
- säkerställer
- säkerställa
- helt
- Motsvarande
- etablerade
- Även
- så småningom
- Varje
- exakt
- exempel
- Utom
- utbyta
- utbyts
- Förklara
- Exploit
- Ögon
- Faktum
- fejka
- matning
- filtrera
- hitta
- Förnamn
- fixerad
- brister
- efter
- För
- kraft
- förfalska
- formen
- hittade
- fyra
- från
- framtida
- allmänhet
- genereras
- verklig
- skaffa sig
- få
- Ge
- ges
- Go
- Går
- kommer
- god
- gissade
- hade
- Hälften
- händer
- händer
- skada
- hash
- Har
- har
- höjd
- hjälpa
- här.
- Träffa
- Hem
- hovring
- Hur ser din drömresa ut
- How To
- HTTPS
- i
- Identifiering
- identifierar
- if
- med Esport
- in
- ingår
- innefattar
- indirekt
- informeras
- istället
- Internet
- in
- ISP
- problem
- IT
- Italien
- DESS
- sig
- jargong
- delta
- bara
- bara en
- Ha kvar
- Nyckel
- nycklar
- Vet
- Menande
- känd
- Efternamn
- Sent
- senare
- t minst
- vänster
- nivåer
- ljus
- glödlampor
- tycka om
- BEGRÄNSA
- Lyssna
- Lång
- såg
- du letar
- Maskinen
- gjord
- göra
- Framställning
- hantera
- många
- Marginal
- max-bredd
- betyda
- betyder
- menas
- nämnts
- endast
- meddelande
- meddelanden
- minuter
- saknas
- misstag
- misstag
- Blandning
- Mode
- ögonblick
- mer
- mest
- måste
- namn
- nämligen
- Behöver
- behöver
- nät
- Nätverksnamn
- nätverkstrafik
- nätverksbaserade
- aldrig
- Icke desto mindre
- Nya
- nyheter
- Nästa
- Nej
- Ingen
- normala
- nu
- antal
- nummer
- of
- sänkt
- offline
- Gamla
- on
- gång
- ONE
- endast
- öppet
- or
- beställa
- Övriga
- vår
- ut
- Resultat
- produktion
- över
- egen
- paket
- Papper
- del
- Lösenord
- lösenord
- Plåster
- paul
- Utföra
- telefon
- Plats
- planering
- plato
- Platon Data Intelligence
- PlatonData
- Spela
- spelat
- Massor
- Ansluten
- Punkt
- Pops
- placera
- möjlig
- inlägg
- potentiellt
- Förutsägbar
- förhindra
- föregående
- förmodligen
- Problem
- Fortsätt
- process
- producerad
- Produkt
- Program
- Programmerare
- programmerare
- skyddad
- protokoll
- protokoll
- ge
- tillhandahålla
- allmän
- Public Key
- syfte
- sätta
- snabbt
- slumpmässigt genererade
- snarare
- Raw
- redo
- verklig
- verkligen
- skäl
- nyligen
- erkänna
- post
- reducerande
- relativ
- frigöra
- ihåg
- upprepade
- UPPREPAT
- svar
- rapport
- Rapportering
- begära
- förfrågningar
- forskning
- forskare
- ansvarig
- REST
- avslöjade
- höger
- Risk
- väg
- RAD
- rsa
- regler
- Säkerhet
- Nämnda
- Samma
- säga
- Andra
- Secret
- säkra
- säkert
- säkring
- säkerhet
- se
- verka
- sända
- skicka
- sänder
- skickas
- Sekvens
- tjänar
- service
- session
- in
- inställning
- inställning
- delas
- Kort
- skall
- liknande
- SEX
- smarta
- smartphone
- Snoop
- So
- fast
- några
- någon
- Utrymme
- tala
- speciell
- fart
- delas
- stapel
- Etapp
- starta
- igång
- Ange
- Fortfarande
- rakt
- Sträng
- stark
- senare
- Senare
- sådana
- säker
- SVG
- Växla
- Ta
- Målet
- tala
- temporär
- termin
- testa
- än
- den där
- Smakämnen
- Storbritannien
- deras
- Dem
- sedan
- Där.
- därför
- Dessa
- de
- sak
- tänker
- detta
- de
- trodde
- tre
- Genom
- Således
- biljett
- tid
- gånger
- tidsstämpel
- till
- i dag
- tog
- topp
- trafik
- Tåg
- transitering
- övergång
- transparent
- försökte
- trio
- verkligen
- prova
- SVÄNG
- vände
- Vrida
- två
- Typ
- Uk
- förstå
- Oväntat
- tyvärr
- unika
- okänd
- tills
- Uppdateringar
- URL
- us
- usb
- användning
- Begagnade
- Användare
- användningar
- med hjälp av
- Verifiering
- verifiera
- via
- sårbarheter
- sårbarhet
- väntar
- Vägg
- var
- Sätt..
- we
- webb
- Webbplats
- VÄL
- były
- Vad
- när
- om
- som
- medan
- VEM
- Wi-fi
- bredd
- kommer
- med
- utan
- ord
- ord
- Arbete
- arbetssätt
- sämre
- värt
- skulle
- Fel
- X: er
- Om er
- Din
- zephyrnet