2 Punkte von GN⁺ 2024-07-02 | 1 Kommentare | Auf WhatsApp teilen
  • Wenn man auf dem Sleep Number Hub über die UART-Konsole und U-Boot-Umgebungsvariablen Root-Zugriff erhält, lässt sich ein lokaler Steuerungspfad einrichten, der nicht über die SleepIQ-Server läuft
  • Das bisherige Homebridge-Plugin rief alle 5 Sekunden die SleepIQ API auf und belastete bei mehreren Tausend Nutzern das Netzwerk von Sleep Number, weshalb um Deaktivierung gebeten wurde
  • Zielgerät ist der Sleep Number Hub 360SIQ01D; entscheidend sind die J16-UART-Pins, eine Konsole mit 115200 Baud, ein FAT32- oder Ext3-USB-Laufwerk sowie die Registrierung eines öffentlichen SSH-Schlüssels
  • Nach dem Root-Zugriff lassen sich mit Python 2.7.18 auf dem Hub und /bam/scripts über einen HTTP-Server auf Port 8000 Einstellungen und Status des Betts im lokalen Netzwerk verwalten
  • Der Hub kann SSH-Reverse-Tunnel zu den Servern von Sleep Number öffnen; wenn lokale Steuerung ausreicht, ist es sicherer, die externe Internetverbindung zu trennen und Bluetooth oder interne Steuerung zu nutzen

Wie es zur Suche nach lokalem Zugriff kam

  • Ziel war es, ein Sleep-Number-Bett im lokalen Netzwerk zu steuern, ohne über die SleepIQ-Server zu gehen
  • Ein zuvor erstelltes homebridge-Plugin ermöglichte es, Betteinstellungen über HomeKit oder Automatisierungen zu steuern
    • Besonders der bed presence-Wert, der anzeigt, ob jemand im Bett liegt, war für Automatisierungen wie Licht ausschalten oder Türen verriegeln nützlich
  • Das Plugin rief alle 5 Sekunden die SleepIQ API auf und belastete mit wachsender Nutzerzahl im Tausenderbereich das Netzwerk von Sleep Number
    • Sleep Number bat darum, das Plugin zu deaktivieren
    • Außerdem gab es das Problem, dass das Branding des Repositorys wie ein offizielles Tool von Sleep Number wirken konnte
  • Die bisherige Arbeit wurde später im neuen Plugin homebridge-bed-control fortgeführt
    • Das neue Plugin deaktiviert das Monitoring von bed presence standardmäßig und zeigt vor der Aktivierung eine Warnung an

Auf dem Hub-Hardwareboard gefundener Zugriffspfad

  • Zunächst wurde der J10-Header nahe der CPU untersucht, dort ließen sich aber keine UART-Daten gewinnen
    • In dieser CPU-Konfiguration waren die UART-Leitungen nicht herausgeführt
  • Um UART-Signale zu finden, wurde ein Logic Analyzer an die 10 Header-Pins des J16-Headers auf der Unterseite des Boards angeschlossen
  • Nach dem Anschluss eines UART-TTY-Geräts war Zugriff auf die Gerätekonsole möglich
  • Durch Dumpen des Flash-Speichers wurden Dateisystem und Schwachstellen untersucht, aber es wurde keine Backdoor gefunden, über die sich ohne UART jeder einloggen könnte
  • Stattdessen wurde eine Wartungs-Backdoor entdeckt, über die Sleep Number per SSH auf den Hub zugreifen kann
    • Da der Hub mit dem internen Heimnetzwerk verbunden ist, kann dieser Zugriffspfad bis ins interne Netzwerk führen
    • Empfohlen wird, die WLAN-Verbindung zu trennen und soweit möglich Bluetooth-Steuerung zu verwenden

