En trio af forskere splittet mellem Italien og Storbritannien har for nylig udgivet et papir om kryptografiske usikkerheder, de fandt i en alment kendt smart pære.
Forskerne ser ud til at have valgt deres målenhed, TP-Link Tapo L530E, på baggrund af, at det er "i øjeblikket [den] bedste sælger på Amazon Italien," så vi ved ikke, hvordan andre smarte pærer holder sig, men deres rapport har alligevel meget at lære os.
Forskerne siger, at:
Vi kontaktede pligtskyldigt TP-Link via deres sårbarhedsforskningsprogram (VRP) og rapporterede alle fire sårbarheder, vi fandt.
De anerkendte dem alle og informerede os om, at de begyndte at arbejde på rettelser både på app'en og på pærefirmware-niveauet, og planlagde at frigive dem med tiden.
På godt og ondt (forfatterne af papiret siger ikke, om der var aftalt nogen offentliggørelsesdatoer med TP-Link, så vi ved ikke, hvor længe virksomheden har arbejdet på sine patches), har forskerne nu afsløret, hvordan deres angreb virker, dog uden at give nogen kopi-og-pasbar angrebskode, som wannabe-hjemmehackere kan udnytte efter forgodtbefindende.
Vi mente derfor, at papiret var værd at kigge nærmere på.
Trådløs opsætning
Som mange såkaldte "smarte" enheder er Tapo L530E designet, så den kan sættes op hurtigt og nemt via Wi-Fi.
Selvom trådløs-baseret konfiguration er almindelig selv for batteridrevne enheder, der kan oplades og opsættes via indbyggede USB-porte, såsom kameraer og cykeltilbehør, har pærer generelt ikke USB-porte, ikke mindst for plads og sikkerhed grunde, da de er designet til at blive sat i og efterlades i en stikkontakt.
Ved at tænde og slukke en Tapo L530E pære gentagne gange på vægkontakten i et sekund ad gangen, kan du tvinge den til opsætningstilstand (tilsyneladende blinker pæren automatisk tre gange for at fortælle dig, hvornår den er klar til konfiguration).
Som de fleste automatisk konfigurerbare enheder får dette smartpæren til at forvandle sig selv til et Wi-Fi-adgangspunkt med et letgenkendeligt netværksnavn på formularen Tapo Bulb XXXX
, hvor X'erne danner en streng af cifre.
Du opretter derefter forbindelse til det midlertidige adgangspunkt, som ikke er adgangskodebeskyttet, fra en app på din smartphone.
Derefter fortæller du pæren, hvordan den skal forbinde både til dit adgangskodebeskyttede Wi-Fi-hjemmenetværk og til din TP-Link cloud-konto fremover, hvorefter pærens firmware kan genstarte og koble sig op på internettet, så du kan administrere den fra appen på din telefon.
Pæren kan tilsluttes hjemmenetværk, hvilket betyder, at du kan kontakte den direkte via dit eget Wi-Fi, når du er hjemme, selvom din internetudbyder er offline på det tidspunkt.
Og pæren kan forbinde over internettet til din cloud-konto, så du også kan sende kommandoer til den indirekte via din cloud-konto, mens du er på farten, for eksempel for at tænde og slukke lys, hvis du kommer for sent ind igen for at give indtryk af, at der er nogen hjemme.
Pas på bedragere
Du kan sikkert gætte, hvor det går hen.
Hvis appen på din telefon ikke har nogen kryptografisk stærk måde at finde ud af, at den virkelig har forbundet til en ægte pære, når du gennemgår opsætningsprocessen...
…så en nærliggende angriber, der tilfældigvis starter en falsk Tapo Bulb XXXX
adgangspunktet på det rigtige tidspunkt kunne lokke dig til at sende disse vigtige opsætningshemmeligheder til deres "imposter bulb"-enhed i stedet for til den ægte vare, og dermed fange både din Wi-Fi-adgangskode og dine TP-Link-kontooplysninger.
Den gode nyhed er, at forskerne bemærkede, at både Tapo-appen og L530E-firmwaren inkluderede et grundlæggende sikkerhedstjek for at hjælpe appen og dine pærer med at finde hinanden pålideligt og dermed reducere risikoen for, at appen ville udslette dine adgangskoder, når den skulle 't.
Men den dårlige nyhed er, at protokol bruges til dette er du virkelig en pære? udveksling var tydeligvis designet til at undgå fejl frem for at forhindre angreb.
Løst sagt lokaliserer appen alle pærer på sit netværk ved at udsende specielle UDP-pakker til port 20002 og se, hvilke enheder der svarer, hvis nogen.
For at hjælpe enhver lyttende pærer med at beslutte, at en er du der? anmodningen kom fra Tapo-appen, snarere end fra et andet ukendt produkt eller en tjeneste, der tilfældigvis også bruger port 20002. Forespørgslen inkluderer, hvad der er kendt i jargonen som en tastet hash.
Jeg er her! svar fra elpæren indeholder den samme slags tastet kontrolsum for at hjælpe appen med at filtrere uventede og uønskede UDP-svar fra.
Enkelt sagt er den nøglede hash en kontrolsum, der ikke kun er baseret på dataene i UDP-pakken, men også nogle ekstra nøglebytes, der også er foldet ind i kontrolsummen.
Desværre bruger Tapo-protokollen faste nøglebytes til sin kontrolsum, med den samme "nøgle" fastkablet i appen og i firmwaren på hver Tapo-pære.
Med andre ord, når nogen har dekompileret enten appen eller pærens firmware eller begge dele og gendannet denne "nøgle", bør du antage, at alle og enhver vil vide, hvad det er, hvilket gør dem til ener du der?/Jeg er her! beskeder, der er trivielle at forfalske.
Endnu værre fandt forskerne ud af, at de ikke behøvede at dekompilere noget, fordi denne ikke-så-hemmelige "nøgle" kun er 32 bit lang, hvilket betyder, at du ved at sætte din egen Tapo-pære i opsætningstilstand og derefter fodre den er du der? beskeder, der bruger alle 232 mulige kontrolsum-nøgler, vil du til sidst ramme den rigtige tast af det, der er kendt som brute force.
Det er den kryptografiske ækvivalent af at dreje skiverne for at prøve hver kombination på en cykellås, f.eks. fra 000
til 999
, indtil du er heldig og låsen åbnes. (I gennemsnit åbner du låsen efter at have prøvet halvdelen af de mulige kombinationer, men det vil aldrig tage dig mere end 1000 gange.)
Faktisk behøvede de ikke at sende 232 beskeder fra appen til en pære for at knække nøglen.
Ved kun at fange én kendt, ægte besked med en gyldig nøglehash i sig, kunne de derefter teste alle mulige nøgler offline, indtil de producerede en besked, der havde den samme nøglehash som den, de havde gemt.
Det betyder, at brute force-angrebet kan fortsætte med CPU-hastighed, ikke kun med Wi-Fi-netværkspakkehastighed, og forskerne siger, at "I vores opsætning lykkedes brute force-angrebet altid på 140 minutter i gennemsnit."
(Vi antager, at de prøvede det gentagne gange bare for at teste, at deres cracking-kode fungerede korrekt, selvom med en fastkablet nøgle, der deles af alle Tapo-pærer, ville bare deres første knæk have været nok.)
Så længe du taler sikkert, er jeg ligeglad med dig, hvem der er
Det næste kryptografiske problem dukkede op i næste fase af opsætningsprocessen for pæren og var en lignende fejl.
Efter at have accepteret en pære som ægte baseret på en nøgle-hash-der-ikke-faktisk-har-en-nøgle, accepterer appen en sessionsnøgle til at kryptere dens trafik med den "ægte" pære...
…men endnu en gang ikke har mulighed for at kontrollere, om nøgleaftalen fandt sted med en rigtig pære eller en bedrager.
At blive enige om en sessionsnøgle er vigtigt, fordi det sikrer, at ingen andre på netværket kan snuse i Wi-Fi- og Tapo-adgangskoden, når de efterfølgende sendes fra Tapo-appen til, hvad den tror er en Tapo-pære.
Men at have ingen verifikationsproces for selve nøgleaftalen er lidt som at oprette forbindelse til et websted over HTTPS og så ikke gider at udføre selv den mest basale kontrol på webcertifikatet, som det sender tilbage: din trafik vil være sikker under transit, men kunne ikke desto mindre gå direkte i hænderne på en skurk.
Tapo-appen identificerer sig selv over for pæren (eller hvad den tror er en pære) ved at sende den en offentlig RSA-nøgle, som den anden ende bruger til at kryptere en tilfældigt genereret AES-nøgle for at sikre de data, der udveksles under sessionen.
Men pæreenheden giver ikke nogen form for identifikation, ikke engang en kontrolsum med en fastkablet 32-bit nøgle, tilbage til Tapo-appen.
Så appen har intet andet valg end at acceptere sessionsnøglen uden at vide, om den kom fra en rigtig pære eller en bedrager.
Det kombinerede resultat af disse to fejl er, at en angriber på dit netværk først kunne overbevise dig om, at deres useriøse adgangspunkt var en ægte pære, der ventede på at blive konfigureret, og dermed lokke dig til det forkerte sted og derefter overbevise dig om at sende den. en krypteret kopi af dine egne Wi-Fi- og Tapo-adgangskoder.
Ironisk nok ville disse lækkede adgangskoder virkelig være sikre mod alle ... undtagen bedrageren med det useriøse adgangspunkt.
Nummer-brugt-en gang, der bruges igen og igen
Desværre er der mere.
Da vi sagde det ovenfor "disse lækkede adgangskoder ville virkelig være sikre," det var ikke helt korrekt.
Sessionsnøglen, der er etableret under nøgleaftaleprocessen, vi beskrev tidligere, håndteres ikke korrekt, fordi programmørerne lavede en bommert i deres brug af AES.
Når appen krypterer hver anmodning, den sender til en pære, bruger den en krypteringstilstand kaldet AES-128-CBC.
Vi vil ikke forklare CBC (chiffer-blok kæde) her, men vi vil blot nævne, at CBC-tilstand er designet således, at hvis du krypterer den samme del af data mere end én gang (såsom gentagne anmodninger til tænde lyset , slukke lyset, hvor rådataene i anmodningen er de samme hver gang), får du ikke det samme output hver gang.
Hvis hver lys på , sluk lyset anmodning kom ud identisk, så når en angriber havde gættet hvad en sluk den pakke så ud, kunne de ikke kun genkende disse pakker i fremtiden uden at dekryptere dem, men også afspille de samme pakker igen uden at skulle vide, hvordan de krypteres i første omgang.
Som det sker, er CBC-baseret kryptering effektivt afhængig af at "så" krypteringsprocessen for hver del af data ved først at blande en unik, tilfældigt udvalgt blok af data ind i krypteringsprocessen, og dermed skabe en unik sekvens af krypterede data i resten af klumpen.
Disse "frø"-data er kendt i jargonen en IV, en forkortelse for initialiseringsvektor, og selvom det ikke er meningen, at det skal være hemmeligt, skal det være uforudsigeligt anderledes hver gang.
Enkelt sagt: samme nøgle + unik IV = unikt chiffertekstoutput, men samme nøgle + samme IV = forudsigelig kryptering.
TP-Link-koderne genererede desværre en IV på samme tid, som de oprettede deres AES-sessionsnøgle, og brugte derefter den samme IV igen og igen for hver efterfølgende datapakke, selv når tidligere data blev gentaget nøjagtigt.
Det er et kryptografisk nej-nej.
Sendte jeg seks pakker eller kun fem?
Det sidste kryptografiske problem, som forskerne fandt, er et, der stadig kunne skade sikkerheden, selvom initialiseringsvektorproblemet blev løst, nemlig at gamle beskeder, uanset om en angriber ved, hvad de betyder eller ej, kan afspilles senere, som om de var nye.
Typisk er denne type replay angreb håndteres i kryptografiske protokoller af en slags sekvensnummer eller tidsstempel eller begge dele, der er inkluderet i hver datapakke for at begrænse dens gyldighed.
Som datoen på en togbillet, der vil give dig væk, hvis du forsøger at bruge den to dage i træk, selvom selve billetten aldrig bliver annulleret af en billetautomat eller udstanset af en billetinspektør, sekvensnumre og tidsstempler i datapakker tjener to vigtige formål.
For det første kan angribere ikke optage trafik i dag og nemt afspille den senere og potentielt skabe kaos.
For det andet kan buggy-kode, der sender anmodninger gentagne gange ved en fejltagelse, f.eks. på grund af mistede svar eller manglende netværksbekræftelser, detekteres og kontrolleres pålideligt.
Hvad skal jeg gøre?
Hvis du bruger en Tapo-pære, hold øjnene åbne for firmwareopdateringer fra TP-Link, der løser disse problemer.
Hvis du er programmør med ansvar for at sikre netværkstrafik og netværksbaserede produktopsætninger, læse igennem forskningspapiret for at sikre, at du ikke har lavet lignende fejl.
Husk følgende regler:
- Kryptografi handler ikke kun om hemmeligholdelse. Kryptering er blot en del af den kryptologiske "hellige treenighed" af fortrolighed (krypter det), ægthed (bekræft, hvem der er i den anden ende), og integritet (sørg for, at ingen har pillet ved det undervejs).
- Sørg for, at alle engangsnøgler eller IV'er er virkelig unikke. Det almindelige jargonbegreb nuntius, brugt til for denne slags data, er en forkortelse for nummer brugt én gang, et ord, der tydeligt minder dig om, at IV aldrig må genbruges.
- Beskyt mod gentagelsesangreb. Dette er et særligt aspekt af at sikre ægthed , integritet vi nævnte ovenfor. En angriber bør ikke være i stand til at fange en anmodning, du laver nu, og blindt afspille den senere uden at blive opdaget. Husk, at en angriber ikke behøver at kunne forstå en besked, hvis de kan afspille den igen og potentielt skabe kaos.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- ChartPrime. Løft dit handelsspil med ChartPrime. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://nakedsecurity.sophos.com/2023/08/22/smart-light-bulbs-could-give-away-your-password-secrets/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 125
- 15 %
- 25
- 32
- 700
- a
- I stand
- Om
- over
- absolutte
- Acceptere
- acceptere
- adgang
- tilbehør
- Konto
- erkendte
- Yderligere
- adresse
- AES
- Efter
- igen
- mod
- aftalt
- Aftale
- Alle
- tillade
- sammen
- også
- Skønt
- altid
- am
- Amazon
- an
- ,
- enhver
- noget
- app
- ER
- AS
- udseende
- antage
- At
- angribe
- Angreb
- forfatter
- forfattere
- auto
- automatisk
- gennemsnit
- undgå
- væk
- tilbage
- background-billede
- Bad
- baseret
- grundlæggende
- grundlag
- BE
- fordi
- været
- BEDSTE
- Bedre
- mellem
- Bit
- blindt
- Bloker
- grænse
- både
- Bund
- Broadcasting
- brute force
- indbygget
- men
- by
- kaldet
- kom
- kameraer
- CAN
- fange
- Optagelse
- hvilken
- årsager
- center
- certifikat
- opladet
- kontrollere
- kontrol
- valg
- valgt
- tydeligt
- Cloud
- kode
- farve
- kombination
- kombinationer
- kombineret
- Fælles
- selskab
- Konfiguration
- konfigureret
- Tilslut
- tilsluttet
- Tilslutning
- kontakt
- kontrolleret
- overbevise
- korrigere
- kunne
- Kursus
- dæksel
- sprække
- skabe
- oprettet
- Oprettelse af
- kryptografisk
- data
- Dato
- Datoer
- Dage
- beslutte
- beskrevet
- konstrueret
- detaljer
- opdaget
- enhed
- Enheder
- forskellige
- cifre
- direkte
- videregivelse
- Skærm
- do
- gør
- Er ikke
- Dont
- droppet
- grund
- i løbet af
- hver
- tidligere
- nemt
- effektivt
- enten
- andet
- krypteret
- kryptering
- ende
- nok
- sikre
- sikrer
- sikring
- helt
- Ækvivalent
- etableret
- Endog
- til sidst
- Hver
- præcist nok
- eksempel
- Undtagen
- udveksling
- udveksles
- Forklar
- Exploit
- Øjne
- Faktisk
- falsk
- fodring
- filtrere
- Finde
- Fornavn
- fast
- fejl
- efter
- Til
- Tving
- smede
- formular
- fundet
- fire
- fra
- fremtiden
- generelt
- genereret
- ægte
- få
- få
- Giv
- given
- Go
- Goes
- gå
- godt
- gættet
- havde
- Halvdelen
- hænder
- sker
- skade
- hash
- Have
- have
- højde
- hjælpe
- link.
- Hit
- Home
- hover
- Hvordan
- How To
- HTTPS
- i
- Identifikation
- identificerer
- if
- vigtigt
- in
- medtaget
- omfatter
- indirekte
- informeret
- i stedet
- Internet
- ind
- ISP
- spørgsmål
- IT
- Italiensk vin
- ITS
- selv
- jargon
- deltage
- lige
- bare en
- Holde
- Nøgle
- nøgler
- Kend
- Kendskab til
- kendt
- Efternavn
- Sent
- senere
- mindst
- til venstre
- niveauer
- lys
- pærer
- ligesom
- GRÆNSE
- Lytte
- Lang
- kiggede
- leder
- maskine
- lavet
- lave
- Making
- administrere
- mange
- Margin
- max-bredde
- betyde
- midler
- betød
- nævnte
- blot
- besked
- beskeder
- minutter
- mangler
- fejltagelse
- fejl
- Blanding
- tilstand
- øjeblik
- mere
- mest
- skal
- navn
- nemlig
- Behov
- behøve
- netværk
- Netværksnavn
- netværkstrafik
- netværksbaseret
- aldrig
- Ikke desto mindre
- Ny
- nyheder
- næste
- ingen
- Ingen
- normal
- nu
- nummer
- numre
- of
- off
- offline
- Gammel
- on
- engang
- ONE
- kun
- åbent
- or
- ordrer
- Andet
- vores
- ud
- Resultat
- output
- i løbet af
- egen
- pakker
- Papir
- del
- Adgangskode
- Nulstilling/ændring af adgangskoder
- Patches
- paul
- Udfør
- telefon
- Place
- planlægning
- plato
- Platon Data Intelligence
- PlatoData
- Leg
- spillet
- Masser
- Tilsluttet
- Punkt
- Pops
- position
- mulig
- Indlæg
- potentielt
- Forudsigelig
- forhindre
- tidligere
- sandsynligvis
- Problem
- Fortsæt
- behandle
- produceret
- Produkt
- Program
- programmør
- Programmører
- beskyttet
- protokol
- protokoller
- give
- leverer
- offentlige
- offentlig nøgle
- formål
- sætte
- hurtigt
- tilfældigt genereret
- hellere
- Raw
- klar
- ægte
- virkelig
- årsager
- for nylig
- genkende
- optage
- reducere
- relative
- frigive
- huske
- gentaget
- GENTAGNE GANGE
- svar
- indberette
- Rapportering
- anmode
- anmodninger
- forskning
- forskere
- ansvarlige
- REST
- Revealed
- højre
- Risiko
- vej
- RÆKKE
- rsa
- regler
- Sikkerhed
- Said
- samme
- siger
- Anden
- Secret
- sikker
- sikkert
- fastgørelse
- sikkerhed
- se
- synes
- send
- afsendelse
- sender
- sendt
- Sequence
- tjener
- tjeneste
- Session
- sæt
- indstilling
- setup
- delt
- Kort
- bør
- lignende
- SIX
- Smart
- smartphone
- Snoop
- So
- solid
- nogle
- Nogen
- Space
- tale
- særligt
- hastighed
- delt
- stable
- Stage
- starte
- påbegyndt
- Tilstand
- Stadig
- lige
- String
- stærk
- efterfølgende
- Efterfølgende
- sådan
- sikker
- SVG
- Kontakt
- Tag
- mål
- fortælle
- midlertidig
- semester
- prøve
- end
- at
- UK
- deres
- Them
- derefter
- Der.
- derfor
- Disse
- de
- ting
- tænker
- denne
- dem
- tænkte
- tre
- Gennem
- Dermed
- billet
- tid
- gange
- tidsstempel
- til
- i dag
- tog
- top
- Trafik
- Tog
- transit
- overgang
- gennemsigtig
- forsøgte
- trio
- virkelig
- prøv
- TUR
- Drejede
- Drejning
- to
- typen
- Uk
- forstå
- Uventet
- desværre
- enestående
- ukendt
- indtil
- opdateringer
- URL
- us
- usb
- brug
- anvendte
- Bruger
- bruger
- ved brug af
- Verifikation
- verificere
- via
- Sårbarheder
- sårbarhed
- Venter
- Væglampe
- var
- Vej..
- we
- web
- Hjemmeside
- GODT
- var
- Hvad
- hvornår
- hvorvidt
- som
- mens
- WHO
- Wi-fi
- bredde
- vilje
- med
- uden
- ord
- ord
- Arbejde
- arbejder
- værre
- værd
- ville
- Forkert
- X'er
- Du
- Din
- zephyrnet