Meilenstein für Servo: Mozillas neue Engine besteht ACID2-Test
Die Überschrift dieses Artikels könnte an eine Meldung aus dem Jahr 2008 erinnern. Mit dem im Jahr 2008 erschienenen Firefox 3 hat Mozillas Browser erstmals den ACID2-Test bestanden. Doch Mozilla arbeitet an einer von Grund auf neu entwickelten Browserengine, welche all diese Dinge, die heute für einen Browser selbstverständlich sind, erst ganz neu erlernen muss. Hinter dem ACID2-Test kann Mozilla nun einen Haken setzen.
Der ACID2-Test ist ein Test aus dem Jahr 2005, welcher Browser auf Konformität zu den Standards des World Wide Web Consortiums (W3C) prüft. Auch wenn sich das Web seit dem sehr stark weiterentwickelt hat, so sollte ein Browser heute nicht weniger diesen Test bestehen als vor fünf Jahren. Mit Servo arbeitet Mozilla Research nun schon seit geraumer Zeit an einer von Grund auf neu entwickelten Engine, welche möglicherweise irgendwann einmal Gecko beerben kann. Noch ist man mindestens zwei Jahre davon entfernt, eine in einem realen Produkt einsetzbare Servo-Engine zu haben, an deren Entwicklung sich auch Samsung beteiligt. Zumindest den ACID2-Test besteht man nun, was man als wichtigen Meilenstein für Servo bezeichnen kann. Den ACID1-Test besteht Servo seit August 2013.
[lightbox style=“modern“ image_path=“https://www.soeren-hentzschel.at/wp-content/uploads/servo-acid2.png“ popup=“https://www.soeren-hentzschel.at/wp-content/uploads/servo-acid2.png“ link_to_page=““ target=““ description=““ size=“two_col_small“]
Servo soll sich dadurch auszeichnen, moderne Hardware optimal zu nutzen und frei von Altlasten und Schwachstellen der aktuellen Gecko-Engine zu sein. Servo wird nicht etwa in C++, sondern in der ebenfalls von Mozilla Research entwickelten Sprache Rust geschrieben, welche bereits seit mehreren Jahren in Entwicklung ist und einige der Nachteile von C++ kompensieren soll. Einer der Vorteile von Rust ist, dass es optimalen Gebrauch aller zur Verfügung stehenden Prozessorkerne und Grafikeinheiten machen soll, ganz anders als alle aktuellen Browserengines, deren Architekturen bereits über zehn Jahre alt sind. Außerdem ist Rust standardmäßig sicher, was einen Großteil von Speicherfehlern verhindert und die Engine weniger anfällig für Abstürze und Sicherheitsprobleme macht. Einige Sicherheitsprobleme wie solche ähnlich Heartbleed zum Beispiel seien nach Angaben von Mozilla Research mit Rust gar nicht erst möglich, da der Rust Compiler dies automatisch zu verhindern weiß. Eigene Performance-Vergleiche würden zudem zeigen, dass viele Bereiche der Web-Plattform, welche noch nicht optimiert für Multithreading sind, bereits erheblich schneller als in traditionellen Browsern sind – und die Multithreading-Performance sei noch besser.
Zwar ist es noch ein langer Weg bis zur Fertigstellung von Servo und damit Zukunftsmusik, doch wenn der Plan aufgeht und Servo eines Tages Gecko beerben kann, dann könnte dies Firefox einen großen Schub nach vorne verschaffen, während die Engines der anderen Browser, von denen bislang keine Pläne der Neuentwicklung bekannt sind, weiter auf ihre Architekturen aus der Anfangszeit der Webbrowser setzen.
Weitere aktuelle Artikel aus der Kategorie „Servo“
- 03.02.2023Roadmap der Browser-Engine Servo für 2023 vorgestellt
- 19.01.2023Neue Ressourcen für Browser-Engine Servo
- 04.12.2018Developer Preview: Servo-Builds für Magic Leap One verfügbar
- 13.04.2017Neue Browser-Engine: Nightly-Builds von Servo-Browser für Windows
- 28.01.2017Trails: Navigationskonzept für Browser-Tabs von Mozilla
Vielleicht steh ich ja ein bisschen auf dem Schlauch. Aber wie kann etwas standardmäßig sicher sein? Wie wird Rust vor Bugs und Exploits zu 100% geschützt, sodass es standardmäßig sicher sein kann?
Es geht um Speichersicherheit:
http://en.wikipedia.org/wiki/Memory_safety
Viele dieser Probleme aus C++, die sind in Rust standardmäßig gar nicht erst möglich, was Rust-Anwendungen wesentlich stabiler und weniger anfällig für Sicherheitslücken macht.
Bei bestimmten Angriffsmethoden, die speziell den Speicher betreffen wie ein Pufferüberlauf bzw. Buffer Overflow, verstehe ich das. Von denen siehste aber zumindest in der medialen Berichterstattung relativ wenig (ja, ich weiss, dass ein BO sehr beliebt ist trotzallem). Aber was macht Rust den perse sicherer und weniger anfällig gegen Lücken, die vor allem clientseitig ne Rolle spielen (Zero Day, Use After Effects, XSS)? Hier ist ja auch viel C++ im Einsatz.
Und wirklichen Schutz bei klassischen Kommunikationsangriffen wie den Man-in-the-Middle sehe ich auch keinen wirklichen Vorteil, weil das ja wenig mit Speicher zu tun hat. Da klingt sich ja nur einer in die Leitung.
Ich behaupte, die Mehrheit der Sicherheitslücken hängt mit Zugriffsverletzungen des Arbeitsspeichers zusammen. Das dürfte hinkommen, wenn man sich die geschlossenen Sicherheitslücken von Firefox ansieht. Die Medien berichten überhaupt nicht über die geschlossenen Sicherheitslücken in neuen Major-Releases. Außer vielleicht die Anzahl der geschlossenen Sicherheitslücken zu erwähnen. Zero Day ist keine Art eines Sicherheitsproblems. Zero Day heißt nur, dass ein Exploit an dem Tag entwickelt worden ist, an dem die Schwachstelle erschienen ist. Wann es einen Exploit gibt, ändert aber nichts an der Art des Problems. Und XSS hat auch nicht wirklich was mit Rust zu tun, Rust ist eine Programmiersprache. Schutzmaßnahmen dagegen wären wenn dann Sache von Servo, wenn nicht sogar von Firefox. Die Verschlüsselung der Kommunikationskanäle hat natürlich auch nichts damit zu tun. Man-in-the-Middle-Attacken sind selbstverständlich möglich, egal wie man etwas programmiert, wenn die Übertragung unverschlüsselt stattfindet. Das ist zudem ja auch ein Sicherheitsproblem von Webseiten und nicht des Browsers.
Ansonsten gibt es das Wichtigste zu Rust auf der Webseite:
http://www.rust-lang.org/