Vorbereitung und Zielgerät

  • Das Verfahren wurde am Modell Sleep Number Hub 360SIQ01D durchgeführt
  • Benötigt werden ein UART-TTY-Gerät und Werkzeuge zum Verbinden mit dem Board
    • USB-C auf UART oder USB-A auf UART
    • Ein Raspberry Pi Pico W kann dauerhaft intern installiert werden, um bei nicht funktionierendem SSH Remote-Konsolenzugriff zu ermöglichen
    • 2,54-mm-Pin-Header und Lötkolben oder PCB-Clip-Klemmen
  • Für die Kommunikation mit dem Board wird eine serielle Konsole benötigt
    • Unter Linux und Mac kann minicom verwendet werden
    • Unter Windows kann PuTTY verwendet werden
  • Ein USB-A-Flash-Laufwerk muss im Format FAT32 oder Ext3 formatiert sein
  • Falls am verwendeten Hub bereits ein USB-Gerät eingesteckt ist, könnte es ein WLAN-Dongle sein; ohne dieses Gerät kann eine Boot-Schleife auftreten

Kernablauf für Root-Zugriff

  • Das UART-Gerät wird mit dem J16-Header des Boards verbunden
    • Pin 1: TX, Signal in den Hub hinein
    • Pin 2: RX, Signal aus dem Hub heraus
    • Pin 3: Masse
  • Die serielle Konsole wird auf 115200 Baud eingestellt
  • Nach dem Einschalten des Hubs muss innerhalb von 2 Sekunden die Leertaste gedrückt werden, um den automatischen Bootvorgang anzuhalten
  • Die U-Boot-Umgebungsvariablen sollten zunächst mit printenv -a gesichert werden
    • Da eventuell eine Wiederherstellung der Standardwerte nötig ist, sollte festgehalten werden, ob Unterschiede zur aktuellen Umgebung bestehen
  • In bootcmd wird der Teil run set_bootargs; entfernt, damit die Boot-Argumente manuell gesetzt werden können
  • Da sich das /init-Skript in einem gehashten Boot-ROM befindet und nicht direkt geändert werden kann, wird der Inhalt von /init zur Laufzeit über bootargs verändert
    • Das Standardskript sucht nach einer verschlüsselten Datei, die mit der Zeichenfolge let_me_root entschlüsselt wird
    • Die Entschlüsselungszeile wird durch den entschlüsselten Wert ersetzt, um die Anforderung an die verschlüsselte Datei zu umgehen
  • Beim ersten Boot wird ein USB-Laufwerk mit der Datei let_me_root benötigt
    • Wenn nach dem Booten auf der Konsole der Prompt root@bam-se:~# erscheint, befindet man sich in einer Root-Shell
  • Anschließend wird die Root-Partition erneut im Lese-/Schreibmodus gemountet und die Datei /root/let_me_root erstellt, damit der Zugriff auch ohne USB erhalten bleibt

SSH-Zugriff einrichten

  • Nach Erhalt des Root-Prompts wird ein öffentlicher SSH-Schlüssel zu /root/.ssh/authorized_keys hinzugefügt, um Netzwerkzugriff einzurichten
  • Auf dem lokalen Rechner, von dem aus zugegriffen werden soll, muss ein SSH-Schlüssel erzeugt werden
    • Der Beispielbefehl lautet ssh-keygen -t ed25519
    • Im erklärenden Text wird ein ecdsa-Schlüssel empfohlen, das konkrete Beispiel verwendet jedoch ed25519
  • Nach dem Hinzufügen des öffentlichen Schlüssels wird der Zugriff mit ssh root@$hub_ip -i <path to id_ed25519> getestet
  • Wenn die Verbindung nicht funktioniert, sollten Format und Inhalt von authorized_keys geprüft werden
    • Es heißt, dass diese Datei zwei Schlüssel enthalten sollte

