En trio av forskere delt mellom Italia og Storbritannia har nylig publisert et papir om kryptografiske usikkerheter de fant i en viden kjent smart lyspære.
Forskerne ser ut til å ha valgt målenheten sin, TP-Link Tapo L530E, på bakgrunn av at den er "for øyeblikket [den] bestselgeren på Amazon Italia," så vi vet ikke hvordan andre smarte pærer står seg, men rapporten deres har mye å lære oss uansett.
Forskerne sier at:
Vi tok pliktoppfyllende kontakt med TP-Link via deres Vulnerability Research Program (VRP), og rapporterte alle fire sårbarhetene vi fant.
De anerkjente dem alle og informerte oss om at de begynte å jobbe med reparasjoner både på appen og på pærefastvarenivået, og planla å slippe dem etter hvert.
På godt og vondt (forfatterne av papiret sier ikke om noen avsløringsdatoer ble avtalt med TP-Link, så vi vet ikke hvor lenge selskapet har jobbet med patchene sine), har forskerne nå avslørt hvordan angrepene deres fungerer, om enn uten å oppgi noen kopi-og-limbar angrepskode som wannabe-hjemmehackere kan utnytte etter eget ønske.
Vi mente derfor at papiret var verdt å se nærmere på.
Trådløst oppsett
Som mange såkalte "smarte" enheter, er Tapo L530E designet slik at den kan settes opp raskt og enkelt over Wi-Fi.
Selv om trådløs-basert konfigurasjon er vanlig selv for batteridrevne enheter som kan lades og settes opp via innebygde USB-porter, som kameraer og sykkeltilbehør, har lyspærer generelt sett ikke USB-porter, ikke minst for plass og sikkerhet grunner, gitt at de er designet for å kobles til og etterlates i en stikkontakt.
Ved å slå en Tapo L530E lyspære av og på gjentatte ganger ved veggbryteren i ett sekund av gangen, kan du tvinge den til oppsettmodus (tilsynelatende blinker pæren automatisk tre ganger for å fortelle deg når den er klar for konfigurasjon).
Som de fleste automatisk konfigurerbare enheter, får dette smartpæren til å gjøre seg til et Wi-Fi-tilgangspunkt med et lett gjenkjennelig nettverksnavn på skjemaet Tapo Bulb XXXX
, hvor X-ene danner en streng med sifre.
Du kobler deg deretter til det midlertidige tilgangspunktet, som ikke er passordbeskyttet, fra en app på smarttelefonen.
Deretter forteller du pæren hvordan den skal koble til både til ditt passordbeskyttede Wi-Fi-hjemmenettverk og til TP-Link skykontoen din i fremtiden, hvoretter pærens firmware kan starte på nytt og koble seg opp til internett, slik at du kan administrere den. fra appen på telefonen.
Pæren kan kobles til hjemmenettverket, noe som betyr at du kan kontakte den direkte via din egen Wi-Fi når du er hjemme, selv om Internett-leverandøren din er offline på det tidspunktet.
Og pæren kan kobles over internett til skykontoen din, slik at du også kan sende kommandoer til den indirekte via skykontoen din mens du er på veien, for eksempel for å slå av og på lys hvis du kommer sent inn igjen for å gi inntrykk av at det er noen hjemme.
Pass på bedragere
Du kan sikkert gjette hvor dette går.
Hvis appen på telefonen din ikke har noen kryptografisk sterk måte å finne ut at den virkelig har koblet til en ekte lyspære når du går gjennom oppsettsprosessen...
…så en nærliggende angriper som tilfeldigvis starter opp en falsk Tapo Bulb XXXX
tilgangspunktet i rett øyeblikk kan lokke deg til å sende de viktige konfigurasjonshemmelighetene til deres "imposter bulb"-enhet i stedet for til den ekte varen, og dermed fange opp både Wi-Fi-passordet og TP-Link-kontodetaljene dine.
Den gode nyheten er at forskerne la merke til at både Tapo-appen og L530E-fastvaren inkluderte en grunnleggende sikkerhetssjekk for å hjelpe appen og pærene dine til å finne hverandre på en pålitelig måte, og dermed redusere risikoen for at appen ville røske ut passordene dine når den burde 't.
Men den dårlige nyheten er at protokollen brukes til dette er du virkelig en lyspære? utveksling var tydelig designet for å unngå feil i stedet for å forhindre angrep.
Løst sagt, appen lokaliserer alle lyspærer på nettverket sitt ved å kringkaste spesielle UDP-pakker til port 20002 og se hvilke enheter som svarer, hvis noen.
For å hjelpe noen lyttende lyspærer bestemme at en er du der? forespørselen kom fra Tapo-appen, i stedet for fra et annet ukjent produkt eller tjeneste som tilfeldigvis også bruker port 20002, forespørselen inkluderer det som er kjent i sjargongen som en tastet hasj.
De Jeg er her! svar fra lyspæren inkluderer samme type tastet kontrollsum for å hjelpe appen med å filtrere ut uventede og uønskede UDP-svar.
Enkelt sagt er den tastede hashen en sjekksum basert ikke bare på dataene i UDP-pakken, men også noen ekstra nøkkelbyte som også er foldet inn i sjekksummen.
Dessverre bruker Tapo-protokollen faste nøkkelbyte for kontrollsummen, med den samme "nøkkelen" koblet til appen og fastvaren til hver Tapo-pære.
Med andre ord, når noen har dekompilert enten appen eller lyspærens fastvare, eller begge deler, og gjenopprettet denne "nøkkelen", bør du anta at alle og enhver vil vite hva det er, noe som gjør disse til ener du der?/Jeg er her! meldinger som er trivielle å forfalske.
Verre, forskerne fant ut at de ikke trengte å dekompilere noe, fordi denne ikke-så-hemmelige "nøkkelen" bare er 32 biter lang, noe som betyr at ved å sette din egen Tapo-pære i oppsettmodus og deretter mate den er du der? meldinger som bruker alle 232 mulige kontrollsum-nøkler, vil du til slutt treffe den riktige tasten med det som kalles brute force.
Det er den kryptografiske ekvivalenten til å snurre skivene for å prøve hver kombinasjon på en sykkellås, si fra 000
til 999
, til du er heldig og låsen åpnes. (I gjennomsnitt vil du åpne låsen etter å ha prøvd halvparten av de mulige kombinasjonene, men det vil aldri ta deg mer enn 1000 ganger.)
Faktisk trengte de ikke å sende 232 meldinger fra appen til en lyspære for å knekke nøkkelen.
Ved å fange bare én kjent, ekte melding med en gyldig nøkkelhash i seg, kunne de teste alle mulige nøkler offline til de produserte en melding som hadde samme nøkkelhash som den de hadde lagret.
Det betyr at brute force-angrepet kan fortsette med CPU-hastighet, ikke bare med Wi-Fi-nettverkspakkehastighet, og forskerne uttaler at "I vårt oppsett lyktes brute force-angrepet alltid på 140 minutter i gjennomsnitt."
(Vi antar at de prøvde det gjentatte ganger bare for å teste at cracking-koden deres fungerte riktig, men med en kablet nøkkel som deles av alle Tapo-pærer, ville bare deres første crack vært nok.)
Så lenge du snakker trygt, bryr jeg meg ikke om du som er det
Det neste kryptografiske problemet dukket opp i neste trinn av lyspæreoppsettprosessen, og var en lignende type feil.
Etter å ha akseptert en lyspære som ekte basert på en nøkkelhash-som-faktisk-ikke-har-en-nøkkel, blir appen enig om en øktnøkkel for å kryptere trafikken med den "ekte" pæren ...
…men har nok en gang ingen mulighet til å sjekke om nøkkelavtalen fant sted med en ekte pære eller en bedrager.
Å bli enige om en øktnøkkel er viktig, fordi det sikrer at ingen andre på nettverket kan snoke på Wi-Fi- og Tapo-passordene når de deretter sendes fra Tapo-appen til det den tror er en Tapo-lyspære.
Men å ikke ha noen bekreftelsesprosess for selve nøkkelavtalen er litt som å koble til et nettsted over HTTPS, og så ikke bry deg med å utføre selv den mest grunnleggende kontrollen på nettsertifikatet som det sender tilbake: trafikken din vil være sikker under transport, men kan likevel gå rett i hendene på en kjeltring.
Tapo-appen identifiserer seg for lyspæren (eller det den tror er en lyspære) ved å sende den en RSA-publikasjonsnøkkel, som den andre enden bruker til å kryptere en tilfeldig generert AES-nøkkel for å sikre dataene som utveksles under økten.
Men lyspæreenheten gir ingen form for identifikasjon, ikke engang en kontrollsum med en fastkoblet 32-bits nøkkel, tilbake til Tapo-appen.
Så appen har ikke noe annet valg enn å godta øktnøkkelen uten å vite om den kom fra en ekte lyspære eller en bedragerenhet.
Det kombinerte resultatet av disse to feilene er at en angriper på nettverket ditt først kan overbevise deg om at deres useriøse tilgangspunkt var en ekte lyspære som ventet på å bli konfigurert, og dermed lokke deg til feil sted, og deretter overbevise deg om å sende den. en kryptert kopi av dine egne Wi-Fi- og Tapo-passord.
Ironisk nok ville disse lekkede passordene virkelig være sikre mot alle ... bortsett fra bedrageren med det falske tilgangspunktet.
Nummer-brukt-en gang som brukes om og om igjen
Dessverre er det mer.
Når vi sa ovenfor det "disse lekkede passordene ville virkelig være sikre," det var ikke helt riktig.
Sesjonsnøkkelen som ble etablert under nøkkelavtaleprosessen vi beskrev tidligere, blir ikke håndtert riktig, fordi programmererne gjorde en feil i bruken av AES.
Når appen krypterer hver forespørsel den sender til en lyspære, bruker den en krypteringsmodus kalt AES-128-CBC.
Vi vil ikke forklare CBC (chiffer-blokkkjeding) her, men vi vil bare nevne at CBC-modus er utformet slik at hvis du krypterer den samme databiten mer enn én gang (for eksempel gjentatte forespørsler til slå på lyset og slå av lyset, hvor rådataene i forespørselen er de samme hver gang), får du ikke samme utgang hver gang.
Hvis hver lys på og lys av forespørselen kom ut identisk, så en gang en angriper hadde gjettet hva en skru det av pakken så ut, kunne de ikke bare gjenkjenne disse pakkene i fremtiden uten å dekryptere dem, men også spille de samme pakkene på nytt uten å måtte vite hvordan de skal kryptere dem i utgangspunktet.
Som det skjer, er CBC-basert kryptering effektivt avhengig av å "så" krypteringsprosessen for hver del av data ved først å blande en unik, tilfeldig valgt blokk med data inn i krypteringsprosessen, og dermed skape en unik sekvens av krypterte data i resten. av biten.
Disse "frø"-dataene er kjent i sjargongen en IV, en forkortelse for initialiseringsvektor, og selv om det ikke er ment å være hemmelig, må det være uforutsigbart annerledes hver gang.
Enkelt sagt: samme nøkkel + unik IV = unik chiffertekstutgang, men samme nøkkel + samme IV = forutsigbar kryptering.
TP-Link-koderne genererte dessverre en IV samtidig som de opprettet sin AES-sesjonsnøkkel, og brukte deretter den samme IV om og om igjen for hver påfølgende datapakke, selv når tidligere data ble gjentatt nøyaktig.
Det er et kryptografisk nei-nei.
Sendte jeg seks pakker, eller bare fem?
Det siste kryptografiske problemet som forskerne fant er et som fortsatt kan skade sikkerheten selv om initialiseringsvektorproblemet ble fikset, nemlig at gamle meldinger, enten en angriper vet hva de betyr eller ikke, kan spilles av senere som om de var nye.
Vanligvis denne typen replay-angrep håndteres i kryptografiske protokoller av et slags sekvensnummer, eller tidsstempel, eller begge deler, som er inkludert i hver datapakke for å begrense gyldigheten.
Som datoen på en togbillett som gir deg bort hvis du prøver å bruke den to dager på rad, selv om selve billetten aldri blir kansellert av en billettautomat eller stanset av en billettkontrollør, sekvensnumre og tidsstempler i datapakker tjene to viktige formål.
For det første kan ikke angripere registrere trafikk i dag og enkelt spille den av senere og potensielt skape kaos.
For det andre kan buggy-kode som sender forespørsler gjentatte ganger ved en feiltakelse, for eksempel på grunn av tapte svar eller manglende nettverksbekreftelser, oppdages og kontrolleres pålitelig.
Hva gjør jeg?
Hvis du bruker en Tapo-lyspære, hold øynene åpne for fastvareoppdateringer fra TP-Link som løser disse problemene.
Hvis du er en programmerer med ansvar for å sikre nettverkstrafikk og nettverksbaserte produktoppsett, Les gjennom forskningsoppgaven for å sikre at du ikke har gjort lignende feil.
Husk følgende regler:
- Kryptografi handler ikke bare om hemmelighold. Kryptering er bare en del av den kryptologiske "hellige treenigheten" av konfidensialitet (krypter den), autentisitet (bekreft hvem som er i den andre enden), og integritet (pass på at ingen har tuklet med det underveis).
- Sørg for at alle engangsnøkler eller IV-er er virkelig unike. Det vanlige sjargongbegrepet nuncio, brukt for for denne typen data, er en forkortelse for nummer brukt én gang, et ord som tydelig minner deg om at IV-er aldri må gjenbrukes.
- Beskytt mot replay-angrep. Dette er et spesielt aspekt for å sikre autentisitet og integritet vi nevnte ovenfor. En angriper skal ikke kunne fange opp en forespørsel du gjør nå og blindt spille den på nytt senere uten å bli oppdaget. Husk at en angriper ikke trenger å kunne forstå en melding hvis de kan spille den på nytt og potensielt skape kaos.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Bil / elbiler, Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- ChartPrime. Hev handelsspillet ditt med ChartPrime. Tilgang her.
- BlockOffsets. Modernisering av eierskap for miljøkompensasjon. Tilgang her.
- kilde: https://nakedsecurity.sophos.com/2023/08/22/smart-light-bulbs-could-give-away-your-password-secrets/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 125
- 15%
- 25
- 32
- 700
- a
- I stand
- Om oss
- ovenfor
- Absolute
- Aksepterer
- akseptere
- adgang
- tilbehør
- Logg inn
- erkjente
- Ytterligere
- adresse
- AES
- Etter
- en gang til
- mot
- avtalte
- Avtale
- Alle
- tillate
- langs
- også
- Selv
- alltid
- am
- Amazon
- an
- og
- noen
- hva som helst
- app
- ER
- AS
- aspektet
- anta
- At
- angripe
- Angrep
- forfatter
- forfattere
- auto
- automatisk
- gjennomsnittlig
- unngå
- borte
- tilbake
- background-image
- dårlig
- basert
- grunnleggende
- basis
- BE
- fordi
- vært
- BEST
- Bedre
- mellom
- Bit
- blindt
- Blokker
- grensen
- både
- Bunn
- kringkasting
- brute force
- innebygd
- men
- by
- som heter
- kom
- kameraer
- CAN
- fangst
- fange
- hvilken
- årsaker
- sentrum
- sertifikat
- ladet
- sjekk
- kontroll
- valg
- valgt ut
- klart
- Cloud
- kode
- farge
- kombinasjon
- kombinasjoner
- kombinert
- Felles
- Selskapet
- Konfigurasjon
- konfigurert
- Koble
- tilkoblet
- Tilkobling
- kontakt
- kontrolleres
- overbevise
- korrigere
- kunne
- Kurs
- dekke
- crack
- skape
- opprettet
- Opprette
- kryptografisk
- dato
- Dato
- datoer
- Dager
- bestemme
- beskrevet
- designet
- detaljer
- oppdaget
- enhet
- Enheter
- forskjellig
- sifre
- direkte
- avsløring
- Vise
- do
- gjør
- ikke
- ikke
- droppet
- to
- under
- hver enkelt
- Tidligere
- lett
- effektivt
- enten
- ellers
- kryptert
- kryptering
- slutt
- nok
- sikre
- sikrer
- sikrer
- fullstendig
- Tilsvarende
- etablert
- Selv
- etter hvert
- Hver
- nøyaktig
- eksempel
- Unntatt
- utveksling
- utvekslet
- Forklar
- Exploit
- øyne
- Faktisk
- forfalskning
- fôring
- filtrere
- Finn
- Først
- fikset
- feil
- etter
- Til
- Tving
- smi
- skjema
- funnet
- fire
- fra
- framtid
- generelt
- generert
- ekte
- få
- få
- Gi
- gitt
- Go
- Går
- skal
- god
- gjettet
- HAD
- Halvparten
- hender
- skjer
- skade
- hash
- Ha
- å ha
- høyde
- hjelpe
- her.
- hit
- Hjemprodukt
- hover
- Hvordan
- Hvordan
- HTTPS
- i
- Identifikasjon
- identifiserer
- if
- viktig
- in
- inkludert
- inkluderer
- indirekte
- informert
- i stedet
- Internet
- inn
- ISP
- saker
- IT
- Italia
- DET ER
- selv
- sjargong
- bli medlem
- bare
- bare én
- Hold
- nøkkel
- nøkler
- Vet
- Knowing
- kjent
- Siste
- Late
- seinere
- minst
- venstre
- nivåer
- lett
- lyspærer
- i likhet med
- BEGRENSE
- Lytting
- Lang
- så
- ser
- maskin
- laget
- gjøre
- Making
- administrer
- mange
- Margin
- max bredde
- bety
- midler
- ment
- nevnt
- bare
- melding
- meldinger
- minutter
- mangler
- feil
- feil
- Blanding
- Mote
- øyeblikk
- mer
- mest
- må
- navn
- nemlig
- Trenger
- trenger
- nettverk
- Nettverksnavn
- nettverkstrafikk
- nettverksbasert
- aldri
- likevel
- Ny
- nyheter
- neste
- Nei.
- none
- normal
- nå
- Antall
- tall
- of
- off
- offline
- Gammel
- on
- gang
- ONE
- bare
- åpen
- or
- rekkefølge
- Annen
- vår
- ut
- Utfallet
- produksjon
- enn
- egen
- pakker
- Papir
- del
- Passord
- passord
- Patches
- paul
- Utfør
- telefon
- Sted
- planlegging
- plato
- Platon Data Intelligence
- PlatonData
- Spille
- spilt
- Plenty
- Tilkoblet
- Point
- Pops
- posisjon
- mulig
- innlegg
- potensielt
- Forutsigbar
- forebygge
- forrige
- sannsynligvis
- Problem
- fortsette
- prosess
- produsert
- Produkt
- program
- Programmerer
- programmerere
- beskyttet
- protokollen
- protokoller
- gi
- gi
- offentlig
- offentlig Key
- formål
- sette
- raskt
- tilfeldig generert
- heller
- Raw
- klar
- ekte
- virkelig
- grunner
- nylig
- kjenne igjen
- rekord
- redusere
- slektning
- slipp
- husker
- gjentatt
- GJENTATTE GANGER
- svar
- rapporterer
- Rapportering
- anmode
- forespørsler
- forskning
- forskere
- ansvarlig
- REST
- Avslørt
- ikke sant
- Risiko
- vei
- RAD
- rsa
- regler
- Sikkerhet
- Sa
- samme
- sier
- Sekund
- Secret
- sikre
- sikkert
- sikring
- sikkerhet
- se
- synes
- send
- sending
- sender
- sendt
- Sequence
- betjene
- tjeneste
- Session
- sett
- innstilling
- oppsett
- delt
- Kort
- bør
- lignende
- SIX
- Smart
- smarttelefon
- Snoop
- So
- solid
- noen
- Noen
- Rom
- snakke
- spesiell
- fart
- splittet
- stable
- Scene
- Begynn
- startet
- Tilstand
- Still
- rett
- String
- sterk
- senere
- I ettertid
- slik
- sikker
- SVG
- Bytte om
- Ta
- Target
- fortelle
- midlertidig
- begrep
- test
- enn
- Det
- De
- Storbritannia
- deres
- Dem
- deretter
- Der.
- derfor
- Disse
- de
- ting
- tenker
- denne
- De
- trodde
- tre
- Gjennom
- Dermed
- billett
- tid
- ganger
- tidsstempel
- til
- i dag
- tok
- topp
- trafikk
- Tog
- transitt
- overgang
- gjennomsiktig
- prøvd
- trio
- virkelig
- prøve
- SVING
- snudde
- Turning
- to
- typen
- Uk
- forstå
- Uventet
- dessverre
- unik
- ukjent
- til
- oppdateringer
- URL
- us
- usb
- bruke
- brukt
- Bruker
- bruker
- ved hjelp av
- Verifisering
- verifisere
- av
- Sikkerhetsproblemer
- sårbarhet
- venter
- Wall
- var
- Vei..
- we
- web
- Nettsted
- VI VIL
- var
- Hva
- når
- om
- hvilken
- mens
- HVEM
- Wi-fi
- bredde
- vil
- med
- uten
- ord
- ord
- Arbeid
- arbeid
- verre
- verdt
- ville
- Feil
- X-er
- Du
- Din
- zephyrnet