1 Punkte von GN⁺ 2 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Ab Firefox 151 Desktop wird die Web Serial API unterstützt, sodass Web-Apps ohne native Software mit kompatiblen seriellen Geräten kommunizieren können
  • Web Serial ist eine API zum Lesen und Schreiben serieller Geräte mit JavaScript und ermöglicht direkte Verbindungen zu Mikrocontrollern, 3D-Druckern, Leistungsmessgeräten und mehr
  • Im Adafruit-Workflow wird Firmware per Web Serial übertragen, um CircuitPython zu installieren und Gerätecode einfach über die Datei code.py bereitzustellen
  • Firefox reduziert Sicherheits- und Datenschutzrisiken beim Gerätezugriff durch explizite Nutzerfreigabe, website- und portbezogene Berechtigungen sowie Add-on-Gating
  • Mozilla treibt die Standardisierung von Web Serial, das sich in der WICG-Phase befindet, bei WHATWG voran und bittet um Tests realer Hardware-Workflows sowie Feedback

Web Serial API und Unterstützungsumfang

  • Ab Firefox 151 for Desktop wird die Web Serial API unterstützt, sodass Webanwendungen ohne native Software mit kompatiblen Geräten kommunizieren können
  • Die Web Serial API ist eine Web-API, mit der Websites serielle Geräte per JavaScript lesen und schreiben können
  • Zu den Zielgeräten gehören Mikrocontroller, Entwicklungsboards, 3D-Drucker, Leistungsmessgeräte und andere über serielle Verbindungen angebundene Hardware
  • Zu Web-Serial-kompatiblen Geräten zählen Espressif-ESP-basierte Boards, Raspberry Pi Picos, 3D-Drucker und LEGO-Geräte
  • Moderne Computer haben meist keine seriellen Anschlüsse mehr, aber Geräte, die über USB verbunden oder per Bluetooth gekoppelt sind, können sich dem Betriebssystem als serielle Geräte präsentieren, sodass sie wie serielle Ports erscheinen
  • Web-Serial-kompatible Geräte werden von Hobbyentwicklern, Hardware-Hackern, Lehrkräften, Makern und Entwicklern für Hausautomatisierung, Hardware-Prototyping, 3D-Druck und mehr genutzt

Adafruit- und CircuitPython-Workflow

  • Adafruit ist eine der bekanntesten Organisationen, die den Einsatz von Web Serial im Bereich Open-Source-Hardware und STEM-Bildung zeigen
  • Adafruit ermöglicht es, per Web Serial Firmware zu übertragen, um CircuitPython schnell auf den eigenen Geräten zu installieren
  • Nach der Installation kann Code auf den meisten Geräten bereitgestellt werden, indem die Datei code.py per Drag-and-drop als USB-Gerät kopiert wird
  • Python-Programme können über einfache textbasierte Ein- und Ausgabe via Web Serial mit einer Webseite zusammenarbeiten
  • Das Adafruit Web Serial Tool kann verwendet werden und ist vom OPEN INSTALLER-Verfahren auf der CircuitPython-Website zu unterscheiden
  • Das example CircuitPython Web Serial project verwendet Web Serial auf einer lokalen web page, um Nachrichten an ein Gerät zu senden, auf dem eine CircuitPython-file ausgeführt wird
  • Mozilla hat gemeinsam mit Adafruit die Firefox-Implementierung anhand realer Hardware-Workflows getestet, die in dieser Community häufig verwendet werden
  • Mozillas Ingenieur Alex Franchuk hat mit Page Playground eine Kombination aus Web Serial und elektronischen Geräten entwickelt

Leistungsmessung und Hausautomatisierung

  • Florian Quèze von Mozilla hat mehrere Projekte zur Messung des Stromverbrauchs erprobt und mit Web Serial eine Demo erstellt, die Leistungsdaten handelsüblicher USB-Leistungsmessgeräte in Firefox anzeigt
  • Der Code kann Daten in den Firefox Profiler exportieren, wodurch sich Leistungsdaten leicht visualisieren und teilen lassen
  • Relevante Ressourcen sind die page, das GitHub repo und Firefox-Profiler-Daten, die den Stromverbrauch einer Leuchte mit drei Helligkeitsmodi aufzeichnen
  • Zu den getesteten USB-Leistungsmessgeräten gehören AVHzY C3 USB, Joy-IT TC66C und YZXStudio USB ZY1280
  • Home Assistant ist ein beliebtes Open-Source-Projekt für Hausautomatisierung, und ESPHome stellt mit Home Assistant kompatible Firmware für günstige ESP32- und ähnliche Geräte bereit
  • ESPHome-Firmware kann über Web Serial mit nur wenigen Klicks installiert und konfiguriert werden