Lokalen Netzwerk-Steuerungsserver erstellen

  • Root-Zugriff allein reicht nicht aus, um die Steuerfunktionen der Bett-App bequem zu ersetzen; deshalb wird auf dem Hub ein lokaler HTTP-Server ausgeführt
  • Der Hub enthält Python 2.7.18
    • Der letzte Updatezeitpunkt des Hubs scheint 2018 zu sein
    • Python 2.7.18 enthält das Paket simpleHTTPServer, das die benötigten Funktionen bereitstellt
  • script_server.py öffnet auf Port 8000 einen HTTP-Server und führt Skripte in /bam/scripts aus
    • Der URL-Pfad wird zum Skriptnamen
    • Mehrere arg-Query-Parameter können übergeben und als Skriptargumente genutzt werden
    • Das Ergebnis der Ausführung wird im Browser angezeigt
  • Das Skript wird in der Form scp -O script_server.py root@$hub_ip:~ auf den Hub kopiert
  • Für einen automatischen Start nach dem Neustart muss es an ein Startskript angehängt oder ein rc.d-Skript hinzugefügt werden

Automatische Ausführung nach dem Neustart einrichten

  • Die laufende OS-Instanz läuft in einem chroot, das vom /init-Skript des Bootloaders erstellt wurde
  • Viele Systemdateien liegen auf einer tmpfs-Partition; direkte Änderungen bleiben daher nach einem Neustart nicht erhalten
  • Wenn die Festplattenpartition mit den Originaldateien separat gemountet wird, lassen sich die ursprünglichen /etc-Dateien ändern, die nach dem Neustart kopiert werden
  • Es wird ein Init-Skript in der Form script_server.sh erstellt, auf den Hub kopiert und in tmp/etc/init.d der ursprünglichen Root-Partition abgelegt
  • In rc0.d, rc3.d, rc4.d, rc5.d, rc6.d werden symbolische Links hinzugefügt, damit es beim Starten und Herunterfahren ausgeführt wird
  • Wenn nach dem Neustart im Browser unter http://$hub_ip:8000/bamstat Statusinformationen des Hubs erscheinen, läuft der Server korrekt

Steuerungsmöglichkeiten mit dem /bio-Skript

  • /bio scheint das zentrale Steuerungsskript des Betts zu sein
  • Befehle werden in der Form /bio?arg=XXXX übergeben
  • Sleep-Number-Werte können abgefragt und gesetzt werden
    • PSNL, PSNR: letzte Einstellwerte der linken und rechten Bettseite abfragen
    • PSNl, PSNr: aktuelle Werte der linken und rechten Bettseite abfragen
    • PSNX: letzte Einstellwerte und aktuelle Werte beider Seiten abfragen
    • PSNS&arg=L100: Sleep-Number-Wert links auf 100 setzen, Wertebereich 5..100
  • Anwesenheitserkennung und Privatsphäre-Einstellungen lassen sich ebenfalls steuern
    • SPAU: Privatsphäre-Einstellung abfragen
    • SPAU&arg=on: Privatsphäre-Einstellung einschalten, mit off ausschalten
    • LBPL, LBPR, LBPX: Anwesenheitswerte links, rechts bzw. beidseitig abfragen
  • Auch Responsive Air, Bettposition, Beleuchtung und Fußwärme sind enthalten
    • LRSG: Responsive-Air-Einstellungen beider Seiten abfragen
    • LRLE&arg=on, LRRE&arg=off: Responsive-Air-Einstellungen links/rechts ändern
    • MFST: Kopf- und Fußposition abfragen
    • MFUL, MFUR, MFFL, MFFR: Kopf- und Fußposition links/rechts einstellen
    • MFO3, MFSO: Status sowie Helligkeits- und Timer-Einstellungen von Unterbettbeleuchtung oder Steckdose
    • FWGL, FWGR, FWSL, FWSR: Stufe und Timer der Fußheizung links/rechts abfragen und einstellen
    • SBAS: Bett-Referenzwerte setzen
  • /bio?arg=help zeigt eine Liste ausführbarer Befehle
    • Wird beim help-Aufruf ein Befehl als zweites Argument hinzugefügt, erscheinen Detailinformationen zu diesem Befehl
  • Das bio-Skript enthält außerdem Foundation-Presets, Schnarch-Einstellungen, DualTemp-Steuerung und Statusinformationen
    • Bei destruktiven Befehlen wie factory reset oder Funksteuerung ist Vorsicht geboten
    • In der vom Autor verwendeten bio-Version war die Reihenfolge des Eintrags MFSO in LIST falsch; um ihn aufzurufen, musste er einige Zeilen nach oben verschoben werden

