In den letzten Jahren hat sich die Leistungsfähigkeit des Webs deutlich gesteigert. Das Anwendungsmodell der Progressive Web Apps (PWA) und das Chromium-Initiative Project Fugu haben maßgeblich dazu beigetragen, dass immer mehr Anwendungen direkt im Web entwickelt und im Browser ausgeführt werden können. Beispiele hierfür sind Programme wie Photoshop oder Visual Studio Code. Trotzdem wird aufgrund der Sicherheitsarchitektur des Webs die Lücke zwischen den Funktionen plattformspezifischer Anwendungen und Web-Apps, auch bekannt als Web-App-Gap, niemals vollständig geschlossen werden können.
Die Direct Sockets API ist eine Schnittstelle, die nicht direkt im Web verfügbar gemacht werden kann. Ihr Zweck besteht darin, Entwicklern die Möglichkeit zu geben, Server-Ports anzusprechen, die über HTTPS, WebSockets und WebRTC hinausgehen. Die Technical Architecture Group (TAG) des W3C äußerte deutliche Bedenken, da dies die Same-Origin-Policy (SOP) des Webs umgehen würde. Die SOP stellt eine wichtige Sicherheitsbarriere im Web dar. Das Gremium im W3C hat die Aufgabe sicherzustellen, dass neue Schnittstellen sinnvoll in das World Wide Web integriert werden. Dennoch streben Softwareentwickler danach, von diesen Möglichkeiten Gebrauch machen zu können.
Im Web sind einige grundlegende Schnittstellen entweder nicht verfügbar oder zumindest nicht in allen Browsern. Auf der diesjährigen W3C-Jahreskonferenz TPAC in Sevilla im September 2023 kündigte die TAG die Bildung einer Taskforce an. Das Ziel dieser Taskforce ist es, Schnittstellen wie die Direct Sockets API auch für das Web zugänglich zu machen. Im Fokus der Untersuchung steht ein potenziell leistungsfähiger Kontext, bei dem der Benutzer einer Installation einer Anwendung ausdrücklich zustimmen könnte, um zusätzliche Funktionen wie den Zugriff auf Sockets freizuschalten.
In der Vergangenheit hat Google bereits einen potenziellen Ansatz für einen solchen leistungsfähigen Kontext vorgeschlagen: die sogenannten Isolated Web Apps (IWA). Dabei handelt es sich um Webanwendungen, die jedoch als signierte Bündel über herkömmliche Vertriebswege wie App-Stores, Installationspakete oder Enterprise-Deployments verbreitet werden. Es wäre auch möglich, das Bündel direkt durch Sideloading zu installieren. Als Gegenleistung für diesen zusätzlichen Vertrauensanker erhalten die Webanwendungen Zugriff auf eine erweiterte Palette von Schnittstellen. Allerdings würden diese nach wie vor über einen Webbrowser ausgeführt werden. Durch die Verwendung einer Signatur wird es erheblich schwieriger, Man-in-the-Middle-Angriffe durchzuführen oder den Quellcode auf dem Anwendungsserver zu manipulieren. Aus diesen Gründen wird der Messenger Signal beispielsweise ausschließlich als Electron-App und nicht als Progressive Web App veröffentlicht. Es ist erforderlich, dass alle nachfolgenden Versionen mit demselben Schlüssel signiert werden und Updates dürfen nur auf eine höhere Versionsnummer angewendet werden.
Die Isolated Web App verhindert das Laden von Quellcode außerhalb des Anwendungskontextes, was ihren Namen erklärt. Dazu wird ein eigenes URI-Schema eingeführt: codeisolated-app://signed-web-bundle-id/path/foo.js?query#fragment/code. Die codesigned-web-bundle-id/code repräsentiert den Base32-kodierten öffentlichen Schlüssel. Bei IWAs werden Anwendungen über die herkömmlichen Vertriebswege, die dem Benutzer vertraut sind, bereitgestellt. Dank des zusätzlichen Vertrauensankers können Anwendungsentwickler ihr vorhandenes Webwissen nutzen und gleichzeitig auf noch leistungsfähigere Schnittstellen zugreifen. Das W3C würde auch weiterhin die offene Standardisierung dieser Technologien vorantreiben. Die Anwendungen nutzen weiterhin Webtechnologien und können Code mit einer PWA teilen, ohne auf zusätzliche Ressourcen wie Electron, Tauri, Cordova oder Capacitor zurückgreifen zu müssen.
Die Web Smart Card API Demo des Chrome-Teams zeigt das IWA-Anwendungsmodell, indem die eingepackte Webanwendung Zugriff auf Smartcards erhält, um Personen zu identifizieren. Um dies zu erreichen, müssen sowohl ein Gerät mit ChromeOS als auch die Aktivierung mehrerer Feature-Flags vorhanden sein. Im Jahr 2024 soll die Web Smart Card API in Chromium für Windows, macOS und Linux eingeführt werden.
Zusammenfassend lässt sich sagen, dass Isolated Web Apps möglicherweise dazu beitragen können, die Kluft zwischen plattformspezifischen Anwendungen und Web-Apps weiter zu verringern und das Feld der plattformübergreifenden Anwendungen durcheinanderzubringen. Jedoch befindet sich die gesamte Bemühung noch in den Anfängen. Bisher wurde die im September angekündigte Taskforce noch nicht gebildet und weder Mozilla noch Apple haben sich bisher dazu verpflichtet. Es bleibt abzuwarten, wie sich die Entwicklung in den kommenden Jahren weiterentwickeln wird.
Schlagwörter: PWA + Isolated + Fugu
Wie bewerten Sie den Schreibstil des Artikels?
