Een drietal onderzoekers verdeeld over Italië en Groot-Brittannië heeft dat onlangs gedaan een paper gepubliceerd over cryptografische onzekerheden die ze vonden in een algemeen bekende slimme gloeilamp.
De onderzoekers lijken hun doelapparaat, de TP-Link Tapo L530E, te hebben gekozen op basis van het feit dat “momenteel [de] bestseller op Amazon Italië,” dus we weten niet hoe andere slimme lampen het doen, maar hun rapport heeft ons toch genoeg te leren.
De onderzoekers zeggen dat:
We hebben plichtsgetrouw contact opgenomen met TP-Link via hun Vulnerability Research Program (VRP) en alle vier de gevonden kwetsbaarheden gerapporteerd.
Ze erkenden ze allemaal en lieten ons weten dat ze begonnen te werken aan oplossingen, zowel op het niveau van de app als op het niveau van de lampfirmware, en van plan waren deze te zijner tijd uit te brengen.
Ten goede of ten kwade (de auteurs van het artikel zeggen niet of er data voor openbaarmaking zijn overeengekomen met TP-Link, dus we weten niet hoe lang het bedrijf aan zijn patches heeft gewerkt), hebben de onderzoekers nu onthuld hoe hun aanvallen werken, zij het zonder enige kopieer- en plakbare aanvalscode die wannabe thuishackers naar believen kunnen misbruiken.
Wij vonden het daarom de moeite van het onderzoeken waard.
Draadloze setup
Zoals veel zogenaamde ‘slimme’ apparaten is de Tapo L530E zo ontworpen dat hij snel en eenvoudig via Wi-Fi kan worden ingesteld.
Hoewel draadloze configuratie zelfs gebruikelijk is voor apparaten op batterijen die kunnen worden opgeladen en ingesteld via ingebouwde USB-poorten, zoals camera's en fietsaccessoires, hebben gloeilampen over het algemeen geen USB-poorten, niet in de laatste plaats vanwege ruimte en veiligheid. redenen, aangezien ze zijn ontworpen om te worden aangesloten op en achtergelaten in een stopcontact.
Door een Tapo L530E-lamp herhaaldelijk één seconde per keer met de wandschakelaar aan en uit te zetten, kun je hem in de instelmodus forceren (blijkbaar knippert de lamp automatisch drie keer om aan te geven wanneer hij klaar is voor configuratie).
Zoals de meeste automatisch configureerbare apparaten zorgt dit ervoor dat de slimme lamp zichzelf verandert in een Wi-Fi-toegangspunt met een gemakkelijk te herkennen netwerknaam in de vorm Tapo Bulb XXXX
, waarbij de X's een reeks cijfers vormen.
Vervolgens maakt u via een app op uw smartphone verbinding met dat tijdelijke toegangspunt, dat niet met een wachtwoord is beveiligd.
Vervolgens vertelt u de lamp hoe hij in de toekomst verbinding moet maken met uw met een wachtwoord beveiligde Wi-Fi-thuisnetwerk en met uw TP-Link-cloudaccount, waarna de firmware van de lamp opnieuw kan opstarten en verbinding kan maken met internet, zodat u deze kunt beheren vanuit de app op je telefoon.
De lamp kan verbinding maken met het thuisnetwerk, wat betekent dat u er rechtstreeks verbinding mee kunt maken via uw eigen Wi-Fi wanneer u thuis bent, zelfs als uw internetprovider op dat moment offline is.
En de lamp kan via internet verbinding maken met uw cloudaccount, zodat u er ook indirect via uw cloudaccount opdrachten naartoe kunt sturen terwijl u onderweg bent, bijvoorbeeld om de verlichting aan en uit te doen als u te laat weer instapt. om de indruk te wekken dat er iemand thuis is.
Pas op voor bedriegers
Je kunt waarschijnlijk wel raden waar dit heen gaat.
Als de app op je telefoon geen cryptografisch sterke manier heeft om erachter te komen dat hij echt verbonden is met een echte gloeilamp wanneer je het installatieproces doorloopt...
…dan een aanvaller in de buurt die toevallig een nep opstart Tapo Bulb XXXX
toegangspunt op het juiste moment zou u ertoe kunnen verleiden deze belangrijke installatiegeheimen naar hun "imposter bulb" -apparaat te sturen in plaats van naar het echte apparaat, waardoor zowel uw Wi-Fi-wachtwoord als uw TP-Link-accountgegevens worden vastgelegd.
Het goede nieuws is dat de onderzoekers hebben opgemerkt dat zowel de Tapo-app als de L530E-firmware een basisveiligheidscontrole bevatten om de app en uw lampen te helpen elkaar betrouwbaar te vinden, waardoor het risico wordt verkleind dat de app uw wachtwoorden eruit flapt wanneer dat zou moeten. 'T.
Maar het slechte nieuws is dat het protocol hiervoor wordt gebruikt ben jij echt een gloeilamp? De uitwisseling was duidelijk bedoeld om fouten te voorkomen en niet om aanvallen te voorkomen.
Losjes gezegd lokaliseert de app alle lampen op zijn netwerk door speciale UDP-pakketten naar poort 20002 uit te zenden en te kijken welke apparaten eventueel reageren.
Om luisterlampen te helpen beslissen dat een Ben je er? Het verzoek kwam van de Tapo-app, in plaats van van een ander onbekend product of een andere dienst die toevallig ook poort 20002 gebruikt. Het verzoek bevat wat in het jargon bekend staat als een ingetoetste hasj.
De Ik ben hier! Het antwoord van de gloeilamp bevat hetzelfde soort ingetoetste controlesom om de app te helpen onverwachte en ongewenste UDP-antwoorden uit te filteren.
Simpel gezegd is de gecodeerde hash een controlesom die niet alleen is gebaseerd op de gegevens in het UDP-pakket, maar ook op enkele extra sleutelbytes die in de controlesom zijn gevouwen.
Helaas gebruikt het Tapo-protocol vaste sleutelbytes voor de controlesom, waarbij dezelfde “sleutel” vast is aangesloten op de app en op de firmware van elke Tapo-lamp.
Met andere woorden, zodra iemand de app, de firmware van de gloeilamp, of beide heeft gedecompileerd en deze “sleutel” heeft teruggevonden, moet je ervan uitgaan dat iedereen zal weten wat het is, waardoor deze eenBen je daar?/Ik ben hier! berichten die triviaal zijn om te vervalsen.
Erger nog, de onderzoekers ontdekten dat ze niets hoefden te decompileren, omdat deze niet zo geheime “sleutel” slechts 32 bits lang is, wat betekent dat door je eigen Tapo-lamp in de instelmodus te zetten en deze vervolgens in te voeren Ben je er? berichten met behulp van alle 232 mogelijke checksum-toetsen, je zult uiteindelijk op de juiste toets drukken, wat bekend staat als brute kracht.
Dat is het cryptografische equivalent van het draaien van de knoppen om elke combinatie op een fietsslot uit te proberen, bijvoorbeeld van 000
naar 999
, totdat je geluk hebt en het slot openspringt. (Gemiddeld open je het slot nadat je de helft van de mogelijke combinaties hebt geprobeerd, maar het kost je nooit meer dan 1000 pogingen.)
Sterker nog, ze hoefden er geen 2 te sturen32 berichten van de app naar een gloeilamp om de sleutel te kraken.
Door slechts één bekend origineel bericht vast te leggen met een geldige gecodeerde hash erin, konden ze vervolgens alle mogelijke sleutels offline testen totdat ze een bericht produceerden met dezelfde gecodeerde hash als het bericht dat ze hadden opgeslagen.
Dat betekent dat de brute force-aanval zou kunnen plaatsvinden op CPU-snelheid, en niet alleen op de pakketsnelheid van het Wi-Fi-netwerk, en de onderzoekers stellen dat “In onze opstelling slaagde de brute force-aanval altijd binnen gemiddeld 140 minuten.”
(We gaan ervan uit dat ze het herhaaldelijk hebben geprobeerd, alleen maar om te testen of hun kraakcode correct werkte, hoewel met een bedrade sleutel die door alle Tapo-lampen werd gedeeld, alleen de eerste kraak voldoende zou zijn geweest.)
Zolang je maar veilig spreekt, kan het mij niet schelen wie dat doet
Het volgende cryptografische probleem deed zich voor in de volgende fase van het installatieproces van de gloeilamp en was een soortgelijke fout.
Na het accepteren van een gloeilamp als echt op basis van een ingetoetste hash-die-eigenlijk-geen-sleutel-heeft, gaat de app akkoord met een sessiesleutel om zijn verkeer te versleutelen met de “echte” lamp…
…maar kan wederom niet controleren of de belangrijkste overeenkomst met een echte gloeilamp of met een bedrieger heeft plaatsgevonden.
Het overeenkomen van een sessiesleutel is belangrijk, omdat dit ervoor zorgt dat niemand anders op het netwerk kan snuffelen in de Wi-Fi- en Tapo-wachtwoorden wanneer deze vervolgens vanuit de Tapo-app worden verzonden naar wat deze denkt dat een Tapo-lamp is.
Maar als u geen verificatieproces voor de belangrijkste overeenkomst zelf heeft, lijkt het een beetje op verbinding maken met een website via HTTPS, en dan niet de moeite nemen om zelfs maar de meest elementaire controle uit te voeren op het webcertificaat dat het terugstuurt: uw verkeer is veilig onderweg, maar niettemin rechtstreeks in de handen van een boef terecht zou kunnen komen.
De Tapo-app identificeert zichzelf met de gloeilamp (of wat hij denkt dat een gloeilamp is) door hem een openbare RSA-sleutel te sturen, die het andere uiteinde gebruikt om een willekeurig gegenereerde AES-sleutel te coderen om de gegevens die tijdens de sessie worden uitgewisseld te beveiligen.
Maar het gloeilampapparaat biedt geen enkele vorm van identificatie, zelfs geen controlesom met een bedrade 32-bits sleutel, terug naar de Tapo-app.
De app heeft dus geen andere keuze dan de sessiesleutel te accepteren zonder te weten of deze afkomstig is van een echte gloeilamp of van een bedrieger.
Het gecombineerde resultaat van deze twee tekortkomingen is dat een aanvaller op uw netwerk u er eerst van kan overtuigen dat zijn frauduleuze toegangspunt een echte gloeilamp is die wacht om te worden geconfigureerd, en u zo naar de verkeerde plaats kan lokken, en u vervolgens kan overtuigen om het te verzenden. een gecodeerde kopie van uw eigen Wi-Fi- en Tapo-wachtwoorden.
Ironisch genoeg zouden die gelekte wachtwoorden echt veilig zijn voor iedereen... behalve de bedrieger met het frauduleuze toegangspunt.
Aantal-eenmalig gebruikt dat keer op keer wordt gebruikt
Helaas is er meer.
Toen we dat hierboven zeiden “Die gelekte wachtwoorden zouden echt veilig zijn,” dat klopte niet helemaal.
De sessiesleutel die tot stand is gekomen tijdens het sleutelovereenkomstproces dat we eerder hebben beschreven, wordt niet correct afgehandeld, omdat de programmeurs een blunder hebben gemaakt bij het gebruik van AES.
Wanneer de app elk verzoek dat naar een gloeilamp wordt verzonden, codeert, gebruikt deze een coderingsmodus genaamd AES-128-CBC.
We zullen CBC niet uitleggen (cipher-block-koppeling) hier, maar we vermelden alleen dat de CBC-modus zo is ontworpen dat als u hetzelfde stuk gegevens meer dan één keer codeert (zoals herhaalde verzoeken om licht aandoen en doe het licht uit, waarbij de onbewerkte gegevens in het verzoek elke keer hetzelfde zijn), krijgt u niet elke keer dezelfde uitvoer.
Als elke licht aan en Lichten uit verzoek kwam op dezelfde manier uit, en zodra een aanvaller had geraden wat een zet het uit pakket eruit zag, konden ze die pakketten in de toekomst niet alleen herkennen zonder ze te decoderen, maar ook diezelfde pakketten opnieuw afspelen zonder dat ze überhaupt hoefden te weten hoe ze ze moesten coderen.
Het komt namelijk voor dat op CBC gebaseerde encryptie effectief afhankelijk is van het ‘zaaien’ van het encryptieproces voor elk stukje data door eerst een uniek, willekeurig gekozen blok data in het encryptieproces te mengen, waardoor een unieke reeks van gecodeerde data in de rest ontstaat. van het stuk.
Deze ‘seed’-gegevens zijn bekend in het jargon en IV, een afkorting van initialisatie vector, en hoewel het niet de bedoeling is dat het geheim is, moet het elke keer weer onvoorspelbaar anders zijn.
Simpel gezegd: dezelfde sleutel + unieke IV = unieke cijfertekstuitvoer, maar dezelfde sleutel + dezelfde IV = voorspelbare codering.
De codeerders van TP-Link genereerden helaas een IV op hetzelfde moment dat ze hun AES-sessiesleutel creëerden, en gebruikten vervolgens dezelfde IV keer op keer voor elk volgend datapakket, zelfs als eerdere gegevens exact werden herhaald.
Dat is een cryptografisch nee-nee.
Heb ik zes pakketten gestuurd, of slechts vijf?
Het laatste cryptografische probleem dat de onderzoekers ontdekten is er een dat de veiligheid nog steeds kan schaden, zelfs als het initialisatievectorprobleem zou worden opgelost, namelijk dat oude berichten, of een aanvaller nu weet wat ze betekenen of niet, later kunnen worden afgespeeld alsof ze nieuw zijn.
Meestal is dit type speel aanval opnieuw af wordt in cryptografische protocollen afgehandeld door een soort volgnummer, of tijdstempel, of beide, dat in elk datapakket is opgenomen om de geldigheid ervan te beperken.
Zoals de datum op een treinkaartje die je verraadt als je hem twee dagen achter elkaar probeert te gebruiken, ook al wordt het kaartje zelf nooit geannuleerd door een kaartjesautomaat of geponst door een kaartjescontroleur, volgnummers en tijdstempels in datapakketten twee belangrijke doelen dienen.
Ten eerste kunnen aanvallers het verkeer van vandaag niet registreren en later gemakkelijk afspelen, waardoor mogelijk grote schade kan worden aangericht.
Ten tweede kan code met fouten die herhaaldelijk per ongeluk verzoeken verzendt, bijvoorbeeld als gevolg van weggevallen antwoorden of ontbrekende netwerkbevestigingen, op betrouwbare wijze worden gedetecteerd en gecontroleerd.
Wat te doen?
Als u een gebruiker van Tapo-gloeilampen bent, houd je ogen open voor firmware-updates van TP-Link die deze problemen aanpakken.
Als u een programmeur bent die verantwoordelijk is voor het beveiligen van netwerkverkeer en netwerkgebaseerde productconfiguraties, doorlezen het onderzoekspapier om er zeker van te zijn dat u geen soortgelijke fouten heeft gemaakt.
Onthoud de volgende regels:
- Cryptografie gaat niet alleen over geheimhouding. Encryptie is slechts een onderdeel van de cryptologische ‘heilige drie-eenheid’ van vertrouwelijkheid (versleutel het), echtheid (controleer wie er aan de andere kant is), en integriteit (zorg ervoor dat niemand er onderweg mee heeft geknoeid).
- Zorg ervoor dat eenmalige sleutels of infusen echt uniek zijn. De gebruikelijke jargonterm nuntius, gebruikt voor dit soort gegevens, is een afkorting voor nummer één keer gebruikt, een woord dat u er duidelijk aan herinnert dat infusen nooit mogen worden hergebruikt.
- Bescherm tegen herhalingsaanvallen. Dit is een bijzonder aspect van het garanderen van de echtheid en integriteit wij hierboven vermeldden. Een aanvaller zou niet in staat moeten zijn een verzoek dat u nu doet, te onderscheppen en het later blindelings opnieuw af te spelen zonder opgemerkt te worden. Houd er rekening mee dat een aanvaller een bericht niet hoeft te kunnen begrijpen als hij het opnieuw kan afspelen en mogelijk schade kan aanrichten.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- ChartPrime. Verhoog uw handelsspel met ChartPrime. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://nakedsecurity.sophos.com/2023/08/22/smart-light-bulbs-could-give-away-your-password-secrets/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 125
- 15%
- 25
- 32
- 700
- a
- in staat
- Over
- boven
- absoluut
- ACCEPTEREN
- te accepteren
- toegang
- accessoires.
- Account
- erkend
- Extra
- adres
- AES
- Na
- weer
- tegen
- afgesproken
- Overeenkomst
- Alles
- Het toestaan
- langs
- ook
- Hoewel
- altijd
- am
- Amazone
- an
- en
- elke
- iets
- gebruiken
- ZIJN
- AS
- verschijning
- ervan uitgaan
- At
- aanvallen
- Aanvallen
- auteur
- auteurs
- auto
- webmaster.
- gemiddelde
- vermijd
- weg
- terug
- background-image
- slecht
- gebaseerde
- basis-
- basis
- BE
- omdat
- geweest
- BEST
- Betere
- tussen
- Beetje
- blindelings
- Blok
- grens
- zowel
- Onder
- Omroep
- brute kracht
- ingebouwd
- maar
- by
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- kwam
- camera's
- CAN
- vangen
- Het vastleggen
- verzorging
- oorzaken
- Centreren
- certificaat
- opgeladen
- controle
- controleren
- keuze
- uitgekozen
- duidelijk
- Cloud
- code
- kleur
- combinatie van
- combinaties
- gecombineerde
- Gemeen
- afstand
- Configuratie
- geconfigureerd
- Verbinden
- gekoppeld blijven
- Wij verbinden
- contact
- gecontroleerd
- overtuigt
- te corrigeren
- kon
- Type cursus
- deksel
- barst
- en je merk te creëren
- aangemaakt
- Wij creëren
- cryptografische
- gegevens
- Datum
- Data
- dagen
- beslissen
- beschreven
- ontworpen
- gegevens
- gedetecteerd
- apparaat
- systemen
- anders
- cijfers
- direct
- onthulling
- Display
- do
- doet
- Nee
- Dont
- liet vallen
- twee
- gedurende
- elk
- Vroeger
- gemakkelijk
- effectief
- beide
- anders
- versleutelde
- encryptie
- einde
- genoeg
- verzekeren
- waarborgt
- zorgen
- geheel
- Gelijkwaardig
- gevestigd
- Zelfs
- uiteindelijk
- Alle
- precies
- voorbeeld
- Behalve
- uitwisseling
- uitgewisseld
- Verklaren
- Exploiteren
- Ogen
- feit
- nep
- voeden
- filter
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- Voornaam*
- vast
- gebreken
- volgend
- Voor
- Dwingen
- smeden
- formulier
- gevonden
- vier
- oppompen van
- toekomst
- algemeen
- gegenereerde
- echt
- krijgen
- het krijgen van
- Geven
- gegeven
- Go
- Goes
- gaan
- goed
- geraden
- HAD
- Helft
- handen
- gebeurt
- schaden
- hachee
- Hebben
- met
- Hoogte
- hulp
- hier
- Hit
- Home
- zweven
- Hoe
- How To
- HTTPS
- i
- Identificatie
- identificeert
- if
- belangrijk
- in
- inclusief
- omvat
- indirect
- op de hoogte
- verkrijgen in plaats daarvan
- Internet
- in
- ISP
- problemen
- IT
- Italië
- HAAR
- zelf
- jargon
- mee
- voor slechts
- eentje maar
- Houden
- sleutel
- toetsen
- blijven
- Weten
- bekend
- Achternaam*
- Laat
- later
- minst
- links
- niveaus
- licht
- gloeilampen
- als
- LIMIT
- Het luisteren
- lang
- keek
- op zoek
- machine
- gemaakt
- maken
- maken
- beheer
- veel
- Marge
- max-width
- gemiddelde
- middel
- betekende
- vermeld
- alleen
- Bericht
- berichten
- minuten
- vermist
- fout
- fouten
- Menging
- Mode
- moment
- meer
- meest
- Dan moet je
- naam
- namelijk
- Noodzaak
- nodig
- netwerk
- Netwerknaam
- netwerk verkeer
- netwerkgebaseerd
- nooit
- niettemin
- New
- nieuws
- volgende
- geen
- Geen
- een
- nu
- aantal
- nummers
- of
- korting
- offline
- Oud
- on
- eens
- EEN
- Slechts
- open
- or
- bestellen
- Overige
- onze
- uit
- Resultaat
- uitgang
- over
- het te bezitten.
- pakketten
- Papier
- deel
- Wachtwoord
- wachtwoorden
- Patches
- Paul
- Uitvoeren
- phone
- plaats
- planning
- Plato
- Plato gegevensintelligentie
- PlatoData
- Spelen
- gespeeld
- Overvloed
- Plugged
- punt
- Pops
- positie
- mogelijk
- Berichten
- mogelijk
- Voorspelbaar
- voorkomen
- vorig
- waarschijnlijk
- probleem
- gaan
- geproduceerd
- Product
- Programma
- Programmeur
- Programmeurs
- beschermd
- protocol
- protocollen
- zorgen voor
- het verstrekken van
- publiek
- public Key
- doeleinden
- zetten
- snel
- willekeurig gegenereerd
- liever
- Rauw
- klaar
- vast
- werkelijk
- redenen
- onlangs
- herken
- record
- vermindering
- relatief
- los
- niet vergeten
- herhaald
- HERHAALDELIJK
- antwoord
- verslag
- Rapportage
- te vragen
- verzoeken
- onderzoek
- onderzoekers
- verantwoordelijk
- REST
- Revealed
- rechts
- Risico
- weg
- RIJ
- rsa
- reglement
- Veiligheid
- Zei
- dezelfde
- ervaren
- Tweede
- Geheim
- beveiligen
- vast
- beveiligen
- veiligheid
- te zien
- lijken
- sturen
- verzending
- verzendt
- verzonden
- Volgorde
- dienen
- service
- Sessie
- reeks
- het instellen van
- setup
- gedeeld
- Bermuda's
- moet
- gelijk
- ZES
- slim
- smartphone
- Snuffelen
- So
- solide
- sommige
- Iemand
- Tussenruimte
- spreken
- special
- snelheid
- spleet
- stack
- Stadium
- begin
- gestart
- Land
- Still
- recht
- Draad
- sterke
- volgend
- Hierop volgend
- dergelijk
- zeker
- SVG
- Stap over voor slechts
- Nemen
- doelwit
- vertellen
- tijdelijk
- termijn
- proef
- neem contact
- dat
- De
- Brittannië
- hun
- Ze
- harte
- Er.
- daarom
- Deze
- ze
- ding
- denkt
- dit
- die
- gedachte
- drie
- Door
- Dus
- ticket
- niet de tijd of
- keer
- tijdstempel
- naar
- vandaag
- nam
- top
- verkeer
- Trainen
- doorvoer
- overgang
- transparant
- probeerden
- trio
- echt
- proberen
- BEURT
- Gedraaid
- Draai
- twee
- type dan:
- Uk
- begrijpen
- Onverwacht
- helaas
- unieke
- onbekend
- tot
- updates
- URL
- us
- usb
- .
- gebruikt
- Gebruiker
- toepassingen
- gebruik
- Verificatie
- controleren
- via
- kwetsbaarheden
- kwetsbaarheid
- Het wachten
- Gevel
- was
- Manier..
- we
- web
- Website
- GOED
- waren
- Wat
- wanneer
- of
- welke
- en
- WIE
- Wi-fi
- Breedte
- wil
- Met
- zonder
- Woord
- woorden
- Mijn werk
- werkzaam
- erger
- waard
- zou
- Verkeerd
- X's
- You
- Your
- zephyrnet