Nach dem Zugriff untersuchbare Bereiche und Sicherheitsbedenken

  • Die Steuerfunktionen des Betts sind im Root-Verzeichnis /bam gebündelt
    • Wenn man die dortigen Skripte untersucht, lässt sich nachvollziehen, wie der Hub funktioniert
  • Es wurde nach einer Backdoor gesucht, die ohne UART zugänglich ist, aber offensichtliche Zugriffskanäle waren geschlossen
  • Der Hub öffnet bei der Kommunikation mit den Sleep-Number-Servern einen SSH-Tunnel und stellt einen Reverse-Tunnel bereit, den Entwickler für Wartung nutzen können
  • Da externe Nutzer möglicherweise direkt Zugriff auf das interne Heimnetzwerk erhalten könnten, wird erwogen, die externe Internetverbindung des Hubs zu trennen, sobald interne Netzwerk-Steuerungsskripte ausreichen
  • Eine einfache Progressive Web App, die die SleepIQ-App direkt ersetzen kann, ist ebenfalls ein möglicher nächster Schritt

1 Kommentare

 
GN⁺ 2024-07-02
Hacker-News-Kommentare
  • Ziemlich absurd. Ich hatte früher mal so ein Bett, aber das war vor der Zeit, als alles smart werden musste. An die Pumpe waren zwei kabelgebundene Controller angeschlossen, und die Controller hatten eine Zahlenanzeige sowie Tasten zum Hoch- und Runterstellen
    Es brauchte kein Internet, keinen Linux-basierten Mikrocontroller, das Bett konnte nicht gehackt werden, und man konnte bequem schlafen

    • Immer wenn ich denke: „Das ist doch völlig übertriebene Überkomplexität“, versuche ich mir vorzustellen, wie sehr es das Leben mancher Menschen vereinfachen könnte
      Wenn jemand zum Beispiel eine Bewegungsstörung hat, von Parkinson bis zur Tetraplegie, kann es ein riesiger Vorteil sein, an einen gemeinsamen Controller angebunden zu sein, der per Sprache oder standardisierten Eingabemethoden funktioniert. Dann muss man sich nicht mit den jeweils unterschiedlichen Grenzen der Barrierefreiheit einzelner Produkte herumschlagen
      Für Menschen ohne körperliche Einschränkungen wirken die meisten Smart-Home-Geräte fast nutzlos, für andere können sie aber eine Lebensader sein
    • So ein Bett würde ich kaufen. Dass man dafür auch noch Wi‑Fi-Konnektivität braucht, ist seltsam. Das bedeutet ja noch mehr Hardware, als es einfach nur in die Steckdose zu stecken, und das ist doch verrückt
  • Mich interessiert der Teil: „Wenn der Hub mit den Sleep-Number-Servern kommuniziert, öffnet er einen SSH-Tunnel und stellt einen Reverse-Tunnel bereit, damit Entwickler sich bei Bedarf zur Wartung mit dem Hub verbinden können“
    Ich würde gern sehen, ob sie Public-Key-Authentifizierung oder Passwörter verwenden und ob beim Tunneln ins Haus IPs oder DNS genutzt werden. Wenn die Bedingungen genau passen, wäre das womöglich die lustigste DNS-Hijacking-Konfiguration der Menschheitsgeschichte
    Um Homer Simpsons unsterbliche Worte zu zitieren: Das Bett geht hoch, das Bett geht runter

    • Oldschool: SIM-Swapping-Angriffe auf Krypto-Besitzer
      Newschool: Da Sleep-Number-Betten mit Bestelldaten verknüpft sind, dringt man bei Sleep Number ein, sucht sich ein Ziel, verbindet sich per SSH mit dessen Bett, pivotiert dann ins Heimnetzwerk und stiehlt die Krypto-Wallets
      Das Geld wird ja ohnehin immer unter der Matratze versteckt ;)
    • Falls man vor dem Kauf nicht darüber informiert wurde, sollten Bettbesitzer dann nicht klagen? Sich unbefugt Zugang zum Netzwerk zu verschaffen und eine Backdoor einzubauen, ist doch eine Straftat, oder?
  • Warum muss ein Bett überhaupt Linux ausführen? Warum?
    Ich habe das Gefühl, in der dümmsten aller möglichen Zeitlinien zu leben. Was war falsch an einem ganz normalen Bett ohne 1 GB RAM und komplettes Betriebssystem? Es ist überall dasselbe. Schon eine Waschmaschine zu finden, die nicht mit Wi‑Fi verbunden ist, war mühsam, und der Gedanke, das in zehn Jahren wieder tun zu müssen, ist schrecklich
    Als jemand, der aus Spaß oder fürs Geld O(1000) „smarte“ Geräte geknackt hat, will ich so etwas nicht im Haus haben. Aber wegen dieses Wahnsinns wie einem Linux-betriebenen Bett wird es immer schwerer, dem auszuweichen. Ich wünschte wirklich, es würde aufhören

    • Ein Bett muss nicht komplex sein. Früher konnte ein Bett mit Z80 und 32K RAM alles erledigen, was ein Bett eben tun musste. Der Tag, an dem ich mein erstes kooperativ multitaskendes Bett gekauft habe, war wirklich monumental, und hochdichte Bettdecken haben alles verändert
      Was ich allerdings nicht vermisse: mit einer leeren Vinylplatte in die öffentliche Bibliothek zu gehen, um Software-Updates zu holen. Wenn man das vergaß, bekam man Bettwanzen
    • https://imgur.com/6wbgy2L
      „Das modernste Technikprodukt, das ich besitze, ist ein Drucker aus dem Jahr 2004, und falls er jemals unerwartete Geräusche macht, halte ich eine geladene Waffe bereit, um ihn sofort zu erschießen“
    • Ein Bett führt Linux aus, weil wir in einer Zeit leben, in der wir uns für bessere Ergebnisse selbst vermessen
      Vor einem Jahrhundert haben wir Antibiotika entdeckt, und das war ein großer Fortschritt. Danach haben wir viele klar umrissene Krankheiten und klare Behandlungen gefunden, und jetzt bleiben die komplexen und subtilen Dinge übrig. Dieses Bett führt Linux aus, um Auskunft über deinen Schlafzustand zu geben
      Schlechter Schlaf hat meist schwächere, aber vielfältige negative Auswirkungen, und wenn man sie kennt, kann man etwas dagegen tun. Es ist gewissermaßen jede Nacht eine Schlafuntersuchung mit niedriger Intensität, und das kann wertvolle Information sein
      Sleep-Number-Betten kosten mehrere tausend Dollar, also sollte man ihnen gut aus dem Weg gehen können, wenn man das will
    • Ich empfinde genauso. Das Gute an diesem Trend ist immerhin, dass ich dadurch viel ältere, gebrauchte und reparierbare Dinge deutlich günstiger kaufen konnte und nach und nach auch kleine Reparaturen an alter Elektronik gelernt habe
      Das ist großartig für den Geldbeutel und gibt ein gutes Gefühl, weil man funktionierende Dinge nicht auf der Deponie landen lässt. Reduzieren, wiederverwenden, recyceln steht nicht umsonst in genau dieser Reihenfolge
    • Wenigstens läuft darauf nicht Windows
  • Zuerst war ich völlig überzeugt, dass dies ein Artikel über das Hacken eines Eight-Sleep-Betts ist, geschrieben von jemandem, der den Firmennamen aus rechtlichen Gründen nicht direkt nennen wollte
    Aber dann habe ich das Foto eines offenbar tatsächlich existierenden „Number Sleep Hub“ gesehen und den Verstand verloren. Es gibt also gleich zwei Firmen, die wassergekühlte Betten bauen, eine heißt Eight Sleep und die andere Sleep Number — diese Zeitlinie ist einfach zu seltsam. Es fühlt sich an, als hätte der Zufallszahlengenerator dieser Instanz einen schlechten Seed bekommen

    • Der Name Sleep Number kommt von der Härtegrad-Einstellung der Matratze. Man wählt seine eigene „sleep number“, und der Partner wählt seinen Wert auf der anderen Bettseite
    • Ich halte es für einen lustigen Zufall, aber es wirkt auch so, als hätte Eight Sleep absichtlich einen mit Sleep Number verwechselbaren Namen gewählt, gerade so, dass es nicht sofort verklagt wird
    • Die Marke Sleep Number gibt es vermutlich schon seit den 80ern. Ich habe sie nie selbst benutzt, aber es ist definitiv eine alte Marke. Außerhalb der USA hat man vielleicht nie von ihr gehört
    • Sleep-Number-Betten sind im Grunde einfach riesige, matratzenförmige rechteckige Luftkammern in einem Schaumstoffgrab
      https://i.ytimg.com/vi/pMiTq6YkJ2c/maxresdefault.jpg
      Die Leute zahlen also buchstäblich ein paar tausend Dollar für ein luxuriöses verstellbares Luftbett mit etwas Schaumstoff obendrauf
    • Ich hatte von beiden noch nie gehört und dachte daher, der Titel sei eine Metapher dafür, „wie man Root-Zugriff auf das Gehirn bekommt, um die Schlafqualität zu verbessern“
      Ich hoffe, solche Betten haben physische Bedienelemente, die man auch im Dunkeln ertasten kann. Wenn ich zum Verstellen beim Einschlafen mein Smartphone vor das Gesicht halten muss, zweifle ich daran, dass Bett- und Matratzenhersteller wirklich wissen, was gut und was schlecht für die Schlafqualität ist
  • Es gibt einen ähnlichen Weg, in den Eight Sleep Pod 3 zu gelangen [0]. Einige Modelle enthalten eine modifizierbare MicroSD-Karte, sodass weniger zusätzliche Hardware nötig ist
    Die im Artikel beschriebene Methode könnte ein guter Ansatz sein, um auf Pods ohne Karte Root-Zugriff zu erhalten. Ich habe allerdings gerade erfahren, dass Eight Sleep zwar Firmware-Updates signiert, aber den privaten Schlüssel, mit dem diese Updates signiert werden, im selben Paket mitliefert
    [0]: https://github.com/bobobo1618/ninesleep

    • Ironischerweise bringt mich das eher dazu, mir eines zu kaufen. Wenn man so ein Smart-Gerät lokalisieren oder per Home Assistant steuern und die Internetverbindung kappen kann, wirkt es gar nicht so schlecht
      Natürlich sind 2.000 bis 4.000 Dollar teuer, aber als einmalige Ausgabe für etwa 10 Jahre wäre das vertretbar. Wenn ich aber 4.000 Dollar bezahle und dann noch 25 Dollar im Monat abdrücken soll, ist das absurd
  • Ich frage mich, ob das schon jemand bei Eight Sleep gemacht hat. Dass man die Temperatur des Betts nicht regeln kann, nur weil das Internet ausgefallen ist, ist wirklich zutiefst unerquicklich

    • Was ist das für eine neue Art von Hölle? Warum muss es überhaupt mit dem Internet verbunden sein?
    • Bei mir lösen Decken 95 % des Problems, und in Skihütten erledigt eine billige elektrische Matratzenauflage die restlichen 5 %
    • Ich wollte mir ein Eight Sleep kaufen, aber als ich erfahren habe, dass sie so etwas machen, war mein Interesse sofort weg. Ich zahle doch nicht über 1.000 Dollar für einen Matratzenbezug und dann auch noch „Miete“, damit das Ding funktioniert
  • Ich werde kein Sleep Number kaufen
    Ich habe mehrere Jahre auf einer Luftmatratze geschlafen, und nachdem der Hersteller die Produktion nach China ausgelagert hatte, sind bei zwei Matratzen die Nähte der inneren Trennwände aufgeplatzt

  • Ich wünschte, die Leute würden aufhören, so einen Unsinn zu verbreiten wie
    „Wenn du dieser Anleitung folgst, musst du interne Dateien des Sleep-Number-Hubs verändern, und dadurch erlischt die Garantie“
    So wie „Garantie erlischt beim Entfernen“-Sticker rechtlich nicht durchsetzbar sind, gibt es nichts, was eine Produktgarantie automatisch erlöschen lässt, außer Missbrauch oder mangelhafter Wartung
    Wenn ein Smart-Bett kaputtgeht, ist der Hersteller nicht allein deshalb von seiner Garantiepflicht befreit, weil du am Controller herumgefummelt hast. Das gilt auch für implizite Garantien. Der Hersteller trägt die Beweislast dafür, dass der Verbraucher das Produkt beschädigt, es auf „unangemessene“ Weise benutzt oder nicht ordnungsgemäß gewartet hat
    Wenn du beim Anschließen von JTAG versehentlich 5 V auf eine 3,3-V-Logikschaltung gebrückt und damit das Gehirn des Betts gegrillt hast, dann ist das natürlich deine Verantwortung
    Wenn aber das Netzteil hochgeht und dadurch der Controller ausfällt, dann ist es irrelevant, dass du einen JTAG-Header angelötet, Googly Eyes aufgeklebt und das Ganze pink angemalt hast. Sie müssen es reparieren
    Selbst wenn du die Firmware modifiziert hast, muss der Hersteller nachweisen, dass genau diese Modifikation den Defekt verursacht hat
    Niemand würde erwarten, dass die Garantie eines Laptops erlischt, nur weil man darauf Spiele spielt und er dadurch heiß wird. Genauso wenig, wenn man Firefox oder Linux installiert. Es gibt keinen Grund anzunehmen, dass andere Regeln gelten, nur weil das Gerät etwas „dümmer“ ist

    • Das Recht auf dem Papier und das Recht in der Praxis sind zwei verschiedene Dinge. Wenn der Hersteller die Garantieleistung verweigert, hat der Kunde oft nur sehr begrenzte Möglichkeiten
  • Als Nächstes kommt wohl Ransomware. „Wenn du nicht 1.000 Dollar zahlst, kannst du im nächsten Monat nicht in deinem Bett schlafen“

    • Ist das Nächste nicht einfach ein Abo-Modell?
  • Schauen wir uns ein paar Fakten an
    Sleep-Number-Betten haben Sensoren zur Erfassung der Herzfrequenz. Das funktioniert über die Erkennung von Druckunterschieden in der Luftmatratze. Praktisch ist das fast schon ein Mikrofon und ziemlich empfindlich

    • Erkennen sie die Herzfrequenz wirklich mit einem Drucksensor? Da müsste doch so viel Rauschen drin sein, dass die Daten unbrauchbar wären
      Ich habe es nachgeschlagen, und offenbar kombinieren sie das mit ziemlich plausibler statistischer Auswertung, um ausreichend genaue Daten zu erhalten. Interessant