Sicherheit und Datenschutz

  • Wenn die Webplattform Hardwaregeräte lesen und beschreiben kann, entstehen größere Sicherheits- und Datenschutzbedenken
  • Bei Web Serial kann eine Website serielle Ports weder sehen noch darauf zugreifen, bevor der Nutzer dies nicht ausdrücklich erlaubt hat
  • Portfreigaben erfolgen pro Website und pro Port
  • Die Web Serial API verlangt, dass Websites navigator.serial.requestPort() aufrufen, und Nutzer können den freizugebenden Port auswählen oder jeden Zugriff ablehnen
  • Websites erhalten keine Liste verbundener Geräte, und abgesehen von dem vom Nutzer ausgewählten Port werden keine nützlichen Fingerprinting-Informationen bereitgestellt
  • Firefox verwendet Add-on-Gating, das bereits bei der Implementierung der Web MIDI API eingeführt wurde, damit Nutzer verstehen, wann und warum eine Website Zugriff auf serielle Ports anfordert
  • Add-on-Gating informiert Nutzer detaillierter darüber, was sie erlauben, als andere Web-Berechtigungsabfragen
  • Die Add-on-Gating-Eingabeaufforderung erscheint beim ersten Portzugriffsversuch einer Website vor der Aufforderung zur Portauswahl
  • In Organisationen, die Firefox Enterprise Policies verwenden, ist Web Serial standardmäßig deaktiviert
  • Administratoren können mit der Richtlinieneinstellung DefaultSerialGuardSetting die Web-Serial-Funktion unternehmensweit explizit erlauben oder blockieren

Standardisierung und Feedback

  • Web Serial befindet sich noch in der Phase der Web Incubator Community Group (WICG), aber Mozilla sieht angesichts des Umfangs und der langen Inkubationszeit einen Weg zur Standardisierung
  • Mozilla treibt die Standardisierung der Web Serial API bei WHATWG mit einem neuen Workstream-Vorschlag voran
  • Mozilla plant, mit Ökosystempartnern und Standardisierungsgremien zusammenzuarbeiten, um den Webzugang zu Peripheriegeräten mitzugestalten
  • Wer einen gerätebasierten Web-Serial-Workflow hat, kann ihn in Firefox testen
  • Projekte können auf Mozilla Connect geteilt sowie Fragen gestellt oder Feedback hinterlassen werden
  • Bei technischen Problemen hilft support.mozilla.org, oder es kann ein Bug in Bugzilla eingereicht werden

1 Kommentare

 
GN⁺ 2 시간 전
Lobste.rs-Kommentare
  • Es wäre gut, wenn auch WebUSB implementiert würde

    • Wenn das das Flashen von Mikrocontrollern wie ESP ermöglichen würde, wären damit 95–100 % meiner WebUSB-Anwendungsfälle abgedeckt
    • Jemand hat das als Firefox-Erweiterung umgesetzt: https://github.com/ArcaneNibble/awawausb
  • Ich frage mich, wie man leichtgläubige Menschen schützen will, insbesondere solche, die nicht wissen, was ein serieller Port ist. Auch in Mozillas Standardposition steht dazu etwas

    Geräte, die serielle Schnittstellen bereitstellen, legen häufig leistungsstarke Low-Level-Funktionen offen, obwohl sie kaum oder gar keine Authentifizierung besitzen. Solche Funktionen ohne ausreichende Schutzmechanismen dem Web zugänglich zu machen, stellt eine erhebliche Bedrohung für diese Geräte dar

    • Als Gerät mit serieller Unterstützung, das ein Einsteiger besitzen könnte, fällt mir eigentlich nur eine Maus ein. Wenn Firmware-Updates nicht signiert sind, könnte zwar Malware aufgespielt werden, aber es scheint kein besonders nützliches Ziel für Angreifer zu sein
      Bei Tastaturen mit Makro-Funktionen wäre ich etwas besorgter. Trotzdem gibt es diese Funktion in Chrome schon seit einigen Jahren, ohne dass größere Probleme bekannt geworden wären, daher halte ich das nicht für eine ernste Sorge. Gerade jetzt, wo Peripheriegeräte sie zunehmend für Konfigurationszwecke nutzen, ist der Nutzen deutlich größer als das Risiko
  • Das ist absurd. Es ist schwer in Worte zu fassen, wie verrückt es ist, einem Webseiten-Viewer Zugriff auf serielle Ports zu geben

    • Sehe ich nicht so. Das ist eine extrem nützliche Funktion, und ich freue mich, dass ich dafür jetzt nicht mehr zu Chrome wechseln muss
    • Das Web hat sich bereits vor etwa 20 Jahren zu einer Anwendungsplattform entwickelt
  • Ach ja, genau das hat Websites noch gefehlt. Ich warte schon auf WebRawSockets. Halb im Scherz, aber als ich früher daran beteiligt war, wollte die SVG-Arbeitsgruppe tatsächlich Raw Sockets zu SVG hinzufügen

    • Dass die SVG-Arbeitsgruppe Raw Sockets zu SVG hinzufügen wollte, klingt ja unglaublich. Erinnerst du dich, warum das damals überhaupt vorgeschlagen wurde?