Fragen? Antworten! Siehe auch: Alternativlos
Update: War offenbar eine WAF, die Firefox nicht mochte :-)
Update: Sie haben auf "fortlaufender Cyberangriff" geupgradet. Beachtet auch das wunderschöne überspezifische Dementi:
Es ist seit Beginn des Cyberangriffs zu keinem Datenabfluss gekommen.
(Danke, Rainer)
That still hasn't made everyone comfortable. Others have noticed that Mozilla's new executives, including Varma, come not from promotion within or the open-source community, but from money-making businesses. Varma's last job, for example, was at Meta, where he was responsible for monetizing WhatsApp.
Das erklärt einiges.
Sehr traurig. Die anderen Dokumente sahen noch diskutabel aus, aber das hier ist mehr als klar.
Überhaupt war das Bauen von Software eigentlich jahrzehntelang immer ein Schmerz im Rektum. Aber seit so etwa 10 Jahren bauen auch große Projekte wie Firefox, LLVM und gcc recht zuverlässig durch und funktionieren dann sogar halbwegs.
Viel weiter greife ich normalerweise nicht, aber ich habe letztes Jahr mal ein OpenJDK aus den Sourcen gebaut, weil ich eine Option anschalten musste, um den JIT-Output zu dumpen. Das hat nicht nur einfach so gebaut, es funktionierte auch einfach so.
Vorgestern habe ich dann mal ein C#-Projekt von Github ausprobieren wollen, habe dafür kurz .NET 8 unter Linux installiert, und der baute das nicht nur einfach so, der baute auf Nachfrage auch eine EXE-Datei für Windows aus den Sourcen. Und die funktionierte dann einfach so.
Go und Rust sind auch geradezu auffallend schmerzarm in der Beziehung. Jetzt habe ich gerade mal Zig zu bauen versucht und das flutschte auch einfach so.
Die Community ist echt weit gekommen in den letzten Jahren.
Ich vermute, dass das damit zusammenhängt, dass man seine Software nicht mehr selber baut sondern in halbwegs standardisierten Build-Pipelines in der Cloud.
Ich begrüße das sehr. Schön, wenn nachfolgende Generationen nicht mehr die Schmerzen aushalten müssen, die wir noch hatten :-)
Das ist die Foundation. Firefox wird von der Mozilla Corporation gemacht.
gatling komprimiert nichts, aber wenn man nach foo.html fragt, und man kann Brotli, und da liegt foo.html.br, dann kriegt man das ausgeliefert. Es kostet also nicht viel, auch kurz nach foo.html.zst zu gucken.
Ich habe das also kurz gemacht. Nota bene: Die Browser, die jetzt zstd können, können auch alle brotli.
Stellt sich raus: brotli komprimiert in eigentlich allen Fällen besser. Das liegt vor allem daran, dass Brotli bescheißt, und mit einem Dictionary an bekannten Wörtern kommt, die aus typischen HTML- und Javascript-Dateien extrahiert wurden.
Das könnte man mit zstd natürlich auch machen. Machen die Browser das? Wüsste ich gerade nicht. Wenn doch, könnte ich meine Dateien natürlich auch mit einem shared dictionary ala brotli zstd-komprimieren.
Ist zstd damit nutzlos? Nein, bei weitem nicht. Wenn man dynamische Daten ausgibt, wie es beispielsweise mein Blog tut, dann kann ich die ja nicht vorkomprimiert ins Dateisystem legen. Also könnte ich vielleicht doch partiell, wenn ich ein bisschen trickse. Mache ich aber nicht.
Jedenfalls: Für mein Blog würde es Sinn ergeben, zstd zu unterstützen. Da mache ich im Moment nur gzip, und das auch nur bei einer relativ kleinen Kompressionsstufe. Da würde sich zstd wahrscheinlich lohnen, weil es vergleichsweise rattenschnell komprimieren kann.
Das ist jetzt jedenfalls ein bisschen antiklimaktisch und ich werde auf die Erkenntnis mal reagieren, indem ich einfach nur zstd-Dateien hinlege, wenn die kleiner als die Brotli-Version sind.
Update: Das Blog kann jetzt zstd. Das hat die Größe des Binaries direkt verdoppelt. Lohnt sich hoffentlich in der Praxis.
It's caused by GCC. Tested latest trunk and when it's built with GCC it paints AVIFs as black.
Was war passiert? gcc hat ein Inline-Assembler-Statement wegoptimiert. Hier kann man den Fix einsehen. Der markiert einfach die Statements alle als volatile, das ist sozusagen der Holzhammer-Fix.Ich kenne jetzt diese libyuv nicht, in der das passiert ist, aber das hätte natürlich vor dem Release auffallen müssen, mit Unit Tests.
Was man im Patch nicht sieht: Die erste Datei im Patch, das betrifft nur MIPS und MIPS64-Systeme. Vielleicht hat es daher keiner gemerkt? Plattform zu obskur?
Ich habe mal eine der Funktionen darunter angeguckt, die haben "memory" als clobber deklariert. Das hätte gcc m.E. nicht rausoptimieren dürfen.
Die Spezialexperten haben da vorhin der gesamten Straße einen Stromausfall beschert. Auf der einen Seite aufregend, denn das hatten wir seit über 20 Jahren nicht mehr.
Auf der anderen Seite aufregend, denn was sind denn das hier bitte für Ost-Verhältnisse!1!!
Auf der dritten Seite spannend, denn auch wenn der Stromausfall selbst nur 3 Minuten dauerte, so kam das Internet nicht richtig wieder hoch. Der Anschluss selbst tut und hat IPv6, aber kein IPv4. Störung ist gemeldet, aber halt Vodafone. *Wartendes Skelett-Mem*
Ich schreibe das hier, weil das ein bemerkenswerter Einblick ist, welche Seiten im Jahre 2024 immer noch kein IPv6 haben. Am heftigsten finde ich: Github. Aber auch Ministerien, Zeitungen (Spiegel, "Bild", Süddeutsche!), Vodafone selbst und ihr Störungsmelder, ...
Beeindruckenderweise geht berlin.de. Die Seite, von der ich das jetzt am wenigsten erwartet hätte.
Auch alle mögliche andere Infrastruktur bröselt auffällig. Besonders nervig ist das bei so Autostart-Diensten wie Steam (bei denen ich wirklich schockiert bin, dass die nicht weiter sind) oder so "ich verbinde mich erstmal mit der Cloud"-Dienste wie Autoupdater oder Launcher wie GOG Galaxy. Alles Schönwettersoftware da draußen.
Bei Firefox und Windows bleibt das "Checking for updates..." erstmal hängen bzw läuft gegen einen Timeout.
Update: Windows Update hat sich nach ein paar Minuten gefangen. Das ist ja immer unfassbar langsam.
Update: Schon finster. Nicht mal die BBC hat IPv6. Tagesschau.de ist echt allein auf weiter Flur mit ihrem IPv6-Support.
Update: Die BBC selbst hat IPv6, aber bbc.com redirected zu fastly und die haben kein IPv6 im DNS eingetragen. Ja herzlichen Glückwunsch!
Wie? Nein, nicht für euch. Für die Werbeindustrie.
Aus Komfortgründen haben sie auch gleich für alle ihre Kunden das Opt-In durchgeführt. Wer nicht will, kann ja Opt-Out machen!1!!
Die Reaktionen sind entsprechend. Wenn ich der Werbemafia helfen will, kann ich auch gleich Chrome verwenden.
Es ist wieder soweit!
Jemand hat einen Anwendungsfall für Windows Copilot gefunden. Copilot hat ihm geholfen, Copilot zu deinstallieren. (Danke, Ralph)
Keine Sorge, Mozilla ist am Ball.
Firefox sammelt jetzt Daten über Suchanfragen. Natürlich mit voll super total krass anonymisierenden Verfahren, damit weil äh also vertraut uns einfach!1!!
Was kann Firefox mit Daten anfangen, die ordentlich anonymisiert sind? GAR NICHTS.
Kann nicht mal jemand Firefox forken, der kein Geschäftsmodell hat, das auf dem Ausschlachten der Daten der Endanwender hat? Die Linux Foundation oder so!
Damit haben sie dann in Snapchat, Youtube und Amazon-Webaufrufe reingeguckt, um ihre Konkurrenz zu analysieren.
Der eine oder andere von euch wird sich vielleicht gedacht haben: Aber ist nicht genau dafür Certificate Pinning gedacht, um sowas zu verhindern? Google hat doch sogar Werbung damit gemacht, dass sie böse Zertifikate erkennen, wenn Chrome zu Youtube oder einem anderen Google-Dienst verbinden will und ein Nicht-Google-Zertifikat sieht.
Was ist da also los?
Nun, nichts genaues weiß man nicht, aber eine Sache kann ich bei der Gelegenheit mal kurz erläutern: Cert Pinning schaltet sich ab, wenn man ein Root-Cert im Local Store hat, und dann das auf Pinning zu prüfende Zertifikat von dieser Root-CA signiert reinkommt.
Warum ist das so? Wegen Compliance-Bullshit. Ich wettere hier ja seit Jahrzehnten gegen Compliance-Bullshit, und dies ist ein schönes Beispiel dafür, wie Compliance-Bullshit Dinge für alle Menschen schlechter macht.
Für Banken und Versicherungen und Aktienbroker gibt es regulatorische Vorschriften, dass die ihren Traffic mitprotokollieren müssen, damit man danach Insider Trading nachweisen kann.
Kann man natürlich nicht. Also könnte man schon, macht man aber nicht. Wie auch alles andere Security-Theater hören die Aktivitäten bei "wir sammeln alle Daten ein" auf. Niemand guckt je in diese Daten rein.
Aber der Effekt ist, dass Banken ihren Mitarbeitern dann halt ein Root-Cert auf dem Gerät installieren. Und wenn Chrome dann immer meckern würde, dann müsste Google sich mit wütenden Kunden auseinandersetzen. Also schaltet man lieber Cert-Pinning ab.
Chrome macht das so. Firefox macht das auch so. Daher: Wenn euch jemand im lokalen Cert Store irgendwelche Root-Certs installiert, dann solltet ihr das immer ablehnen. Hier ist die Mozilla-Dokumentation zu dem Verhalten. Ctrl-F insert
Die Hoffnung war, dass ihr euch mal mit der Frage beschäftigt, wie man eine Fake-Fehlermeldung von einer echten unterscheidet. So richtig smart ist das nämlich nicht, wenn Systemmeldungen nachgebaut werden können.
Der einfachste Weg (bei Firefox und Chrome) ist Ctrl-U. Das zeigt normalerweise den HTML-"Quellcode" einer Seite an. Bei einer echten Zertifikatsfehlermeldung zeigt er die Fehlermeldung an, nicht den Quellcode. Außerdem ist bei einer echten Fehlermeldung im URL-Bar das Schloss anders.
Das lohnt sich bei Text (könnt ihr im Browser in den Developer Tools sehen, da steht aktuell sowas wie 6,56KB übertragen, Größe war 12,46KB). Bilder und Videos sind schon komprimiert, da ist das Zeitverschwendung.
Wenn ihr also mein Blog aus der Bahn oder im Handy ladet, dann halbiert Kompression eure Wartezeit. Umso bedauerlicher, dass sich da in den Browsern seit Jahren nicht mehr viel getan hat.
Vor einer Weile hat Chrome Brotli-Support in Chrome eingebaut. Brotli komprimiert geringfügig besser als gzip, aber nicht überzeugend viel besser und es ist auch deutlich langsamer dabei.
Kompression hilft übrigens auch gut bei Font-Dateien, die man per Web einbindet.
Ich erzähle das, weil es ein relativ neues Kompressionsverfahren gibt, zstandard. Ich habe das hier im Blog 2016 zum ersten Mal erwähnt. zstd deckt das ganze Spektrum ab (von "schnell aber nicht so effektiv" bis "langsam und hocheffektiv"). Es hat aber zwei wichtige Vorteile gegenüber Brotli:
"Schnell und dafür nicht so effektiv" ist so schnell, dass man es viel leichter verargumentiert kriegt, das in Protokolle einzubauen. Mein Blog hat im Moment keine Brotli-Kompression, aber wenn die Browser zstd könnten, würde ich sofort zstd-Kompression einbauen. Da kriege ich für den gleichen Aufwand, den ich im Moment bei gzip schon abgenickt habe, deutlich bessere Kompression, bzw. kriege die Kompression, die ich im Moment von gzip kriege, für deutlich weniger CPU-Last im Blog. Das ist also quasi ein No-Brainer, dass man das im Browser will.
Nun, ... hier ist der Firefox-Bug. Der ist von "8 years ago". Immer noch offen. Denn bei Firefox gibt es keine Innovation mehr. Die bauen Dinge erst ein, wenn Chrome sie einbaut. Wenn Chrome etwas ausbaut, baut Firefox es auch aus, wie zuletzt bei jpeg-xl passiert, völlig hanebüchen.
Jetzt wo Chrome zstd hat, wird das hoffentlich auch bald Firefox kriegen, und dann haben wir alle gewonnen.
Update: Heutzutage macht man Webfonts als woff oder woff2 und das ist dann im Wesentlichen ein ttf mit brotli. Es ist immer schlauer, Dateien vorzukomprimiert abzulegen, als sie beim Rausgehen im Webserver zu komprimieren.
Wer also jetzt noch Chrome oder Chromium oder einen auf Chromium basierenden Browser benutzt, sollte schnell mit den Füßen wählen und zu Firefox gehen. Ansonsten haben wir bald eine Welt, wo dein Browser keine Webseiten mehr anzeigen kann, weil du einen Adblocker installiert hast.
Users often depend on websites trusting the client environment they run in.
Äh... nein. Anders herum. User vertrauen dem Client-Environment, dass es Webseiten keine Scheiße machen lässt.This trust may assume that the client environment is honest about certain aspects of itself, keeps user data and intellectual property secure, and is transparent about whether or not a human is using it.
Ooooh hast du dir ein kaputtes Geschäftsmodell überlegt, weil du zu blöde warst, dich vorher über die Gegebenheiten der Umwelt zu informieren, in der du kräftig auf den Rasen kacken wolltest? Das ist aber bedauerlich, lieber Startup-Gründer, lieber Tech-Bro, lieber VC-Verbrenner.This trust is the backbone of the open internet, critical for the safety of user data and for the sustainability of the website’s business.
DAS ist das Optimierungsziel von Google, wenn sie vom "offenen Internet" reden: Die wollen eine Garantie, dass ihre "Geschäftsmodelle" zulasten der User funktionieren, und dass die sich nicht wehren können. Und nachdem ihr Deppen alle blöde genug wart, deren Browser zu benutzen, können sie das jetzt auch einfach mal so machen.Seid ihr stolz auf euch? Solltet ihr. Ihr habt ganze Arbeit geleistet.
Erstens: Apple hat ohne große Ankündigung ein DirectX12-Emulationslayer ausgeliefert, wenn ich das richtig verstehe. Damit könnte man dann zumindest theoretisch Windows-Spiele einfach so auf Apple-Hardware spielen. Damit stehen sie natürlich auf den Schultern von Open-Source-Giganten, die auch schon DXVK und co im Angebot haben. Valve hat Millionen in DirectX-Emulation in Wine gesteckt. Da wird sich Apple einfach mal bedient haben.
Erwähnenswert ist das aus zwei Gründen. Erstens haben sie wohl einen großen Patch an Wine zurückgeschickt. Die GPL funktioniert also!
Zweitens sind ja in den M1 und M2-ARM-Geräten angeblich sehr gute GPUs drin, die es mit gehobenen Mittelklasse-GPUs auf PCs aufnehmen können. Konnte man nur nie sinnvoll nutzen, weil es keine erwähnenswerten Spiele für Apple gab. Es könnte also sein, dass die wirtschaftlich eh schon darbenden GPU-Hersteller jetzt auch noch von Apple Stress kriegen.
Die andere Ankündigung war, dass Apple überraschend in Safari plötzlich JPEG XL unterstützt. Ich bin ein Fan von JPEG XL und war sehr ungehalten, als Chrome und Firefox das abgekündigt haben, obwohl das größte Argument gegen die Unterstützung schon vom Tisch war: Dass das viel Arbeit ist. Die war schon getan.
Jetzt habe ich Hoffnung, dass Chrome und Firefox ihre hirnrissige Abkündigung zurücknehmen und wir doch noch alle JPEG XL bekommen.
In Städten wie Köln fehlen Plätze an den weiterführenden Schulen. Die wenigen, die es gibt, werden im Losverfahren vergeben. Wer Pech hat, muss Schulwege von bis zu drei Stunden hinnehmen.Tja, so ist das halt mit unvorhersehbaren Schicksalsfragen wie wieviel Schulplätze man brauchen wird. Wenn man das nur irgendwie voraussagen könnte!1!!
Update: Es muss mal dringend jemand bei Firefox handgreiflich werden, finde ich. Der zeigt dir die URL als markiert an aber fügt dann eine andere ein. Absolute Vollpfosten da in der UI-Abteilung. (Danke, Daniel)
Wegen, äh, *papierraschel* zu wenig Nachfrage.
Die User so: Das war hinter einem Experimental-Switch, von dessen Existenz der Normaluser nichts wusste.
Ja aber Fefe, wieso interessierst du dich denn für Chromium? Du benutzt doch Firefox! Nun ja, immer wenn Chrome etwas verkackt, verkackt Firefox es noch krasser. Bei Firefox gibt es auch JPEG XL, aber es ist auch hinter einen Experimental-Switch, von dem die meisten Leute nichts wissen, und jetzt der Teil, den Firefox noch krasser verkackt als Chrome: Den anzumachen hilft nicht. Man muss auch die Nightly-Version von Firefox einsetzen. Die Normal-Version hat den Switch aber er bewirkt nichts.
Ach naja, wer braucht denn JPEG XL, es gibt doch noch AVIF und HEIC!
Ja schon, aber HEIC kann kein Browser und AVIF wird zwar weitgehender unterstützt aber es wo man ein 1080p JPEG nach JPEG XL in einer Sekunde umwandeln kann, braucht AVIF eher so eine Minute (natürlich je nach Hardware, die man drauf wirft).
In diesem Sinne war JPEG XL tatsächlich der Hoffnungsträger. Der klare Gewinner unter den Formaten. HEIC hat auch noch ein Patentproblem übrigens.
HEIC kommt von der Patentmafia, JPEG XL kommt von den Leuten hinter JPEG, und AVIF kommt von Google.
Wir haben hier also mal wieder einen klaren Fall von Monopolmissbrauch. Wisst ihr, was wir mal bräuchten? Eine Behörde, die sowas verhindert! Ihr wisst schon, sowas wie die Inder haben.
libexpat before 2.4.9 has a use-after-free in the doContent function in xmlparse.c
Tauschen wir aus, läuft alles wieder? Nee, expat wird gerne und häufig in andere Projekte übernommen. Die haben dann eine verwundbare Kopie in ihrem Source Tree. Einfach die Shared Library updaten ist möglicherweise nicht genug.Wisst ihr, ich beobachte ja mit einer gewissen Genugtuung die Supply Chain-Panik um mich herum gerade. Ich hab das schon immer so zu halten versucht, dass ich möglichst wenige externe Libraries reinnehme in meine Projekte. Als ich mal XML parsen musste, habe ich mir daher lieber selbst einen nicht-generischen recursive descent-Parser geschrieben.
Der kann nicht allgemein XML parsen sondern nur die konkrete Ausprägung, und kann auch ganz viele Dinge nicht, z.B. keine Element Expansion, keine Schema-Validierung (das Schema ist hart einkodiert), hat keine Rekursionstiefeprobleme, etc pp.
Was habe ich dafür geerntet, von Leuten, denen ich das erzählt habe? Augenrollen. Wieso DAS denn, Fefe? Nimm doch expat!
Wobei expat zumindest von der Größe her tatsächlich relativ attraktiv aussah. libxml alleine ist größer als der Rest meines Projektes.
Tja, und so sitze ich jetzt hier, gucke mir eure Supply-Chain-Apokalypse an, und bin mit meinen eigenen Projekten nicht betroffen. Indirekt bin ich natürlich doch betroffen, denn ich verwende Firefox, und Firefox verwendet expat.
Seufz.
ich werde ja gezwungen, ... genötigt, ähh,..... wurde ausgewählt den Mikrozensus mit zu machen.Das ist ja schon fantastisch, aber wartet, man kann den Fragebogen auch elektronisch ausfüllen. Da steht dann folgender Hinweis:Da gibt es ja seit letzten mal auch Fragen zu dem Neuland Internet.
Frage 188:
Wann haben sie zuletzt das Internet genutzt?
- in den letzten drei Monaten
- vor mehr als drei Monaten, aber innerhalb der letzten 12 Monate
- vor mehr als 12 Monaten
- Noch nie
"Als Voraussetzung für die optimale Darstellung der *Webapplikation* wird die aktuelle Version eines gängigen Browsers z.B. Internet Explorer ab Version 8.0 oder Mozilla Firefox ab Version 24.0 benötigt. Bitte beachten Sie, dass eine Onlinemeldung derzeit nur über PC oder Laptop möglich ist."Keine weiteren Fragen, euer Ehren!
Bei der Bahn kann ich schon seit Jahren nicht mit meiner Firmenkreditkarte zahlen, weil die da irgendeinen Compliance-Validierungs-Scheiß eingeführt haben, der bei meiner Karte immer failed. Die Karte ist zwar in meinem Namen aber halt nicht mit meinem Privatkonto verbunden, für das ich Onlinebanking hätte.
Gut, zahl ich halt mit Lastschrift. Ist mir eh das liebste Zahlungsverfahren unter den Kandidaten, weil ich betrügerische Abbuchungen zurückholen kann. Das lief seit Jahren gut. Heute nicht mehr. Ich kann zwar SEPA-Lastschrift auswählen, und das sieht auch erstmal so aus, als liefe es, aber dann kommt wieder die Auswahl, diesmal ohne Lastschrift. Da habe ich dann die Wahl zwischen Kreditkarte (funktioniert nicht), Giropay oder Paypal. Paypal macht am Ende Lastschrift, was ich die ganze Zeit haben wollte.
Dieses ganze Herumversagen der Bankenindustrie treibt mich am Ende zu Paypal, weil das die einzigen sind, die mich ohne Bullshit-Theater Dinge bezahlen lassen. Was zur Hölle ist denn bitte mit diesen ganzen Leuten los? WOLLEN die sich aus meinem Geschäftsleben rausekeln?
Giropay hab ich in Erwägung gezogen, aber der Prozess involviert, dass man einen Freischaltlink in seinem Homebanking erzeugt. Was der genau freischaltet ist für mich nicht nachprüfbar. Also mache ich das nicht.
Außerdem finde ich es nicht gut, dass Giropay (oder Paypal!) sehen kann, dass ich bei der Bahn was bezahle. Schlimm genug, wenn die Bahn und meine Bank das sehen können! Wenn ich das System designen sollte, wäre das eines der obersten Designziele gewesen, die anfallenden Daten zu minimieren.
Für die Sache mit dem Aktivierungslink kann Giropay m.W. nichts, das hat ihnen irgendeine Compliance-Bullshitlavine einer Behörde reingedrückt, oder waren es die Banken? Spielt für mich aber auch keine Rolle, wieso das so ist. Es ist so, und ich mag es nicht.
Update: Warum mag ich es nicht? Weil es ein Dark Pattern für Einleitung der Beweislastumkehr ist. "Aber Sie haben doch zugestimmt!" Nee. DEM HIER habe ich NICHT zugestimmt. Daher stimme ich dann lieber niemals irgendwas zu.
Update: Ein Leser meint, er hatte dasselbe Problem, und in Chrome ging es dann, nur Firefox ging nicht. Ein Kumpel von mir hat Firefox und bei dem geht es auch. Ich vermute irgendeinen a/b-Test-Bullshit.
Ein anderer Leser meint, es gäbe da noch einen Unterschied zwischen Giropay und Giropay Paydirekt, und das mit dem Link sei nur bei Giropay Paydirekt. Bei Giropay ohne Paydirekt, sagt er, brauchst du keinen Account irgendwo anlegen sondern du generierst im Onlinebanking eine TAN und die gibst du dann der Bahn-Webseite. Das finde ich ja eher noch gruseliger, muss ich sagen. Das klingt für mich wie eine Sepa-Lastschrift aber mit Beweislastumkehr und ohne Rückbuchbarkeit.
Update: OK, das mit der TAN stimmt offenbar auch nicht. Das ist doch eher wie Sofortüberweisung. Du klickst bei der Bahn, die schickt den Browser zu deiner Bank, da ist ein vorausgefülltes Überweisungsformular, und wenn du das abschickst, dann benachrichtigt die Bank die Bahn, dass du gezahlt hast. Also: Vorkasse und nicht zurückrufbar. Kombiniert geschickt alle Nachteile.
Update: Ein Leser spekuliert, dass die Lastschrift absichtlich für Sparpreis-Tickets abgeschaltet wurde. Das kann sein, ich hab in der Tat Sparpreis-Tickets gebucht.
Das funktioniert so:
www.evil.com kann natürlich kein TLS-Zertifikat für mein Blog vorweisen, insofern argumentiert Mozilla jetzt, das sei gar kein Bug.
Der einmal rumlaufen und überall zlib updaten-Tag!
Fix a deflate bug when using the Z_FIXED strategy that can result in out-of-bound accesses.
Schreibzugriffe. Und das geht auch ohne Z_FIXED.Das betrifft die Kompression mit zlib, nicht die Dekompression. Trotzdem gilt wie immer: Alles updaten. Sofort. Auch wenn ihr glaubt, ihr seid nicht betroffen.
Update: Wenn ihr Software herstellt, dann geht mal bitte in Ruhe durch alles sorgfältig durch. zlib wird gerne mal von wohnmeinenden Pfuschern statisch reinkompiliert. Bei Firefox, der Qualitätssoftware aus dem Hause Mozilla, sind beispielsweise direkt zwei Kopien von deflate.c im Repository. Bei gcc ist auch ein deflate.c dabei. Im Linux-Kernel ist auch ein deflate.c im Tree. Seufz. Das wird ein Blutbad, das alles zu updaten.
Update: zlib ist in Browsern, in allen Programmen, die mit PNG umgehen, in allen Programmen, die mit ZIP-Dateien umgehen, auch versteckt wie Office oder Java, ... zlib ist eine der am häufigsten verwendeten Bibliotheken. Kernelmodule werden gerne mit zlib komprimiert, Man Pages, das ist auch sonst in irgendwelchen Dateiformaten implizit drin. Einmal alle Skriptsprachen. Das ist echt Worst Case in Sachen Abhängigkeitshölle, wenn in zlib was kaputt ist.
In dem konkreten Fall hatte die österreichische Rechteverwertungsgesellschaft Austro-Mechana von dem in Berlin ansässigen Provider Strato die Zahlung einer Speichermedienvergütung nach dem österreichischen Urheberrechtsgesetz für den Cloud-Speicherplatz HiDrive verlangt. Der in den Rechtsnormen verwendete Begriff "Speichermedien jeder Art" erfasse nämlich nicht nur Computerfestplatten, sondern auch das Anbieten von Speicherplatz in einer Cloud.Hey, Österreicher, habt ihr eigentlich keine eigene Wirtschaft, die ihr kaputtmachen könnt? Müsst ihr immer den Deutschen in die Tasche greifen?
Oh, übrigens, am Rande. Wo speichert der Clouddienst die Daten? Auf Festplatten.
Zahlt man auf Festplatten bereits Urheberrechtsabgaben? Aber natürlich! Genau wie auf die PCs und Mobiltelefone übrigens, auf die ihr die hier postulierten Privatkopien dann runterladet, um sie abzuspielen.
Selbst wenn Strato also nicht bereits gezahlt hätte, hätten die "Verwertungsgesellschaften" ihr Pfund Fleisch schon bekommen.
Update: Boah dieses Firefox ist echt so ein unfassbarer Scheißrotzkackdreck, das ist unfassbar. Du suchst dir aus einer ranzigen Web-UI ein PDF raus, klickst drauf, Firefox zeigt es an, aber packt nicht die URL auf dem Webserver in den Urlbar sondern eine lokale Download-URL.
Nicht?
In sozialen Netzen finden die ja nicht mehr statt, Fernsehen von denen wurde auch verboten, die Webseite geht seit Anfang des Monats nicht mehr.
Auch bei Google findet man keinen RT-Content mehr. Hier ist der zugehörige Eintrag aus der Lumen-Datenbank. Wenn ihr da mal ein bisschen das Kleingedruckte durchlest, findet ihr diesen Absatz hier:
As regards the posts made by individuals that reproduce the content of RT and Sputnik, those posts shall not be published and, if published, must be deleted.
Also nicht nur RT. Auch Privatleute, die RT-Content wiedergeben.Das ist übrigens nicht nur Deutschland. Ein Kumpel aus Belgien hat gerade mal probiert und bei dem kommt eine Stoppschild-Seite. Er hat daraufhin mal Tor probiert, und auch per Tor kam er nicht dran.
Das ist nicht verwunderlich, denn die meisten Tor Exit Nodes stehen in ... Deutschland. Ja, Deutschland, weil das immer alle für den Hort der Freiheit hielten. Wo sonst würde man seine Exit Nodes aufstellen, wenn nicht in einem Land, wo verfassungsmäßig garantiert keine Zensur stattfindet?
Seid ihr eigentlich auch so froh, dass ihr bei den Guten seid?
Update: Wo ist eigentlich die Gesellschaft für Freiheitsrechte, wenn man sie braucht?
Update: Das ist übrigens technisch eine DNS-Sperre. Wer seinen eigenen DNS-Server betreibt, ist nicht betroffen. Im Moment scheinen auch die öffentlichen DNS-Server von Google, Cloudflare und IBM noch nicht zu zensieren.
Update: Mehrere Leser schreiben mir, dass sie von der Zensur noch nichts bemerkt haben, bei ihnen ginge es. Ich kann hier gerade live testen, dass Vodafone und O2 das zensieren. Ein Kumpel mit Telekom-DSL kann es noch auflösen. Das wäre ja bemerkenswert, wenn ausgerechnet die Telekom die Zensurorder nicht umgesetzt hätte.
Ansonsten kann es auch sein, dass ihr in eurem WLAN-Router 8.8.8.8, 1.1.1.1 oder 9.9.9.9 eingetragen habt. Oder, was auch mal interessant zu wissen wäre, vielleicht benutzt ihr Firefox und die haben ihr DoH-Antizensur-"Experiment" auch für Deutschland freigeschaltet und resolven dann über 1.1.1.1.
Außerdem scheint es einen Unterschied zu geben, ob man nach rt.com fragt oder nach de.rt.com. de.rt.com ist auch bei der Telekom blockiert, meint mein Kumpel.
Update: Die Gesellschaft für Freiheitsrechte äußert sich. Sie finden, der Kreml solle seine Klagen mal selber finanzieren.
Ich weiß nicht, wie ihr das seht, aber ich fand nicht, dass es hier um die Rechte von RT geht. Ich fand, dass es hier um meine Rechte geht. Das mag euch jetzt überraschen, aber ich hätte meine Rechte viel lieber von der GFF verteidigt als vom Kreml.
Update: Die rechtliche Grundlage für die Vorzensur ist anscheinend diese EU-Verordnung. Ich hätte ja gerne mal eine zweite Expertenmeinung eingeholt dazu, ob die überhaupt die Befugnis für so eine Zensuranordnung haben. Schade, dass die GFF dafür offenbar nicht zur Verfügung steht. Ich bin ehrlich gesagt ziemlich enttäuscht von Ulfs Argumentation hier. Ist ein Haftbefehl eines Landes, das extraterritoriale Folterknäste betreibt, auch nicht so schlimm, solange Fefe weiß, wo die ecuadorianische Botschaft ist?! Das kann ja wohl nicht ernsthaft das Bewertungskriterium sein.
Gute Ideen setzen sich halt durch. Das war ja auch bei Windows und Firefox super populär.
Für den Endbenutzer hat KDE damit endlich den letzten Schritt getan. Es ist groß, langsam, überkomplex, unzuverlässig, und jetzt hat es auch noch Werbung. Windows-Kompatibilität erreicht!
Mir persönlich wäre es ja viel lieber, wenn Leute, die dafür bezahlt werden wollen, lieber keine Software entwickeln, als wenn sie Software mit Ausspähen und/oder DRM und/oder Lizenzkack und/oder Werbung schreiben.
Niemand zwingt euch zum Softwareentwickeln. Wenn ihr also gerne Software entwickeln würdet, dann macht das halt für Oracle oder IBM oder so. Macht uns nicht per Assoziation unsere Errungenschaften kaputt.
Es gibt online zwei Hinweise, was man tun kann. Erstens: http3 abschalten (in about:config network.http.http3.enabled auf false) und zweitens: In about:preferences#privacy bei Firefox Data Collection and Use alles abschalten.
In meinem Firefox ist http3 nicht deaktiviert, aber ich habe natürlich aller Data Collection widersprochen.
Aus meiner Sicht würde ich also nicht das Ausschalten von http3 empfehlen, denn das ist bei mir an und ich habe kein Problem, sondern die Datenkrakenabschaltung.
Dann kursiert noch die Idee, dass das was mit DNS over HTTP zu tun hat. Das habe ich nicht angeschaltet, weil ich Cloudflare nicht traue. Ich musste es aber, soweit ich mich erinnern kann, auch noch nicht ausschalten, weil Firefox das in Deutschland noch nicht hinter meinem Rücken anzuschalten versucht hat.
Update: Sieht als als sei Telemetrie bloß der Trigger gewesen. Leute berichten, auch Firefox 91 habe schon den Bug. Mir ist er immer noch nicht begegnet.
Aus aktuellem Anlass sei auch nochmal auf meine Ausführungen zu HTTP/2 von 2015 und aus 2019 verwiesen. Ich habe HTTP/2 nie implementiert, weder client- noch serverseitig. Das ist gar nicht mit akzeptabler Softwarekomplexität implementierbar, wenn man irgendeinen der (eh nur theoretischen) Vorteile haben will. HTTP/3 bestätigt mich da inhaltlich, denn es ist ein Wegschmeißen von HTTP/2 und ein Neumachen auf Basis von QUIC. Hier ist die Spec von QUIC. Könnt ihr euch ja selbst überlegen, ob ihr das von der Komplexität her für akzeptabel haltet.
Oh, warte, sagte ich wegschmeißen und neumachen? nicht wirklich:
HTTP/3 is an Internet Draft adopted by the QUIC working group. The original proposal was named "HTTP/2 Semantics Using The QUIC Transport Protocol",[8] and later named "Hypertext Transfer Protocol (HTTP) over QUIC".[9]
Denn bei Kommittee-Standards ist das wie bei Hoardern. Da wird nie irgendwas weggeschmissen, egal wie schlimm es stinkt.
Update: Nochmal langsam zum mitmeißeln: Komplexität ist der Feind.
Der Standard-Linker unter Linux ist GNU ld von den binutils. Das ist ein uraltes Fossil von einer Codebasis, weil die eben nicht das konkrete Problem gelöst haben, sondern ein allgemeineres Problem lösen. Der Linker ist parametrisierbar und kann zur Compilezeit mitgeteilt kriegen, ob man ELF, COFF oder gar Windows EXE Files damit linken will. Kann glaube ich auch MACH-O von Apple, bin mir aber nicht sicher gerade.
Jedenfalls ist das Teil schnarchlangsam. Spielt in den meisten Fällen keine Rolle. Ich hab damit jahrzehntelang prima arbeiten können, ohne dass mir jemals aufgefallen wäre, wie langsam das Teil ist. Meine Programme sind aber auch alle relativ überschaubar.
Wenn man mal, sagen wir, Firefox linkt, dann ist die Link-Pause merkbar. Spielt im Vergleich zur Compilezeit keine Rolle, aber ist nicht gar nicht da.
Also haben sich über die Jahre Projekte gegründet, um mal einen schnelleren Linker zu bauen. Der erste, den ich gesehen habe, ist GNU gold, der ist auch Teil von den binutils. Ist in C++ geschrieben und direkt ... doppelt so groß wie ld. War zwar ein bisschen schneller aber linkte bei mir mal Firefox nicht und konnte auch kein link-time optimization und war daher direkt draußen.
Das nächste Projekt, das antrat, war LLVM lld. Der hat erstmals ein bisschen Multithreading am Start, aber nur für einige Teile. mold will jetzt alle Teile auf alle Cores verteilen.
Ich habe mal testweise das Erstellen von libavcodec.so gemessen:
GNU ld: 1.21s user 0.26s system 99% cpu 1.463 totalDas war jeweils noch mit Debug-Symbolen. Gut, unterhalb einer Sekunde ist das jetzt alles nicht sonderlich aussagekräftig, und die %CPU-Spalte bei mold ist offenbar damit überfordert, wie flott das Ding fertig war :-)
GNU gold: 0.83s user 0.10s system 99% cpu 0.928 total
LLVM lld: 0.69s user 0.17s system 258% cpu 0.333 total
mold: 0.03s user 0.00s system 13% cpu 0.247 total
Aber ich finde das ein interessantes Ergebnis und wollte direkt mal dietlibc damit linken, um zu gucken, ob das geht. Ging nicht, weil ich eine obskure Spezialoption von GNU ld benutze, -z noseparate-code. ld hat vor ein paar Jahren angefangen, nach SPECTRE bei den Segmenten Padding auf Page-Größe zu machen. Hintergrund ist, dass die Hardware Speicherschutz mit Page-Granularität macht. Wenn also in einem Binary Code und Datensegment nebeneinander im Binary liegen, dann war früher auf der letzten Page des Datensegmentes (das read-write gemappt ist!) auch die ersten Bytes des Codesegments, und man hätte da also reinschreiben können in einem Exploit oder so. Jetzt bläst der Linker das mit Null-Bytes auf. Ist an sich eine gute Idee, aber bei dietlibc will ich halt winzige Binaries haben. Da ist das Binary für rm sowas wie 9k groß. Wenn der Linker da Padding einfügt, dann ist das mal eben 50% größer. Daher möchte ich das bei der dietlibc gerne selektiv ausschalten können, und obiges wäre die Option dafür gewesen.
Die konnte mold nicht. Also hab ich vor zwei Tagen einen Bug aufgemacht. Heute war die Mail in der Inbox, dass er das eingebaut hat.
Ich muss sagen: Hut ab. So stellt man sich das in seinen Fieberträumen vor, dass Software-Entwicklung so abläuft. Erstens natürlich dass der Typ überhaupt reagiert, dann dass er mir nicht erklärt, meine Anforderung sei Scheiße, dann dass er das implementiert, und dann dass er das quasi über Nacht implementiert. Sehr beeindruckend.
Ich wünsche euch allen, dass ihr eure Codebasen auch so in Schuss habt, dass ihr auf so eine Anforderung mal eben so flott reagieren könntet. :-)
mold hat bei mir jetzt auf jeden Fall mehrere Schritte auf der Treppe genommen.
Update: Äh, jetzt habe ich den Link vergessen. Ist auf Github. Hat m.W. keine separate Homepage.
Für die Zukunft will Mozilla weiter in Firefox, Mozilla VPN, und seinen Lesezeichen-Dienst Pocket investieren, die nach eigenen Angaben von rund 100 Millionen Menschen genutzt werden. Außerdem soll "qualitativ hochwertige Werbung" durch von Mozilla als vertrauenswürdig eingestufte Partner geboten werden.Scheiße, Bernd! Nur hochwertige Werbung von vertrauenswürdigen Partnern? Wieso ist denn da sonst noch keiner drauf gekommen!1!!
Firefox scheinen die nur noch als Hebel zu sehen, um ihre anderen Dienste an den Mann zu bringen.
Die Amis haben ja neulich Positive Technologies als staatliche Cyberterroristenbude bebrandmarkt und auf die Boykottliste gesetzt. Positive Technologies hat sich gedacht: Ach, na dann gucken wir doch mal, wie wir mit minimalem Aufwand eine Remote Code Execution in Windows finden können.
Der Aufwand war tatsächlich eher überschaubar. Er nutzt Microsoft-spezifische URL-Schema-Handler aus. Ihr erinnert euch, das war das, womit Microsoft neulich Firefox unfair rauskanten wollte.
Es gibt da einen, über den Edge Office-Programme starten kann.
Our research journey was straightforward: We decided to find a code execution vulnerability in a default Windows 10 URI handler, and succeeded within two weeks. Considering the amount of URI handlers Windows ships with, it seems very likely that others are vulnerable too
Der Einschätzung würde ich mich anschließen.Update: Äh, da hab ich zu schnell geschossen. Positive Security (Berlin) != Positive Technologies (Moskau). Positives ist so selten in der Branche, da kann man das schonmal verwechseln *kalauer*
Lass mich raten… weil OpenSSL so einen schlechten Ruf hat?
Tavis Ormandy hat mal geguckt, wie die ihre Signaturen ablegen. Sie haben da eine Union, in der das größte Element 16 kbit groß ist, für RSA.
Okay, but what happens if you just….make a signature that’s bigger than that?Well, it turns out the answer is memory corruption. Yes, really.
Oh. Mein. Gott.Das ist schlimmer als Heartbleed. Das ist sozusagen der Hallo Welt unter den Remote Code Execution.
Sagt mal seid ihr auch so froh, dass Mozilla ihr Geld für so Dinge wie Colorways ausgegeben hat?
Oder dafür, dass ihr endlich Werbung im New Tab kriegt?
Oder für das ungefragte Einsammeln von Telemetrie?
At Mozilla, we want to make products that keep the Internet open and secure for all. We collect terabytes of data a day from millions of users to guide our decision-making processes. We could use your help.
Nein, Mozilla. Wenn ihr meine Hilfe wollt, dann löscht ihr erstmal alle Daten über eure User.Aber zurück zu diesem Bug. Tavis Ormandy ist besonders geflasht, dass Mozilla da endlos static analyzer und fuzzing gemacht hat, und die Tools haben alle grüne Lampen angezeigt. Und nicht nur doofe Fuzzer sondern aktuelle state-of-the-art Fuzzer mit Coverage-Analyse!
Mich überrascht das ja nicht so doll. Ich werde praktisch nach jedem Code Audit gefragt, wieso ihre Static Analyzer das alles nicht gefunden haben. Ihr solltet vielleicht mal weniger Geld für Tools ausgeben und mehr Geld in eure Entwickler stecken, dass die lernen, wie so ein Bug aussieht und worauf man achten sollte.
Windows 11 lets you choose your default browser, but it takes a lot of clicks and Microsoft sometimes forces you to use Edge, anyway. Firefox had a workaround, but Microsoft calls it “improper” and will soon block it.
Das ist ja eine Sache, argumentieren sie, wenn wir euch den Browser ändern lassen, weil uns das Kartellamt dazu gezwungen hat. Das heißt aber nicht, dass wir nicht Suchanfragen in der Taskleiste immer über Edge und Bing machen!1!!Denn warum nur nervig, wenn auch noch nutzlos geht!
Today, Firefox is launching Colorways, a new feature that allows our users to express their most authentic selves and to bring them joy while browsing the web.
Nein, das habe ich mir nicht aus dem Arsch gezogen. Seht selbst. Geht noch weiter:As we challenge what the browser has been, and expand and define the vision of what Firefox browser is and can be, part of that challenge is to ask ourselves “who is it for and who can use it easily and feel included in the experience?”
Tja, sowas passiert, wenn man das Rust-Team feuert. Immerhin haben sie noch die Entwickler, die sich auf die wirklich wichtigen Dinge verstehen. Farbtherapie und so. Wokeness.
Zensursoftware? Wie meinen?
Flagship phones sold in Europe by China's smartphone giant Xiaomi Corp (1810.HK) have a built-in ability to detect and censor terms such as "Free Tibet", "Long live Taiwan independence" or "democracy movement", Lithuania's state-run cybersecurity body said on Tuesday.
Ja aber komm, das ist doch nicht angeschaltet in Europa, oder?!The capability in Xiaomi's Mi 10T 5G phone software had been turned off for the "European Union region", but can be turned on remotely at any time, the Defence Ministry's National Cyber Security Centre said in the report.
Aber Fefe, haben die nicht völlig Recht? Ist das nicht ein Problem? Wieso schreibst du denn da Lacher des Tages dran?
Weil Apple und Google und Firefox und Chrome und Windows selbstredent dieselbe Befähigung haben. Nur shippen die das Zensurmodul nicht die ganze Zeit mit, wo es möglicherweise auffallen würde, sondern sie nennen es Updateschnittstelle. Sie nötigen uns außerdem alle, ständig auf Zuruf Updates einzuspielen. Und sie haben so verkackte beschissene Software, dass das in der Tat gar nicht sicher betreibbar ist, wenn man nicht alle Updates immer sofort einspielt.
Wo ist da also noch gleich der fundamentale Unterschied? Oh, gibt gar keinen? Na sowas!
Wir haben alle schon lange die Souveränität über unsere Geräte und Daten abgegeben. Damit haben wir uns ein bisschen Convenience gekauft, die wir jetzt gar nicht nutzen können, weil die immer neuen Security-Theater-Maßnahmen jede Convenience schon längst aufgefressen haben.
Wie? Was sagt ihr? Oh warte, ich kann gerade nicht. Ich muss kurz Pause machen. Windows will meinen Rechner nach Malware scannen. Mit einem frisch remote eingespielten Malware-Scanner.
Lasst euch mal bitte noch von dieser plumpen Nato-Propaganda verarschen.
Ich hab das mal experimentell als AVIF statt JPEG hochgeladen, das jetzt angeblich alle Browser können. Bin mal gespannt, ob das Format realitätsfest ist.
Update: Hups, da hat mich meine Toolchain verarscht. Die kann gar kein AVIF und hat da ein JPEG abgelegt. m(
Update: OK jetzt liegt da tatsächlich ein AVIF und es kommt auch mit MIME-Type image/avif raus. Bei mir zeigen Firefox und Chrome das unter Linux richtig an. Leser berichten, dass der Android-Firefox das noch nicht kann, aber Android-Chrome kann es. Unter Windows können es wohl auch alle namhaften Browser. Safari kann anscheinend gar kein AVIF, egal wie aktuell man ist.
Update: Stellt sich raus: Firefox 92 hat das wegen eines Bugs wieder rausgenommen. Bei mir ging Firefox, weil ich unter Windows den beta Channel angeschaltet habe, das ist dann 93, und unter Linux den Nightly selber baue.
Wenn man derzeit aus einem Hochinzidenzgebiet nach Deutschland einreist, muss man sich ja unter einreiseanmeldung.de anmelden. Da bekommt man am Ende ein PDF. Wenn man nicht geimpft ist (Kinder...), muss man ja für 10 Tage in Quarantäne, verkürzbar auf 5, wenn man nach 5 Tagen einen Test macht und den hochlädt.Klingt für mich wie ein klarer Fall von Not My Job Award.Wie lädt man den hoch? In dem PDF ist ein Link.
Der ist kaputt! Der wird nämlich auf zwei Zeilen umgebrochen, und wenn man klickt, wird nur die erste Zeile als Link genommen. Wenn man copy&pasted, wird ein Leerzeichen mitten in die URL eingefügt. Ws müssten jetzt also Tausende ihre Test-Ergebnisse hochladen, aber wieviele % werden diese Hürde überwinden?
Das Traurige: Scheint genau Niemanden zu interessieren. Ohne, dass der Test erfolgreich hochgeladen wurde, geht die Quarantäne noch 5 tage weiter. aber überprüft ja eh keiner...
Der Link sieht, in korrigiert, so aus:
https://upload.einreiseanmeldung.de/#/9578b324-54ce-4c6d-afb7-7e82e5cdba01Die GUID da ist von mir gerade pseudozufällig generiert, die kommt nicht von denen.
Leider ist der Link damit personalisiert und ich kann hier nicht den korrekten Link posten. Einmal mit Profis arbeiten.
Update: Der Einsender meint gerade noch, dass der Link in dem PDF mit Firefox funktioniert, aber mit dem Apple PDF Reader nicht.
Der Cloudflare-Timeout gestern? Das war mein Aprilscherz.
Aber das Niveau an Paranoia unter meinen Lesern empfinde ich in diesen schweren Zeiten als sehr positiv. :-)
Und keine Sorge. Ich habe keinen von euch tatsächlich zu Cloudflare geschickt, auch nicht für Ressourcen auf der Timeout-Seite.
Sie halten ihre Probleme für die schwierigsten, ihre Lösungen für die schlauesten, ihren Code für den zeitkritischsten und ihre Algorithmen für die besten.
Ich habe das noch nie verstehen können, aber das mag an meinem Spielegeschmack liegen. Wer mit Mass Effect 3 und Bethesda-Spielen großgeworden ist, der findet die Idee eher abwegig, dass Spieleentwickler besonders fähig sind. Das stürzt alles ab, wenn du kurz blinzelst. Wenn du kurz durch eine Tür in ein Zelt gehst und dann wieder raus, dann hast du ne Minute Wartezeit, weil er die ganze Welt neu lädt, etc.
Es gibt da fähige Leute und trickreiche Lösungen, klar, aber der meiste Code ist Mist, genau wie überall sonst auch. Gerade kam dieser tolle Artikel über GTA Online an mir vorbei. Das Game ist jetzt 6 Jahre alt und lädt auf der Hardware des Autoren 6 Minuten lang. 6 Minuten!! Man stelle sich das mal vor, Firefox würde so lange brauchen! Ich krieg ja schon bei 5 Sekunden Ladezeit Wutpickel!
Dieser Typ hat sich aber nicht nur aufgeregt sondern mal ein paar Reversing-Tools angeworfen. Stellt sich raus: Die Wartezeit kommt davon, dass das Spiel 10 MB JSON parsed. Und zwar mit strlen, scanf und einer "accidentally quadratic" Datenstruktur. Falls euch accidentally quadratic nichts sagt: Googelt das mal. Das heißt, dass bei einem Algorithmus die Rechenzeit quadratisch mit der Anzahl der Elemente steigt.
Das ist leider nicht ungewöhnlich, dass solcher Code ausgeliefert wird, weil das bei kleinen Datenmengen kein Problem ist und man dann später erstmal die Crashes mit Priorität bearbeitet und Performancekram liegen lässt. Im Falle von GTA Online sechs Jahre lang.
Was hat der Typ also gemacht? Einen kleinen Hack, der diese Funktionen ersetzt. Damit war seine Ladezeit dann runter auf knapp 2 Minuten. Der Fix hätte Rockstar (haha, die heißen auch noch Rockstar!! Wie geil ist DAS denn! Und verkacken dann sowas triviales!) vielleicht ne Stunde gekostet. Stattdessen scheißen sie drauf und verplempern Jahrzehnte an Lebenszeit ihrer Kunden.
Spieleentwickler hab ich ja echt gefressen. Das sind so Leute, die Fehler nicht abfangen, weil das zuviel Performance kosten würde. Aber immer Ausreden zur Hand, wieso ihr Code so unfassbar kacke ist. Ja, äh, das war der Crunch! Zeit war knapp! Geld war alle! NA DANN MACHT HALT KEINE UNREALISTISCHEN PROJEKTE, IHR DEPPEN!
We need more than deplatforming
Konzeptionell bin ich ja ein Freund von Rust. Was die sich da an Neuerungen überlegt haben, das hat die Industrie insgesamt vor sich hergetrieben.
Von welchem Nachteil rede ich denn dann? Nun, ich baue hier regelmäßig mein Firefox selbst.
Mozilla stellt der Reihe nach Teile von Firefox auf Rust um.
Das ist ja auch gut so.
Aber zwei Effekte zeigen sich dabei schnell. Der erste ist, dass Rust nicht parallel baut. Neben den ganzen C++-Teilen, die vom Build-Prozess schön auf die Cores verteilt werden, läuft da dann halt ein cargo build für sowas wie 15 Minuten auf einem Core und baut den Rust-Kram. Noch gibt es genug C++-Zeug, dass das noch wenig zu Lasten der CPU-Auslastung geht, aber wenn man inkrementell baut und sich in der Zeit drei C++ und zwei Rust Quellcodedateien geändert haben, dann merkt man das deutlich, denn bei Rust ist die Unterscheidung zwischen Compiler und Linker anders verschoben. Der scheint immer eine Art LTO-Pass zu machen. Jedenfalls kommt es vor, dass der C++-Teil fertig ist und dann das make mit einer 100%-Auslastung auf einem Kern ewig lang an Rust herumrödelt.
Das ist das erste Problem. Das zweite Problem ist noch schwerwiegender. Rust verbraucht echt viel RAM. Ich habe hier eine Kiste mit 16 GB RAM. Die reicht bei praktisch allen Projekten, um die aus der Ramdisk (tmpfs) zu bauen. Nicht so bei Firefox. Da musste ich schon vor einer Weile die Quellen auf der Platte haben, weil sonst der Build mit out of memory abbrach. Jetzt ist es so, dass der Build auch beim von-Platte-bauen gerne mit out of memory abbricht. Stellt sich raus: Der LTO-Teil in dem Rust-Teil von Firefox schluckt mal eben sowas wie 13 GB am Stück. Wenn du da noch ein paar C++-Dateien parallel zu bauen versuchst, dann ist Ende Gelände.
Ich beobachte das mit großer Sorge, wie sorglos Entwickler mit dem Speicherbedarf ihrer Software umgehen. Ich habe noch zwei andere Projekte, bei denen der Speicher knapp wird. Qt muss ich auch von Platte bauen, nicht von Ramdisk. Und LLVM hat neuerdings einen Fortran-Compiler drin. Ich weiß nicht, was die da gemacht haben, aber das Bauen davon muss ich auf zwei Kerne zur Zeit beschränken, sonst frisst das zu viel RAM. Ich vermute eine Template-Instanziierungs-Hölle oder sowas. Der Fortran-Compiler setzt bei LLVM auf ein neueres Fundament als der C++-Compiler, ein generalisiertes Compilerframework namens mlir (ist auch Teil von LLVM).
Chrome und Libreoffice benutze ich nicht und habe ich daher auch nicht zu bauen versucht. Ich vermute mal, das wird mit 16 GB auch knapp.
Update: Dass Rust nicht parallel baut ist eigentlich auch nicht korrekt. Ich kann daher gerade das bei Firefox beobachtete Verhalten nicht erklären. Das liegt allerdings auch schon ein bisschen zurück, denn Firefox hat vor einer Weile angefangen, einfach gefühlt immer darauf zu bestehen, dass man einen komplett neuen Build startet und nicht inkrementell baut. Jedenfalls definitiv immer zwischen Versionen. Insofern kommt der Fall bei mir kaum noch vor, dass ich auf einen Rust warten muss bei Firefox.
Jeder Bericht darüber rekrutiert nur Personal für neue Terroranschläge. Man muss den zeigen, dass das nicht funktioniert, indem man dem keine Aufmerksamkeit widmet.
Aber jetzt sehe ich mich doch genötigt, einen Link zu setzen, und zwar auf diese kurze Durchsage aus dem österreichischen Fernsehen.
Schleich di, du Orschloch.
Update: Boah wenn ich den Vollidioten erwische, der bei Firefox das UI geändert hat, so dass die URL markieren nicht mehr für copy und paste reicht, dann gibt es Verletzte.
Aber das reicht ihnen nicht. Das sind auch die mit dem öffentlichen DNS-Server, der sieht, auf welche anderen Seiten ihr so geht.
Aber das reicht ihnen nicht. Das sind auch die mit dem Pilotprojekt für "verschlüsseltes DNS" mit Mozilla, damit sonst keiner sieht, was sie sehen können.
Und jetzt stellt sich raus: Auch das reicht ihnen noch nicht. Jetzt wollen sie auch noch, dass ihr ihren Cloud-Webbrowser benutzt. Damit sie auch noch sehen können, wo ihr die Maus hinbewegt aber nicht draufklickt, und wie lange ihr auf welcher Seite bleibt.
Gut, man könnte sagen, so häufig wie die ihre eigene Infrastruktur abschießen, da muss man keine großen Sorgen haben, dass nicht auch ihre Datenbanken mit den Datenkrankendaten periodisch gelöscht werden. Aber darauf würde ich mich ja eher nicht verlassen wollen. Browser in der Cloud ist jedenfalls die denkbar dämlichste Idee, die ich in den letzten Jahren gehört habe. Ja, NOCH dämlicher als "wir leiten alle Mozilla-DNS-Anfragen über Cloudflare".
Es ist natürlich auch ein massives Sicherheitsproblem, weil dann alle eure Logindaten für Webseiten bei denen in der Cloud landen und dort abgreifbar sind, für Cloudflare und sonstige Angreifer.
Wo wir gerade bei Datenkraken waren: Stellt sich raus, dass Google Chrome Google-Webseiten gerne mal von Privatsphäreneinstellungen ausnimmt. Uns hat der Benutzer bestimmt nicht gemeint, als er gesagt hat, er will alle Cookies löschen!1!!
Update: Hier kommt gerade noch ein Leserbrief dazu rein, der einen anderen wichtigen Aspekt beleuchtet:
dieser Satz hier (Zitat)
As a result, the only thing every sent to a user's device is a package of draw commands to render the webpage and this also means that the company's new service will be compatible with any HTML5 compliant browser including Chrome, Safari, Edge and Firefox.hat für mich noch eine ganz andere Implikation. Wenn ich den Ansatz richtig verstehe, bekommt der *echte* Browser auf dem so kastrierten Gerät nur noch einen Satz svg.Draw-Kommandos statt der eigentlichen Webseite. Das bedeutet, dass auch alle Meta-Informationen über die Objekte der Seite wegfallen und alles nur noch über Koordinaten, wo der User klickt, laufen muss. Wie sie mit Tastatureingaben umgehen sagt der Artikel nicht. Auf jeden Fall zerschießt ein derartiger Ansatz einmal komplett und rückstandsfrei den Access-Tree einer Seite - nein *aller* Seiten. Das ist der Ort, wo assistive Software heutzutage 95% ihrer Informationen hernehmen um beispielsweise Webseiten vorlesen zu können, Vergrößerung anzubieten oder Navigation in Seitenstrukturen möglich zu machen.
Das ist ein Arbeitsplatz-Zerstörungsprojekt für jegliche Menschen mit einer Behinderung, die ihren PC anders als mit Point and click bedienen wollen oder müssen!
Stell dir nur mal den ersten Arbeitstag für so einen Menschen in seinem neuen Unternehmen vor.
Im Bewerbungsgespräch noch so: "Mit assistiver Technik kann ich, ggf. mit Anpassung, heute ziemlich jede Software schnell und produktiv bedienen."
Vor Ort so: "Dann richten Sie sich mal ein. Gern geben wir Ihnen etwas mehr Zeit dafür. Wir nutzen übrigens Cloudflare for Teams mit Browser Isolation."
Neue Angestellte: "Oh ..." *panischer Blick* "Kriegen wir das irgendwie anders hin?" (Erklärungsversuch)
Vorgesetzte und Personalerin: "..." *tauschen Blicke*
Nvidia hat ja vor ein paar Jahren aufgehört, Grafikkarten zu bauen, die für Spieler attraktiv sind. Kein Wunder, denn in den beiden finanziell relevanten Segmenten, Unten und Mitte, haben sie Intel und AMD aus dem Markt gepreist. Und das Oberklasse-Segment ist eher sowas wie Formel 1 für Autobauer. Da versenkt man PR-Kohle rein. Das rechnet sich aber nur, wenn man in den anderen Marktsegmenten konkurrenzfähig ist. Statt für Gamer hat Nvidia versucht ihre Karten für KI attraktiv zu machen. Leider ist das alles bisher eine ziemliche Bruchlandung geworden.
Aus dem "selbstfahrendes Auto"-Segment musste sich Nvidia ganz zurückziehen, und die anderen KI-Geschichten tragen keinen Massenmarkt-Appeal. Nvidia sucht also händeringend nach PR-Argumenten, wieso Privatanwender unbedingt KI brauchen. Ihr aktueller Entwurf: Videokonferenzen!1!! Ja, äh, nee, klar. Ich schäm mich ja ein bisschen dafür, wie wenig Substanz die sich aus dem Arsch gezogen gekriegt haben.
Ich würde ja aus Gerechtigkeitsgründen auch was von Golem verlinken, aber die haben sich hinter einer derartig nervigen Nerv-Cookiewall verbarrikadiert, das kann man niemandem zumuten.
Der Lacher ist ja auch, wieso Nvidia bei KI gelandet ist. Eigentlich waren Grafikkarten mal die große Hoffnung für Supercomputer und numerische Simulationen. Die hätten aber häufig gerne lieber doppelt-genaue Fließkommazahlen. Die hat Nvidia bei ihren Konsumenten-Karten absichtlich lobotomiert, damit die Leute gezwungen sind, ihnen für absolute Freudenhauspreise ihre "professional"-Karten abzukaufen. Viele haben das getan. Viele aber auch nicht. Und ein Massenmarkt ist das auch nicht.
Die andere Anwendung für parallele Arithmetik mit hohem Durchsatz neben numerischen Simulationen sind neuronale Netze. Oh ja, und Computergrafik. Aber aus dem Markt zieht sich Nvidia ja offenbar zusehends zurück. Jedenfalls war ihre letzte Generation von Grafikkarten für den Konsumentenmarkt so teuer wie ein paar Jahre vorher die "professional"-Karten für Simulationen. Die haben so krass an der Preisspirale gedreht, dass sich nur noch Superreiche überhaupt ihre Karten leisten können. Also in den Segmenten jetzt, wo man Nvidia-Karten kaufen würde, weil es keine billigere und schnellere AMD-Karte gibt.
Ich frage mich daher jedes Mal, wieso in Vergleichs-Grafiken sowas wie die Titan-Reihe überhaupt auftaucht.
Die Grafikkarten sind übrigens deshalb so teuer, weil ja irgendwer auch die Eskapaden im KI-Sektor bezahlen muss, und so Aktionen wie "wir kaufen mal eben ARM", und hey, wieso nicht die doofen Deppen aus dem Massenmarkt zahlen lassen, die KI gar nicht nutzen?
Oh warte, doch. Für ... *papierraschel* Videokonferenzen!1!!
Update: Nachschlag zu Nvidia: Deren aktueller Ampere-Launch stellt sich wenig überraschend als Paper Launch heraus. Nur dass Nvidia so tut, als sei das doch lieferbar, während Intel nicht mal so tut, als gäbe es eine Desktop-Version in absehbarer Zeit. Dass ausgerechnet Intel mal in einem Vergleich wie die integerere Firma aussieht, das hätte ich mir auch nicht träumen lassen. Intel, wir erinnern uns, das waren die, die ihre Compiler (die übrigens richtig Geld kosten!) absichtlich lobotomiert haben, damit sie auf AMD-CPUs lahmen Code generieren. Intel, wir erinnern uns, waren die mit den ganzen spekulativen Bescheiß-Technologien zur Performance-Optimierung, die sich jetzt der Reihe nach als Sicherheitsproblem herausstellen. Intel, wir erinnern uns, waren die, die den Markt mit Werbe-Subventionen geflutet haben, aber nur, wenn die beworbene Produktlinie keine Mitglieder mit AMD-Prozessor hat. Und DIE sehen jetzt weniger schlecht aus als Nvidia. Das ist eine beachtliche Leistung auf Seiten von Nvidia.
Update: Das ist nicht die erste schwachsinnige Idee, mit der Nvidia Gamern KI überhelfen will. Es gibt auch schon Hochsampling mit KI und Bildverbesserung mit KI und bestimmt noch ein paar mehr Dinge. Die Zeiten, wo Nvidia performanterer Hardware gebaut hat, sind offenbar echt vorbei.
Update: Das war jetzt missverständlich ausgedrückt. Nur weil ich finde, dass Intel und AMD Nvidia aus dem Markt rausgepreist haben, heißt das nicht, dass sie da nichts mehr verkaufen. Das sind alles Depp ... edle Spender, die ihr Geld für die KI-Forschung verschenken! Also gut, eher nicht so für die Forschung nach KI-Durchbrüchen, eher die Forschung nach Bullshit-Begründungen, wieso ihr alle KI in euren Grafikkarten braucht. Aber hey, der Unterschied macht es ja offensichtlich nicht weniger unattraktiv für die Leute, die immer noch Nvidia Geld hinterherwerfen.
Bei Firefox muss man aktuell noch in about:config nach avif suchen ein ein Flag auf true setzen.
Encoding ist im Moment noch ein bisschen fummelig, weil die üblichen Verdächtigen das noch nicht in ihre Toolchains eingebaut haben, aber es gibt ein simples Go-Frontend, das auf den Encoding-Code aus libaom aufsetzt, das ich eh schon für meine Videocodec-Testereien installiert hatte, und der hat spontan funktioniert und ein 5MB JPEG runterkomprimiert auf unter 400k. Das Encoding dauert noch echt lange (für mein 4k-Testbild sowas wie 30 Sekunden), aber das Decoding im Browser flutscht, und darauf kommt es ja an.
Nun war mein Testbild einfach irgendein Foto, das ich rumliegen hatte, das war jetzt wahrscheinlich auch nicht gerade effizient JPEG-komprimiert. Aber dass AVIF was kann, das könnt ihr hier selber gucken. Angeblich kann Windows 10 das auch schon seit einer Weile, wenn man den kostenlosen AV1-Codec aus dem Store nachinstalliert. Interessiert mich aber nicht außerhalb von Firefox, ehrlich gesagt.
Um mal den typischen Einwänden von Leuten, die den Artikel nicht gelesen haben, die Luft aus den Segeln zu nehmen:
Ich empfehle daher, die Spenden mit Zweckbindung zu versehen. Nur für Arbeiten an den Zukunfttechnologien Rust, Servo und Webrender. Man könnte sogar zweckbinden auf das Mozilla-Office in Deutschland und vor der Zahlung der nächsten Rate Effektivitätskontrollen setzen, wenn man Angst hat, dass die das verprassen. Die Sorge würde ich mir aber eher nicht machen, denn was die bisher auf diesen Gebieten geleistet haben ist durchaus eindrucksvoll und hat mich überzeugt.
Mag sein, aber wenn man nur Kommentare zu Visionen online stellt, bei denen keine Gefahr besteht, dass die Politik es verkackt, dann bleibt nichts übrig.
Um so wichtiger, dass man da Geld in die Hand nimmt, um Firefox als Alternative oder zumindest als glaubwürdige Drohung aufrecht zu erhalten!
Update: Kamen noch gute Entgegnungen rein. 1. "SAP kann das doch nicht" und 2. "Politiker? Die kriegen doch nicht mal die Sommerzeit abgeschafft".
Zu Punkt 1: Es ging nicht darum, ob jemand das im Moment gut macht oder nicht, sondern ob wir das Personal und die Ressourcen hätten, mit dem man das machen könnte. SAP leidet unter denselben Dingen wie alle anderen Großunternehmen. Wenn man da die Anreize ändert und das Management es mal ernsthaft betreiben würde, könnten die morgen anfangen, exzellente Software zu schreiben.
Zu Punkt 2: OK. You got me. Stimmt auffallend. Ich räume ein, dass der Artikel Teil meines Paper Trails ist, damit ich auch in 10 und in 20 Jahren kraftvoll sagen kann, ich hätte rechtzeitig angesagt, was getan werden muss.
Update: Zur Medienkompetenzschulung veröffentliche ich bei sowas immer meine Rohfassung.
Kommt ihr NIE drauf!
They killed [the] entire threat management team. Mozilla is now without detection and incident response.
Mozilla ist ja jetzt schon eine Katastrophe, wenn es um Security geht. Guckt euch nur mal die Fixes in Firefox 79 ein. Ach komm, Fefe, sind doch nur 4 high!1!! Ja schon, aber scrollt mal runter, da haben sie einen use after free memory corruption bug als "moderate" klassifiziert. Scrollt mal noch weiter runter. Oh gucke mal, ganz am Ende ist ja noch ein "high"! Na sowas! Ist gar nicht sortiert, haben sie nur vorgetäuscht, damit du nicht siehst, dass sie 5 statt 4 highs haben!Das ist der Zustand, in dem die Security bei Mozilla vor der Entlassung des Security-Teams war.
Aber war ja klar, dass das so kommen wird. Wenn eine große Organisation mit 80% Wasserkopf in finanzielle Not gerät, wurde noch nie der Wasserkopf verkleinert. Da werden immer die letzten paar Ingenieure gefeuert.
Update: Sie haben nicht die ganze Security-Abteilung zugemacht. Das Gecko-Team gibt es noch. Ohne die jetzt mit Scheiße bewerfen zu wollen: Gecko ist der Legacy-Kack-Teil von Firefox. Der, der durch Rust-Komponenten und Webrender ersetzt werden sollte, damit wir endlich weniger Sicherheitlücken haben.
Update: Die Rust-Engine, die Gecko ersetzen sollte, heißt Servo. Die wird offenbar auch gerade plattgemacht. Das ist furchtbar, geradezu katastrophal. Das war unsere eine Hoffnung auf eine nicht 100% von Google kontrollierte Browser-Zukunft. Gecko hat keine Zukunft.
Und das MDN-Team ist auch weg. MDN ist fast noch wichtiger als Firefox, das ist die Dokumentation der ganzen Web-Standards bei Mozilla.
Wartet, wartet. Geht noch weiter.
Das sind 250 Leute.
Das war die Pointe.
250 Leute! Die hatten da insgesamt 1000 Mitarbeiter! Und was machen die alle, fragt ihr? Tja, das ist eine gute Frage, denn Thunderbird wird ja mangels Personal für die Wartung seit Jahren auf Sparflamme gefahren oder ganz eingestellt (das hatten sie m.W. mal angesagt und dann wieder zurückgenommen), und bei Firefox liegen die letzten Innovationen auch schon ein bisschen zurück.
Stattdessen drücken sie uns ungewollt Bullshit-Dienste wie Pocket rein, die keiner haben will und nach denen niemand gefragt hat. Und neuerdings wollten sie ins VPN-Business einsteigen. Letsencrypt hatten sie ja schon in eine separate Organisation geschoben, das kann jetzt also auch nicht als Ausrede dienen.
So weh mir das tut, als jemand der immer noch praktisch ausschließlich Firefox als Browser benutzt: Gut so. Mozilla muss Schmerzen haben, damit sie merken, dass das falsch läuft. Anders funktioniert das ja leider nicht.
Dabei ist das ja nicht alles schlecht, was die machen. Rust z.B. war ein guter und mutiger und notwendiger Schritt. Angeblich sind die Rust-Leute jetzt überproportional betroffen von den Entlassungen. Klar, wer auch sonst. Die Bullshit-Jobs in der Verwaltung? Das Management, das diese ganzen katastrophalen Entscheidungen getroffen hat? Undenkbar!
Mozilla ist jetzt offiziell eine große Firma. Da wird keine einzige Entscheidung mehr sinnvoll getroffen. Leider fehlt ihnen der regelmäßige Einkommensstrom, um ihre ganzen Verkacker und Fehlentscheidungen zu kompensieren.
Ich weiß ja nicht, ob ihr mal MSN geklickt habt. Das ist die Default-Seite im Internet Explorer, wenn man ein frisches Windows vor sich hat. Ich sehe das bei Kunden häufiger, wenn die mir eine Workstation hinstellen, auf dem Weg zum Firefox-Installer.
Ich bin schockiert.
Mir war nicht klar, dass die da noch Journalisten hatten. Das sah seit Jahren aus, als wenn es eine KI "kuratiert".
Der Effekt ist, dass Videokonferenzsysteme, wenn sie nicht von völlig inkompetenten Vollpfosten implementiert wurden, mit einer Größenordnung weniger Datenübertragung auskommen als ein Hollywood-Actionfilm oder gar ein gestreamtes Videospiel. Dieser Effekt macht so grob einen Faktor von 10 aus.
Es gibt allerdings auch einen Gegeneffekt. Videokompression kostet viel Rechenzeit. Wenn man mehr Rechenpower aufwendet, kriegt man effektivere Kompression. Bei Plattformen wie Netflix und Youtube lohnt es sich daher, einmalig in maximale Kompressionseffizienz zu investieren, weil man ja deutlich mehr ausstrahlt als man reinkriegt. Netflix und Youtube haben daher schon auf AV1 gesetzt, als das noch weit von Echtzeit-Kompressionsfähigkeit entfernt war. Heutzutage haben Grafikkarten auch Videokompressions-Hardware an Bord, aber die braucht für die gleiche Qualität im Allgemeinen deutlich mehr Bits als wenn man das in Software macht. Videokonferenzsysteme und Twitch-Streaming brauchen daher wegen ihrer Echtzeit-Anforderungen mehr Bandbreite. Dieser Effekt macht so grob einen Faktor von 2 aus.
Ein dritter Effekt hat wieder Vorteile für Filme statt Streaming: Für die Vorhersage überträgt man ein Standbild "aus der Zukunft", anhand dessen dann die Bilder dazwischen besser vorhergesagt werden können. Die Übertragung eines Standbildes kostet um die Faktor 100 so viele Daten wie die interpolierten Bilder zwischen Standbildern. Bei Konferenzen und Echtzeit-Streaming ala Twitch hat man keine Bilder aus der Zukunft, daher packt man auf den ganzen Stream ein bisschen Latenz. Aber nicht viel, denn das soll ja Echtzeit sein. Daher greift man nicht weit in die Zukunft und muss daher häufiger Standbilder übertragen. Bei undynamischem Content wie einer Telefonkonferenz kann das so Faktor 2 Bandbreitenbedarf ausmachen. Bei hochdynamischem Content wie einem Videospiel ist es eh egal, weil sich zwischen den Frames so viel ändert, dass man eh nicht so gut interpolieren kann.
Effekt 2 und 3 werden mehr als ausgeglichen durch den ersten Effekt, weil sich in Videokonferenzen im Allgemeinen kaum jemand bewegt und sich das daher super komprimieren lässt.
Wenn es jetzt also tatsächlich Knappheit im Internet gäbe (und nicht nur innerhalb der Netze von Kapitalisten-ISPs, die nie was in Netzausbau investiert haben), und man eine Stellschraube drehen wollen würde, dann sollte man lieber bei Twitch und co drosseln als bei Youtube und Netflix. Die arbeiten jetzt schon sehr nahe am technisch machbaren. Und man könnte Streamer aufrufen, nicht so rumzuwackeln :-)
Update: Was auch super gut komprimiert sind Vorträge, außer wenn der Kameraengel auf Speed war und die ganze Zeit die Kamera umschaltet und herumzoomt. Ihr könntet also die Zeit gerade gut nutzen, um euch mal die ganzen alten Kongressvideos vom CCC reinzuziehen. Weil solcher Content gut komprimiert müsst ihr euch auch kein schlechtes Gewissen machen, zuviel Bandbreite verschwendet zu haben.
Update: Noch ein paar Details. Man kann die Qualität der Standbilder runterdrehen, um Bandbreite zu sparen. Die Details kann man dann mit den Interpolations-Frames nachliefern. Der Effekt ist etwas, das ihr bestimmt schon mal bei einem Livestream gesehen habt: So ein "pumpen" der Qualität. Man kriegt immer ein total verwaschenes Bild und das wird dann rapide besser aufgelöst. Das macht niemand freiwillig, sondern das passiert, wenn man Codecs im Fernsehmodus betreibt. Fernsehen wird traditionell über Transponder in Satelliten gemacht, und jeder Kanal hat eine bestimmte Bandbreite. Die darf dann aber auch nicht überschritten werden. Daher waren die ersten Codecs auch alle auf eine fixe Bandbreite ausgelegt. So machen das aber heute weder Videokonferenzen noch Youtube noch Twitch. Im Internet überträgt man halt mehr Daten, wenn die Szene mehr Bandbreite braucht. Beim Digitalfernsehen teilen sich mehrere Kanäle einen Transponder. Die erste Gammelhardware hat dann halt jedem Kanal ein festes Stück Bandbreite gegeben, auch wenn auf Kanal 1 ein Testbild lief und auf Kanal 2 ein Actionfilm. Das ist heute nicht mehr so.
Update: Oh einen noch. Firefox und Chrome haben keinen Support für H.265 eingebaut. Das ist einer der Gründe, wieso es von Netflix unter Windows eine App gibt. Die kann dann H.265 verwenden und kommt mit weniger Bandbreite aus. Jedenfalls war das immer so. Jetzt rollt Netflix gerade AV1 aus, was auch Chrome und Firefox können. Damit wäre der Vorteil der App dann dahin.
Update: Ach du je, Twitch empfiehlt ernsthaft ihren Streamern konstante Bitrate. Der Hintergrund wird sein, dass sie keine Bandbreiten-Peaks haben wollen, wenn das Spiel hektisch wird. Aber das heißt, dass alle anderen Streams völlig sinnlos Bandbreite verplempern. Ich nehme also meine Aussage von oben bezüglich Twitch zurück und empfehle die Schließung von Twitch statt der Drosselung von Youtube und Netflix. Was für Pfeifen.
Gut, das konnte bei den Monolithen am Anfang auch niemand. Aber da gab es eine realistische Chance. Jetzt nicht mehr.
Und dazu kommt, dass du am Ende mit einem Dutzend YAML-Dialekten zu tun hast, alle subtil unterschiedlich.
Für CI-Pipelines gilt Ähnliches. Die wirken im Allgemeinen auch komplexitätsverstärkend. Ich mache ja Code Audits bei Kunden, d.h. ich muss den Code nur lesen können, nicht bauen. Wäre natürlich schöner, wenn ich den auch bauen könnte. Aber das haben, wie sich rausstellt, praktisch alle Kunden schon vollständig aufgegeben.
Dafür müsste man mir in der Cloud eine Kopie der CI-Pipeline konstruieren. Und die durchblickt niemand mehr. Das ist völlig unrealistisch. Welche Präprozessor-Symbole gesetzt sind? Äh ... keine Ahnung? Wir wissen nur, dass wir hier clicken, und am Ende fällt ein Binary raus. Wir verstehen nicht mal genug, um die Fehlermeldungen der Pipeline und des Compilers auszuwerten.
Da lobe ich mir echt das GNU-Projekt und die BSDs, die ihre Buildsysteme auf einen gemeinsamen Standard normiert haben. Schade nur, dass die sich nicht auf denselben Standard einigen konnten.
Meine Zielvorstellung wäre ja, dass du in jedes Verzeichnis gehen kannst, make aufrufen kannst, und dann baut der die Libraries und Programme aus dem Verzeichnis.
Wenn man nur Open Source macht, könnte man geneigt sein, den Buildprozess von Firefox für den übelsten der Welt zu halten. Glaubt mir. Weit gefehlt. Der spielt nicht mal in derselben Liga wie so übliche Kommerzprojekte.
Und hat sich Sorgen gemacht, dass Microsoft in letzter Zeit so wenig versucht hat, ihren Usern unter illegaler Ausnutzung ihres Monopols ihre unterperformenden Ranztechnologien überzuhelfen, ob sie wollen oder nicht?
Gut, in Sachen erzwungene Windows-Updates und endlosem Rumgenerve, man möge Windows 10 installieren, war Microsoft eher nicht zurückhaltend. Aber es gab schon länger kein DU WIRST JETZT INTERNET EXPLORER BENUTZEN!!1! mehr.
Keine Sorge. Das Warten ist vorbei. Microsoft installiert jetzt allen Office 365-Usern ungefragt und ungebeten eine Chrome-Extension, die die Suchmaschine zu Bing umstellt.
Ach komm, Fefe, ich verwende Firefox, das betrifft mich nicht!
Support for the Firefox web browser is planned for a later date.
Ach komm, Fefe, das ist doch nur die englische Seite, sowas würden die sich in der EU nie trauen!At this time, the extension will only be installed on devices in the following locations, based on the IP address of the device:- Australia
- Canada
- France
- Germany
- India
- United Kingdom
- United States
Doch, würden sie!Es ist allerhöchste Zeit, dass die EU diese Firma mal in ganz kleine Teile zertrümmert. Alternativ müsste einfach ein Gericht urteilen, dass man denen die Arbeitszeit für das Rückgängigmachen in Rechnung stellen kann. Dann könnte ich damit auch gut leben.
Und dass sie dabei in den meisten Fällen erstmal alles kaputt machen?
Das ist heute so, denn man implementiert nicht mehr mit Planen und Qualitätssicherung sondern mit "move fast and break everything". Betonung auf break everything.
Aktueller Fall: Firefox hat Diffie Hellman über Galoiskörpern für WebCrypto verkackt. Bonus: Das war gar nicht im Standard gefordert. Webcrypto sieht Diffie Hellman über elliptischen Kurven vor, nicht über Galoiskörpern.
Gut, da kann man jetzt sagen, wenn wir schon dabei sind, implementieren wir auch die Legacy-Version von Diffie Hellman über die Integer modulo einer Primzahl, was genau das ist, was Firefox getan hat. Allerdings halt ohne sich vorher mal einzulesen, was für Angriffe es da gibt, die man dann abwehren müsste.
Warum auch. Geht ja nur um Krypto.
Na weil Avast die Browsing-Daten nach Hause telefoniert und dann weiterverkauft!
But recently appointed chief executive Ondrej Vlcek tells Forbes there’s no privacy scandal here. All that user information that it sells cannot be traced back to individual users, he asserts.
Oh ACH SO! Na DANN ist das ja nicht weiter schlimm! Das ist wie so Überwachungskameras im öffentlichen Raum! Die sind ja auch total unbedenklich, weil sie nicht dich als Person filmen sondern nur den öffentlichen Raum!1!!
Heise lädt nämlich mit 1 Sekunde Verzögerung, wenn man Adblocker hat. Ich bin ja bei sowas gutwillig und nehme immer erstmal Inkompetenz an. Im Zweifel für den Angeklagten. Aber es stellt sich raus: Das ist nicht Inkompetenz, das ist Bösartigkeit. Das wird von einem Stück Javascript auf deren Webseite künstlich herbeigeführt, den sie über eine dieser windigen Onlinewerbungs-Startups reingelutscht haben. Das Forumsposting erklärt auch, wie man dieses Skript in Firefox wegblockt.
In der IT-Security habe ich schon länger das Problem, dass ich andere Teilnehmer immer nur noch als potentielle Angreifer betrachte und niemandem per Default Vertrauen entgegenbringe. Das ist einfach das Modell in der Security. Ich fand immer, dass das schlecht fürs Gemüt ist, denn die meisten Menschen sind ja nicht böse. Zumindest nicht aktiv.
Aber so langsam zeigt sich ja nach und nach, dass das völlig richtig ist. Jede einzelne Webseite da draußen will dich ans Messer liefern. Heise hat sich ja schon durch Outbrain-Einblendungen ins Abseits katapultiert, wo dann lauter so Scammer inserieren, die dir Bitcoin-Investments und Silbermünzen mit total voll hohem Wiederverkaufswert andrehen wollen. Oder ein Malware, äh, Treiberpaket zum Download anbieten.
Vielleicht bin ich einfach nur ein schlechter Kapitalist, aber da würde ich lieber die Hälfte meiner Mitarbeiter feuern, als mir so den Ruf zu ruinieren. Absolut undiskutabel.
Oh und wo wir gerade bei Scams waren: Es ist ja inzwischen offenbar absolut üblich, sich seine Entwicklung durch Kickstarter finanzieren zu lassen, und dann aber auch nochmal Kohle für das von wohltätigen Spendern finanzierte Ergebnis sehen zu wollen. Hab ich da irgendein Memo nicht gekriegt?
Aber die Begründung ist bemerkenswert:
This is expected, and works the same way in other browsers.
"This is expected" hätte ich ja an deren Stelle aus taktischen Gründen lieber als "I was just following orders" formuliert. Damit man in Zukunft nicht mit heruntergelassenen Hosen dasteht, sollte man wenigstens so tun, als sei man nur widerwillig gefolgt.Aber "die anderen machen das auch so" finde ich an der Stelle bizarr. Ich weiß ja nicht, wie es euch geht, aber wenn ich mal zurückdenke, wieso ich Firefox einsetze, dann sind das alles Dinge, bei denen Firefox die Spec gebrochen und Dinge anders gemacht hat als die anderen Browser.
Firefox hatte als erster Browser einen Popup-Blocker. Erinnert man sich heute kaum noch dran. Früher haben Webseiten ungefragt weitere Browserfenster aufgemacht, im Allgemeinen mit Werbung drin. Das folgte auch der (schlechten) Spec und alle haben es so gemacht.
Dann hat Firefox mir einen Weg gegeben, 3rd party cookies zu blocken. 3rd party cookies folgen auch der Spec und die anderen Browser machen es auch so.
Dann hat Firefox ein API für Browser-Erweiterungen gebaut, mit dem ich einen Adblocker installieren konnte. Werbung war auch Spec-konform und alle anderen Browser haben auch Werbung angezeigt.
Dann hat Firefox einen Tracker-Schutz eingebaut. Web-Tracker entsprechen auch der Spec und die anderen Browser machen das auch so.
Mir ist echt nicht klar, was die sich bei Firefox denken, wenn die so eine Ausrede zu Protokoll geben. Ich vermute: Nicht viel.
Anfang des Jahres hatte uns ein Nutzer mitgeteilt, dass sein Browser, Firefox, meinte, Gentoo’s Installationsmedium würde Malware beinhalten.Erinnert an gmail. Da könnt ihr ja mal einen von Google ausgehenden Spam zu melden versuchen. Wenn ihr auf Kafka-Geschichten steht.Leider hatte der Nutzer den Download nicht beendet bzw. gleich wieder gelöscht (die Warnung sieht halt auch gefährlich aus!). Es stellte sich dann schnell heraus, dass zumindest zum Zeitpunkt unserer Prüfung, alle Mirrors die gleichen Dateien ausgespielt haben (Checksummen stimmen überein) und diese sauber waren (ja, wir haben unsere Images mit verschiedenen Schlangenöl-Lösungen geprüft).
Was war dann der Grund? Die Herkunft! Gentoo nutzt noch Mirrors, kostenlos bereitgestellt von Dritten und kein zentrales CDN. Einer dieser Spiegelserver, mirrors.kernel.org, ist in Google’s SaferBrowsing System gelistet. Aber nicht generell, nein, nur für das *gesamte* "/gentoo"-Unterverzeichnis.
Das schließt eben auch unser Installationsmedium in "/gentoo/releases/amd64/..." mit ein.
Wir haben dann irgendwann durch unsere Kontakte die Information bekommen, dass die Ursache im *Quellcode*-Archiv zu "Shadowinteger's Backdoor" (http://tigerteam.se/dl/sbd/) einem netcat-Klon stecken würde.
Was wir bis heute nicht wissen:
- Da Google’s SafeBrowsing offenbar in der Lage ist auf Verzeichnisebene zu flaggen, wieso haben sie dann die Warnung nicht zumindest auf /gentoo/distfiles beschränkt?
- Warum ist nur mirrors.kernel.org betroffen? Die Datei liegt auf allen unseren Spiegeln. Wenn nun also wirklich Gefahr von dieser Datei ausgehen sollte müsste der gemeine User, der sich auf SaferBrowsing verlässt, doch erwarten können, dass die gleiche Datei immer und überall erkannt und geblockt werden würde.
- Aktuell (das war vor paar Wochen noch anders) scheint tatsächlich die Quellcode-Datei von allen Quellen blockiert zu werden (also wirklich nur sbd-1.37.tar.gz), was Browser, die gegen das SafeBrowsing Download-API prüfen, verhindern.
Seit dieser Zeit kämpfen wir jetzt mit Google um eine Korrektur der Einstufung. Selbst mit unseren noch immer guten Kontakten zu Google (Hallo ChromeOS!) ist da nicht viel zu machen denn bekanntlich ist Google ein technisches Unternehmen: Die wissen, dass Menschen Geld kosten. Also tun die alles um Probleme technisch zu lösen und den Einsatz von Menschen zu minimieren, so auch im "Support": Erst wenn die Error-Rate zu einem gemeldeten Problem eine bestimmte Prozentschwelle überschritten hat, schaut sich ein Mensch den Sachverhalt an... :/
Cloudflare, wir erinnern uns, sind bekannt für so Glanzleistungen wie:
Ich persönlich würde Cloudflare nicht auch nur in die Nähe meiner Produktion lassen, selbst wenn sie mich dafür bezahlen würden.
Aber gucken wir doch mal, was der Vorschlag ist. Hier ist der erste Satz:
If your organization uses SSH public keys, it’s entirely possible you have already mislaid one.Da kannste direkt zu lesen aufhören. Der heißt ja nicht zufällig public, der key. Der ist public. Den zu verlegen ist genau so wenig ein Sicherheitsproblem wie das Telefonbuch zu verlegen. Schon die Prämisse ist absurd.
There is a file sitting in a backup or on a former employee’s computer which grants the holder access to your infrastructure.
Äh, ... nein. Den public key zu haben gibt einem Angreifer genau gar nichts. Der private key dazu ist der, der einem Zugriff gibt. Und der liegt ja gerade nicht auf irgendwelchen Kisten rum sondern auf dem Arbeitsplatzrechner des Inhabers, oder, wenn der so futuristisch drauf ist, auf einer Smartcard von dem.If you share SSH keys between employees it’s likely only a few keys are enough to give an attacker access to your entire system.
Wow. Ich hielt ja nicht viel von deren Krypto-Expertise, aber wenn die bei Cloudflare mehreren Mitarbeitern Zugriff auf denselben SSH-Schlüssel geben, dann ist das kein Fall für Auslachen mehr, das ist ein Fall für den Abdecker.Aber was schlagen sie denn vor?
Replacing a private network with Cloudflare Access
NEEEEIIIIIINNNNNN!!!!!!Wer kommt denn auf solche Ideen? Wer zieht denn bitte eine Firma, die für ihre Ausfälle bekannt ist, in die Authentisierung seiner Dienste rein? Damit nächstes Mal auch deine Firma komplett stillsteht?! So blöde kann doch keiner sein, würde man hoffen!
Jedenfalls keiner meine Leser.
Würde man hoffen.
Aber lest euch mal den Incident Report zu ihrem letzten Ausfall durch. Der, der von der Regex ausgelöst wurde. Achtet mal darauf, dass sie sich auf ihren eigenen Systemen nicht mehr einloggen konnten. Das wird bei euch dann auch so sein. (Danke, Lukas)
Kann ich mal bitte nen Knopf haben, der Webseiten verbietet, den Copy&Paste-Buffer zu manipulieren?
Oder noch besser: Findet mal heraus, wer das initial bei euch eingebaut hat, und hängt denjenigen an den Schamhaaren auf.
Gleich mal nen CVE beantragen. Stellt euch vor, jemand pasted das in eine Shell und die Webseite hat da nen Befehl mit Newline eingebaut.
Update: Leser weisen auf zwei about:config-Settings hin, einmal dom.event.clipboardevents.enabled und einmal dom.allow_cut_copy. Ich finde das irrelevant, ob und wie man das abschalten kann. Das ist eine Bedrohung und darf gar nicht erst an sein.
Update: Ein Leser weist zu Recht darauf hin, dass Copy und Paste vom Browser zum Terminal grundsätzlich problematisch ist.
Gestern so: "Norton Support" (nur echt mit Deppenleerzeichen) ist am Ball. Leider am falschen Ball, guckt auf die falsche Domain.
Heute so: "Norton Support" (nur echt mit Deppenleerzeichen) guckt auf die richtige Domain, kann aber leider Twitter nicht bedienen. Was machen die Damen und Herren aus dem Twitter-Support von Symantec eigentlich beruflich?
Aber kein Problem, folgen wir dem "@NortonSupport (powered by Khoros Care)". Mein Firefox begrüßt mich direkt mit einem kaputten Inline-Bild. Ihr eigenes Firmen-Logo kriegen die nicht korrekt eingeblendet. Wow. Von denen willst du doch hochkomplexe Sicherheits-Software kaufen!1!!
Inhaltlich ist das eine Kopie des Twitter-Threads aber mit längeren Inhalten. So eine Art twitlonger nur halt für Enterprise. Ich finde ja sehr unterhaltsam, dass das bei "lithium.com" liegt. Lithium wird in der Therapie gegen Depressionen eingesetzt.
Aber was sagen sie denn?
de Sie können die Seite freischalten indem Sie Ihren Blog unter den folgenden Link https://safeweb.norton.com/help/site_owners meldenAlso mit anderen Worten: Ich soll jetzt unbezahlte Arbeit in deren byzanthiner Schrott-IT aufwenden, um deren Unzulänglichkeiten zu übertünchen.
Ja, äh, nee, Symantec. Soweit kommt es ja wohl noch.
Schöne Domain haben Sie da! Wäre ja schade, wenn die nicht erreichbar wäre! Aber keine Sorge, Sie können sich freikaufen. Aus juristischen Gründen machen wir das aber mit Zwangsarbeit, nicht mit Schutzgeld.
Not gonna happen. Ich habe viel zu viel Spaß dabei, euch beim öffentlichen Demonstrieren eurer Inkompetenz zuzugucken.
Falls übrigens der eine oder andere die Hintergrundgeschichte nicht kennt, und möglicherweise annimmt, Symantec könnte vielleicht doch Recht haben: Im Jahre 2008 hatte ich das mal ausführlich erklärt. Diese Datei ist mit dem expliziten Ziel erstellt und dort hingelegt worden, Antiviren als Schlangenöl zu demaskieren. Und sie erfüllt ihren Dienst vorbildlich.
Eine sticht besonders heraus, finde ich:
#CVE-2019-15903: Heap overflow in expat library in XML_GetCurrentLineNumberDas muss man erst mal schaffen, eine Funktion namens GetCurrentLineNumber zu einem Sicherheitsrisiko zu machen!
Vergleicht mal die Golem-Berichterstattung mit der von Heise. Da hast du den Eindruck, die waren auf zwei verschiedenen Veranstaltungen!
Hey, Heise, was ist denn da los bei euch? Wie wäre es mal zwischen die ganzen negativen Indikatoren (Techstage, Brandworld, Outbrain-"Empfehlungen", das hier gerade, …) auch mal einen positiven reinzustreuen? Ich meine, … wenn du auf deiner Webseite Elemente hast, die Firefox Tracking Protection automatisch wegfiltert (aktuell: Google Tag Services, script.ioam.de, chartbeat als Tracker und openx.net als Fingerprinting), weil sie unkontrovers nur negativ für eurer Leser sind, … löst das keine Denkprozesse aus?
Ich habe den Eindruck, Heise ruht sich da auf den Lorbeeren vergangener Zeiten aus und merkt nicht, wie ihnen die Leser weglaufen.
Es gibt da einen subtilen Übergang von "ich bin hier, weil es hier geil ist" über "ich bin hier, weil ich mich an den Scheiß gewöhnt habe" und "ich bin hier, weil die anderen noch schlimmer sind" bis hin zu "ich weiß auch nicht, wieso ich hier noch abhänge". Ich finde es immer wieder schockierend, wie viele Sites nicht merken, wenn sie nur noch mit einer captive audience reden, nicht mehr mit Leuten, die freiwillig da sind.
Mein Blog unterstützt das jetzt in den ganzen CSS-Varianten, die ich gemacht habe (und nicht eingeschickt wurden), und ich kann unter Linux nicht nutzen.
In about:config gibt es ein Setting browser.in-design.dark-mode, aber das schaltet nicht den Dark Mode an, sondern sagt Firefox, dass er das in die Webseiten propagieren soll, wo man es im CSS abfragen und reagieren kann. Aber wie man es anschalten soll, darüber hat offenbar noch keiner nachgedacht.
For the record: In chrome kann man das über die Kommandozeile anschalten:
--enable-features=WebUIDarkMode --force-dark-mode
Die offizielle Antwort scheint zu sein, dass man eine Webextension installiert. m(
Update: Ein Leser hat die Lösung: Man muss einen neuen Key anlegen: ui.systemUsesDarkTheme = 1
Das funktioniert hier auch gerade tatsächlich.
Ungefähr so empfinde ich gerade diese Berichterstattung, diese knallharte Aufklärungsarbeit, dieses Lehrstück für investigativen Journalismus, dass Twitter gerade gestört ist. Die dpa fand das auch berichtenswert.
Tja. Die dpa ist ein wichtiges Werkzeug, um zu erfahren, dass Twitter nicht geht.
Nun, … gut dass ich dagegen war.
Meldung 1: MIT-Forscher stellen probabilistisches Programmiersystem Gen vor.
Wait, what?!
Ein wesentliches Anliegen der vorgelegten Forschungsarbeit sei es, automatisierte KI auch Menschen mit geringeren Fachkenntnissen in Informatik oder Mathematik zugänglich zu machenOH NEEEIIINNNN!!!!!!
Meldung 2: Firefox erhöht endlich die Kompatibilität mit Man-in-the-Middle-Malwaren, die TLS aufbeißen wollen. Und man kann es nicht abschalten!
In Firefox 68 wird sie standardmäßig aktiv sein. Wenn ein Nutzer sie im about:config-Bereich manuell auf "false" setzt, stellt Firefox dies beim nächsten Auftreten eines MitM-Fehlers eigenständig wieder auf "true" um. Sofern die Umstellung das Problem behebt, bleibt sie anschließend aktiv.Na das ist ja eine TOLLE Idee!!1!
Der Krieg der Mozilla Foundation gegen die eigenen Kunden geht erbarmungslos weiter!!
Update: Geht noch weiter. Ursula von der Leyen ist angeblich als EU-Kommissionschefin im Gespräch. Erinnert ihr euch daran, als wir uns für Oettinger geschämt haben?
Auf der anderen Seite besteht dann eine reelle Chance, dass die Flinten-Uschi dann die EU-Kommission mit der bewährten McKinsey-Methode handlungsunfähig macht.
Ein spezieller Passwortschutz der Antiviren-Software AVG hat den Passwortspeicher des Firefox-Browser beschädigt. Nutzer hatten deshalb zwischenzeitlich ihre Zugangsdaten verloren.Seid ihr auch so froh, dass uns das Schlangenöl vor Schaden bewahrt? Nicht auszudenken, was Malware sonst alles ausrichten könnte und würde! Z.B. eure Firefox-Passwortdaten kaputtmachen!!1!
Update: Dazu passend schickt mir jemand dieses tolle Reddit-Fundstück zu.
Linux sagt einem da ja beim Booten dann freundlicherweise ein paar Metadaten. Hier sind sie für meinen Reiselaptop:
microcode: microcode updated early to revision 0x2e, date = 2019-01-02Wait, what? 2. Januar?! Seit dem 2. Januar hat Intel den Fix und wir kriegen ihn erst jetzt!?!?
Äh, wie alt ist denn die Lücke dann? Normalerweise dauert ja schon das Erstellen des Fixes den Hauptteil der Zeit!
Kann natürlich auch sein, dass meine CPU nicht betroffen ist. Ist ein Pentium Silver N5000 in einem passiv gekühlten Acer Swift 1, was ich übrigens gar nicht genug empfehlen kann. Passiv gekühlt, Akkulaufzeit jenseits von einem Tag. Selbst mit Fullscreen-Videoabspielen oder make -j4 hält das Teil stundenlang durch. Ist jetzt kein Performance-Wunder, aber ich baue damit immerhin LLVM und Firefox in erträglicher Zeit. Ich glaube ich muss mir davon ein paar auf Halde kaufen. Das ist das beste Arbeitsgerät, das ich je hatte.
Erstens: Die ist von vor einem Jahr.
Zweitens: Ja, da gibt es Nachpatchen, aber Nachpatchen ist eine Lüge. Da werden nur Bugs gepatcht, von denen klar war, dass das ein Security-Bug war. Der Anteil der Security-Bugs, bei denen das von vorneherein klar und klar im Bugtracker markiert ist, liegt je nach Umfeld zwischen 0 und 50%.
Drittens: Das Warten von solchen Versionen bindet völlig sinnlos Personal, das dann nicht zur Verfügung steht, um die tatsächlich aktuelle Version von Firefox sicher zu halten. Das verschärft das Problem also noch, anstatt es besser zu machen.
ESR-Versionen waren der Versuch, Open Source-Software mit langen Release-Zyklen "Enterprise-Ready" zu machen. Das war ein spektakulärer Fehlschlag, auf ganzer Linie. Nicht nur macht die Existenz von ESR-Versionen die regulären Versionen unsicherer (siehe oben), die Enterprise-Adoption ist nicht erwähnenswert gestiegen, und viele Leute, die es nicht besser wissen, fahren jetzt halt die ESR-Version und halten sich für adäquat gesichert / aktuell. D.h. nicht nur die tatsächliche Software wird unsicherer, wirh aben auch das Verhalten der Leute in die falsche Richtung trainiert. Herzlichen Glückwunsch an uns alle. So eine effektive Sabotage von Open Source hat nicht mal Microsoft in ihren übelsten Jahren mit all ihrem FUD hingekriegt.
Ich möchte noch kurz erwähnen, dass das ESR-Modell selbst in Enterprise-Umgebungen tot ist. Windows und Office365 sind jetzt rolling releases, und typische Enterprise-Software ist "in die Cloud" geschoben worden, weil das alte Modell offensichtlich Scheiße war und nicht funktioniert hat. Aber Firefox und Tor sehen sich als gallisches Dorf, in dem sich die Geriatrie-Abteilung gegen diesen ganzen neumodischen Scheiß zur Wehr setzt. Ja nee, klar.
Wisst ihr, von mir aus könnten sie das ja gerne machen. Wenn sie dann die Kosten dafür alleine tragen würden. Tun sie aber nicht.
Völlig unvorhergesehen und überraschend stellt sich nämlich heraus, dass Zertifikate ablaufen. Tsja, Mozilla, und DAS ist die Hölle, die ihr mit Letsencrypt einmal auf die ganze Welt rausgehauen habt. Nur halt nicht alle paar Jahre mal sondern alle paar Wochen mal. Wegen … uh … Yolo!!1!
Das Zertifikat, das hier abgelaufen ist, ist ein Intermediate Cert, das im Prozess des Signierens aller Add-Ons beteiligt ist. Denn Add-Ons müssen ja neuerdings signiert sein. Damit, wenn man sie über eine signierte Verbindung von Mozilla lädt, und da Malware drin ist, Mozilla sagen kann: Haha, nicht unsere Schuld!1!!
Ich frage mich ja, wie häufig Code Signing noch komplett versagen muss, bevor dieser unsägliche Bullshit-Trend mal endlich geerdet wird.
Mozilla hat jetzt jedenfalls Add-Ons komplett abgeschaltet.
Das Problem hat den schönen Namen "armagadd-on-2.0" gekriegt :-)
Update: Solange bei Firefox die Addons nicht gehen, würde ich lieber Chrome mit ublock/umatrix nehmen als Firefox ohne.
Update: Ein Leser meldet, dass man bei Firefox Nightly in about:config Addon-Signaturprüfung deaktivieren kann (Key xpinstall.signatures.required). Das hat natürlich andere Nachteile, wenn ihr nicht ausschließen könnt, dass euch freidrehende Software Firefox-Addons unterjubeln will. Auf der anderen Seite hatten wir ja auch schon genügend signierte bösartige Firefox-Addons. Mozillas Lösungsvorschlag ist, dass ihr alle Mozilla die Erlaubnis erteilt, Studien bei euch durchzuführen, und dann kommt innerhalb der nächste 6 Stunden hoffentlich diese eine magische Studie bei euch vorbei, die das fixt.
Erstens kamen Mozilla-Mitarbeiter/Helfer und schrieben mir (ich paraphrasiere) "Ihr Anruf ist uns sehr wichtig. Wir nehmen alle Beschwerden ernst." und einer kam mit so PR-Technobabble ala "we leveraged synergies to improve benefits". Das empfinde ich symptomatisch für das Problem, in dem wir uns befinden. Mozilla hat vergessen, wer ihre Software einsetzt, und warum. Dass sie überhaupt angefangen haben, mir irgendwelche Anmelde-Scheiße wie Pocket und Sync penetrant reindrücken zu wollen, zeigt das mehr als deutlich.
Zweitens kamen so Digital-Prepper mit "also ich benutze ja deshalb (obskurer Firefox-Fork von vor 8 Jahren). Der kann zwar kein Javascript, und dumpt bei 40% der Webseiten core, aber dafür kann ich dem noch vertrauen!1!! Ruf mal bitte dazu auf, dass Entwickler dem Projekt helfen sollen!!1!".
Drittens kamen so "der Fefe hat keine Ahnung, was für ein Idiot"-Meldungen. Die kommen häufig nicht ZU mir sondern ÜBER mich auf Twitter, wenn sich die Leute gegenseitig im Kreis ihre eigene Großartigkeit und die Idiotie aller anderen bestätigen. Dass Leute immer noch für sowas Zeit haben...
Einer fragte mich, ob es vielleicht in China ein Browser-Projekt gäbe. Weil den Browsern aus dem Westen kann man ja nicht mehr trauen.
Ich finde es schockierend, wie die Browserhersteller aus dem Westen ihre eigene Userbasis solange mit Füßen getreten haben, bis ihnen niemand mehr traut, und Leute nur noch aus Lockin-Gründen bei ihrem Browser bleiben. Weil es zu nervig wäre, die Bookmarks und Extensions woanders hin zu migrieren.
Ich hatte mal gehofft, dass Open Source und Free Software dagegen immun sein könnte.
Damit das nicht ganz untechnisch ist hier: Mozillas eigentliches Problem war, dass sie Profil-Korruption hatten, wenn alte und neue Versionen von Firefox am selben Profil herumgearbeitet haben. Das ist ein bekanntes und zigfach gelöstes Problem. X.509-Zertifikate, TLS, SMB, HTTP, wo man hinguckt, überall gibt es Protokolle, die nachträglich erweitert wurden. Klar ist das nicht immer schön. Aber Code so zu machen, dass alte Versionen neue Felder, die sie nicht kennen, ignorieren und im Profil beibehalten beim Speichern, das ist echt keine Raketentechnologie. Hier hat Mozilla technisch auf ganzer Linie verkackt. Und ihre Lösung war nicht, das zu reparieren, sondern mir lieber mein Profil wegzunehmen in der neuen Version (Bookmarks, Extensions, Ublock-Regeln, alles) und mir Sync reinzudrücken zu versuchen. Das ist nicht zu verteidigen. Seit Jahren hat der Browser immer und immer wieder solche versifften Ecken, aber Firefox investiert ihre Millionen lieber woanders. Bei Pocket und Sync.
Oh apropos Sync. Sync gab es ja mal in kryptografisch ordentlich. So dass man a) dem Server nicht trauen musste und b) einen eigenen Server betreiben konnte. Angeblich kann man heute immer noch einen eigenen Server betreiben. Das wurde mir auch ein paar Mal empfohlen. Ich will aber keine weiteren Services betreiben müssen. Jeder Service ist ein Risiko. Schonmal doppelt, wenn das irgendein stinkender Python-Rotz von Mozilla ist. Was die immer alle mit ihrem Python haben! Das war ja schon bei Letsencrypt fast ein Todesurteil, dieser stinkende Python-Rotz, den sie allen Benutzern überhelfen wollten.
Besonders geil finde ich immer, wenn Mozilla dann erzählt, für sowas gäbe es halt keine Entwickler gerade. Ihr habt ein Millionenbudget! Ihr könnt Leute dafür bezahlten, Dinge zu tun, die sie freiwillig nicht tun würden! Stattdessen fließt die Kohle dann zu Hipster-Scheiße wie Pocket und Sync. Zum Mäusemelken.
Oh, das UI um meinen eigenen Server zu benennen, habe ich auch nicht gesehen. Firefox zeigt mir hier jedenfalls nur eine Login-Maske, bei deren Benutzung ich ihrer "Datenschutzerklärung" zugestimmt haben muss. Ja nee, klar. Erzählen mir was von Privatsphäre und wollen dann meinen DNS-Bewegungsdaten bei Cloudflare hochladen und mich über Sync-Login tracken können. Wird nicht passieren, Mozilla.
Aber keine Sorge, es gibt einen Weg weiterzuarbeiten! Ich muss bloß einen Firefox Account anlegen und Sync aktivieren!!1!
WOW. Krass. Und ich dachte, Google sind in Sachen Bösartigkeit schon der übelste Abschaum auf Erden. Google hat mich nie mit der Verfügbarkeit meiner Bookmarks und gepeicherten Passwörter erpresst, einen Google-Account anzulegen.
Alter Schwede haben die bei mir gerade verschissen. Ich weiß gar nicht, wie die sich aus dem Loch wieder hocharbeiten könnten.
Update: WTF jetzt hat sich Firefox das anders überlegt und arbeitet doch mit dem alten Profil weiter. Lolwut? Ob ich da irgendein Experiment getriggert habe?
Mozilla has told BleepingComputer that they will be enabling the tracking feature called hyperlink auditing, or Pings, by default in Firefox. There is no timeline for when this feature will be enabled, but it will be done when their implementation is complete.
Dass die Leute aber auch alle nie den Hals voll kriegen können! Wieso müsst ihr eigentlich wissen, auf welche Links ich klicke? Go fuck yourself!
Ihr lautester Angriff bisher war dieses Projekt mit Mozilla, dass Firefox seine DNS-Anfragen über ein neues Protokoll (über HTTPS!!1!) an Cloudflare durchtunnelt, damit sie schön alle Bewegungsdaten des Internets bei sich in der Datenbank haben. Daten sind das Erdöl des 21. Jahrhunderts!
Dann erinnere ich mich da noch an "hört mal alle auf, ANY-Anfragen zu beantworten, weil wir können das auch nicht". Ganz großes Kino.
Warum hole ich das alles aus der Mottenkiste? Weil es bei Cloudflare vor ein paar Wochen einen lustigen DNS-Ausfall gab.
WENN es jemanden gibt, dem ich in Sachen DNS weniger zuhören würde als Axel Voss, dann ist es Cloudflare.
Ein Highlight jagt das nächste in dem Text. Geht los mit:
"Nur durch den Schulterschluss der Verlagsmanager und in Zusammenarbeit mit der Politik haben wir eine faire Chance im Wettbewerb mit Google, Amazon, Facebook und Apple"Ihr Vollpfosten konkurriert doch nicht mit Google und co! Die helfen euch noch, eure Inhalte zu verbreiten! Dass ihr kein Geschäftsmodell mehr habt, seit ihr eure Inhalte kostenlos im Internet verbreitet, dafür können die doch nichts!
Vor allem: WTF? Google News hat doch keine eigene Nachrichtenagentur oder so?! Wie verwirrt muss man sein, um die als Konkurrenten zu sehen!?
Aber was mich ja so richtig auf die Palme bringt ist sowas hier:
Dies zeige zugleich, "welche Macht datengetriebene Großkonzerne auf den Willensbildungsprozess der Bevölkerung ausüben".Was für eine Frechheit! NIEMAND verkauft meine Zugriffsdaten an mehr Datenkraken, hat mehr Tracker und Auswerter und mehr Werbenetze als Zeitungen! Erst sei der DSGVO muss man in umatrix bei den Zeitschriften nicht mehr seitenweise scrollen, um alle Tracker gesehen zu haben. Wer hat Do-Not-Track einmal komplett ignoriert? Die Zeitungen! Also hat Firefox einen Tracker-Blocker eingebaut und jetzt heulen sie rum.
Und dann DIE STIRN zu haben, Google vorzuwerfen, sie seien "datengetrieben"! Unfassbar!
Die haben echt den Schuss nicht gehört. Unfassbar. (Danke, Andreas)
Als Gegenstelle zum Spielen eignet sich Youtube, wo man das anschalten kann. Und beim Rumspielen kamen in der Tat schon einige Videos in AV1, als ich das angeschaltet habe.
Der Encoder ist aber noch vergleichsweise unakzeptabel langsam gewesen bei meinen Tests — es gibt andererseits einen Alternativ-Encoder in Rust, der angeblich schneller ist. Ich denke mal, von AV1 werden wir in Zukunft noch mehr hören.
Chrome kann schon länger AV1, aber wer benutzt schon Chrome.
Ich hoffe mal inständig, dass Firefox da nicht nachzieht. Da haben wir den Salat mit der Browser-Monokultur. Ich hätte ja bei solchen Dingen gerne häufiger Unrecht mit meinen apokalyptischen Vorhersagen.
Hat sich am Ende doch Open Source durchgesetzt im Browsermarkt auf Windows. Wer hätte das gedacht.
Hoffen wir mal, dass Microsofts Präsenz im Chromium-Projekt dazu führt, Googles Dominanz dort zurückzufahren. Google macht mit Chrome gerade genau dasselbe, wofür wir früher Microsoft gehasst haben. Entscheidungen nach Gutsherrenart, Einführen von "Features", anch denen nie jemand gefragt hat, Entscheiden über den Kopf der User hinweg. Ich bin daher seit Jahren Firefox-User, auch auf dem Smartphone. Leider ist der Marktanteil von Firefox gerade unter 10% gefallen — auf dem Desktop. Insgesamt ist es noch weniger, da die Plattformbetreiber alle alles in ihrer Macht stehende tun, um Firefox auf ihren Plattformen zu behindern, damit es ihrem Durchmarsch gegen die User nicht im Wege steht. Leider hat Firefox auch gefühlt jede Gelegenheit genutzt, ihren Usern das Gefühl zu geben, bei ihnen sei das alles dasselbe in Grün. Ich sagen nur: Werbung auf dem Startbildschirm, Tonnen von Tracking-Bullshit, und jetzt auch noch "Pocket".
Und dieser ganze dauernde Ärger verhindert dann, dass man an dem Rest Spaß hat. Mozilla macht ja eine Menge coole Scheiße, so ist das nicht. Rust zum Beispiel ist ein Lichtblick für die ganze Software-Entwicklungs-Branche. Es ist ein Wunder, dass das so weit gekommen ist, wie es ist. Da hätte ich dagegen gewettet, wenn mich jemand gefragt hätte.
Und es kann nicht darüber hinwegtäuschen, dass Firefox es nicht packt, unter Linux Hardware-Video-Playback hinzukriegen. Das verdoppelt mal eben den Stromverbrauch. Kriegt auch Chrome nicht hin unter Linux, übrigens. Aber wisst ihr, wer das hinkriegt? Ja richtig! Edge!
Update: Habt ihr eigentlich schon gehört? QUIC soll HTTP/3 werden! Ein weiteres beschissenes Google-Komplexitäts-Monster, nach dem keiner gefragt hat. Bei Microsoft haben die Leute wenigstens noch gemerkt, dass sie mit Microsoft Network gearbeitet haben und nicht mit dem Internet. Bei Google fahren alle Chrome und benutzen Google-Infrastruktur mit Google-Protokollen in der Google-Cloud, am besten noch über Google Fiber.
(size_t)(uint1+uint2)Selbe Annahme, genau so falsch. Der Cast nach size_t findet nach der Addition und dem arithmetischen Überlauf statt.
Mozilla verteilt die Updates über http aber ein Manifest über https, wo Hash-Werte der Dateien drinstehen. Das ist ein etabliertes Muster, das man früher häufig angewendet hat, weil die Mirrors oder das CDN nicht https konnten. Die Zeiten sind vorbei, aber es ist nicht per se unsicherer. Ich hätte das nicht angekreidet. Der Report argumentiert, dass man sehen kann, für welche Plattform jemand Updates zieht. Ja, aber das kann man auch bei https anhand der Menge der übertragenen Bytes sehen. Die Installer oder Updater für verschiedene Pattformen sind ja nicht alle gleich groß.
Die meisten Probleme waren in der Management-Oberfläche. Das ist nicht überraschend, so sieht das häufig aus in der Praxis. Im Updatemechanismus selbst haben sie keine schlimmen Dinge gefunden, und der Bericht sieht ordentlich gemacht aus. Das sind also gute Nachrichten für alle Firefox-Benutzer.
Ich muss ja sagen, dass ich das einen sehr erfreulichen Trend finde, dass Open Source-Projekte nicht nur Audits machen sondern dann die Berichte veröffentichen.
Update: Mir hat einer der Autoren des Reports geschrieben und erklärt das Missverständnis mit dem Overflow. Und zwar gibt es da einen anderen Check, bei dem in der Tat ein sizeof() Teil der Addition ist. Insofern haben die sich in ihrem Finding nicht geirrt (das wollte ich auch nicht unterstellen), aber die Formulierung war missverständlich. Es gibt da aber übrigens immer noch Komplikationen:
printf("%lu %lu",1+15+0xfffffff0u+(size_t)10,(size_t)10+0xfffffff0u+1+15);
Das ergibt mit gcc 8.2 auf x86_64-linux:
10 4294967306
Mich betrifft das nicht, weil ich mich weder bei Chrome noch bei Google einlogge, und im Übrigen Firefox benutze. Aber ich sehe das inhaltlich ähnlich. Das ist ein Vertrauensbruch, und eine gute Gelegenheit, Chromes Marktanteil mal ein bisschen zu senken.
/src/firefox/build/moz.configure/checks.configure.FatalCheckError: could not find Node.js executable; ensure `node` or `nodejs` is in PATH or set NODEJS in environment to point to an executable.
Nein, wirklich! Firefox braucht jetzt node.js zum bauen.Ich nehme an, Python, Perl, Ruby, C, C++ und Rust reichten nicht. Nicht Turing-komplett genug!1!!
Oh, übrigens. Sagte ich Python? Firefox braucht Python 2. Als praktisch letztes Projekt da draußen. Alle anderen gehen inzwischen auch mit Python 3. Aber nicht Firefox.
Vielleicht sollten die erstmal ihr Buildsystem aufräumen, bevor sie ihren Renderer in Rust neuschreiben?
Na Marshall Erwin. Und was hat der vorher so gemacht?
I spent roughly the first five years of my career in the CIA’s counterterrorism center. There’s a unique element to the job in the counterterrorism center where I got to support our operational work, helping to find members of al-Qaeda, for example, and understanding the threats that they posed.
Na das passt ja mal wieder wie Arsch auf Eimer! (Danke, Jan)
Aber es äußert sich auch so, dass ich Telefonate inzwischen als direkten Angriff betrachte. Nein, du darfst mich nicht anrufen und meine Zeit in Anspruch nehmen, wenn es dir gerade passt. Wer mich anruft, und es geht nicht um Leben und Tod, oder es ist ein guter alter Freund, der fängt sich direkt 100 Minuspunkte ein und bei negativem Stand wird die Nummer gesperrt. Besonders stört mich das bei Journalisten. Nein, liebe Journalisten, ich will nicht mit euch telefonieren. Wer sein Anliegen nicht in einer E-Mail formulieren kann, mit dem will ich nichts zu tun haben.
Aber ich blogge das jetzt hier gerade nicht wegen Telefonie, sondern weil die selbe Seuche an anderer Stelle um sich greift. Der mangelnde Respekt vor anderen Menschen.
Firefox z.B. hat im Save-Dialog den OK-Button ausgegraut. Der geht dann nach drei Sekunden an. Warum? What the FUCK, Firefox?
Ich wollte mir gerade das aktuelle Humble Bundle mit lauter Security-Ebooks kaufen, damit ich hier mal das Bücherregal um ein paar Schinken entlasten kann.
Ich klicke also auf Login — Google Captcha. Und zwar dieses besonders nervige, besonders laut "fuck you, asshole" sagende, das einen durch mehrere Levels schickt.
Als nächstes wähle ich den Betrag, will bezahlen — NOCH ein multi-stage Google-Captcha. Bezahlen selbst geht natürlich ohne Captcha. Kein Finanzinstitut würde ihren Kunden so deutlich ins Gesicht sagen, dass sie sie verachtet. Aber Humble Bundle hat da kein Problem mit.
Gut, Betrag gezahlt. Klicke auf den Knopf, um die Bücher downloaden zu können. Ratet mal. Ja, genau. NOCH ein multi-stage Google-Captcha. Und ein "validate account" mit Code per E-Mail.
WHAT THE FUCK, humble bundle?!
Ach wisst ihr was, ihr Deppen bei Humble Bundle? Go fuck yourselves.
Update: Der Save-Dialog ist ein Security-Feature für Windows. Damit einem nicht eine Webseite einen Save-Dialog unterschieben kann, während die Maus gerade über dem richtigen Punkt ist und man gerade klicken will, und dann wird das EXE-File ausgeführt. Die gute Nachricht ist: Man kann die Verzögerung konfigurieren. about:config und dann security.dialog_enable_delay auf die Mikrosekunden setzen (Default waren glaube ich 2000).
Update: Wow, mit der Behauptung, kein Finanzinstitut würde ihre Benutzer mit Captchas gängeln, lag ich wohl falsch. Mehrere Leser beschweren sich, dass die Fidor-Bank genau das tut. Tja, da werde ich dann wohl lieber nicht Kunde.
Update: Zu "ich will von niemandem angerufen werden" gibt es Andere, die das ähnlich sehen.
DNS hat zwei große Probleme. Erstens dass jeder auf dem Weg die Anfragen und Antworten sehen kann. Und zweitens dass man falsche Antworten auf anderer Leute Anfragen schicken kann.
Das erste Problem ist zwar doof, aber nicht verheerend. Das liegt daran, dass man für die DNS-Auflösung normalerweise den DNS-Server des Internet-Providers nimmt, und der kann eh sehen, mit welchen IP-Adressen du redest. Der gewinnt also nicht so viel, und mit dem hast du ein Vertragsverhältnis und das ist eine deutsche Firma und die unterliegt dem deutschen Datenschutz. Nicht ideal aber auch kein Beinbruch. Und wem das nicht reicht, der kann sich einen eigenen DNS-Resolver irgendwo hinstellen und selbst betreiben. Dann muss man aber ein VPN zu dem benutzen, sonst kann der ISP immer noch alles sehen.
Ja aber Fefe, der BND könnte doch Kabel Deutschland hacken und die DNS-Daten abschnorcheln! Ja, könnte er, aber er müsste dann alle ISPs hacken, um an alle DNS-Daten ranzukommen. Wenn ihr 1.1.1.1 oder 8.8.8.8 verwendet, dann muss die NSA nur diesen einen Anbieter hacken und hat alle DNS-Daten von allen Leuten auf der Welt. Macht das also nicht!
Das zweite Problem, dass jemand falsche Antworten unterschieben kann, wird vollständig von TLS gelöst.
Warum spreche ich das an? Weil Heise gerade Propaganda fährt, DNS sei so unsicher, und man möge doch JSON über HTTPS zum Auflösen von Namen nehmen. Dazu kann ich nur sagen: NEEEEIIIINNNNN! Der Feind von Sicherheit ist Komplexität. Einen DNS-Resover kann man in ein paar hundert Zeilen Code schreiben. Ich weiß das, weil ich es getan habe. Ein JSON-über-HTTPS-Client sind 5-6stellig viele Zeilen Code.
Und das noch größere Problem: Firefox hat das gerade in ihren Browser eingebaut. Und zwar so, dass die Anfragen über Cloudflare gehen. NEEEIIIINNNN!!!! Damit ist Cloudflare ganz oben auf der Liste der für die NSA interessanten Firmen, und da könnt ihr mal einen drauf lassen, dass die die DNS-Daten da abgreifen werden. Zur Not nicht per Hack sondern per National Security Letter.
Was also tun? Nun, Option 1: Das wegkonfigurieren bei Firefox. about:config, nach trr suchen, network.trr.mode auf 5 setzen.
Option 2: Eigenen DNS-over-HTTPS-Server betreiben. Kann man machen. Hier ist eine solche Software in Rust. Das Kosten-Nutzen-Verhältnis stimmt aber aus meiner Sicht nicht.
Hier ist ein aktueller Blogpost dazu.
Ich finde es höchst bedauerlich, wie Firefox mit solchen Geschichten weiter Krieg gegen ihre User führt. An die Werbe-Add-Ons und die extern gehostete Addons-Seite mit Google Analytics erinnert ihr euch ja sicher noch alle. Und an die tolle Idee, Werbung auf der New-Tab-Seite einzublenden? Mann Mann Mann, Firefox. Was denkt ihr euch bloß!
Update: Das betrifft im Moment nicht die Stable-Version. Offizieller Doku.
Update: Nachdem Golem und Heise hierauf linken, ist es vielleicht an der Zeit, Gegenforderungen aufzustellen. Meine Forderung ist ganz einfach: Weniger Komplexität. Komplexität ist der Feind. Die Anzahl der Bugs steigt mit der Codegröße. Die Leute stöpseln heute nur noch Komponenten aus Libraries zusammen. Das ist Schönwetter-Programmieren! Ein Programm, das nur beherrschbar ist, wenn es zufällig gerade gut funktioniert, ist wertlos. Wir brauchen Programme, die überschaubar wenig Dinge tun, und dafür vollständig beherrschbar sind. Am besten nicht nur vom Programmierer, sondern auch vom Benutzer. Die Geschwindigkeit, mit der wir uns mit unbeherrschten und unbeherrschbaren Technologien umzingeln, ist aus meiner Sicht ein Vorbote der Apokalypse.
Asimov beschreibt in seiner Foundation Serie eine Zukunft, in der die Menschheit selbst-reparierende Atomkraftwerke gebaut hat. Und als die fertig waren, starben die Leute aus, die die noch reparieren konnten, weil man sie nicht mehr brauchte. Nach vielen Jahren war die Selbstreparatur dann am Ende und es gab niemanden mehr, der die warten konnte.
So ungefähr machen wir das auch gerade. Nur dass wir den Schritt mit dem Selbstreparieren überspringen. Wir bauen direkt Dinge, die niemand mehr reparieren kann. Schlimm genug, wenn die Hardware heute so ist, aber das heißt doch nicht, dass die Software auch so sein muss?!
Mich macht besonders fertig, dass wir jetzt mit "KI" soweit sind, dass wir unwartbare Software absichtlich herbeiführen. Wie in einem Scifi-Film, wo die Aliens erst Hirnfresser-Parasiten schicken, damit die Zielrasse sich selbst kaputtmacht, und man für die Machtübernahme nicht mehr so viel Ressourcen aufwenden muss.
31.
Einunddreißig.
Nein, wirklich! "Telemetrie", nehme ich an, ja, Microsoft?
Die haben echt den Schuss nicht gehört. Wieso klagt das eigentlich nicht mal ein Verbraucherschützer durch, dass online-only Anwendungen ein Mangel und ein Fall für Geld zurück sind? Bei Skype kann man das vielleicht noch verargumentieren, aber bei Word?!
Und dann in Phase 2 mal die ganzen Telemetrie-Datenkranken wegklagen. Nein, ihr braucht keine Telemtrie von mir. Weder Firefox noch Thunderbird noch Windows noch sonstirgendjemand. Wer nicht fragt oder von meiner Zustimmung die Funktionalität der Software abhängig macht, hat den Untergang verdient. Und wer Opt-Out macht, den mögen die Datenschützer holen. Wo bleiben die Verbraucherschützer eigentlich an der Front? Haben die alle nicht mitgekriegt, dass viele Leute heutzutage mit Software arbeiten?
Bei mir war "benutzt Electron" von Anfang an ein Ausschlusskriterium und ich kann das nur jedem von euch empfehlen, das auch so zu handhaben.
Mir ist ja völlig schleierhaft, wie Signal Desktop, das auf einer vergleichsweise soliden Plattform aufbaute, als es eine Chrome-Extension war, dann zu Electron wechseln konnte. What were they thinking!?
Die SZ hat eine neue Schriftart ausgerollt und bat um Kommentare. Ich habe einen Kommentar geschrieben. Ich finde, in Firefox unter Linux sehen die i-, und ä- und ü-Punkte leicht nach rechts verschoben aus. Ansonsten mag ich die Schriftart. Weniger mag ich die Sans Serif, die sie ausgerollt haben. Die ist mir zu breit. Wenn jemand Schriftarten breiter macht, habe ich immer den Eindruck, der schämt sich für seinen Inhalt und will ihn toller aussehen lassen als er ist.
Aber hey. Geschmackssache.
Jedenfalls kriege ich hier gerade eine Bounce-Mail. :-)
Fehler bei der Nachrichtenzustellung an folgende Empfänger oder Gruppen: [1]szdm.digitalesdesign@sz.de Ihre Nachricht kann nicht übermittelt werden, weil die Übermittlung an diese Adresse eingeschränkt ist. Diagnoseinformationen für Administratoren: Generierender Server: ad.sv.intern szdm.digitalesdesign@sz.de #550 5.7.1 RESOLVER.RST.AuthRequired; authentication required ##rfc822;szdm.digitalesdesign@sz.de
Erstens amüsiere ich mich über das "eingeschränkt". DAHER haben die Scammer also immer ihre Wortwahl! Von kaputt eingedeutschten Exchange-Fehlermeldungen! Die Fehlermeldung kam übrigens als HTML. Was besonders lustig ist, weil da auch die Mail von mir drin war, und da war ein Spam-Erkennungs-Header drin, der zeigt, dass sie u.a. Spam daran erkennen, dass der Content als HTML kommt.
Ja super, liebe Süddeutsche! Immerhin war ein Postfix davor, und der Exchange hängt nicht direkt mit nacktem Arsch im Internet.
Wenn ihr Linux benutzt, dann ist die Antwort wahrscheinlich: Ja. Firefox und Chrome basieren darauf.
Cairo ist anscheinend in keinem guten Zustand. Money Quote:
My immediate problem with Cairo is that it explodes when called with floating-point coordinates that fall outside the range that its internal fixed-point numbers can represent. There is no validation of incoming data, so the polygon intersector ends up with data that makes no sense, and it crashes.
Das ist immer voll super, wenn man mit ungültigen Eingaben crasht. Das ist gute Alzheimer-Vorbeugung. Man muss die Leute in Bewegung halten.Money Quote 2:
Cairo has a very thorough test suite… that doesn't pass.
Ja prima!
Auf der anderen Seite wissen dann auch Hacker, wo was ist. Und weil die Softwareentwicklungsbranche vor vielen Jahren entschieden hat, dass sauber Programmieren zu schwer ist und wir lieber Hacker ärgern wollen, ging die Entwicklung dann dahin, dass man das Programm halt bei jedem Programmstart woanders hin tut im Adressraum. Das nennt sich dann PIE.
Technisch läuft das über einen gruseligen Hack im ELF-Dateiformat, denn das kennt nur Binary (Programm, an statischer Adresse) und Shared Object (Shared Library, an dynamischer Adresse). Das ist schlicht nicht vorgesehen, dass ein Programm an einer zufälligen Adresse geladen wird. Selbst wenn man den Code so formuliert, dass das ginge (was bei Intel/AMD bei 64-bit-Programmen viel einfacher und effizienter geworden ist als bei 32-bit-Programmen, weil der Befehlssatz da ein anderer ist, der darauf ausgelegt ist). Kurz gesagt gibt es bei 64-bit-Programmen eigentlich keine Effizienz-Ausrede mehr, um die nicht positionsunabhängig zu machen. Es gibt natürlich, wenn man genau hinguckt, doch einen Performancenachteil, aber den will ich hier mal außen vor lassen :-)
Der Hack ist jetzt so, dass man in der Datei einträgt, es sei eine Shared Library, kein Programm. Der Kernel lädt die trotzdem und alles ist gut. Das ist leider ein Opt-In-Ding. Wenn ihr unter Linux Software baut, tut mal bitte immer schön -fPIE auf die Compiler-Kommandozeile.
Nun bin ich aber nicht an regulären Binaries interessiert, sondern an statischen Binaries (das ist die Zielgruppe für meine libc). Und der Hack mit dem PIE geht zwar vom Dateiformat her auch bei statisch gelinkten Programmen, aber in der Praxis halt nicht. Ich habe mal ein paar Tage lang versucht, das doch zum Laufen zu kriegen, und bin am Ende gescheitert. Es geht aber prinzipiell. Das weiß ich, weil es jemand anderes geschafft hat: Der Autor der musl-libc. Der gute Mann hat irgendwann bei GNU ein paar Bugs eingetragen, ob es nicht toll wäre, wenn man da nicht so gruselig hacken müsste, wie er es getan hat. Und gcc 8 hat jetzt die Option -static-pie, die genau das tun soll.
Die wollte ich also auch direkt mal ausprobieren, und baute erstmal die neuen binutils, dann den neuen gcc, und jetzt die neue glibc. Und dann fiel mir auf, dass plötzlich meine dietlibc-Binaries größer waren. /bin/true macht im Wesentlichen nichts und sollte eigentlich nur ein paar Bytes groß sein (ein paar ELF-Header brauchen Binaries schon, aber so Größenordnung 200 Bytes ist eigentlich realistisch). War es aber nicht, sondern es war plötzlich über 4k groß. Gut, es war auch vorher weit davon entfernt, weil die dietlibc inzwischen eben eine Menge anderen Kram supportet, der die Startup-Code größer macht. Z.B. den Stack Protector initialisieren, und Thread Local Storage. Aber das true-Binary hätte trotzdem deutlich unter 4k sein müssen.
Ich habe also ein bisschen rumgeguckt, und es stellte sich raus, dass das nur mit dem binutils-bfd-ld so war. binutils ist das Paket unter Linux, aus dem der Assembler und der Linker kommen. binutils hat aber zwei Linker. Den alten mit bfd (der fetten Abstraktionsschicht von binutils) und den neuen, in C++ geschriebenen, der weniger kann, das dafür angeblich besser: GNU gold. Den habe ich normalerweise nicht im Einsatz, weil der bei mir vor Jahren mal Probleme gemacht hat beim Firefox-Linken. Egal. Mit dem gold ist das true-Binary nur 1,3 KB groß. Ich habe also mal reingeguckt und fand in dem statischen Binary von dem bfd-ld eine PLT. PLT steht für Procedure Linkage Table und ist für die Zusammenarbeit (und Umbiegbarkeit mittels LD_PRELOAD) von Shared Libraries da. Das hat in einem statischen Binary nichts verloren. Ich habe mal einen Bug aufgemacht bei binutils.
Ich stellte also auf GNU gold um, und wollte fluchs die neue glibc bauen — aber die baut mit ihrem neuen static-pie-Support für gcc 8 nicht mit gold, nur mit dem bfd-ld. *SEUFZ*
Aber jetzt wo die Infrastruktur da Support für hat, hoffe ich mal, dass auch für die dietlibc static PIE nur noch eine Frage der Zeit ist, möglichst kurzer Zeit. Das will man schon haben, besonders auf 64-bit-x86-Systemen, wo das kaum noch was kostet gegenüber Nicht-PIE.
Aus Frust hab ich jetzt mal true und false in Assembler gehackt für x86/x64 :-)
Update: Stellt sich raus: static pie mit gcc 8 funktioniert auf Anhieb, auch mit dietlibc. Cool!
Update: Gestern Bug gefiled, heute Patch da. Binutils rockt!
Sehr schön! Endlich! Das wird den ganzen Datenkraken gewaltig ihre Big-Data-Träume zerschießen!
Update: Ist nur im Private-Modus :-(
Sorry, Mozilla. Das kriegt ihr nicht weggewaschen. Was für eine bodenlose Frechheit.
WTF soll das werden? Wenn Microsoft ihre Kunden mit Edge-Werbung vollspammt, dann können wir ja wohl auch unsere Kunden mit Werbung vollspammen?!
Nein, Mozilla. Könnt ihr nicht.
Das Wasser-Geräusch da im Hintergrund gerade? Das war eure jahrzehntelang aufgebaute Vertrauensbasis, die ihr gerade im Klo runtergespült habt.
Update: Mozilla rudert zurück. Tja. Zu spät. Von sowas rudert man nicht zurück. Immerhin haben sie anscheinend auch die eigenen Mitarbeiter überrumpelt, die waren genau so überrascht wie wir.
Der Intel Compiler kommt mit neueren glibc Versionen nicht zurecht, da diese einen Bug im Intel Compiler exponieren, der zu "unpredictable system behaviour" führt. Bei uns auf dem HPC Cluster hat sich das so manifestiert, dass unsere Benutzer nach dem Update von CentOS 7.3 auf CentOS 7.4 (dieses Update der glibc exponiert den Intel Bug) bei Simulationen (z.B. mit Kommerziellen "Finite Element" Applikationen wie ANSYS CFX, 3DS Abaqus etc.) falsche Resultate bekamen:Und weil das so grandios ist, kommt hier die technische Erklärung, was da vor sich geht:
- Simulationen die vor dem Update konvergierten tun dies nicht mehr
- Simulationen brechen ab, weil an verschiedenen Stellen NaN's raus kommen wo das nicht sein sollte.
- Bei Simulationen kommen andere Zahlen raus als vor dem Update
Der Bug betrifft potenziell alle mit Intel (Versionen älter als 17.0 Update 5) kompilierten Binaries und Bibliotheken auf Systemen mit Intel CPUs, welche AVX unterstützen.
According to x86-64 psABI, xmm0-xmm7 can be used to pass functionKeine weiteren Fragen, Euer Ehren!
parameters. But ICC also uses xmm8-xmm15 to pass function parameters
which violates x86-64 psABI. As a workaround, you can set environment
variable LD_BIND_NOW=1 by# export LD_BIND_NOW=1
Update: Ich sollte vielleicht mal erklären, was hier vor sich geht. Das ABI ist die Spezifikation dafür, wie man auf einer gegebenen Plattform auf Maschinencode-Ebene Argumente an Funktionen übergibt, und welche Registerinhalte Funktionen überschreiben dürfen, welche sie sichern müssen. Intel hat die Spec gesehen und gesagt "Hold my beer! Die Register dahinten benutzt keiner! Die nehm ich mal!" Das ABI hat aber ganz klar gesagt, dass die eben nicht frei sind.
Das Szenario hier ist: Der Compiler generiert Code für einen Funktionsaufruf. Nun könnte man sagen, hey, wenn der Intel-Compiler beide Seiten erzeugt hat, dann kann ja nichts schiefgehen. Aber es kann halt doch was schiefgehen. Wenn man ein dynamisch gelinktes Binary hat, dann geht der Funktionsaufruf eben nicht zur Funktion, sondern zum Wert in einer Tabelle. Die Einträge in der Tabelle zeigen initial auf ein Stück Code in der glibc, der dann die Adresse für das Symbol herausfindet und in die Tabelle einträgt und dann dahin springt. Die Idee ist, dass so eine Tabelle mehrere Zehntausend Einträge enthalten kann bei großen Binaries, und wenn man die alle beim Start von dem Binary auflöst, dann ergibt das eine spürbare Verzögerung. Denkt hier mal an sowas wie Firefox oder clang von LLVM. Daher löst man erst beim ersten Aufruf auf. Mit LD_BIND_NOW=1 kann man der glibc sagen, dass er bitte alles am Anfang auflösen soll, nicht erst später.
Was hier also passiert ist, ist dass der glibc-Code, der die Symbolauflösung macht, sich an das ABI gehalten hat und die u.a. für ihn reservierte Register benutzt hat. Und da hatte der Intel-Compiler aber Argumente reingetan. Die hat der Code zum Symbolauflösen dann mit Müll überschrieben. Die glibc wäscht hier ihre Hände in Unschuld (und ich hätte nicht gedacht, dass ich DAS nochmal sagen würde). (Danke, Samuel)
Ich habe ja noch nie unter einer Seite kommentiert, die ihre Kommentarfunktion an Disqus outgesourced hat. Ein Cloud-Startup aus den USA? Das mich site-übergreifend tracken kann? Ja nee klar, da tu ich meine Daten hin!1!! GANZ sicher nicht.
Und wo wir gerade bei Enttäuschungen waren: Firefox kommt jetzt mit Cliqz-Datenmalware. Die haben echt den Schuss nicht gehört bei Mozilla. Euer Browser ist groß, lahm, bloated, feature-arm, euren Add-On-Vorteil habt ihr euch gerade mit dem Umstieg auf Webextensions weggeschossen, und in Sachen Codequalität und Security hinkt ihr Chrome hinterher. Gerade als es anfing, nach Hoffnung zu riechen, weil sie Browserteile in Rust nachbauen und die Servo-Engine kommt, da zerschießen sie sich wieder alle gesammelten Karmapunkte, indem sie ihren Kunden ungefragt diesen Pocket-Cloud-Bullshit reindrücken. Und jetzt das.
Ich versuche ja wirklich immer und immer wieder, Firefox ihren Scheiß zu verzeihen. Ehrlich! Aber DAS? Wenn ich eine Branche nennen sollte, der ich weniger als allen anderen Branchen traue, wenn es um meine persönlichen Daten geht, noch weniger als den üblichen Unterdrückungs-Regierungsprojekten mit Kameras und Flugdatenweitergabe, dann sind es die fucking Verlage! Cliqz ist von Burda. BURDA! WTF?!
Die NSA bemüht sich ja wenigstens noch nach Kräften, die erhobenen Daten nicht wegkommen zu lassen. Aber die Verlage? Zero fucks given! Was da an Werbe- und Tracking- und Optimierungsnetzwerken eingebunden wird, da qualmt der Adblocker! Und weil das immer noch nicht unseriös genug ist, versucht uns die Burda-"Publikation" "Focus" gerade auf der Hauptseite windige Investment-Tipps überzuhelfen. Und DENEN soll ich trauen, dass sie meine Daten schützen?! GANZ sicher nicht!
Update: Warum nenne ich Cliqz Datenmalware? Habe ich mir das näher angesehen? Nein.
Es kommt per Drive-By-Download. Das reicht schon. Dazu kommt: Es lädt meine Suchanfragen in die Cloud hoch, während ich sie tippe, bevor ich Return drücke. Das alleine würde auch schon reichen. Und in dem Bug-Eintrag bei Mozilla verteidigt das jemand damit, dass es ja nicht alle Mausbewegungen aufzeichne sondern bloß wie weit man die Maus bewegt hat. Das alleine hätte auch gereicht.
Ein Fuzzer ist ein Stück Code, das mehr oder weniger zufälligen Müll generiert. Dann lässt man den zu testenden Code drüber laufen und guckt, ob er abstürzt. Eine fürchtlich primitiv klingende Methode, aber sie ist immer wieder erschütternd effektiv. So auch dieses Mal.
Sie fanden in allen Browsern Bugs. In Chrome waren es 2, in Firefox 4, in IE 4, in Edge 6 und in Safari 17 (!!).
Apple wird also mal wieder ihrem in langen Jahren harter Arbeit erworbenen Ruf gerecht.
Allerdings gibt es halt beim Selberbauen immer mal wieder Stress.
Eine Weile gab es Konflikte, weil Firefox auf einer über 10 Jahre alten Version von GNU autoconf bestand, die ich nicht hatte.
Dann gab es Ärger, weil Firefox H.264-Playback (Youtube und co) nur abspielen wollte, wenn man gstreamer installierte — aber es bestand auf einer 10 Jahre alten Gammelversion, die schon längst nicht mehr gewartet wurde.
Inzwischen hat Firefox auf ffmpeg umgestellt, und das tat auch eine Weile ganz gut, aber vor ein paar Tagen stellte es die Arbeit ein. Ich bin dann auf die Vorversion und zurück und habe mir das für das Wochenende vorgenommen. Jetzt ist Wochenende, und ich habe erstmal die neue glibc 2.26 installiert (die endlich reallocarray von OpenBSD übernommen hat, und einen per-Thread malloc-Cache hat, was die Performance massiv verbessern sollte in Programmen mit mehreren Threads).
Das brach mir dann erstmal alles.
Die Shell konnte plötzlich nicht mehr meinen Usernamen herausfinden, screen wurde konkreter und sagte, getpwuid könne meinen User nicht auflösen. Sowas gibt es bei glibc häufiger, weil die gerne mal Dinge als "deprecated" markieren, für die es keinen Ersatz gibt. Zum Beispiel pt_chown vor einer Weile. Das war halt unsicher, also haben sie es weggemacht. pt_chown ist das Vehikel, über das die einschlägigen libc-Routinen (grantpt) ein PTY allozieren, und es liegt in /usr/libexec, wenn es denn überhaupt liegt. Und plötzlich kam mein X nicht mehr hoch, weil mein X solange läuft, wie mein Terminal in X läuft, und das konnte kein PTY mehr allozieren.
Später hat glibc dann Sun RPC rausgeschmissen, und dann ließ sich mount(8) nicht mehr bauen. Ja super. Und jetzt haben sie nsl für obsolet erklärt und in nss ausgemistet (NIS rausgekantet und so). Gut, NIS verwende ich nicht. Als das nicht ging, habe ich halt neu gebaut, diesmal mit --enable-obsolete-nsl, aber das brauchte auch nichts. Stellt sich raus: in meine /etc/nsswitch.conf stand drin:
passwd: compatUnd das sorgte dafür, dass die glibc libnss_compat.so oder so zu laden versuchte, und das gibt es nicht mehr. Die glückbringende Änderung war dann:
shadow: compat
group: compat
passwd: filesSeufz. Bei solchen Gelegenheiten bin ich ja immer froh, dass mein getty und mein login gegen dietlibc gelinkt sind, und für Notfälle noch eine diet-shell rumliegt. So komm ich auch nach solchen glibc-Sabotageakten immer noch irgendwie ans System ran und kann Dinge fixen.
shadow: files
group: files
Aber eigentlich wollte ich ja von Firefox erzählen. Nach dem glibc-Update baut auch Firefox nicht mehr, weil glibc in sys/ucontext.h eine struct von struct ucontext zu struct ucontext_t umbenannt hat. Ich bin mir sicher, dass es da Gründe für gab, aber meine Phantasie reicht nicht, um mir welche auszudenken. Was für ein Scheiß ist DAS denn bitte?! Firefox hat einen Crash Reporter, und der will halt in diesen Strukturen herumfuhrwerken, weil man das tun muss, wenn man sehen will, in welchem Zustand das Programm beim Crashen war.
Gut, nur ein Dutzend Dateien musste ich anfassen, dann baute Firefox wieder. Aber H.264 war immer noch kaputt.
Und die Story ist richtig interessant, daher will ich sie hier mal bloggen. Wenn man so ein Problem hat, dann ist unter Linux eine der ersten und besten Debugmöglichkeiten, dass man strace benutzt. Programme unter Linux laufen im User Space, und die interagieren mit dem Kernel über Syscalls. strace fängt die Syscalls ab und gibt ihre Argumente und Ergebnisse aus. Hier ist ein Beispiel:
$ strace /opt/diet/bin/cat true.cHier sieht man ganz gut, was cat tut. execve gehört noch nicht zu dem cat selber, das ist der Aufruf von dem cat. arch_prctl ist ein Implementationsdetail, das man auf x86_64 macht, um thread local storage einzurichten (die libc weiß an der Stelle nicht, dass cat das nicht benutzt). strace auf Firefox ist natürlich viel umfangreicher, aber mit ein bisschen Geduld kann man da trotzdem sehen, was passiert, bzw. was nicht passiert. Und zwar sah ich das hier:
execve("/opt/diet/bin/cat", ["/opt/diet/bin/cat", "true.c"], [/* 60 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x7fff5e690f70) = 0
open("true.c", O_RDONLY) = 3
read(3, "int main() {\n return 0;\n}\n", 65536) = 27
write(1, "int main() {\n return 0;\n}\n", 27int main() {
return 0;
}
) = 27
read(3, "", 65536) = 0
close(3) = 0
exit(0) = ?
+++ exited with 0 +++
7194 openat(AT_FDCWD, "/usr/lib64/libavcodec-ffmpeg.so.57", O_RDONLY|O_CLOEXEC) = 257 7194 --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_errno=EEXIST, si_call_addr=0x7fc218252840, si_syscall=__NR_openat, si_arch=AUDIT_ARCH_X86_64} --- 7194 socketpair(AF_UNIX, SOCK_SEQPACKET, 0, [39, 40]) = 0 7194 sendmsg(36, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0\0\0\0\0\0\10\0\0\0\0\0\0\0\0\0", iov_len=16}, {iov_base="/usr/lib64/libavcodec-ffmpeg.so."…, iov_len=35}, {iov_base=NULL, iov_len=0}], msg_iovlen=3, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[40]}], msg_controllen=24, msg_flags=0}, MSG_NOSIGNAL <unfinished …> 7196 <… recvmsg resumed> {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0\0\0\0\0\0\10\0\0\0\0\0\0\0\0\0", iov_len=16}, {iov_base="/usr/lib64/libavcodec-ffmpeg.so."…, iov_len=8194}], msg_iovlen=2, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET,cmsg_type=SCM_RIGHTS, cmsg_data=[66]}], msg_controllen=24, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 51 7194 <… sendmsg resumed> ) = 51 7196 openat(AT_FDCWD, "/usr/lib64/libavcodec-ffmpeg.so.57", O_RDONLY|O_NOCTTY|O_CLOEXEC <unfinished …> 7194 close(40 <unfinished …> 7196 <… openat resumed> ) = 95 7194 <… close resumed> ) = 0 7196 sendmsg(66, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0\0\0\0", iov_len=4}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[95]}], msg_controllen=24, msg_flags=0}, MSG_NOSIGNAL <unfinished …> 7194 recvmsg(39, <unfinished …> 7196 <… sendmsg resumed> ) = 4 7194 <… recvmsg resumed> {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0\0\0\0", iov_len=4}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[40]}], msg_controllen=24, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 4Die Ausgabe ist ein bisschen verwirrend mit dem unfinished und resumed; das kommt daher, dass Firefox mehr als einen Prozess/Thread aufmacht, und die miteinander reden, und ich alle von denen auf einmal beobachte. Aber mal grob: Prozess A ruft openat(AT_FDCWD,…) auf, das ist äquivalent zu open(…). Kriegt als Ergebnis 257 und direkt ein Signal SIGSYS mit si_code SYS_SECCOMP.
Das ist ziemlich coole Scheiße, weil das genau das ist, was ich auf dem 32c3 in meinem Vortrag "Check your privileges" als Broker-Architektur vorgestellt hatte. Die haben das aber nicht über Überladen von openat gemacht, sondern die haben das so gemacht, dass SECCOMP nicht den Prozess abbricht sondern dieses Signal schickt. Das Signal fangen sie dann ab, und der Handler von dem Signal kann dann nachvollziehen, was der Code zu tun versucht hatte, in diesem Fall openat, und das anders lösen — nämlich über sendmsg an den Broker, wie wir in dem strace schön sehen können. Der Broker macht recvmsg, kriegt die Anfrage (und wir sehen in den Daten von dem sendmsg auch schön den Dateinamen), und öffnet die dann. Die Zahl am Anfang ist übrigens die PID bzw. Thread-ID.
Der Broker macht dann selber nochmal openat, hat keinen SECCOMP-Filter installiert, das openat läuft durch, und dann schickt der Broker mit dem zweiten sendmsg oben den Deskriptor 95 zurück an den anfragenden Prozess in der Sandbox. Der kriegt das dann in dem recvmsg als Deskriptor 40 reingereicht (Deskriptoren sind immer relativ zum Prozess, daher findet hier im Kernel eine Übersetzung statt). Das ist mal echt coole Scheiße, und ich bin einigermaßen schockiert, dass Firefox so Bleeding-Edge-Kram überhaupt implementiert hat. Sehr cool!
Warum ich das hier alles erwähne: weil das bei mir auf die Nase fiel, denn zum Abspielen von H.264 lädt Firefox libavcodec von ffmpeg, und ffmpeg ist gegen einen Haufen Codecs und Libraries gelinkt, und die liegen bei mir eben nicht alle in /usr/lib64, sondern beispielsweise liegt libva in /usr/X11R7/lib64 (libva macht hardware-assistierte Dekodierung und Anzeige von u.a. H.264-Videos). Und es stellt sich raus, dass Firefox in dem Broker eine Liste von erlaubten Verzeichnissen hat, aus denen Dateien geöffnet werden können, und die wird nicht aus /etc/ld.so.conf oder so generiert, sondern die ist hardkodiert im Quellcode. Falls jemand mal selbst gucken will: Das ist in security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp (nach policy->AddDir gucken).
Nachdem ich da meine Pfade eingetragen habe, kann der Firefox ffmpeg laden — aber das Video immer noch nicht spielen. Das sei jetzt korrupt, sagt er. Ist es natürlich nicht. Mist. Na mal schauen. Fortschritt ist immer nur ein Schritt zur Zeit.
Update: Ein Einsender zur glibc-Situation:
Das Update habe ich für unsere cross-gebauten Umgebungen diese Woche auch gemacht. Mal so ein paar Sachen, die aufgefallen sind:
- gcc 5.4 baut dann nicht mehr (ucontext_t, auch ein paar Stack-Sachen), betrifft auch neuere Versionen von gcc
- iproute2 4.11 baut auch nicht mehr (4.12 schon, also mir egal). IIRC haben sie irgendwo vergessen stdint.h für UINT16_MAX einzubinden, und das muss vorher zufällig über irgendeinen anderen Header mit reingekommen sein (also ganz klar nicht die Schuld von glibc)
- gdb 8.0 baut nicht mehr auf x64 (ARM geht), irgendwas mit putc(), das nur ein Argument bekommt oder so.
Ganz großes Kino.
In der Tat. o_O
Die haben ernsthaft die about:addons-Seite extern gehostet, ohne den Usern das zu sagen, und dann ist da auch noch ein Google Analytics drauf. Und weil es nicht wie http: oder https: aussieht, verhindert PrivacyBadger das nicht.
Mein IoT-Vortrag schien ganz gut anzukommen, aber das Podium war zu lahm. Heise hatte kurzfristig ein Podium zur Frage "Sind Antiviren Schlangenöl?" eingeplant, nachdem ich da im Blog einen kleineren Schlagabtausch mit Heise Security hatte. Ich war ja erstmal überrascht, dass Heise Events es geschafft hat, für alle fünf Termine jemanden von der AV-Industrie zu finden, der sich da hinsetzt und das debattieren will. Die haben ja im Wesentlichen nichts zu gewinnen in einer Diskussion zu der Fragestellung. Aber sie haben es geschafft, und Hut ab vor den Leuten, die das jetzt machen.
Heute war das Ralf Benzmüller von G Data.
Weil das recht kurzfristig noch ins Programm gehievt wurde, und wir dann an dem Tag noch am Programm herumgeschoben haben, damit das nicht nur 30 Minuten sind wie ursprünglich eingeplant, und wir vorher auch keine Gelegenheit hatten, mal einen roten Faden zu klären, lief das Podium dann ein bisschen unrund, wie ich fand. Erstmal hat Heise vorher und nachher gefragt, wer meine These unterstützen würde, und wer die Gegenthese unterstützen würde, und ich konnte grob niemanden auf meine Seite ziehen, fing auch mit der klaren Minderheitsposition an. Das erwähne ich nur, um euch zu sagen, dass mich das nicht stört. Ich mache das nicht, "um zu gewinnen" oder so. Mich stört aber, dass wir teilweise aneinander vorbei geredet haben.
Ich habe extra versucht, da die technischen Details rauszuhalten, und auf einer ganz fundamentalen Ebene zu argumentieren.
Ich habe u.a. argumentiert, dass ein Virenscanner ja PDF-Dateien scannt, auch wenn ich gar keinen PDF-Viewer installiert habe. Dann wäre ich also ohne Antivirus sicher vor Angriffen via PDF gewesen, und erst durch den Antivirus kommt ein PDF-Parser ins Spiel, der wie jeder Parser-Code potentiell angreifbar ist. Ralf dachte, ich meinte, dass der mit den selben Exploits wie Acrobat angegriffen würde, und versuchte dann auszuführen, dass ein Antivirus ja die PDF-Datei gar nicht wirklich ausführt, sondern nach Heap Spraying und NOP Sleds sucht. Nicht nur verteidigte er damit einen Punkt, den ich nie kritisiert habe; im Publikum verstand das dann auch noch jemand so, als habe er eingeräumt, dass sie da nur oberflächlich ein bisschen draufschauen und das also gar nicht wirklich absichern.
Diese Art von Detail-Kleinkram wollte ich gerade vermeiden in der Debatte, denn da verliert man sich in irgendwelchen für die Diskussion und das Publikum unwichtigen Dingen.
Meine Aussage ist ja, kurz zusammengefasst, folgende:
In meinem rationalen Universum ist mit diesen beiden Punkten alles gesagt. Funktioniert nicht und verursacht Folgeprobleme? Will man nicht!
Und für den Fall, dass die "ist ja bloß ein Grundschutz"-Ausflucht kommt, vielleicht noch garniert mit "100% Sicherheit gibt es gar nicht", hatte ich mir überlegt, wie das wäre, wenn man eine Putzkraft einstellt, und die hinterlässt dann in der Küche einen großen Schmutzfleck, und argumentiert dann: Ist ja nur eine Grundreinigung, der Flur ist aber voll sauber jetzt!
Wieso würde man bei einer Putzkraft höhere Standards anlegen als bei einem Antivirus? Erschließt sich mir nicht.
Aber es stellt sich raus, und das muss ich völlig emotionslos hinnehmen, dass die Leute da draußen wissen, dass Antiviren nichts bringen, potentiell die Dinge schlimmer machen, Geld kosten, und die Werbeversprechen der Hersteller zum Gutteil falsch sind — und das trotzdem für einen nicht nur akzeptablen sondern notwendigen Deal hält.
Ich vermute, dass es da einen bisher unerkannten psychologischen Hintergrund gibt. Meine Vermutung ist, dass das unser Ablassschein dafür ist, dass wir lauter Software einsetzen, der wir nicht vertrauen, und von der wir aus Erfahrung wissen, dass sie unsicher ist. Wir setzen die trotzdem ein, uns müssen diesen offensichtlichen Fehler irgendwie wegrationalisieren. Dafür kaufen wir uns beim Schlangenöllieferanten einen Ablassschein. Dem können wir zwar auch nicht vertrauen, aber das war ja auch nicht der Punkt an der Sache. Den Antivirus kauft man nicht, damit er einen absichert, sondern damit man sagen kann, man habe aber einen Antivirus gehabt.
Ich frage mich, ob man da nicht viel Aufwand sparen kann, und den Leuten das Geld abnimmt, aber ohne einen Antivirus zu liefern. Sankt Fefes Schlangenöl-Ablassbrief. Du setzt Internet Explorer ein? Sag drei Ave Maria und kaufe vier Sankt Fefe Schlangenöl-Ablasszertifikate!
Als Gegenleistung könnte man so richtig schöne Zertifikate drucken. Auf gutem Papier, ihr wisst schon. Wasserzeichen, Prägung, vielleicht noch ein Wachssiegel.
Sollte ich mal vorbereiten und bei solchen Gelegenheiten verkaufen. Aufschrift: Dem Eigentümer dieses Zertifikates wird verziehen, dass er immer noch Firefox einsetzt, obwohl er wusste, was da mit jedem einzelnen Release für unfassbar furchtbare Sicherheitslücken zugemacht werden müssen, und dass es keinen Grund für die Annahme gibt, dass diese Reihe nicht so weitergehen wird. Gezeichnet: Kardinal Rieger.
Auf der anderen Seite kann es natürlich sein, dass so ein Podium gar nicht funktionieren kann, denn es war ja gar nicht mein Ziel, da irgendeinen bestimmten Hersteller rauszuziehen und schlecht zu machen, schon gar nicht den, der sich neben mir aufs Podium getraut hat. Es ist auch nicht mein Ziel, dazu aufzurufen, dass die Leute alle ihre Antiviren deinstallieren. Wir sind hier alle Erwachsene. Wer auf selbstzugefügte Schmerzen steht, dem werde ich da keine Vorschriften zu machen versuchen. Und häufig haben gerade Firmen sowas ja auch aus Compliance-Gründen oder weil sonst die Versicherung im Schadensfall nicht zahlt.
Naja, und so kam am Ende völlig überraschend raus, dass die Fakten völlig unstrittig sind. Wir legen sie bloß fundamental verschieden aus.
Update: Der Vollständigkeit halber: 100% Sicherheit gibt es natürlich doch. Jemand, der keine PDF-Software installiert hat, ist 100% sicher vor PDF-Exploits. Bis er einen Antivirus installiert. Dann nicht mehr.
Update: Ich werde häufig gefragt, was denn mein Vorschlag gegen Malware ist. Hier ist meine Antwort.
Die Malware-Problematik besteht aus zwei zu trennenden Hälften. Erstens Malware, die unter Ausnutzung von Sicherheitslücken auf das System kommt. Zweitens Malware, die völlig legitim auf das System kommt, beispielsweise in einer E-Mail, und die dann vom Benutzer ausgeführt wird.
Die erste Kategorie von Malware kriegt man weg, indem man Softwarehersteller für Schäden in Haftung nimmt, die aus ihren Sicherheitslücken resultieren. Die zweite Kategorie von Malware kriegt man weg, indem man das Modell von Mobiltelefonen übernimmt. Anwendungen laufen nicht mehr in einem großen Universum gleichberechtigt nebeneinander und haben alle vollen Zugriff auf alle Ressourcen, auf die der User Zugriff hat, sondern Anwendungen laufen jeweils in einer Sandbox mit minimalen Rechten, und wenn sie eine Datei öffnen wollen, können sie nur das System bitten, einen "Datei öffnen"-Dialog anzuzeigen. Dateien einfach so mit Dateinamen öffnen oder ohne Rückfrage geht nicht. So ein Modell hat Microsoft mit ihrem App Store zu etablieren versucht, und der Markt hat sie ausgelacht und das nicht haben wollen. Dafür installieren wir uns dann einen Antivirus drüber. Um unser schlechtes Gewissen zu beruhigen.
Update: Hier kommt der Einwand, dass das ja noch dauert, bis wir Produkthaftung kriegen. Das ist also jetzt keine akute Lösung!1!! Ja, und? Gegen 0days zu helfen sagen ja auch Antiviren nicht zu. Und wenn es kein 0day ist, muss man halt immer schön alles gepatcht halten. Dann kann einem die auf Sicherheitslücken basierende Malware auch nichts. Für mich ist das der Gipfel der Unverantwortlichkeit, wenn Konzerne sich ganze Abteilungen mit Bremsklötzen leisten, die dann vorgeblich Patches "prüfen", ob die wirklich ausgerollt werden müssen oder nicht. Und in der Praxis führen die nur dazu, dass steinalte Exploits in dem Laden noch funktionieren. Aber hey, dafür haben wir ja Antiviren installiert!1!!
Und nicht auf Sicherheitslücken basierende Malware kriegt man im Firmenumfeld dadurch weg, dass man den Leuten keinen lokalen Adminzugang gibt und sie nur Programme von der Whitelist ausführen lässt. Ich glaube ja, dass das mit der Tooldiskussion neulich hier im Blog Hand in Hand geht. Firmen tolerieren ein geradezu groteskes Maß an Unwissen und Lernverweigerung. Und die Mitarbeiter nehmen das dankend an, weil sie dann die Unschuld vom Lande geben können. "Ja aber ich hab doch bloß auf das Bild geklickt und die drei Warnfenster sofort ungelesen zugemacht!1!!"
Begründung: Firefox setzt jetzt zwingend auf pulseaudio auf.
Ist bestimmt mein pulseaudio 8 braun, installiere ich mal pulseaudio 10. Der Daemon kommt ohne Fehlermeldung nicht hoch. Stellt sich raus, dass es da ein Consolekit-Modul gibt, das der reinlädt, und der failed anscheinend unklar, und damit kommt das ganze Ding dann nicht hoch. Modul gelöscht, Daemon kommt hoch. Findet kein Audio.
Nee, warum auch. Chrome findet Audio, Alsa findet Audio, Mplayer findet Audio, ffplay findet Audio, mpg123 findet Audio. Skype findet Audio. SKYPE! Das stinkende Flash-Plugin findet Audio! Gute Arbeit, Herr Pöttering. Flash findet Audio, dein Code nicht. Großartig. Das muss man erst mal hinkriegen, schlechter als Flash zu sein.
Nach ein bisschen Debugging stellt sich raus, dass es keine Fehlermeldungen gibt. pulseaudio findet ein Null Sink. That's it.
Gibt es eigentlich irgendwas, was der angefasst hat, das nicht als Totalschaden endete? Der Michelangelo der kritischen Infrastruktur! Was er anfasst, wird ein Gesamtkunstwerk! Kann nicht debuggt werden, nur bewundert. Der Midas der Middleware! Was er anfasst, wird zu … nunja.
Dann halt kein Firefox mehr. Die sind von der Security her eh nicht mit Chrome mitgekommen. Und das alleine ist ja schon ein Totalschaden, wenn man mal drüber nachdenkt.
Ich könnte mich ja über die FAQ von pulseaudio stundenlang amüsieren. Auf wie viele Arten das bei den Leuten da draußen nicht geht. Und an keiner Stelle kommt jemand auf die Idee, dass vielleicht Pulseaudio einfach noch nicht bereit ist für eine verantwortungsvolle Rolle.
Ach nee komm, da bauen wir noch eine dynamisch nachladende Modulschnittstelle an. Und eine IPC-Bus-Schnittstelle, die dann failed, wenn der Bus nicht da ist. Und eine Schnittstelle für Consolekit (was übrigens "not actively maintained" ist, KLAR dependen wir auf sowas!!1!). Ich würde ja einen CORBA-Joke machen, wenn Gnome nicht auch schon mal darauf eine Abhängigkeit gehabt hätte. Es ist alles so traurig.
Update: Ein Einsender weist darauf hin, dass jemand einen Pulseaudio-Emulator geschrieben hat. Wie krass.
There is little consensus within the security community on whether HTTPS interception is acceptable. On the one hand, Chrome and Firefox have provided tacit approval by allowing locally installed roots to bypass key pinning restrictions
Wait, what?! Wahrscheinlich weil sonst das Schlangenöl alles kaputtmachen würde, oder wie? Hey macht ja nichts, wenn wir damit Malware Tür und Tor öffnen, Hauptsache Schlangenöl schlängelt schön!
Die Forscher untersuchten rund 8 Milliarden TLS-Verbindungen zum Firefox-Update-Dienst, einigen E-Commerce-Sites und bei Cloudflare. Dabei stellten sie fest, dass bis zu 10 Prozent der gesicherten Verbindungen nicht mehr die typischen Verbindungsparameter des verwendeten Browsers aufwiesen – sie also irgendwo unterwegs unterbrochen wurden.10 Prozent finde ich ausgesprochen krass.
Konkret bedeutet das etwa: 13 von 29 untersuchten Antiviren-Programmen klinken sich in die verschlüsselten TLS-Verbindungen ein.Naja, TLS ist TLS, denkt ihr euch jetzt vielleicht. Ihr irrt. TLS handelt beim Handshake am Anfang aus, welche Verfahren verwendet werden, und wenn da ein Schlangenöl zwischen sitzt, das nur alte Gammelverfahren spricht, dann sinkt eben die Sicherheit der Gesamtverbindung dadurch. Wie schlimm ist es?
So erlaubten gemäß der Studie Produkte von Avast, Bitdefender, Bullguard, Dr.Web, Eset, G Data und Kaspersky direkte Angriffe auf die gesicherten Verbindungen. Bei den getesteten Security-Appliances für die Inspektion von TLS-Verbindungen sieht es nicht besser aus: 11 von 12 schwächten die Sicherheit etwa durch die Hinzunahme von kaputten Verfahren wie RC4.Ja prima!
Das Fazit ist:
"Viele der Verwundbarkeiten in Antiviren-Produkten und Proxies in Fimrenumgebungen [….] sind fahrlässig und ein weiteres Zeichen für den Trend, dass ausgerechnet Sicherheitsprodukte die Sicherheit verschlechtern statt sie zu verbessern" heißt es im Fazit.Ich weiß, ich weiß! Hätte uns doch nur jemand rechtzeitig gewarnt!!1!
Aber wie sich rausstellt: Stimmt nicht. Ich frage mich langsam, was passieren muss, damit Jürgen Schmidt aufhört, Antiviren als notwendig zu verkaufen. Das ist ja eine Sache, wenn er mir nicht glaubt, der ich in meiner beruflichen Laufbahn den Quellcode von einigen Schlangenöl-Implementationen gesehen habe, aber da aus NDA-Gründen keine Details veröffentlichen kann. Aber wenn dieser Firefox-Mitarbeiter aus dem Nähkästchen erzählt, da kann man ja wohl kaum "ach das denkt der sich doch bloß aus" zurechtrationalisieren?!
Also, lieber Jürgen. Sag mir doch mal. Was müsste passieren, damit du deine Position revidierst?
Müsste deine Mutter Ransomware über eine Schwachstelle in einem Antivirus installiert kriegen?
Ich meine das völlig ernst. Was müsste passieren?
Denn mir geht langsam die Fantasie aus, was für Szenarien da noch möglich wären, um die seit Jahren naheliegende Schlussfolgerung zu widerlegen, dass dieses Antivirus-Fanboy-Schreibertum bei Heise letztendlich Dogma ist. Religiöse Verblendung.
Wieso verkauft Heise eigentlich keine Antiviren? Bisschen Kickback der Hersteller einfangen? Tolles Geschäftsmodell! Von der Berichterstattung her könnte Heise ja kaum noch tiefer mit den AV-Herstellern unter eine gemeinsame Bettdecke rutschen.
Egal, wie viele Bugs es gibt. Bugs passieren halt. Installieren Sie den neuen Patch, dann sind Sie wieder sicher!1!!
Update: Ein Einsender meint, dass Heise einmal im Jahre der c't eine "desinfec't"-DVD beilegt, das sei ja auch sowas wie ein Verkauf von Antiviren. Kann man bestimmt so sehen, ja. Zumindest ist es ein Anfixen :-)
Update: Ohne da ins Detail gehen zu können, schließe ich mich übrigens der Einschätzung an, dass das Schlangenöl von Microsoft noch am wenigsten neue Angriffsoberfläche aufreißt. Ich hatte die Details schonmal grob dargelegt.
Update: Ich habe eine Mail von Jürgen Schmidt gekriegt. Er weist meine Kritik von sich und findet, dass seine Berichterstattung sogar aktiv für das Hinterfragen der Position steht, dass AV-Software wichtig und nötig ist. Das würde ich auch gerne so sehen, und es stimmt auch, dass er häufiger negative Meldung zu Schlangenöl bringt, aber tut mir leid, das hat ihm auch niemand vorgeworfen, dass er negative Meldungen zu AV-Software unterdrückt. Was mich an dem vorliegenden Artikel am meisten geärgert hat, war dieser Satz:
Nun lässt sich das nur allzu leicht als Unsinn abtun – etwa indem man auf die fatalen Konsequenzen ungeschützter Systeme verweist.
Hier wird per Nebensatz unhinterfragbar als Prämisse etabliert, dass a) AV Schutz bietet, b) Systeme ohne AV ungeschützt sind, und c) es fatale Konsequenzen hat, kein AV einzusetzen. Ich bestreite alle drei Prämissen. Wenn dieser Satz nicht in dem Artikel gewesen wäre, hätte ich nichts gesagt. Der Rest des Artikels ist aus meiner Sicht Berichterstattung und neutral gehalten. Da hätte ich mir zwar immer noch gewünscht, dass Heise Security ihre editoriale Reichweite nutzt, um den Leuten deutlich zu machen, dass da nicht nur irgendein Spinner Dinge behauptet, und dass Heise das auch so sieht. Aber das hätte mich nicht genug ärgert, um dazu einen Blogpost zu machen.
Update: Jürgen Schmidt schrieb mir jetzt, dass er diesen Satz anders gemeint hat, als ich ihn verstanden habe. Er wollte damit den Leser da abholen, wo er ist. Er verwehrt sich auch gegen den Eindruck, die Redaktion sei gekauft, von wem auch immer. Ich möchte hier nochmal explizit darauf hinweisen, dass ich das auch nicht vorgeworfen habe. Das Schreibertum von Heise liest sich meiner Meinung nach so. Das heißt nicht, dass irgendjemand tatsächlich gekauft ist — nichtmal, dass das Dogma Absicht ist oder bewusst stattfindet.
Ich habe Jürgen gebeten, einfach mal ein Statement zu veröffentlichen, was das klarstellt. "Wir bei Heise sind keine Antivirus-Proponenten und unsere positive Berichterstattung sollte nicht als Werbung missverstanden werden". Wenn ich Jürgen richtig verstanden habe, ist das bei Heise eh so. Also würde so ein Statement ja auch niemandem wehtun. An anderer Stelle ist Heise ja schon vorbildlich, z.B. wenn sie dranschreiben, dass ein Hersteller dem Journalisten die Reise bezahlt hat. Wenn es sich hier wirklich um ein Missverständnis handelt, können wir das ja mal eben kurz und schmerzlos auflösen. Your move, Heise.
Update: Angesichts dieses Artikels muss ich meine Kritik an Jürgen Schmidt in der Tat zumindest partiell widerrufen. Da schreibt er
vieles von Böcks Kritik trifft voll ins Schwarze
Ich sehe aber immmer noch einen Unterschied zwischen dem Anerkennen von Fakten und dem Aussprechen der sich daraus ergebenden Bewertung, dass Antiviren grundsätzlich nicht vertrauenswürdig sind. Das blieb Heise bisher schuldig.
Das Problem in Mediaserver, das sie da herausheben, der Einzeiler-Patch (das ist übrigens nicht ungewöhnlich) ist im libopus-Repository seit einem halben Jahr gefixt. Wieso hat Google so lange gebraucht?
Der Einsender meint, er habe mal bei Firefox geguckt, und da ist das auch noch ungefixt im aktuellen 51er-Prerelease. Wieso braucht Firefox eigentlich so lange?
Wieso liefern diese ganzen Idioten eigentlich überhaupt eigene Kopien von Upstream-Repositories aus?! Das ist ein völlig sinnloser Angriffsvektor.
Zu ihrer Verteidigung muss man allerdings auch vorbringen, dass Opus das nicht als Security-Fix gekennzeichnet hatte, und mit dem nächsten Release bis vor ein paar Tagen gewartet haben.
And this is why we cannot have nice things.
Update: Man muss auch dazusagen, dass dieser Patch jetzt nicht so dramatisch aussieht. Das eigentliche Problem ist also vermutlich ein Folgefehler von dieser Zeile. (Danke, Michael)
Aber man kriegt ein Gefühl dafür, mit was für Wildwestmethoden Webseiten auf die informationelle Selbstbestimmung ihrer Benutzer scheißen, und die Daten gleich an ein halbes bis ganzes Dutzend von Drittverwertern weiterreichen. Die können alle sehen, welche Artikel du liest. Und weil heutzutage überall in der URL steht, worum es in dem Artikel ging, müssen die nicht mal auf die URLs klicken, von denen der Traffic kam, um zu sehen, was deine Präferenzen so sind.
Ich habe mich daher dafür entschieden, grundsätzlich mit angeschaltetem umatrix zu surfen. Das macht regelmäßig Stress und Ärger. Eingebettete Youtube-Videos kommen erst nach Freischaltung, Webformulare failen, Onlineshopping geht nicht, weil externe Zahlungsdienstleister eingebettet werden, und die dann am besten auch noch Cross-Domain "Verified by Visa" oder ähnlichen Bullshit einzublenden versuchen. Ich kann gar nicht überbetonen, was das für ein Ärger täglich ist. Aber das ist es mir wert.
Und im Vergleich zu Lösungen wie Ghostery habe ich halt keine Liste von bekannten Trackern, die ich wegfiltere, sondern ich filtere alles weg, was nicht explizit erlaubt ist. Wenn ihr das auch mal probieren wollt, dann bereitet euch mental darauf vor, dass das mit Ärger verbunden ist. Mit Ärger und mit Erkenntnisgewinn.
Dem geneigten Leser wird bei der Gelegenheit auffallen, dass auch eine meiner Webseiten externe Referenzen macht — Alternativlos lädt die Audiodaten vom externen CDN nach. Das läuft unter einer anderen Domain, nämlich as250.net. Nun könnte ich dafür ja auch einen DNS-Alias machen, damit alternativlos.as250.net auch unter as250.alternativlos.org erreichbar ist. Der Grund, wieso ich das im Moment nicht mache, ist weil ich dem CDN dann auch für SSL-Verbindungen einen Schlüssel geben muss, der für eine alternativlos.org-Subdomain gültig ist. Das zieht aber andere Sicherheits-Nachteile nach sich.
Update: Ich sollte mal konkreter werden, was das Problem ist. Es geht darum, was der mögliche Schaden ist, wenn das CDN gehackt wird. Im Moment kann das CDN böse Audiodateien ausliefern, die den Browser verwirren oder angreifen. Wer nicht immer seine Patches einspielt, hat aber grundsätzlich ein Problem, insofern mache ich mir da weniger Sorgen. Aber wenn ich jetzt dem CDN ein SSL-Zert für cdn.alternativlos.org ausstelle, und der setzt Cookies, dann kann er die mit dem Scope alternativlos.org setzen. Das betrifft mich jetzt konkret auch nicht, weil ich nicht mit Cookies operiere, aber es ist ein Problem und einer der Gründe, wieso CDNs häufig auf eigenen Domains laufen. Schlimmer (?) noch: Wenn alternativlos.org jetzt selber Cookies setzen würde, sagen wir mal um die Session zu identifizieren, dann würden die auch alle beim gehackten CDN-Server übergeben werden, und der könnte alle Sessions klauen. Betrifft alternativlos.org jetzt nicht konkret, aber das sind so die Probleme dabei, wenn man das CDN auf eine Subdomain legt.
Gut, Adblock steht da jetzt nicht, das sagten sie nur in der Radio-Zusammenfassung (der Beitrag von 9:18).
Aber fassen wir mal zusammen: Big Data gut, Adblocker böse.
So und jetzt der Knaller. Die technischen Aspekte dieser Reportage kommen von mobilsicher, die Recherchern waren eine Kooperation. Und dort steht das Gegenteil: Man soll unter Android Firefox nehmen statt dem eingebauten Browser, und man soll aus Sicherheitsgründen Adblocker installieren.
Update: Ach und tatsächlich war es wohl das "Web of Trust"-Plugin, kein Adblocker. WOT behauptet, Daten nur anonymisiert weiterzugeben. Solche Zusagen glaubt ihr hoffentlich grundsätzlich nicht. Richtig anonymisieren ist erschreckend schwierig. Und abgesehen davon: Wenn jemand mit dem Weiterverkauf Geld verdienen will, welchen Anreiz sollte der dann an haben, das wirklich ordentlich zu machen?
An der Stelle ist übrigens ganz interessant, wie Googles "Safe Browsing" funktioniert (das hat auch Firefox implementiert). Die benutzen nämlich einen Bloomfilter, und das ist eine faszinierende Datenstruktur. Wer programmiert, aber noch nie von einem Bloomfilter gehört hat, sollte sich das mal angucken. (Danke, Martin)
Update: Chrome hat ähnliche Probleme (24GB/Tag).
Stellt euch zum Beispiel vor, dass ihr einen Container nicht verändern dürft (und das heißt auch: keine non-const Reference übergeben!), solange noch ein Iterator auf diesem Container existiert. Rust hat einige echt großartige Ideen an der Stelle, und das Versprechen von Rust ist, mit Memory Corruption als Fehlerklasse Schluss zu machen.
Nun ist Rust leider aus dem Mozilla-Umfeld, die eher für Verkacken bekannt sind als dafür, dass in endlicher Zeit etwas rauskommt, das dann auch noch funktioniert. Aber Rust scheint die eine Ausnahme in dem Porfolio von Mozilla zu sein, wo das wirklich so ist.
Ich beobachte das jedenfalls fasziniert aus der Ferne und wünsche alles Gute.
Das Hauptproblem bei sowas ist ja, dass in der Praxis die gruseligen Codebasen, die sowas wirklich brauchen würden, so Dinge wie Firefox sind. Viel zu groß, als dass man da realistisch etwas tun könnte, so jedenfalls der übliche Einwand. Und dann kommen die Mozilla-Leute und schreiben eine HTML5-Layout-Engine in Rust.
Ich bin verhalten optimistisch. Aber naja, eine Layout-Engine ist ja eine Sache, aber was ist denn mit den ganzen Codecs? Und dem Font Rendering? Ich persönlich traue ja den ganzen Font-Render-Engines nicht so weit, wie ich einen Kleinwagen werfen kann.
Und es stellt sich raus: ist in Arbeit (bisher nur der mp4-Container, nicht die tatsächlichen Codecs; aber hey, man muss ja irgendwo anfangen) und Font-Rendering ist auch in Arbeit!
Und dabei kommt dann plötzlich raus, dass Font-Rendering mal eben um fast eine Größenordnung schneller geht als bisher (der Vergleich geht gegen Truetype, was unter Linux und Android die Standard-Engine ist)!
Warum erwähne ich Android extra? Weil der Typ, der das macht, aus der Android-UI-Ecke kommt!
Das heißt auf der einen Seite, dass wir hier schon wieder Google zu danken haben, die ihr Geld für Dinge ausgibt, die uns allen helfen, und zweitens dass Android möglicherweise auf den Rust-Zug aufspringt. Und natürlich alles schön Open Source und auf Github.
Es sind Meldungen wie diese, die mir ein verhaltenes Gefühl der Hoffnung auslösen. Vielleicht kriegen wir den ganzen Scheiß doch noch geregelt.
Update: Es schreiben auch Leute an einem Betriebssystem in Rust.
Heilige Angriffsoberfläche, Batman! Fehlt ja nur noch eingebettetes Flash!
Ich verweise dafür auf dieses Blogposting von 2008. Schlangenöl funktioniert nicht und verarscht die Benutzer. Und ihr merkt es gerade am eigenen Körper.
Nein, ich werde 42.zip nicht löschen. Das bleibt als Furunkel am Arsch der Schlangenölindustrie kleben, bis es nicht mehr nötig ist. Und solange die sich zum Stück Brot machen, indem sie dann meine Site blocken, ist es noch nötig.
Mich würde mal interessieren, wieviel davon ein reines Windows-Problem ist, und wie doll Chrome plattformübergreifend stinkt an der Stelle. Von Apple-Usern hört man ja auch, dass ein Laptop im Akku-Modus mit Safari deutlich länger durchhält als mit Chrome.
Ich habe das bisher nicht gemessen, aber mir ist unter Linux aufgefallen, dass die Videocodecs in Firefox schlecht sind (wobei das vermutlich vp9 ist). Youtube in Fullscreen (4k) flutscht mit Chrome, aber mit Firefox ruckelt und wackelt es.
Nur mal so als Datenpunkt muss ich aber sagen, dass ich die längste Batteriezeit beim Webklicken bisher mit Chromebooks erlebt habe.
Darauf haben damals, als Chrome mit dem Auto-Update-Kram anfing, einige Paranoide hingewiesen. Heute erinnert sich da kaum noch jemand dran.
Schön formuliert:
So when Apple says the FBI is trying to "force us to build a backdoor into our products," what they are really saying is that the FBI is trying to force them to use a backdoor which already exists in their products. (The fact that the FBI is also asking them to write new software is not as relevant, because they could pay somebody else to do that. The thing that Apple can provide which nobody else can is the signature.)
Ich ärgere mich ja inzwischen mehr darüber, dass Firefox keine Diffs für ihre Quellcode-Tarballs anbietet, aber für die Binaries irgendwelche schrottige Bindelta-Technologie haben. Die wollen schlicht gar nicht mehr, dass jemand den Quellcode anguckt oder selber aus den Quellen seine Pakete baut. Das ist nur noch ein PR-Argument, kein inhaltliches mehr.
Der Nachteil von Silbentrennung ist, dass der Browser wissen muss, in welcher Sprache der Text ist. In gemischtsprachigen Umgebungen wie meinem Blog muss ich das pro Blockquote-Umgebung einstellen. Das Blog hat dafür jetzt eine gammelige Heuristik, die auf den ersten Blick ganz gut zu funktionieren scheint. Mal schauen. Betrifft euch eh nur, wenn ihr ein CSS verwendet, das Silbentrennung aktiviert. Und einen Browser, der das kann.
In typo3.css habe ich auch ein paar Vorschläge eingearbeitet, wie man die Schrift skalierbar macht und das auch auf Mobiltelefonen funktionierend hält.
Die ganze Schönheit von typo3.css kriegt ihr aber nach wie vor nur, wenn ihr auch Source Serif installiert.
Oh und unter uns: Wenn euer Code so kacke ist, dass schon Cisco in ihm Remote Code Execution findet, dann solltet ihr über einen Karrierewechsel nachdenken.
SNI ist eine TLS-Erweiterung, bei der als Teil des Handshakes der Name des Servers überträgt. Vor SNI konnte man pro IP-Adresse nur einen Server per SSL hosten. Meines Wissens unterstützen alle Browser SNI. Dachte ich jedenfalls.
Ich trug also das Letsencrypt-Cert per SNI ein, testete und alles war gut.
Aber es sieht aus, als war das Zufall, denn alle Nase lang kriegte jemand noch das Fallback-Cert zu Gesicht.
Beim Debuggen kam raus, dass das SNI-Callback auch später in der Verbindung nochmal kommen konnte, nicht nur während des Handshakes am Anfang. gatling macht virtuelles Hosting über Unterverzeichnisse, d.h. die Daten für "blog.fefe.de" sind in den Unterverzeichnissen "blog.fefe.de:80" und "blog.fefe.de:443", je nach dem wie der Client reinkommt. Nach dem initialen Handshake ist gatling dann in dem jeweiligen Unterverzeichnis und findet im SNI-Callback das Zertifikat nicht mehr.
Ich habe das dann als kurzer Hack so gefixt, dass ich die Zertifikate mit dem vollen Pfad öffne. Aber im Moment bei meinem Testen habe ich den Effekt, dass Firefox das Letsencrypt-Cert sieht, aber Chrome das CACert-Cert. Ich habe ehrlich gesagt keine Theorie, wieso das so sein könnte. Ich debugge mal weiter.
Update: Nach Shift-Reload zeigt auch Chrome das Letsencrypt-Cert an. Die werden doch nicht ernsthaft die Cert-Daten cachen!? Nee, so blöde kann keiner sein!
Update: Doch, so blöde können die sein.
Update: Et tu, Firefox?
Man tut an die externe Referenz im HTML im Wesentlichen noch einen Hashwert über den Inhalt der externen Ressource dazu, und wenn da was mit anderem Hashwert kommt, wird es verworfen.
Damit das tatsächlich sicher ist, sollte man natürlich die Webseite dann auch per HTTPS ausliefern.
Update: Wobei, eigentlich ist das ja auch wieder bescheuert. Wenn man die Webseite per HTTPS ausliefert und Hashwerte für die externen Ressourcen mitliefert, dann gibt es keinen Grund mehr, die Javascript-Libraries von externen CDNs noch per HTTPS zu laden. Aber wenn man es nicht tut, wird der Browser rumheulen. Oder haben die das abgeschafft für Ressourcen mit Subresource Integrity? Denn das könnte Webserver massiv entlasten, wenn man für die ganzen verlinkten Unterressourcen nicht mehr https nehmen müsste, nur noch für die Hauptseite. Und dann warum bei Skripten aufhören, warum das nicht auch gleich für die Bilder und Multimedia-Inhalte machen?
Ich hatte vor einer Weile geschrieben, dass mein neues Notebook ein Schenker XMG P505 geworden ist. Das habe ich jetzt eine Weile im Einsatz und bin nach wie vor hochzufrieden. Die Verarbeitung überzeugt auf ganzer Linie, die verbaute Hardware war Top of the Line beim Einkauf und ist es immer noch weitgehend. Da war keine Bloatware drauf, alles ordentlich installiert, keine unerkannten Geräte im Dateimanager, ich konnte sagen, dass ich lieber ein englisches Windows zu meiner deutschen Tastatur haben will, da lagen auch keine Antivirus-Trial-Bullshit-Vorinstallieren bei, und für Gaming ist der echt prima.
Meine größte Sorge war, dass der dann fürs normale Arbeiten nicht gut sein würde, weil die Batterie nicht lange hält oder der Lüfter immer läuft. Kurz gesagt: Ist kein Ultrabook, der Akku hält gut drei Stunden beim Tippen in der Bahn. Filmgucken kann ich auf Fullscreen im Akkubetrieb für die Lände normaler Hollywoodfilme, und habe dann so 30-40% Akku übrig. Bei einem besonders langen Film (2h20) kam ich bis kurz vor den Abspann. Der Lüfter läuft normalerweise nicht. Man hört nur die Festplatte leise zuckeln, wenn man die nicht runterfährt oder gleich ganz auf SSD setzt. Ich kann gerade echt nichts sagen, was bei mir Unzufriedenheit auslöst bei dem Gerät. Ich benutze den inzwischen auch Zuhause und fahre den Desktop gar nicht mehr hoch. Der 4k-Monitor funktioniert am Mini-DP-Ausgang in 4k mit 60 Hz. Alles super.
So und jetzt der 4k-Monitor. Den habe ich jetzt ein paar Tage im Einsatz und bin auch hochzufrieden. Ich habe bisher keine Schlieren oder Latenzprobleme beobachten können, und fahre den im Moment im Eco-Modus (dunkler). Gimmicks wie Bild-in-Bild oder den Bildbearbeitungsmodus benutze ich nicht, die scheinen aber zu funktionieren. Das Hauptproblem auf einem 4k-Monitor ist, dass man da bei Software nachjustieren muss, um den HiDPI-Modus zu aktivieren. Das kann ein bisschen fummelig werden, aber ich benutze im Wesentlichen unter Linux außer urxvt und Webbrowser keine weiteren Anwendungen, gelegentlich mal einen Image Viewer vielleicht, oder einen gvim. Da setzt man halt die Font hoch, Firefox richtet sich nach der DPI-Zahl, die X leider nicht automatisch aus dem EDID holen kann, die konfiguriert man dann halt manuell mit xrandr. Fertig. Der Monitorsound funktioniert über miniDP vom Laptop aus unter Linux mit mplayer aus dem Stand und ich höre damit gerade den Mass Effect 2 Score seit ner Stunde. Klingt nicht wie so gut wie die Stereoanlage, aber gut genug, dass ich mir damit seit ner Stunde Musik anhöre. Anyway. Schenker-Gaming-Laptops würde ich sofort wieder kaufen, den Monitor nach bisherigem Stand auch. Wenn mir da nicht noch irgendwas ganz doll dreckiges auffällt.
Was mir gerade unerwartet Stress macht ist meine Logitech-G100-Maus, wo die linke Maustaste Aussetzer hat. Da kommen gelegentlich Mausklicks nicht an. Man hört den Klick, aber nichts kommt an. Sehr befremdlich, mit Logitech hatte ich eigentlich bisher nie Ärger. Vorher hatte ich zwei Mäuse von Roccat, das würde ich nicht nochmal kaufen. Die hatten beide das selbe Problem (waren verschiedene Modelle), nämlich dass die Gummischeiben links und rechts mit irgendeinem Billigkleber festgeklebt waren, der dann bei Benutzung warm und flüssig wurde und da an den Seiten rausquoll. Dann hatte ich bei der Mausbenutzung plötzlich klebrigen Schleim an den Fingern. Irgendwann habe ich dann mal genug gehabt und die Gummiplatten abgemacht, den Klebstoff entfernt, und die Platten wieder mit Bastelkleber festgemacht. Aber, sorry, bei Mäusen dieser Preisklasse ist das mal völlig inakzeptabel. Roccat kommt mir nicht wieder ins Haus. Und wenn Logitech jetzt auch nachlässt, gehen mir langsam die Optionen aus. Ich bestehe aus Privatsphäregründen auf kabelgebundenen Mäusen, hätte aber gerne eine optische Maus, die auch auf Glas funktioniert. Das konnten die Roccat-Mäuse auch nicht. Da holt man dann im Hotel auf Reisen die Maus raus und ärgert sich, dass man auch ein Mauspad hätte mitbringen müssen.
Oh, der Monitor tat bei mir in Tests sowohl an einer alten AMD-Grafikkarte im Desktop und am Laptop unter Linux. Da hatte ich mir auch ein bisschen Sorgen gemacht. War aber anstecken-tut. Musste da nichts konfigurieren. Gerade bezüglich MST und so hatte ich mir da Sorgen gemacht. War unbegründet.
Update: Ich probiere gerade Firefox mit GTK3. Damit funktioniert der automatische HiDPI-Modus von Firefox/GTK2 nicht mehr.
XKEYSCORE is a piece of Linux software that is typically deployed on Red Hat servers. It uses the Apache web server and stores collected data in MySQL databases. File systems in a cluster are handled by the NFS distributed file system and the autofs service, and scheduled tasks are handled by the cron scheduling service. Systems administrators who maintain XKEYSCORE servers use SSH to connect to them, and they use tools such as rsync and vim, as well as a comprehensive command-line tool, to manage the software.
Vielleicht hört mir jetzt endlich jemand zu, wenn ich sage, dass wir bei Lizenzen für freie Software eine Klausel gegen Militär und Geheimdienste brauchen?Aber wartet, einen Lacher habe ich noch:
John Adams, former security lead and senior operations engineer for Twitter, says that one of the most interesting things about XKEYSCORE’s architecture is “that they were able to achieve so much success with such a poorly designed system. Data ingest, day-to-day operations, and searching is all poorly designed. There are many open source offerings that would function far better than this design with very little work. Their operations team must be extremely unhappy.”
Der Mann hat jahrelang einen Cluster aus Ruby-Schnarchware verwaltet, seine Firma ist vor allem bekannt für den Failwhale, und DER will jetzt anderen Leuten sagen, wie man sowas macht! Dass ich nicht lache!Aber bei aller Schelte für die NSA. Eine Sache haben sie doch richtig gemacht:
Analysts connect to XKEYSCORE over HTTPS using standard web browsers such as Firefox. Internet Explorer is not supported.
MWAHAHAHA
Ich weiß, dass das auch in Gefängnissen so gemacht wird.
Ich befürchte, dass wir es hier mit einem Vorläufer der nächsten Kryptokriege zu tun haben. Das schrittweise die Bedeutung von Menschenrechten wie dem Briefgeheimnis immer weiter abgeschwächt werden, genau wie die NSA-Enthüllungen ja das Gefühl abgeschwächt haben, dass man sich im Internet ungestört unterhalten kann (das war übrigens noch nie gerechtfertigt, das Gefühl).
Verschlüsselung ist unsere letzte Verteidigungslinie. Wir haben uns schon von dei meisten anderen Prinzipien der Aufklärung verabschiedet.
Wir lassen unsere Nachbarn nicht in unser Internet, weil wir uns daran gewöhnt haben, dass Internet Geld kostet und das Haftungsfragen aufwirft. Ja warum eigentlich?
Wir haben uns von der Idee verabschiedet, dass man sich im Netz bewegen kann, ohne abgehört zu werden. Ja warum eigentlich?
Und jetzt versuchen sie, uns der Reihe nach abzugewöhnen, dass wir ein Recht auf Verschlüsselung haben. Erst in so Kontrollhochburgen und Randgebieten wie Gefängnissen und der Bundeswehr, dann werden sie der Reihe nach alle anderen Argumente durchprobieren. Terrorismus, organisierte Kriminalität, Kindesmissbrauch, Jugendschutz, und am Ende wird die Contentmafia in eure SSL-Verbindungen reingucken wollen, um zu prüfen, dass ihr keine Musik raubkopiert.
Ich möchte betonen, dass es keinen weiteren Rückzugsraum gibt. Wenn wir uns die Verschlüsselung wegnehmen lassen, dann können wir das Internet auch gleich wieder zumachen. Und ich rede hier von Ende-zu-Ende-Verschlüsselung, denn alles andere ist Schlangenöl. Das haben sie ja auch schon versucht, uns das als "das ist doch auch verschlüsselt dann, das reicht doch!1!!" zu verkaufen. Fallt auf sowas nicht rein.
Achtet da mal drauf. Ich sage voraus, dass das in nächster Zeit zunehmen wird, dass öffentlich "Probleme" thematisiert werden, die wir haben, weil jemand verschlüsselt hat. "Diesen Terroristen konnten wir nicht aufhalten, denn er hat seine Festplatte verschlüsselt". Das gab es schon mal zaghaft im Zusammenhang mit Skype, aber das fiel ja gleich wieder in sich zusammen, als wir darauf hinwiesen, dass Skype natürlich gesetzeskonform Abhörschnittstellen anbietet.
Update: Kommentar per Mail:
was Du unter http://blog.fefe.de/?ts=ab6b87e5 bei der Bundeswehr ansprichst, ist für Hamburger Schulen seit einiger Zeit normal.
Der feuchte Traum der bis zum Anschlag im Arsch der Contentmafia steckenden Schulbehörde ist es, jederzeit kontrollieren zu können, wer was im Internet macht (Lehrer, Schüler, etc.).
Die zu diesem Zweck ausgerollte "Lösung" nennt sich "Time for Kids" "Schulrouter Plus" und ist insgesamt ein "Internet minus", etwas derartig zusammengestricktes habe ich bisher noch nicht gesehen. Dass Sachkenntnis in diesem Bereich gerne von Stock-Fotos und bunten Flyern ersetzt wird, versteht sich von selbst…
Wobei ich ja sagen muss, dass ich das in Hamburg durchaus verstehen kann. Da ist man ja quasi direkt in der Nachbarschaft des LG Hamburg.
Update: Noch einer:
nicht nur die Bundeswehr macht das, sondern auch das Arbeitsamt. Für die habe ich mal ein Jahr lang Tech Support gemacht. Da sitzt dann ein Squid mit nem selbstgepopelten root certificate davor, was auf allen Rechnern verteilt ist. Zumindest im IE funktioniert das. Man hatte auch mal versucht, da Firefox einzuführen, aber der blockt, sobald er etwas nicht erkennt.
Update: Auch an Berliner Schulen, in mindestens einer öffentlichen Verwaltung und die Rentenversicherungen setzen sowas anscheinend ein. Wie gruselig! Schade, dass wir keine Parteien haben, die sich um Bürgerrechte kümmern, sonst würde man das gesetzlich verbieten. Fernmeldegeheimnis und so. Das kann ja wohl nicht sein, dass eine Organisation erfolgreich argumentieren kann, das Fernmeldegeheimnis sei nicht verletzt, weil da ja kein Mensch sondern nur eine Software mitliest. Das wäre ja wie wenn man behauptet, Videoüberwachung sei nicht schlimm, weil das eine Kamera und kein Mensch ist.
Ich habe ja mein SSH schon vor einer Weile auf djb-Krypto umgestellt (hier hatte ich das beschrieben). Es ist leider auffallend schwierig, mit regulären Browsern djb-Krypto im TLS hinzukriegen. Firefox supported das noch nicht (warum eigentlich nicht?), Chrome supported es angeblich, aber ich kriege das nicht negotiated. OpenSSL kann es nicht (es gibt einen alten Patch, der aber nicht auf aktuelle Versionen passt), PolarSSL kann es nicht, BoringSSL kann es zwar, aber die Knalltüten haben das Buildsystem auf cmake umgestellt, und da krieg ich die dietlibc nicht reingepfriemelt. Das muss mir auch noch mal jemand erklären, wieso heutzutage jedes gammelige Hipsterprojekt sein eigenes Buildsystem braucht. Bei autoconf ist wenigstens dokumentiert, wie man da von außen eingreifen kann. Aber dieses cmake ist in der Beziehung nur für den Arsch, ich komm aus dem Fluchen gar nicht raus.
Und so bleibt mir im Moment nur LibreSSL, das kommt in der portablen Version mit autoconf und funktioniert mit dietlibc, und da taucht das auch in der Cipherliste auf, und wenn ich mit openssl s_client die Verbindung aufmache, kriege ich auch ECDHE-ECDSA-CHACHA20-POLY1305, aber mit Chrome? Kein Glück.
Und, mal unter uns, solange man da nicht von Hand noch eine ordentliche Kurve konfiguriert, ist das auch Mist. Von den Kurven, die OpenSSL unterstützt, scheint nur secp256k1 akzeptabel.
Das Problem ist, dass Diffie Hellman praktisch die Basis von allen Online-Public-Key-Kryptographiesystemen da draußen ist — SSH, TLS, IPsec, … Schlimmer noch: Wir haben das bei TLS massiv forciert, weil Diffie Hellman erst für Perfect Forward Secrecy sorgt. Das ist die Eigenschaft eines Protokolls, dass wenn die Cops kommen und den Server mit dem Schlüssel drauf beschlagnahmen, sie damit trotzdem nicht vorherige verschlüsselte Verbindungen entschlüsseln können.
Was ist jetzt genau das Problem?
Erstens gibt es eine Downgrade Attack. Downgrade Attack heißt, dass jemand von außen die Pakete im Netz manipuliert. Nehmen wir an, ich verbinde mich zu https://blog.fefe.de/, und die NSA sieht die Pakete und manipuliert sie. Eine Downgrade Attack heißt jetzt, dass die NSA (vereinfacht gesagt) in meinen Handshake-Paketen die ganzen harten Verfahren aus der Liste der unterstützten Kryptoverfahren rausnimmt. Der Server nimmt sich das härteste vorhandene Verfahren, aber wenn die NSA die Liste manipulieren kann, dann ist das halt nicht sehr hart. TLS hat dagegen bezüglich der Cipherliste Vorkehrungen getroffen, aber jetzt kommt raus, dass die NSA von außen die Diffie-Hellman-Bitzahl auf 512-Bit runterschrauben kann. Das ist eine Katastrophe. Die einzige Lösung hierfür wäre, wenn die Server schlicht keine schwachen Diffie-Hellman-Schlüssel mehr zulassen würden. Dann käme keine abhörbare Verbindung zustande. Die NSA kann dann zwar immer noch verhindern, dass ich eine Verbindung aufnehme, aber das kann sie eh, unabhängig von Krypto.
Das zweite Problem ist noch gruseliger. Und zwar galten die Diffie-Hellman-Parameter immer als öffentlich. Das ist sowas wie ein Zahlenraum, auf den man sich einigt, in dem man dann seine Krypto-Operationen macht. Das hat dazu geführt, dass viele Server am Ende des Tages die selben Parameter verwenden. Jetzt stellt sich aber raus, dass der erste Schritt im Algorithmus zum Brechen von Diffie Hellman nur auf diesen Parametern basiert, nur auf einer Primzahl. Und wenn da alle die selbe verwenden, dann muss ein Angreifer diesen ersten Teil auch nur einmal machen. Das ist eine ganz doll gruselige Erkenntnis!
Was kann man denn jetzt tun? Zwei Dinge. Erstens müssen wir jetzt dafür sorgen, dass unsere Server "Export-Verschlüsselung" (also absichtlich geschwächte Krypto) auch bei Diffie Hellman nicht mehr akzeptieren. Ich glaube im Moment, dass man dafür die SSL-Libraries patchen muss, weil es kein API gibt. Aber ich kann mich da auch irren, vielleicht gibt es ein API. In dem Fall müsste man die ganzen Server patchen, damit sie das API benutzen.
Und der zweite Schritt ist, dass man dem Server schlicht Diffie-Hellman-Parameter vorgibt. Die erzeugt man unter Unix mit
$ openssl dhparam -out dhparams.pem 2048Man kann auch noch größere Parameter machen, aber das sollte man dann über die Mittagspause laufen lassen, das dauert ewig und drei Tage. Und dann muss man der Serversoftware sagen, dass sie diese DH-Parameter verwenden soll. Lest die Dokumentation. Das ist wichtig!
Klingt alles schon apokalyptisch genug? Wartet, kommt noch krasser!
Breaking the single, most common 1024-bit prime used by web servers would allow passive eavesdropping on connections to 18% of the Top 1 Million HTTPS domains. A second prime would allow passive decryption of connections to 66% of VPN servers and 26% of SSH servers. A close reading of published NSA leaks shows that the agency's attacks on VPNs are consistent with having achieved such a break.
Update: Ich hatte vor nem Jahr mal bei https://blog.fefe.de/ 2048-Bit-Diffie-Hellman-Parameter generiert und das hat mir jetzt wohl den Arsch gerettet an der Stelle. Ein bisschen Paranoia schadet halt nicht :-)
Update: Wer in Firefox die rote Box auf der Logjam-Seite weghaben will, muss in about:config die dhe (nicht die ecdhe!)-Ciphersuiten wegkonfigurieren.
Update: Und natürlich will man auch die ganzen RC4-Ciphersuites wegkonfigurieren, das hatte ich in dem Screenshot jetzt nicht drin, weil ich nur die Einstellungen fett haben wollte, die für Logjam relevant sind.
Um nicht die Smart Meter Gateways mit Displays und Bedienfeld bestücken zu müssen, hat die PTB die Möglichkeit geschaffen, eine zertifizierte Software-Applikation zur Anzeige einzusetzen. Die erfolgt über das Internet in einem Webbrowser.Wait, what?!
Und dafür haben sie jetzt eine Linux-Distro gebaut, die man als Live-CD bootet, und damit kann man dann … was zur Hölle?! Wem hilft ein altes Live-Linux mit einem Firefox, der schon zwei Wochen nach Release der CD veraltet ist? Das ist dann sicher wegen … oh, was sagen Sie? Ist gar nicht sicher? Na sowas.
This configuration very quickly yielded a fair number of additional, unique fault conditions, ranging from NULL pointer dereferences, to memory fenceposts visible only under ASAN or Valgrind, to pretty straightforward uses of uninitialized pointers (link), bogus calls to free() (link), heap buffer overflows (link), and even stack-based ones (link).
Das ist ziemlich krass schlimm, denn sqlite wird von echt viel Software verwendet, u.a. Firefox und Chrome. Das wäre richtig unangenehm, wenn eine SQL Injection-Lücke einen Stack Overflow im SQL-Backend auslöst und man so das System übernehmen kann.Übrigens:
PS. I was truly impressed with Richard Hipp fixing each and every of these cases within a couple of hours of sending in a report. The fixes have been incorporated in version 3.8.9 of SQLite and have been public for a while
Daran erkennt man gute Software. So und jetzt entschuldigt mich kurz, ich muss mal ein paar Softwarepakete upgraden.Update: Übrigens, wer seinen Firefox neu baut: --enable-system-sqlite. Sonst nimmt Firefox seine eigene mitgelieferte alte Version und ist immer noch verwundbar. JA SUPER, liebe Firefox-Leute!1!!
Update: Öhm, ich habe gerade mit --enable-system-sqlite kompiliert, und da liegt am Ende immer noch ein libmozsqlite3.so herum mit einer älteren Version. WTF?!
MCS Holdings hat dann mit dem Zertifikat ein paar gültige Zertifikate für ein paar Google-Domains erstellt. Das ist aufgeflogen, weil Chrome und Firefox inzwischen Certificate Pinning betreiben, d.h. die haben hart einprogrammiert: Wenn für diese Domain (die Liste umfasst eine handvoll "wichtige Domains" wie halt u.a. die von Google) irgendwo ein falsches Zertifikat auftaucht, dann telefonieren die nach Hause und petzen. Und so konnte Google das sehen und hat dann CNNIC zur Rede gestellt. Und die haben gesagt:
they had contracted with MCS Holdings on the basis that MCS would only issue certificates for domains that they had registered.
Klar haben wir diesem Kind eine geladene Schusswaffe verkauft, Euer Ehren! Aber wir haben ihm ganz deutlich gesagt, dass es damit keinen Scheiß machen darf!1!!Diese Art von Versagen ist übrigens kein Alleinstellungsmerkmal der Chinesen.
Auf der einen Seite ist es natürlich schön, dass sowas heutzutage auffliegt. Certificate Pinning ist keine doofe Idee. Microsoft macht das auch, und die eine oder andere ranzige App tut das inzwischen auch. Damit hat so eine App dann einen handfesten Vorteil gegenüber dem Webbrowser, außer es handelt sich um eine Google-Domain oder so.
Aber, der Punkt, über den ihr an der Stelle mal nachdenken solltet: Was ist denn, wenn CNNIC/MCS nicht für eine Google-Domain so ein Zertifikat ausgestellt hätte, sondern für banking.postbank.de oder so? Das würde doch keine Sau merken! Euer Browser würde jedenfalls nicht meckern. Dabei wäre das eigentlich kein Ding, allgemeines Certificate Pinning zu implementieren. Ich hab sowas 2009 schon mal vorgeschlagen. Aber auf mich hört ja immer keiner, und dann sind danach alle ganz furchtbar betroffen, wie es soweit kommen konnte. Wobei, es gibt inzwischen Browser-Addons, die sowas machen (googelt mal Certificate Patrol). Immerhin. Aber eigentlich will man das im Browser selbst implementiert haben, finde ich.
Update: Es gibt da übrigens ein allgemeines Certificate Pinning, aber da muss die Webseite aktiv mitmachen und (in meinen Augen sinnlos) redundante Informationen im HTTP-Header übertragen.
Also … immer? :-) ALLE Browser haben IMMER ungefixte Sicherheitslücken.
GET / HTTP/1.1Das ist ein HTTP-Request. Die Antwort sieht dann so aus:
Host: www.server.com:80
HTTP/1.1 OKDas Problem ist jetzt, dass das idealisierte Beispiele waren. Tatsächlich sehen Requests nämlich so aus:huhu
GET / HTTP/1.1Und Antworten sehen so aus:
Host: www.cnn.com:80
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Cookie: token=kiMLX8/1ni34+wrDrAfx7XDDNjSLJhzIXFL27VY2SwM= Connection: keep-alive
HTTP/1.1 200 OK x-servedByHost: prd-10-60-165-21.nodes.56m.dmtio.net Cache-Control: max-age=2592000 Content-Type: text/html Via: 1.1 varnish Content-Length: 11502 Accept-Ranges: bytes Date: Mon, 09 Mar 2015 16:37:46 GMT Via: 1.1 varnish Age: 702161 Connection: keep-alive X-Served-By: cache-iad2130-IAD, cache-lax1421-LAX X-Cache: HIT, HIT X-Cache-Hits: 1414, 5 X-Timer: S1425919066.634699,VS0,VE0 Vary: Accept-Encoding [… der HTML-Inhalt …]Praktisch alles davon ist überflüssig. Sowohl auf Client-, als auch auf Serverseite. Ein Teil davon ist dem Standard geschuldet (wieso muss der Server bitte das Datum mitschicken?!), aber der Großteil ist einfach Bloat von Clients und Servern. Alleine schon der User-Agent ist eine Größenordnung zu groß. Der Accept-Header ist ein typischer Fall von Feature Creep, war mal gut gemeint, hat aber so dermaßen auf ganzer Linie verkackt, dass da jetzt "*/*" als "akzeptierter MIME-Type" drin steht. Damit wird natürlich die Intention des Headers völlig unterwandert und man könnte ihn auch eigentlich komplett weglassen. Ähnlich sieht es mit Accept-Languages aus. Das war mal dafür gedacht, dass der Browser sagt "mein Benutzer spricht Deutsch, kann aber auch Englisch", und die Webseite gibt dann ihre deutschsprachige Version heraus. Das benutzen tatsächlich einige Webseiten. So gefühlt 3 oder 4. Hätte man sich also auch sparen können. Accept-Encoding sagt, dass der Browser auch gzip und deflate kann. Das hätte man schlicht als Default in den Standard schreiben können, dann würde man sich das sparen, dass alle Browser das mitschicken. DNT ist der Do-Not-Track-Header. "Liebe Werbetreibenden, bitte missbraucht meine Daten nicht!1!!" Ja nee, klar. Die Cookies sind im Verantwortungsbereich des Webseitenbetreibers, da kann der Browser nichts für. Der Connection-Header hier ist auch für den Fuß, weil keep-alive bei HTTP/1.1 Standard ist. Aber sicherheitshalber, falls der Server nur 1.0 kann, schicken wir es nochmal mit. Ihr seht schon, das ist ein verkrusteter Haufen fossiler Brennelemente.
Schlimmer noch sieht es auf der Serverseite aus. Da sind die Hälfte der Header direkt für die Tonne und kommen auch offenbar gar nicht vom Webserver sondern von dem Varnish-Cache davor. So nützlich wie ein Hirntumor!
So und jetzt schauen wur uns das mal zusammen an und überlegen uns eine Strategie. KLAR! Die Cookies sind das Problem!1!! Also war die Lösung der Webseiten-Optimierer-Spezialexperten, dass sie die 100 Milliarden Inline-Bilder auf eine separate Domain ausgliedern. Dann werden bei den Requests an die keine Cookies der Hauptdomain übertragen. WAS MAN DA FÜR EINEN TRAFFIC SPART!!1! Leider handelt man sich auch einen zusätzlichen DNS Round Trip ein. Aber hey, das sieht man in Benchmarks nicht so, weil das eh schon im Cache ist!1!!
Kurzum: HTTP/1.0 hat Probleme in der Praxis. Beachtet aber das "Connection: keep-alive". Das heißt, dass der Server die Verbindung nach diesem Request offen hält. Der Client kann dann den nächsten Request absetzen. Das entsorgt direkt das wichtigste Argument für HTTP/2, das mit dem "wir wollen aber nur ein Handshake am Anfang der Verbindung haben, weil das so teuer ist".
Also haben die HTTP/2-Apologeten argumentiert, naja gut, das Handshake ist nicht das Problem, sondern die Latenz pro Antwort ist das Problem. Um das zu illustrieren, muss man ein bisschen malen. Ich mache das mal in ASCII Art, mit ??? für den Request und === für die Antwort.
??? ???So stellt man sich eine typische HTTP-Verbindung vor. So ist das auch — im LAN. Über das Internet gibt es Latenzen zwischen ??? und ===. Die male ich jetzt mal als |||.
=== ===
??? ???Ihr seht, diese Latenzen dominieren schnell. Daher gibt es in HTTP/1.1 ein Verfahren namens Pipelining. Das sieht dann so aus:
||| ||| ||| |||
=== ===
?????????Die Latenz ist nicht weg, aber sie ist viel weniger schlimm. Leider implementieren das einige wenige Webserver nicht. Und um diese Webserver im Geschäft zu halten, schalten die Browser Pipelining aus. Nein, wirklich! Geht mal in Firefox auf about:config und sucht nach network.http.pipelining.
|||||||||||||||
=========
Weil das der zentrale argumentative Dreh- und Angelpunkt der HTTP/2-Apologeten ist, will ich jetzt mal einen Trick mit euch teilen.
Der Grund, wieso einige Webserver Pipelining nicht können, ist, dass deren Haupt-Schleife so aussieht:
Solange TCP-Verbindung besteht:Bei Pipelinig kommen jetzt mehrere Requests in einem Stück Daten rein. Der Server hat die Logik nicht, um hinter dem 1. Request nach weiteren zu gucken. Aber man kann auch mit so einem Server Pipelining machen. Ich habe das vor vielen Jahren mal für einen Usenet-Downloader implementiert, und später für SMB, bei HTTP geht das genau so. Man schickt den nächsten HTTP-Requests nicht, nachdem das letzte Byte der Antwort des vorigen angekommen ist, sondern nachdem das erste Byte der Antwort des vorigen angekommen ist.
Lese Daten
Wenn die Daten ein HTTP-Request sind, beantworte ihn
Das lohnt sich leider erst, wenn die Downloadgrößen deutlich größer als die Request-Größen sind. Daher ändere ich mal die Symbolik ein bisschen in der ASCII-Art. Vorher:
??? ???Was die Grafik euch sagen will: Der zweite Request kommt beim Server an, während der noch den ersten beantwortet. So kann man das machen. Warum das bei HTTP keine Option war? Weil inzwischen bei einigen Sites für einige Requests die Header größer als die Inhalte sind.
vvv ^^^ vvv
===============
Meine Einstellung dazu ist: Einfach immer Pipelining vorschreiben und anschalten, und wer das nicht implementiert, der kann halt nicht mitspielen. Ich hab das am Anfang in gatling auch nicht implementiert gehabt, weil es eh keiner benutzt hat. Diese Art von Verhalten geht überhaupt nur, weil die Browser einen damit durchkommen lassen. Das sollten sie nicht.
Hat HTTP/2 denn jetzt überhaupt keine Vorteile? Doch. Zwei. Erstens haben sie sich ein Verfahren überlegt, um Header zu komprimieren. Ich habe mir davon die Details noch nicht angeguckt. Ich sah bisher nur Negatives darüber, aber das will ja nichts heißen. Zweitens schreiben sie für den TLS-Teil TLS 1.2 vor.
Merkt ihr was?
Wir könnten auch einfach HTTP/1.1 nehmen, Pipelining und TLS 1.2 vorschreiben, und wir hätten so gut wie alle Vorteile von HTTP/2 ohne die Nachteile.
Welche Nachteile? Nun, HTTP/2 macht Multiplexing. Multiplexing heißt, dass sie mehr als eine virtuelle Verbindung über eine TCP-Verbindung fahren. Das ist eine ganz beschissene Idee.
Stellt euch mal Youtube vor. Sobald er das Video überträgt, ist die Multiplex-Verbindung ausgelastet und die Kommentare kommen nie. Außer der Server hat Logik, um faires Scheduling zu implementieren. Ja ganz groß!
Geht noch weiter. Stellt euch mal vor, der Server hat fair scheduling implementiert. Ist immer noch Scheiße. Denn einige Elemente einer Webseite können andere Elemente referenzieren, Inline-Bilder, Skripte, was auch immer. HTML und CSS sollten daher zuerst übertragen werden, auch damit der Browser schonmal das Layout machen kann, und dann später die Bilder reinlädt. Jetzt muss der Server also schon intelligentes Scheduling implementieren. Am besten mit Content Sniffing. Denn das wird die nächste Anforderung sein, dass der Server das HTML/CSS parsed und die Dateien schonmal öffnet und reinlädt, die der Browser gleich haben wollen wird.
Aber nein, da haben die HTTP/2-Leute eine noch bessere Idee gehabt. Sie sehen vor, dass der Browser dem Server sagt, was mit welcher Priorität kommen soll.
Ihr sehr schon: Alleine um Probleme zu lösen, die wir vorher nicht hatten, treiben wir hier ungefähr so viel Aufwand, wie wir vorher für den ganzen Webserver getrieben haben.
Daher glaube ich, dass HTTP/2 ein Schuss in den Ofen ist.
Aber wartet. Einen habe ich noch. Nehmen wir mal an, wir haben Paketverlust auf der Leitung. Bei HTTP/1 bleibt dann eine Verbindung stehen. Eine von sechs oder wieviel auch immer der Browser aufgemacht hat. Bei HTTP/2 bleibt dann alles stehen, weil alles über die eine Verbindung ging. JA SUPER!
Erwähnte ich, dass HTTP/2 mit dem Header-Wildwuchs nicht aufgeräumt hat? Dafür gibt es ja jetzt Kompression. Hier ist die Spec dazu.
Leider haben die auch ansonsten im Protokolldesign und der Spec einmal großflächig alles verkackt, was man so verkacken kann. Klickt euch mal in diesem Mailinglistenarchiv nur durch die Postings von Bob Briscoe der letzten Tage. Übrigens ist auch der Autor von varnish nicht begeistert von HTTP/2.
Einmal mit Profis arbeiten!
Secure Connection Failed.An error occurred during a connection to blog.fefe.de. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long)
Mein Blog hat ja schon seit einer Weile SSLv3 deaktiviert, aber jetzt hatte ich auch openssl ohne SSLv3-Support gebaut. Vielleicht ist es das. Mann ist das immer eine Freude mit diesen ganzen Hochtechnologien!Update: Ich habe die Gelegenheit genutzt, mal den PolarSSL-Support in gatling zu updaten. Mal gucken, ob das jetzt stabil läuft hier.
Update: Und um die Apokalypse perfekt zu machen, gab es auch in der von Chrome und Firefox verwendeten SSL-Library einen RSA-Signatur-Bypass. Ja super! Sonst noch was?
Update: Ah, Busybox ist doch nicht betroffen, höre ich gerade, sondern nur Geräte mit Cyanogenmod, die bash statt der Shell von Busybox nehmen.
Update: Es gibt schon die erste Malware damit.
Update: Mein Freund Andreas hat mal einen Patch gemacht, der das ganze kaputte Feature wegoperiert. Wer will schon Shell-Funktionen im Environment haben!? Das ist relativ zu bash-4.3.24 (nicht .25).
The certificate is not trusted because it was signed using a signature algorithm that was disabled because that algorithm is not secure.(Error code: sec_error_cert_signature_algorithm_disabled)
Das bezieht sich vermutlich auf das MD5, das cacert verwendet, um ihren Root-Key damit zu hashen. Es gibt auch nichts, was ich dagegen tun könnte, das ist ein Problem von cacert.Ich finde es gelinde gesagt überraschend, dass Firefox, die seit gefühlt vorgestern überhaupt erst TLS 1.2 sprechen, jetzt solche Dinger bringen. Aber inhaltlich haben sie Recht. Zertifikate, bei denen in der Kette irgendwo MD5 auftaucht, darf man nicht mehr akzeptieren. Eigentlich schon länger nicht mehr.
Die gute Nachricht ist: Das Problem ist lösbar. Mozilla hat das vor ein paar Jahren angesagt, und cacert hat eine neue Signatur unter ihrem Root-Zertifikat gemacht. Ob ihr betroffen seid, hängt also davon ab, wann ihr die Zertifikate bei euch lokal eingepflegt habt. Und ihr könnt das Problem jetzt lösen, indem ihr die cacert-Zertifikate rausschmeißt und neu installiert.
Update: Hmm, nee, so einfach ist das nicht. Einige cacert-Sites sind mit dem einen Key signiert, der sich so reparieren lässt, einige (zu denen auch blog.fefe.de gehört) sind mit dem anderen Key signiert und gehen auch nach Neueinspielen der Zertifikate noch nicht. Ich guck mal, ob ich da was tun kann.
Update: Ich habe den Unterschied zwischen meinem Blog und der anderen Site, bei der es nach Zertifikatsupdate geht, identifiziert. Mein Blog ist mit dem Class1-Key signiert, die andere Site mit dem Class3-Key. Den kann man auch separat in den Trust Store einpflegen, dann spielt es keine Rolle mehr, ob das Class1-Root-Zertifikat den Class3-Key nur mit MD5 signiert hat. Allerdings scheint das ein politisches Problem zu sein, kein technisches, denn man kann das nicht auswählen, ob man Class1 oder Class3 haben will. Für Class3 muss man "Assured Member" sein. Bin ich nicht. Will ich auch nicht werden. Damit ist cacert dann wohl zukünftig ungeeignet.
Ich an Microsofts Stelle hätte da sofort gefixt, denn so sieht es nach "die NSA hat um noch ein paar Wochen Zeit gebeten" aus.
Update: Sie shippen nur eine Sandbox für das Binärzeug, nicht das Binärzeug selber.
Hey Okcupid, wisst ihr, wofür Brendan Eich noch verantwortlich ist? Der hat Javascript erfunden. Ihr solltet nicht andere zum Firefox-Boykott aufrufen, sondern ihr solltet bei euch selbst anfangen und eure Webseite von Javascript reinigen.
Oh, wollt ihr nicht? Na sowas.
Immer wenn ich dachte, mein Eindruck der Internet-Empöreria könnte nicht noch weiter sinken, passiert sowas.
Ist dieser Brendan Eich ein sympathischer Zeitgenosse? Angesichts dieser Prop8-Geschichte würde ich sagen: Sicher nicht. Aber wenn man vergleicht, wofür der verantwortlich zeichnet, und was sagen wir Google oder Microsoft so alles an Dreck am Stecken hat, …
Übrigens, am Rande: Bei US-Firmen gibt es häufig Donation-Programme. Da hat die Firma dann ein großzügiges Budget, und wenn ein Mitarbeiter an eine wohltätige Gruppe spendet, dann legt der Arbeitgeber nochmal so viel oben drauf. Wenn man also danach geht, wieviel Kohle von US-Firmen an widerliche NGOs geht, dann müssten die alle notgeschlachtet werden. Denn welche Firma hat denn bitte nicht einen einzigen Mitarbeiter, dessen Einstellungen zumindest partiell widerwärtig wären?
Übrigens: Das mit Javascript abschalten halte ich für eine gute Idee, völlig unabhängig davon, aus welchen Gründen man das tut.
Oh und noch einen: Vielleicht hat Brendon ja seit dem dazu gelernt und seine Meinung geändert? Und was geht Okcupid eigentlich an, welche Meinungen der Typ privat vertritt? Ein Kreuzritter oder Missionar scheint er ja nicht zu sein, im Gegensatz zu den Social Justice Warriors, die ihn jetzt zu kreuzigen versuchen.
Die Sicherheit ihres Rechners wird durch ein Firefox Add-on eingeschränkt. [Sicherheit wieder herstellen]Wenn man da drauf klickt, kommt man bei browsersicherheit.info raus, das ähnlich wie gelbe Balken eben auch nach dem Rezeptbuch der Malware-Mafia so designed wurde, dass es optisch wie die Chrome-Einstellungen aussieht. Dort wird dem Leser dann suggeriert, er habe sich ein Malware-Addon eingefangen und müsse das dringend wegmachen.
Sowas kennt man sonst nur von Botnet-Betreibern und Schlangenöl-Resellern. Ihr wisst schon, diese Scareware-Popup-Leute. "YOUR PC IS INFECTED!"
Lustigerweise haben sie dann da eine Liste von gefährlichen Addons, die man dringend mal deinstallieren sollte. Die Hälfte davon sind Adblocker.
Wow, GMX. Ernsthaft? Ihr spielt jetzt auf dem Niveau und mit den Methoden von Malware-Verbreitern? Na dann wundert euch aber auch nicht, wenn euch eure Kunden in Scharen weglaufen.
Update: Das selbe in Grün bei web.de, ist glaube ich auch die selbe Firma. (Danke, Andreas)
Das fängt auf der einen Seite alle mögliche Werbung, Webwanzen und andere Schweinereien, aber es bricht auch diverse schlecht gemachte Sites.
So hat es sich z.B. eingebürgert, seine statischen Bilder auf einer zweiten Domain abzulegen. yahoo.com legt seine Bilder z.B. auf yimg.com ab. Die Idee dahinter ist, dass die dynamischen Frameworks von yahoo.com ein Dutzend Cookies setzen, und die würden dann alle bei jedem HTTP-Request mitübertragen, auch für die eingeblendeten Bilder, für die sie gar keine Rolle spielen und nur Platz verplempern.
An sich ist das keine doofe Idee, aber der richtige Ansatz dafür wäre natürlich, dass man die Cookies für www.example.com setzt und die statischen Inhalte auf s.example.com tut, und http://example.com ist dann eine Umleitung auf www.example.com. Aber da kommen dann halt Leute und sagen, naja, yimg.com ist ja ein Zeichen kürzer als yahoo.com, das spart auch!1!! Ja, tut es, aber dafür schafft es zusätzliche Latenzen, weil yimg.com separat im DNS nachgeguckt werden muss und dafür auch der Nameserver von yimg.com separat herausgefunden werden muss.
Ich glaube ja, dass die meisten dieser "Web-Optimierer" die ganzen Details gar nicht überblicken und da Cargo Cult betreiben. Aber hey. Whatever.
Dieses RequestPolicy hat natürlich ein paar negative Aspekte in der Usability. Eine Sache, die z.B. ziemlich sofort zu nerven beginnt, ist dass HTTP-Redirects dann auch opt-in sind. Man muss explizit [Allow] klicken. Und viele Dienste leiten externe Links inzwischen über Tracking-URLs mit Redirect. Z.B. die Google-Suche. Auch dafür gibt es Addons, aber so generell macht das für die Twitter-Generation wahrscheinlich auch das Browse-Erlebnis mit URL-Shortenern kaputt. Das würde ich wiederum eher als Vorteil sehen, das ist eine Unsitte und shortened natürlich auch nichts, weil unter dem Strich mehr Traffic verursacht wird und die Latenz hochgeht.
Ich würde mal vermuten, dass das auch eingebettete Videos kaputtmacht, wenn die woanders gehostet werden.
Ciscos Hack ist, dass sie jetzt einen H.264-Codec als Plugin verschenken, ordentlich lizenziert. Das darf sich dann jeder installieren und damit H.264 abspielen, ohne dass Lizenzgebühren fällig werden.
Sieht erstmal elegant aus, aber ist in vielerlei Hinsicht ein Desaster. Erstens haben wir uns damit erpressen lassen. Damit hat das System "Lizenzgebühren für internationale Standards" gewonnen. Soweit hätte es nie kommen dürfen, aber jetzt ist klar: Der Widerstand dagegen ist gescheitert.
Zweitens heißt das, dass man jetzt für H.264 das Cisco-Modul verwenden muss, dann muss man keine Lizenzgebühren zahlen. Wer wäre unter diesen Umständen so doof, ein anderes Modul zu nehmen? Niemand. Wenn sich dieses System einbürgert, dann haben wir alle verloren, weil für die nächste Iteration von Standard nicht mehr ein Konkurrenzkampf an Implementationen die Qualität hochtreiben wird, sondern es wird genau einen Binärblob von Cisco gehen.
Damit sind wir beim dritten Problem. Was, wenn da ein Bug drin ist? Ein Sicherheitsloch? Eine Hintertür? Damit wäre dann die ganze Welt davon abhängig, dass Cisco den Kram wartet. Und um Cisco ranken sich seit mindestens 20 Jahren Gerüchte, dass sie im Gegenzug für Exporterlaubnisse Hintertüren für die US-Regierung eingebaut hätten. Dieser H.264-Blob wäre quasi das perfekte Einfallstor für die NSA. Die NSA wäre doof, da nicht sofort aufzuspringen.
Oh und nehmen wir mal an, das wird jetzt der große Erfolg, nach dem es aussieht. Wieso würde das dann beim nächsten Codec nicht genau einen Lizenznehmer geben? Wer sich unter diesen Umständen noch eine Lizenz von denen kauft, ist doch doof! Das muss sich auch die MPEG-Mafia gerade durch den Kopf gehen lassen. Und die einzige Antwort ist, diese Klausel rauszunehmen für die nächsten Codecs.
Ich persönlich halte es daher jetzt für noch wichtiger als bisher, H.264 loszuwerden, und hoffe auf Daala.
Der Typ hinter Ogg Vorbis und Daala sieht das übrigens ziemlich ähnlich.
Jetzt stellt sich natürlich sofort die offensichtliche Frage, ob da die NSA ihre Finger im Spiel hatte. Denkbar wäre das. Der erste Cipher auf der Liste sollte am besten etwas starkes sein, z.B. AES256, einen ordentlichen Hash verwenden, z.B. SHA256, und Perfect Forward Secrecy erlauben. Ob man jetzt außenrum RSA oder elliptische Kurven spricht, das ist im Moment im Wesentlichen eine Glaubensfrage. Leider spricht Firefox immer noch nicht TLS 1.2 (obwohl ihre Krypto-Library NSS das inzwischen partiell unterstützt), und kann immer noch nichts stärkeres als SHA-1. :-(
Die gute Nachricht: Das ist alles weitgehend wie angenommen. An Tor selbst haben sie sich bisher die Zähne ausgebissen, bezeichnen es als "very secure" und bringen Sprüche wie
- We will never be able to de-anonymize all Tor users all the time.
- With manual analysis we can de-anonymize a very small fraction of Tor users, however, no success de-anonymizing a user in response to a TOPI request/on demand
Da hätte ich sie für weiter gehalten. In der Beziehung hat Frank also Recht gehabt.Auch an Firefox haben sie sich weitgehend die Zähne ausgebissen, das hat mich auch gewundert. Firefox ist keine besonders tolle Codebasis. Da haben sie offenbar echt geknabbert, bis sie einen funktionierenden Exploit hatten. Ich habe da gerade keine Theorie zu. Das deckt sich nicht mit den Annahmen über die Fähigkeiten der NSA. Das hätte für die kein Problem sein sollen, wenn die wirklich alle verfügbaren Exploits mitnehmen.
Andere Aspekte wurden voll bestätigt, z.B. dass GCHQ Tor-Nodes betreibt.
Sie haben auch den von mir angesprochenen Weg probiert, nämlich aus ihren Packet Traces am Ziel und an möglichen Quellen die Pakete zu korrelieren. Das ist die Achillesferse von Tor, weil das ja für interaktives Webklicken gedacht ist, daher sind da keine größeren Verzögerungen zum zeitlichen Entkoppeln möglich. Aber offensichtlich reichen die kleinen Jitter schon, die Tor einbaut. Hier ist der Stand laut der Guardian-Folien:
Current: GCHQ has working version (QUICKANT). R has alpha tested NSA's version. NSA's version produced no obvious candidate selectors.Meine früheren Überlegungen zu Tor sind hier.
Ein Highlight aus dem 2. Teil der Tor-Folien ist auch, dass sie da erstaunt schreiben, das Tor-Projekt sähe ja immer noch China und Iran als Haupt-Gegner. Um dann konsterniert festzustellen, dass die Änderungen an Tor, um dem iranischen Zensurfilter zu entgehen, auch ihre nicht sonderlich überzeugenden Detektions-Filter kaputtgemacht haben :-)
Die schlechte: RSA BSAFE benutzt das als Default-RNG. Und nicht nur die, NIST hat eine Liste. Cisco, Apple, Juniper, McAfee, Blackberry, … bei den meisten wird das allerdings nicht Default sein.
Die gute Nachricht: BSAFE wird von keiner freien Software eingesetzt. Wenn ihr also Firefox unter Linux einsetzt, seid ihr sicher.
Ich bin mir gerade nicht sicher, wie das unter Windows ist. Da gibt es ein TLS vom System namens "SChannel". Das wird meines Wissens u.a. von IE und Chrome verwendet. Benutzt der BSAFE? Vermutlich. Es gab mal eine Zeit, da konnte man RSA und co gar nicht ohne BSAFE legal einsetzen in den USA, aus Patentgründen. Das müsste mal jemand herausfinden, wie das ist, und ob Windows den NSA-RNG einsetzt.
OpenSSL ist auch auf der Liste, aber die haben schon angesagt, dass sie das nur implementiert haben, weil ihnen jemand dafür Geld gegeben hat, und das ist nur an, wenn man den FIPS-Modus aktiviert, von dem sie im Übrigen dringend abraten und was nicht der Default ist.
Hier gehen gerade verzweifelte Mails ein, ob sich der Einsatz von PGP denn überhaupt lohne, wenn man davon ausgehen müsse, dass das Windows darunter Hintertüren hat. DAS IST GENAU DER PUNKT. Es gibt Alternativen. Das hat viel Schweiß und Mühe gekostet, die soweit zu bringen, dass man mit ihnen arbeiten kann. Muss man sich dabei etwas zurücknehmen gegenüber polierten kommerziellen Systemen? Kommt drauf an. Ich als Softwareentwickler empfinde eher Arbeiten unter Windows als zurücknehmen. Grafikdesigner werden das möglicherweise anders erleben.
Aber dass wir überhaupt eine Infrastruktur haben, in der die Dienste sich gezwungen sehen, bei Google und Microsoft die entschlüsselten Daten abzugreifen, weil wir internetweit Verschlüsselung ausgerollt haben, das ist ein großer Sieg. Klar ist das alles immer noch nicht befriedigend. Schöner wäre es, wenn das Internet eine Blümchenwiese wäre. Aber wir haben es geschafft, dass man, wenn man will, gänzlich ohne Software-Hintertüren arbeiten kann. Wie weit man dabei gehen will, hängt natürlich von jedem einzelnen ab. Aber zur Not kann man heutzutage auch sein BIOS als Open Source haben.
Natürlich können auch in Linux und OpenBIOS theoretisch Hintertüren sein. Das liegt an jedem von euch, sich da genug einzulesen, um seinen Teil mitzuhelfen, die Wahrscheinlichkeit dafür zu senken. Muss man dann natürlich auch tun. Die Software kann man zwar kostenlos runterladen, aber man zahlt dann eben auf andere Art. Indem man sich einbringt.
Kurz gesagt: Dass wir überhaupt ein Gegenmodell zu "alle setzen walled garden backdoored NSA-technologie ein" haben, das ist ein immenser Sieg, der in den 80er Jahren, als diese ganzen Geschichten hochblubberten, wie ein feuchter Fiebertraum wirkte. Wir haben immens viel geschafft. Es liegt an uns, das konsequent einzusetzen und konsequent weiterzuentwickeln. Und es ist eure verdammte Pflicht, nachfolgenden Generationen dieses Stückchen Hoffnung zu erhalten. Helft mit!
Update: Um das mal ganz klar zu sagen: Linux einsetzen und Verschlüsseln ist keine Lösung für alles. Per Trafficanalyse wissen die immer noch, wer wann mit wem geredet hat. Nur nicht mehr notwendigerweise worüber. Das sehen die nur, wenn einer der Gesprächsteilnehmer Hintertüren im System hatte oder das dann auch auf Facebook oder Twitter rausposaunt oder bloggt. Open Source ist ein Werkzeug, nicht die Lösung. Ihr müsst auch euer Verhalten entsprechend ändern.
Update: Aus technischen Gründen ist das CDN gerade auf nur einen Server zusammengeschrumpft, daher werden die Downloadraten kleiner als gewohnt sein. Wir haben uns spontan entschieden, wegen der langen Wartepause lieber mit nur einem Server zu releasen als das noch weiter zu verzögern. Für Live-Anhören sollte es schnell genug sein :-) Im Zweifelsfall empfehle ich, die Opus-Version zu ziehen. Die ist nicht mal halb so groß wie die mp3-Version.
Update: Die Opus-Version ist mit 48 kbit encoded, das müsste auch über lahme Handy-Verbindungen auf dem Land gehen. Benutzt dann vlc oder Firefox zum Abspielen.
EINMAL mit Profis arbeiten!
Oh und der Bericht über das Problem hat auch gleich einen Firefox-Bug bezüglich Sonderzeichen exposed, siehe Kommentare. OH DIE SCHMERZEN!
Meine Nummer 1 Anwendung von Chrome ist, dass ich in einem xterm ne URL habe, die markiere, und das dann mit der mittleren Maustaste in Chrome paste.
Geht nicht mehr.
Weil irgendein elender Marodeur entschieden hat, dass Chrome nur noch Paste ala Ctrl-V entgegennimmt, und die mittlere Maustaste nicht wie in allen anderen X-Anwendungen pasten soll, sondern als hätte man Ctrl-V getippt.
Und puff, weg mit Chrome. Zurück zu Firefox. Nervig genug, dass sie nie URL-Paste mit dem mittleren Mausknopf in dem HTML-Bereich implementiert haben.
Update: Die letzte Zeile bezog sich auf Chrome, nicht Firefox. Lest doch mal ordentlich vor den Mailen bitte!
Und die Terminologie ist da bei X krude. Middlere Maustaste benutzt nicht Cut&Paste sondern der Mechanismus heißt "Selection". Das unterstützt Chrome jetzt nicht mehr.
Update: Aha, geht doch in Chrome, aber man muss mit der mittleren Maustaste auf das favicon klicken. Wissenschon, das winzige Icon. Ein Hoch auf offensichtliche Benutzerführung. Dann wird die URL auch direkt geladen. Wer (wie ich) URLs häufig umgebrochen kriegt in Mails und in Teilen pasten wollte, hat bei Chrome verloren. Ich bleibe bei der Rückmigration zu Firefox.
Update: Wo ich gerade beim über Chrome ranten war: die haben Pasten auch in die Gegenrichtung kaputtgemacht. Im Chrome was markieren, im xterm daneben pasten — kommt als UTF8 an, egal ob das xterm im UTF8-Modus ist oder (wie bei mir gerne mal) nicht. So kamen in letzter Zeit diverse kaputte Umlaute im Blog zustande. Chrome war Schuld. Früher ging das mal.
Update: Das Chrome-Update von heute kann auch wieder Mittelklick im URL-Balken.
./jscntxtinlines.h:495:33: warning: '*((void*)& mava +16)' may be used uninitialized in this function [-Wmaybe-uninitialized]Ich habe in meiner langen Laufbahn als C-Programmierer und Distro-Bauer, der ständig anderer Leute Code kompiliert, noch nie eine Fehlermeldung gesehen, die so deutlich wie diese macht, dass für diesen Code wegschmeißen noch zu gnadenvoll ist. Was zur Hölle! Wenn man schon Code wie diesen schreibt (und dafür gibt es VERDAMMT wenig valide Ausreden), dann achtet man doch bitte darauf, dass der bloß keine Warnungen wirft, damit bloß niemand sieht, was für Grotten-Code man da ausliefert!
/tmp/mozilla-release/js/src/jsapi.cpp:5685:27: note: '*((void*)& mava +16)' was declared here
/tmp/mozilla-release/js/src/jsapi.cpp:157:9: warning: '*((void*)& mava +12)' may be used uninitialized in this function [-Wmaybe-uninitialized]
/tmp/mozilla-release/js/src/jsapi.cpp:5685:27: note: '*((void*)& mava +12)' was declared here
Und man braucht dafür nur IE9 (HAHA) oder Firefox 10 ESR (HAHAHA) mit einem installierten Plugin der AusweisApp (HAHAHAHAHAHAHAHAHAHA). Und der größte Kracher kommt dann am Ende:
Im Regelbetrieb will die Firma Zertifikate mit unterschiedlicher Gültigkeit zwischen 5 Minuten und vier Jahren anbieten. Die kurzlebigen Varianten wurden bereits als "Einmalzertifikate" angekündigt. Sie sollen das digitale Signieren populärer machen, die Kosten dafür könnten Behörden oder Unternehmen statt des Endkunden übernehmen.Ja nee klar, kei-nes-falls kommt das dann via Steuer oder Preisaufschlägen am Ende doch von Endkunden!1!! Für wie blöde halten die uns eigentlich da bei der Bundesdruckerei? Vielleicht hätten die mal beim Drucken bleiben sollen und die Finger von diesem ganzen neumodischen IT-Kram lassen sollen.
Zweitens bieten wir das dieses Mal auch als 48 kbit Opus an. Die Browser-Integration funktioniert im Moment nur in Firefox 15 und neuer, und die Selektion innerhalb des Audio-Tags funktioniert nicht, und außerdem haben auch noch Ogg Vorbis und Ogg Opus den gleichen MIME-Type, daher sah ich mich gezwungen, eine stinkende Javascript-Browserweiche für Firefox 15 einzubauen. Ich hoffe das fällt jetzt nicht bei irgendwelchen anderen Browsers tot um. Alle anderen sollten weiterhin Vorbis bzw MP3 abspielen. Seufz.
Viel Spaß beim Hören!
Update: Ich habe mal testweise Alternativlos 26 damit encoded, und selbst wenn ich auf 32 kbit runtergehe (insgesamt, nicht pro Kanal!), klingt das noch gut. Bei der Intromusik hört man es, aber die Sprache klingt noch beeindruckend gut. Das ist halbe ISDN-Bandbreite! Dieser Codec ist mehr als beeindruckend. Kurze Tests haben ergeben, dass das mit Firefox 15 sogar schon im Browser abspielt. Hier als Größenvergleich:
-rw-r--r-- 1 archive users 1076210418 Aug 17 17:51 alternativlos-26.flacDie MPEG-Mafia wird neue Seniorenwindeln brauchen, wenn sie das sehen. Gut, die haben bei Videocodecs noch alles fest im Griff. Aber auch VP8 (webm) habe ich kürzlich mal reevaluiert in der aktuellen Development-Snapshot-Version, und das kann qualitativ mit x264 (nicht nur H.264, sogar mit dem besten Encoder x264!) halbwegs mithalten bei üblichen Bandbreiten. Leider dauert das Encoden mehr als doppelt so lange wie bei x264, damit fällt das in der Praxis durch. Aber die Vision von Audio und Video im Browser mit freien Codecs erscheint plötzlich greifbarer als je zuvor.
-rw-r--r-- 1 archive users 91987708 Aug 17 18:26 alternativlos-26.mp3
-rw-r--r-- 1 archive users 74306960 Aug 17 18:27 alternativlos-26.ogg
-rw-r--r-- 1 archive users 41800004 Sep 12 02:31 alternativlos-26.opus
-rw-r--r-- 1 archive users 34078864 Sep 12 02:54 32kbit.opus
Daher sage ich mal voraus: ein paar Geeks werden daran arbeiten, das so zu machen. Im Großen und Ganzen ist das bloß ein weiteres Argument für HTML5 und gegen Flash. Flash ist ja eh am Sterben. Good Riddance.
Wir sind immer noch bei den 3rd party cookies. In IE kann man auch sagen, dass man keine 3rd party cookies will. Aber es stellt sich heraus, dass IE die trotzdem speichert, wenn der Cookie-Setzer eine P3P-Policy mitschickt. Das ist eine der hirntotesten Ideen aller Zeiten. Die IE-Leute haben ein Beispiel von www.microsoft.com:
P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"Völlig offensichtlich: das ist voll für den Fuß, geht gar nicht, der Erfinder gehört an die nächste russische Marssonde genagelt. Aber das ist noch nicht der Lacher. Der Lacher ist: Google schickt einen fehlformatierten P3P-Header, nämlich diesen hier:
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."Und was tut IE damit? Was die Spec sagt. Die Spec sagt: wenn du ein Token nicht kennst, ignoriere es. Also ignoriert IE alle Tokens. Und ist damit in dem Zustand: es gibt ein P3P-Statement. Und lässt den 3rd party cookie durch.
Ein epic fail auf Seiten Microsofts in meinem Buch. Um so peinlicher, dass sie das jetzt als böses Herumgehacke durch die fiesen Privacy-Freibeuter bei Google darzustellen versuchen.
Diese Kapitulation hat sich in den letzten Jahren konzeptionell bedrohlich verschlimmert, weil die Hersteller inzwischen dazu übergeben, von dem eh überforderten Bug-Fix-Team Budget abzuziehen und damit Mitigations zu bauen. Sandboxing ist ein Trend, den man gerade bei allen möglichen Browsern sehen kann. Ausgehend von Mobiltelefonen sind jetzt auch schon die regulären Betriebssysteme zusehends Sandbox-Umgebungen für die Anwendungen.
Ich halte das alles für Snake Oil, schlimmer noch, für aktiv sicherheitsreduzierend. Denn mit dem Geld, mit dem hier sinnlose Techniken eingeführt werden, hätte man wunderbar Bugs fixen oder gar den Entwicklungsprozess verbessern können.
Der aktuelle Höhepunkt in diesem Kasperletheater ist der Security-Chef von Adobe (Der Brüller! Adobe hat tatsächlich einen Security-Chef!)
Der hat sich tatsächlich hingestellt (auf einer Kaspersky-Konferenz, das passt auch mal wieder wie Arsch auf Eimer) und dem staunenden Publikum erklärt, dass es Adobe ja gar nicht darum geht, die Bugs zu fixen. Stattdessen sei das Ziel, das Ausnutzen der Bugs teurer zu machen. Und aus diesem Gesichtspunkt verurteilte er die Forscher, die es wagen, Papiere darüber zu veröffentlichen, wie man die sinnlosen Mitigations umgeht.
Kommt jemandem diese Argumentation bekannt vor? Genau so hat die Contentmafia es damals angestellt, dass das Umgehen von (egal wie lächerlich schwachen) Kopierschutz-Vorrichtungen unter Strafe zu stellen.
Wir als Kunden müssen uns gegen diese Leute zur Wehr setzen. Kauft keine Produkte von Firmen, die lieber in Mitigations als in ordentliche Entwickler-Schulungen und Qualitätssicherung investieren.
Falls die grotesken Aussagen von diesem Adobe-Clown demnächst aus dem Internet verschwinden, zitiere ich sie hier mal in Gänze:
“My goal isn’t to find and fix every security bug,” Arkin argued. ”I’d like to drive up the cost of writing exploits. But when researchers go public with techniques and tools to defeat mitigations, they lower that cost.”At Adobe, Arkin’s security teams have been working overtime to stem the flow of zero-day attacks against two of its most widely deployed products — Adobe Reader and Adobe Flash Player — and he made the point that too much attention is being paid these days to responding to vulnerability reports instead of focusing on blocking live exploits.
“We may fix one vulnerability that has a security characteristic but when we change that code, we are creating a path to other vulnerabilities that may cause bigger problems in the future,” he said.
Eigentlich könnte man den ganzen Artikel zitieren. Un-glaub-lich. Der weint da ernsthaft herum, dass Adobe ja soooo viele Bugs gemeldet kriegt, dass sie mit ihren Fixes mehr kaputtmachen als sie reparieren. Plötzlich geht Drucken nicht mehr und so. Das ist eine Selbstanklage von geradezu biblischen Dimensionen. Und der Höhepunkt des Unverständnisses:“We have patched hundreds of CVEs [individual vulnerabilities] over the last year. But, very, very few exploits have been written against those vulnerabilities. Over the past 24 months, we’ve seen about two dozen actual exploits,” Arkin said, making the argument that software vendors are not wisely using their security response resources.
Hey, Arkin, DAS IST DER GRUND, WIESO MAN BUGS FIXT. Damit es nicht zu Exploits kommt! Wie konnte denn bitte diese Gestalt jemals Security-Chef werden?!Höhepunkt seiner Selbstzerfleischung ist die folgende Aussage:
Finding a bug is pretty straightforward
Aha, soso, es ist also einfach, in Adobe-Software Bugs zu finden? Wieso tut ihr da nicht was gegen?
Haben sie am Ende doch gemacht. Jetzt kommen dazu spannende Details heraus, und zwar soll Microsoft ein Gegenangebot gemacht haben an Mozilla, damit die Bing als Default-Suchmaschine einbauen, und das soll so hoch gewesen sein, dass Google jetzt dreimal so viel an Mozilla zahlt wie letztes Mal. Bwahahaha, also Wirtschaftskrieg will man gegen Microsoft echt nicht führen müssen, die wissen schon was sie da tun.
So sollen die Konzerne von den Gebühren für Stromnetze ausgenommen werden.Und die Beschränkung auf die Kleinverbraucher sieht so aus:[…]
Die Preiserhöhung beträgt demnach mehr als drei Prozent. Auf einen Drei-Personen-Haushalt mit einem Verbrauch von 3500 Kilowattstunden kommt eine Erhöhung um mehr als 26 Euro zu.
Die Regelung sieht vor, dass Unternehmen, die ohne große Verbrauchsschwankungen mehr als zehn Gigawattstunden Strom pro Jahr benötigen, von den Gebühren für die Stromnetze befreit werden.Was für eine bodenlose Frechheit!
Übrigens, Lacher am Rande:
Selbst in Fachkreisen fiel dies zunächst nicht auf.
Update: Mhh, bei nochmaliger Lektüre liest sich das eher so, als ob das Geld den Großabnehmern geschenkt wird, nicht den Stromkonzernen. Die Frage ist, ob es bisher eine allgemeine Netznutzungsgebühr für alle gab und die jetzt den Großabnehmern erlassen wird, oder ob die erst eingeführt werden sollte und halt nicht für die Großabnehmer eingeführt wird.
Update: Jimmy Wales sagt, das war auch vorher ca 25% des Strompreises. Ich sah ja neulich, dass jemand ein Firefox-Plugin gegen Jimmy Wales gebaut hat. So sehr nervt das alle.
Theorien und Vorschläge nehme ich gerne per Email entgegen. Im Moment tendiere ich zu "die haben ihre LI-Software von Digitask gekauft und die spackt jetzt halt herum" :-)
Update: Bei diversen Leuten geht es offenbar problemlos.
Update: Es gibt einen Schuldigen. CACert hat offensichtlich gerade einen OCSP-Fuckup. Wenn Firefox bei denen eine OCSP-Anfrage für mein Cert stellt, kriegt er ein "403 Access Forbidden" zurück. Mit anderen Worten: Chrome macht kein OCSP. m( Man kann OCSP auch in Firefox ausschalten (security.OCSP.enabled = 0), aber an sich will man ja OCSP haben. Dieses SSL ist echt ein Haufen Sondermüll. Macht Firefox bei jedem Zugriff einen OCSP-Request oder nur einmal pro Tag? Man fragt ja ein spezifisches Zertifikat an, das hieße ja, dass CAcert ein Bewegungsprofil erstellen kann. Mann ist das alles für den Fuß.
Update: Mir mailt gerade jemand: Firefox prüft einmal pro Session, und Chrome macht doch OCSP aber macht daraus keinen Timeout sondern zeigt dann ein kleines gelbes Dreieck als Warnung an.
Eine von Mozilla veröffentlichte Anleitung, die beschreibt, wie man das Root-Zertifikat von Hand aus Firefox löscht, hat sich unterdessen als wirkungslos herausgestellt. Tests in der Redaktion ergaben, dass DigiNotar dadurch zwar zunächst aus der Liste der vertrauenswürdigen Herausgeber verschwindet. Wenn man das Einstellungsfenster erneut öffnet, ist jedoch wieder alles beim alten.BWAHAHAHAHAHA
Update: Da hat wohl Heise was verkackt: Das soll so.
Because the certificate is "built-in" it will be distrusted but not deleted. Distrusting the certificate has the same effect as deleting it.
(Danke, Mathias)
Stellt sich raus: Firefox hat Recht. Nicht alles ist verschlüsselt.
Ratet mal, was nicht verschlüsselt war.
Kommt ihr NIE drauf!
Der OCSP-POST-Request zu cacert.org.
Update: Weil hier verzweifelte Nachfragen kommen: Wenn man SSL macht, wird die Verbindung verschlüsselt und signiert. Die Signatur ist mit einem Schlüssel gemacht, von dem man nicht weiß, ob der nicht in der Zwischenzeit zurückgerufen wurde (Reallebenäquivalent wäre der Bankautomat, der prüfen will, ob die Karte gestohlen gemeldet wurde). Für diese Prüfung gibt es ein Protokoll namens OCSP. Der Schlüssel, der die Webdaten unterschrieben hat, ist selbst unterschrieben, von einer sogenannten CA. In meinem Fall ist das cacert.org. Per OCSP geht jetzt der Browser beim Besuch meiner Webseite zu cacert.org und fragt die, ob mein Zertifikat eigentlich noch gültig ist. Und diese Verbindung ist unverschlüsselt, darüber hat sich mein Firefox geärgert.
Nun klingt das alles wie "na das muss man doch aber auch absichern!!1!", und das stimmt auch, aber OCSP überträgt über den unsicheren Kanal auch signierte Daten. Und sieht auch eine Möglichkeit vor, um Replay-Angriffe (also das Abspielen einer früher aufgezeichneten "ist OK" Antwort) zu verhindern. In der Praxis ist das alles eine furchtbare Baustelle, weil SSL halt insgesamt an diversen Stellen krankt. Sonderlich zielführend ist diese Warnung jedenfalls nicht, als erstes Mal schon weil er mir bei der Warnung nicht gesagt hat, welcher Teil da jetzt unverschlüsselt übertragen wurde.
Seit dem hat es eine neue Entwicklung gegeben. In dem Interview spekuliere ich, dass RSA die Seeds der Tokens ihrer Kunden aufgehoben haben könnte, und dass die gestohlen wurden bei dem Einbruch, und dass das den Einbruch bei Lockheed erklären würde. Die Sprache im Original-Statement deutete so ein bisschen indirekt darauf hin, als wollten sie das einräumen, war aber nicht klar genug, um es als Geständnis zu werten. Inzwischen will RSA alle Tokens austauschen. Das ist was ich mit "das wäre ein Totalschaden" im Interview meinte. Angeblich haben RSA-nahe Quellen zugegeben, dass die Seeds geklaut wurden.
Die Presseberichterstattung fokussiert sich im Moment auf SecurID, aber ich finde, dass das nicht weit genug greift. Die Firma hat die geheimen Schlüssel ihrer Kunden gespeichert! Einen größeren Vertrauensverlust kann ich mir gar nicht vorstellen für einen solchen Dienstleister! Nicht nur würde ich nie wieder eine Authentisierungslösung von denen kaufen, ich würde denen auch sonst nie wieder vertrauen. Und was machen die sonst so? Na? Kommt ihr NIE drauf! Die betreiben eine SSL-CA, der u.a. Firefox vertraut.
Der Hammer an der ganzen Geschichte ist ja die Begründung, warum sie das nicht gleich zugegeben haben, dass ihr Verfahren vollständig kompromittiert wurde:
RSA Security Chairman Art Coviello said that the reason RSA had not disclosed the full extent of the vulnerability because doing so would have revealed to the hackers how to perform further attacks.
Äh, wie meinen?! Lieber die Kunden im Stich lassen und hoffen, dass die nicht merken, wenn sie gehackt werden?! Wenn das keine vertrauensbildende Maßnahme ist, dann weiß ich auch nicht!1!!
Sein neuester Streich: Ein x86-Emulator in Javascript. Im Emulator läuft ein Linux-Kernel, und das ganze emuliert einen Ranz-x86 mit Ramdisk und Serialport für die Ausgaben. Spannenderweise performt das in Firefox doppelt so gut wie in Chrome schreibt er. Auf jedenfall mal wieder ein echter Fabrice Bellard-Kracher.
Bei Firefox kann man in den Optionen anschalten, dass man nicht getrackt werden will, und dann … setzt Firefox einen HTTP-Header. Und die Tracking-Firmen, deren Profit ja vom Tracking kommt, sollen den dann sehen und die Tracking-Anfrage verwerfen, ohne die Daten zu speichern. Oder andersherum könnte auch die Webseite, die ja auch aus den Trackingdaten Profit schlägt, bei gesetztem Header den User gar nicht erst bei den externen Trackingfirmen vorbeischicken. Finde ich nur wenig überzeugend.
Der Google-Ansatz ist, Cookies zu setzen, dass man nicht getrackt werden möchte. Im Wesentlichen das Selbe in Grün.
Spannenderweise hat MS einen anderen Ansatz, nämlich eine schwarze Liste von Trackingsites, zu denen man seine Daten nicht geben will, und der Browser geht dann da gar nicht erst hin. Das hat den Vorteil, keine Kooperation von den Webseitenbetreibern zu erfordern, die ja an dem Tracking mitverdienen. Dafür hat es den Nachteil, dass der User dann auch so eine Liste pflegen muss. Und die Trackingbetreiber dann halt mit Wegwerfdomains kontern können.
Ich glaube ja, dass wir da ohne gesetzliche Eingriffe keine Besserung zu erwarten haben. Bis dahin pflege ich hier schwarze Listen an Tracking-Domains und blocke die manuell. Seufz.
Nanu? Wo kommen denn die ganzen Apple-User her? Bashe ich noch nicht genug auf denen rum? :-)
Ich bin erstaunt, dass Chrome so einen geringen Marktanteil hat. Ich hätte den höher geschätzt.
Der Effekt ist, dass ausser Youtube und Enthusiasten wie mir niemand webm ausgerollt hat. Und Firefox sah im Vergleich zu Chrome schlecht aus, weil sie sich geweigert haben, H.264 zu unterstützen.
Und jetzt kommt dieser Paukenschlag: Google kündigt an, H.264-Unterstützung aus Chrome zu entfernen. Kurzfristig ist das natürlich schlecht für die Chrome-User, weil damit einige Early Adopter des Video-Tags nicht mehr gehen. Langfristig ist das aber die richtige Entscheidung, um webm nach vorne zu bringen. Denn Firefox 4 kann auch webm, und damit ist die klare Mehrheit der wichtigen Browser webm-fähig.
Es ist auch eine gute Gegenaktion zu Microsofts Subversionsversuch, Firefox unter Windows H.264-Support zu geben, damit die Leute lieber Firefox als den Browser des Erzkonkurrenten benutzen und damit webm nicht vom Boden wegkommt.
Viele Leute hatten webm schon zu den Akten gelegt, weil die MPEG-Lizensierungsmafia als Reaktion auf webm verkündet hat, das H.264-Streaming im Internet bleibe lizenzkostenfrei. Das haben viele Leute so interpretiert, als sei H.264 jetzt generell lizenzkostenfrei, aber das folgt daraus halt nicht. H.264 ist nach wie vor eine Patenthölle, und jeder Schritt, um diesen Leuten das Wasser abzugraben, ist ein Schritt nach vorne für die Menschheit. Scheiß Patentscheiß immer, beschissener.
Update: Übrigens, spannendes Detail: Auch Adobe will webm in Flash unterstützen. D.h. man wird H.264 auch nicht mehr als Flash-Fallback brauchen. Nur noch als Apple-Fallback. Und Apple spricht ja eh nicht H.264 sondern je nach Gerät nur Baseline-Profil und kann auch von AAC nur eine Teilmenge des Standards, d.h. webm muss qualitätsmäßig gar nicht mit dem H.264 High Profile konkurrieren und kann da mithalten. Für mich als Webseitenbetreiber sieht es dann also plötzlich so aus, dass ich mit webm mal eben über 90% des Browsermarktes abdecken kann, und nur für Apple eine Extrawurst braten müsste. Das wird sich der eine oder andere Webseitenbetreiber dann vermutlich schlicht sparen.
Aus fundamentalistischen Gründen gibt es das Video nur per video-Tag und nur per Ogg Theora oder WebM. Nein, kein Flash, keine Krücken für IE- und Appleuser. Gewöhnt euch dran. Das kennt ihr ja eh schon, dass auf euren Geräten Dinge dann halt nicht gehen. Oder installiert euch halt Firefox oder Chrome.
Wem die Ironie der Aussage in dem Video nicht klar ist, der sei darauf hingewiesen, dass es in den USA gar keine Vorratsdatenspeicherung gibt. Auch "ab und zu mal einen Fingerabdruck" gibt es da nicht, insbesondere nicht im Personalausweis, denn es gibt überhaupt keinen Personalausweis dort.
Update: Mhh, hier stand ursprünglich auch Opera, aber Opera spielt das bei mir auch nicht ab. Suuuuper technologie. Also lade ich es doch auch nochmal als mp4 hoch. Hey, Opera, da könnt ihr ja mal echt stolz auf euch sein!
Update: Für Leser mit kurzer Aufmerksamkeitsspanne sei auch nochmal hierauf verwiesen.
I went to check the website using my default browser (Firefox 4 Beta 6) and noticed it was at 3.5%.[…]
I tried to use their little payment calculator but the flash based widget wouldn't work properly in the Firefox Beta so I loaded up Safari to try and funny enough the rate offered was 2.7%.
I checked in Chrome and Opera to see if it was maybe just something wrong with the Firefox beta and Chrome's rate was 2.3% while Opera's was 3.1%.
Ich hätte jetzt gedacht, dass Safari-User die höchsten Raten zahlen müssen, die haben ja schon im Vorfeld ihre Unzurechnungsfähigkeit bewiesen :-)
Daher erkläre ich mal. Wenn man eine https-Webseite einrichtet, braucht man ein Zertifikat. Wenn sich der Webbrowser zum https-Server verbindet, zeigt ihm der Server dieses Zertifikat. Der Browser guckt dann, ob das aktuelle Systemdatum innerhalb des im Zertifikat stehenden Gültigkeitsdatumsbereichs ist (aktuell ist das bei mir 28.8.2010 bis 24.2.2011), und ob das Zertifikat von jemandem unterschrieben ist, der im Browser als vertrauenswürdig eingetragen ist. Browser kommen mit einer mehr oder weniger langen Liste von vertrauenswürdigen Zertifikaten. Ich hatte das auch kurz bei Alternativlos Folge 5 erklärt. Da sind lauter suuuper vertrauenswürdige Zertifikats-Aussteller drin wie z.B. Verisign (und deren Tochterunternehmen Comodo, Thawte, GeoTrust, …), der bekannteste. Verisign ist so nahe an der US-Regierung dran, dass sie u.a. auch die DNS Top Level Domains .com und .net betreiben dürfen. Wie bei Alternativlos empfohlen, sollte sich jeder mal die Zeit nehmen, in seinem Browser die Liste der Zertifikate anzugucken. Bei Firefox guckt man in die Preferences, das Advanced Tab, dann das Encryption Unter-Tab, dann den View Certificates Knopf drücken, und in dem neuen Fenster das Tab "Authorities" öffnen. Da mal durchscrollen. JEDER von denen ist für den Browser vertrauenswürdig. Da ist z.B. auch die Deutsche Telekom dabei. Wenn jetzt z.B. die Bundesregierung gerne eure verschlüsselte Kommunikation abhören wollte, würden sie der Telekom einfach sagen, hey, macht uns mal ein Zertifikat für den Banking-Webserver der Sparkasse oder wo auch immer ihr euch so hinverbindet, auch Email und Jabber benutzen SSL. Und euer Browser würde sehen, dass deren Zertifikat von der Deutschen Telekom unterschrieben ist, und würde es kommentarlos akzeptieren.
Neben der US-Regierung und der Bundesregierung sind da auch noch die Chinesen am Start ("CNNIC"), die Contentmafia ("AOL Time Warner Inc."), America Online (nein, wirklich!), TÜRKTRUST, die Bankenmafia (VISA, Wells Fargo, …), die Schweizer ("Swisscom"), Geert Wilders ("Staat der Nederlanden"), die Schweden und Finnen ("Sonera"), die Japaner, Intel und Microsoft. Das hängt auch von der Browserversion ab. Aber es ist wichtig, dass ihr versteht, dass jeder von denen, wenn er wollte, eure Email mitlesen könnte, indem er euch ein ungültiges (also ein von ihnen generiertes, von ihnen unterschriebenes, und daher vom Browser akzeptiertes) Zertifikat vor die Nase hält.
So, wenn ich jetzt einen SSL-Dienst einrichte, und ich möchte, dass das in eurem Browser ohne Terrorpanikmeldung funktioniert, dann kann ich einem der Kommerzanbieter ein paar Euro in die Hand drücken, und der gibt mir dann ein Zertifikat, das ein Jahr gültig ist. Marktführer ist Godaddy, da zahlt man pro Jahr pro Domain sowas wie $30.
Wer das noch nie gemacht hat: das geht so. Man geht dahin, gibt Daten in ein Webformular ein, gibt denen die Kreditkartennummer, und bei denen wirft sich dann ein Perl-Skript an, das das Zertifikat generiert. Die haben genau Null Arbeit. Zum Validieren schicken sie eine Mail an eine Mailadresse bei der Domain, üblicherweise sowas wie postmaster@ oder root@ oder webmaster@, in der Mail ist ein Link drin, den klickt man dann, und dann glaubt einem der Anbieter, dass man berechtigt ist, für die Domain ein SSL-Zertifikat zu haben. Mehr ist da nicht dabei. Ein Perl-Skript.
Nun habe ich aus grundsätzlichen Erwägungen heraus ein Problem damit, Leuten Geld für so eine Schutzgeldnummer zu geben, bei der die Gegenseite nichts tut, das ich nicht auch mal schnell selber hätte machen können. Die einzige Sache, die die von mir trennt, ist dass die eine Mail an Mozilla und Microsoft und Opera geschickt haben, um in die Liste der vertrauenswürdigen Aussteller aufgenommen zu werden. Ich habe mal herauszufinden versucht, was für Anforderungen die Browserhersteller an einen stellen, wenn man auf die Liste will. Die Details hängen vom Browser ab, aber ich will das mal so zusammenfassen: keine erwähnenswerten.
Wenn ich nun nicht einsehe, so einer Firma für das Aufrufen eines Perl-Skripts Geld zu geben, dann bleiben zwei Optionen, um eine SSL-Site zu kriegen. Ich kann mir selber ein Zertifikat machen und selbst unterschreiben. Oder ich kann zu cacert.org gehen, die bieten kostenlose Zertifikate an. In beiden Fällen gibt es von den Browsern einen großen roten Terrorpanikdialog. Der bei Firefox involviert inzwischen ein halbes Dutzend Interaktionen, bevor Firefox ein ihm unbekanntes Zertifikat erlaubt.
Aus meiner Sicht ist es egal, wie ich es mache. So rein fundamentalistisch betrachtet sind selbst-signierte Zertifikate die ehrlichste Variante. Je nach dem, wie man es betrachtet, gebe ich dann niemandem zusätzlich die Möglichkeit, sich eurem Browser gegenüber als meine Webseite auszugeben. CAcert ist der Kompromiss. Auf der einen Seite kostet das nichts, und ein User muss nur einmal CAcert trauen mit ihrem Browser und kommt dann auf alle https-Seiten mit deren Unterschrift drauf. Auf der anderen Seite prüfen die auch nicht weniger als kommerzielle CAs. Ich habe keine Ahnung, wieso die nicht bei den Browsern drin sind als vertrauenswürdig, ich finde CAcert persönlich vertrauenswürdiger als sagen wie Equifax, die Telekom oder CNNIC. Denn bei CAcert kann man den GPL-Quellcode runterladen. Und die Mailinglistenarchive sind öffentlich einsehbar. Wenn ihr keinen Bock habt, bei meinem Blog jedesmal rote Terrorpanikdialoge wegzuklicken, dann könnt ihr euch hier deren Root-Schlüssel holen und in eure Browser importieren. Wie das genau geht, hängt vom Browser ab. Deren Wiki beschreibt, wie man das macht. Achtung: wenn ihr das tut, kann zusätzlich zu den anderen unvertrauenswürdigen CAs auch CAcert euch gefälschte Webseiten vorspielen.
Aber, was ich an der Stelle nochmal ganz deutlich sagen will: nur weil ihr SSL benutzt, heißt das noch lange nicht, dass die Kommunikation sicher ist und nicht abgehört oder manipuliert werden kann. Im Zweifelsfall sollte man immer zusätzlich zu SSL noch eine Ende-zu-Ende-Verschlüsselung fahren. Bei Email und Jabber kann man z.B. openpgp haben, bei diversen Chatprotokollen gibt es OTR. Wenn ihr eine Wahl habt: immer das zusätzlich einschalten. Und wenn ihr mal jemanden im realen Leben trefft, nutzt die Chance, deren Schlüssel zu vergleichen, damit ihr sicher sein könnt, dass euch da keiner verarscht. Sowas nennt sich dann PGP Keysigning Party.
Update: Vielleicht sollte ich noch klarer sagen: ich habe die CAcert root key in meinen Trusted Root im Browser eingetragen. Fundamentalistisch gesehen müsst man einmal durch seinen Cert Store laufen und alles als unvertrauenswürdig markieren, und dann alle Zertifikate im Web manuell prüfen. Aber in den meisten Fällen geht das ja gar nicht. Wenn ich jetzt hier z.B. hinschreibe, dass der SHA1-Fingerprint für mein aktuelles Zertifikat
12:2F:49:D9:86:8D:29:40:38:FF:7D:85:48:FD:0A:89:CA:70:67:E8ist, dann seid ihr auch nicht weiter als vorher. Wenn jemand die SSL-Verbindung zwischen euch und meinem Server manipulieren kann, um euch ein anderes Zertifikat unterzujubeln, dann kann der natürlich auch diese Fingerprintangabe fälschen. Objektiv gesehen müsste man an der Situation mit den SSL-Zertifikaten verzweifeln. Daher plädiere ich dafür, lieber die Leute zu informieren, wie viel Sicherheit ihnen das wirklich bietet, damit sie mit einer angemessenen Erwartungshaltung an SSL herangehen. Oh und: SSL hilft auch nicht gegen Trafficanalyse. Wenn jemand wissen will, welche Seiten ihr hier aufruft, dann kann er das anhand der Größe der Antworten rekonstruieren. Die Daten sind ja immerhin öffentlich. Trotzdem halte ich es für gut und wichtig, Verschlüsselung auch ohne Not einzusetzen, denn je höher der Anteil an verschlüsselten Daten im Netz ist, desto weniger macht man sich verdächtig, wenn man seine Daten verschlüsselt.
Irgendwelche Hacker mögen immer irgendwas hacken können, aber, ähm, die Zuverlässigkeit und Sicherheit des neuen Personalausweises steht nicht in Frage.Na dann ist ja alles gut!
Ach wisst ihr was, das ist so großartig, das embedde ich ausnahmsweise mal.
Jaja, ist ja gut, kein Flash im Blog. Dann halt das html5-Video-Tag.
Das ist übrigens ein webm-Video. Ich stelle gerade fest, dass das unter Safari nicht geht. Ich habe also die Wahl zwischen H.264, das in Firefox nicht geht, und webm, das in Safari nicht geht. Tut mir leid, liebe Mac-User, aber da spricht die Statistik gegen euch. Ihr müsst dann halt auf den Youtube-Link klicken, um das Video zu sehen. Oder ihr probiert das hier, vielleicht funktioniert das ja.
Update: Offenbar tut das auch nicht. Na prächtig. Ich hab hier webm in funktionierend in Firefox, aber das ist Firefox 4. In Firefox 3 tut das wohl auch nicht. Boah können die mal alle ausm Knick kommen, so wird das nie was mit dem video-Tag.
Update: Habe das auch noch als mp4 und ogv hochgeladen. Was für eine Scheiße dieses Browser-Zeuch doch immer ist. Furchtbar.
Update: Kai Biermann hat mein Youtube-Video in einen Artikel bei zeit.de eingebettet. Das läuft ja prima! Lasst uns ein schönes Mem daraus machen.
Dass die Fonts in jedem Browser eine subtil andere Größe haben, das ist glaube ich mein Fehler. Falls jemand weiß, wie man das ohne Browserweiche besser macht, nehme ich Hinweise gerne entgegen.
Update: Ach wie schön, der Vollkorn-Autor hat vor ein paar Tage eine neue Version mit besserem Hinting veröffentlicht. Gleich mal updaten :-)
Also, wenn jemand sachdienliche Hinweise hat, wieso IE mit der vt220.eot nicht klarkommt: immer her damit. Oder wieso Opera meine WOFF-Fonts nicht mag.
Update: Au weia, Leute, Lesekompetenz! Ich schrieb nicht, Opera kann keine Fonts darstellen, sondern Opera kann meine WOFF-Font nicht darstellen. Der Stylesheet bindet deshalb auch eine Truetype-Font ein. Ich habe hier ein Dutzend Zuschriften, dass Opera eine Font lädt. Duh! Und dann schreiben mir Leute, klar tut WOFF nicht in IE, das ist erst seit IE 9 implementiert. Daher schrieb ich ja auch, dass ich IE 9 eingesetzt habe. Wer Lesen kann ist klar im Vorteil!
Oh und wenn ich Firefox sage, meine ich natürlich die neueste verfügbare Version, also die 4er Beta.
Wir haben viel Feedback gekriegt, dass ihr mit dem Audio nicht einverstanden wart von Folge 3. Der Hall war nervig, das sehen wir ein. Zu unserer Verteidigung sei gesagt, dass die Folge mit Kopfhörern deutlich besser verständlich ist als mit Lautsprechern. Wir geloben Besserung.
<img src="logo.svg">und alles wird gut, aber weit gefehlt! Stellt sich raus, dass Chrome das kann, Firefox aber nicht. Firefox erwartet ein object-Tag. Was für ein Hirnriss!
Aber das ist noch nicht alles. Stellt sich raus, dass Safari SVG kann (ist ja auch Webkit wie Chrome, damit war zu rechnen), aber NICHT auf dem Iphone oder Ipad. WTF?! Gerade das Ipad haben sie doch als Browser-Device verkauft!
An der Safari-Version kann man es nicht festmachen. Die Plattformstrings werden schnell unübersichtlich, es gibt da auch noch irgendein webtv-Zeugs, kenn ich alles nicht. Also ist da jetzt eine Javascript-Browsererkennung drin. Wie furchtbar ist DAS denn alles?! Ich dachte, die Zeiten seien vorbei im Web?
Also aus meiner Sicht: Schande über Apple und Firefox.
Und zur Krönung des Tages kommt hier auch noch einer an, der benutzt Epiphany mit Webkit, und das gibt sich als Safari unter Linux aus. Das bau ich da jetzt nicht ein. Was für ein Müll dieses Web doch ist.
Oh und bei Firefox ist offenbar das UI für das audio-Tag kaputt und man kann da nicht die Lautstärke regeln. Na suuuuuper. Bin ich wirklich der erste, der das Audio-Tag benutzt?! Ist das echt noch keinem aufgefallen?!?
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-1297).
Note: There are reports that this issue is being actively exploited in the wild.This update resolves a memory exhaustion vulnerability that could lead to code execution (CVE-2009-3793).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2160).
This update resolves an indexing vulnerability that could lead to code execution (CVE-2010-2161).
This update resolves a heap corruption vulnerability that could lead to code execution(CVE-2010-2162).
This update resolves multiple vulnerabilities that could lead to code execution (CVE-2010-2163).
This update resolves a use after free vulnerability that could lead to code execution (CVE-2010-2164).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2165).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2166).
This update resolves multiple heap overflow vulnerabilities that could lead to code execution (CVE-2010-2167).
This update resolves a pointer memory corruption that could lead to code execution (CVE-2010-2169).
This update resolves an integer overflow vulnerability that could lead to code execution (CVE-2010-2170).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2171).
This update resolves a denial of service issue on some UNIX platforms (Flash Player 9 only) (CVE-2010-2172).
This update resolves an invalid pointer vulnerability that could lead to code execution (CVE-2010-2173).
This update resolves an invalid pointer vulnerability that could lead to code execution (CVE-2010-2174).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2175).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2176).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2177).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2178).
This update resolves a URL parsing vulnerability that could lead to cross-site scripting (Firefox and Chrome browsers only) (CVE-2010-2179).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2180).
This update resolves an integer overflow vulnerability that could lead to code execution (CVE-2010-2181).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2182).
This update resolves a integer overflow vulnerability that could lead to code execution (CVE-2010-2183).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2184).
This update resolves a buffer overflow vulnerability that could lead to code execution (CVE-2010-2185).
This update resolves a denial of service vulnerability that can cause the application to crash. Arbitrary code execution has not been demonstrated, but may be possible. (CVE-2010-2186).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2187).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2188).
This update resolves a memory corruption vulnerability that could lead to code execution (CVE-2010-2189).
Note: This issue occurs only on VMWare systems with VMWare Tools enabled.
This update resolves a denial of service issue (CVE-2008-4546).
Ich habe "code execution" mal hervorgehoben, weil das die Totalschaden-Kategorie ist. Schon EIN Bug dieser Kategorie ist Totalschaden. Selbst Apple braucht mehr Pakete, um so viele Totalschaden-Bugs anzuhäufen. Ich komme aus dem Stand nur auf eine Firma, die jemals eine derartige Totalschaden-Dichte erreicht hat. Oracle.Update: Oh toll und 64-bit-Support haben sie offenbar heimlich, still und leise gecancelt. Tja, dann halt kein Flash mehr.
Update: Die erste Zuschrift ist angekommen: Megaphone Desktop Tool.
Ich muss ja sagen, das ist in der Tat der eine große Nachteil von Chrome gegenüber Firefox. Bei Firefox kann adblock auch das Laden von Javascript-Dateien blocken. Bei Chrome kann man nur die Bilder selbst blocken, da müsste man einen Proxy nehmen oder gleich im DNS die ganze Domain blocken. Ich muss echt mal ein Chromium Buildsystem aufbauen und dann hack ich mir da halt einen Regex-Filter in die HTTP-Engine rein, der eben 404 simuliert, wenn die URL einer der Regexen matcht.
Es ist gar nicht überzubewerten, was das für ein wichtiger Schritt für uns alle ist. Google als Betreiber von Youtube weiß ja auch, dass bis 2012 eine Übergangsfrist läuft, in der sie auf Lizenznerv verzichten können. Und bis dahin muss mal eine Alternative her. Und Google sitzt nicht nur wegen Chrome, sondern auch wegen Youtube am fettesten Hebel im Internet. Wenn die umstellen, dann werden die Browser-Hersteller alle folgen. Und tatsächlich haben sie zum Launch schon Firefox und Opera als Partner gewonnen. IE kann man mit Chrome Frame abbügeln. Bleibt nur Safari, und die paar Apple-Spacken fallen in der Statistik ja eh nicht weiter auf, wenn die keine Videos mehr kriegen. Merken die eh nicht, die haben ja auch nicht gemerkt, wie scheiße der Quicktime-H264-Encoder ist.
Rein technisch gesehen ist natürlich nicht alles Gold, was glänzt. Aber ich hoffe trotzdem, dass die x264-Leute das übernehmen und daraus einen Goldesel für uns alle bauen. Vor allem haben die auch das Knowhow, um die Spec so zu ändern, dass sie Patente vermeidet.
Update: Microsoft will in IE9 auch WebM supporten (WebM ist der Marketingname für VP8)
Nun, die haben ihre erste erfolgreiche Löschung vorzuweisen: sich selbst :-)
Ich habe nur mit Chrome probiert, mit Opera kommt angeblich das gleiche, Firefox bringt auch "No pages found". Mit elinks (Textmode-Konsole) kriegt man allerdings noch Inhalt. (via)
Update: Mir mailt gerade jemand, dass es noch geht, wenn man als Browsersprache Deutsch eingestellt hat.
Irish? Ernsthaft? Ich dachte, die sprechen da Englisch. Oder hält Chrome das für Gälisch?
The Adobe Flash plugin used on many sites degraded the performance of the browser to the point where it didn’t meet our standards.
BWAHAHAHAHA (Danke, hukl)
Update: Die sind auch in den Root-Zertifikaten von OS X, mailt mir gerade jemand.
Update: Und angeblich sind die auch bei Windows im Certificate Store.
Und so sehr ich ein Freund von Theora und vor allem Vorbis bin… Theora hat noch Probleme. Das kann man ganz gut an diesem Test-Clip sehen, den ich mal aus dem Fernsehen aufgenommen und damit encoded habe. Diese unscharfen Hintergrundschlieren bringen einen Theora-Bug zum Vorschein. Ich habe das damals auch bei Theora ins Bugtracking-System gekippt, aber keine Rückmeldung gekriegt.
Meine Hoffnung ist, dass Theora das fixt, dass Youtube dann Theora supported, und alles gut wird. Bis dahin würde ich mir wünschen, dass Firefox eine (von mir aus inoffizielle) Plugin-Schnittstelle für andere Codecs kriegt, damit man da ffmpeg anschließen kann.
Update: Und noch ein BBS-Design, das mir dankenswerterweise Simon eingeschickt hat. Sehr, sehr geil.
Klar freut sich da die Zensursula, dass die Infrastruktur schon da ist. Aber Vodafone filtert nicht DNS in Vorbereitung für Zensursula, sondern zur Profitmaximierung. Es ist auch durchaus üblich, bei "Surf-Flatrates" in Mobilfunknetzen HTTP nur mit dem User-Agent des eingebauten Browsers des Handys durchzulassen, damit keiner sein Notebook anschließt und Firefox benutzt.
Ist das alles böse und verabscheuenswürdig? Klar, keine Frage! Aber Schuld ist daran nicht Zensursula.
Auslöser war übrigens, dass der Radfahrer eine Anzeige gegen einen anderen Polizisten erstatten wollte, weil er gesehen hatte, wie ein Freund von ihm unsanft einkassiert wurde.
Ich hab das Video auch noch mal runterkomprimiert, für Leute mit weniger Bandbreite: Polizeiprügelvideo in 768x432, H.264 mit MP3, 58 MB.
Und für Firefox-User und zum Standard-Setzen als Theora+Vorbis im video-Tag (62 MB).
Update: $KUMPEL bittet mich gerade, zur Illustration noch dieses inhaltlich verwandte Bild zu verlinken :-)
Update: Wir haben das dicke Video auch noch mal auf media.ccc.de abgelegt.
Update: Ich sollte vielleicht noch erwähnen, dass ich das Video nicht geschossen habe, das war jemand aus dem CCC Berlin Umfeld. Ich hab es nur runterkomprimiert. Falls jetzt ein Spezialexperte der Staatsanwaltschaft meint, meinen Server als Beweismittel mitnehmen zu müssen: guckt mal genau hin, das liegt gar nicht auf meinem Server (lag da auch nie).
Update: Youtube (macht noch processing, aber man kann schon gucken)
Update: Der CCC wird da jetzt mal ein Exempel statuieren. Das geht ja wohl nicht, dass die auf unserer Demo unsere Besucher verprügeln. Also: Zeugen: bitte melden! An mail (at) ccc.de. Oh und wenn die Zeugen Videos gemacht haben, auf denen man was erkennen kann, dann hebt die mal bitte schön auf und schickt sie uns.
Update: Oh Mann, jetzt hat irgendein Armleuchter das Youtube-Video geflagt und Youtube will jetzt Anmeldung und Altersverifikation haben, damit man das gucken kann. NARF! Hier hat es auch jemand anderes bei Youtube hinterlegt. Und ich habe noch eine Youtube-Format-Version des OGV für Firefox gemacht. Stellt euch mal vor, wenn jemand die ganzen Polizeivideos aus dem Iran geflagt hatte. Ganz toll, liebe Youtube-Flagger.
Update: Wir fummeln gerade noch, unter welcher Creative Commons wir das rausgeben. Presse, die das verwenden möchte, ist dazu herzlich eingeladen und möge sich zur Klärung der Details unter presse (at) ccc.de melden.
Update: Die Theora-Videos sind auf einen anderen Rechner mit 100 MBit Anbindung umgezogen, sollten jetzt fixer gehen. :-(
Update: Jetzt auch bei basedrive.org, und Leute laufen gerade rum und laden das wild bei youtube, vimeo und so weiter hoch. Weitermachen!
Update: Jemand hat ein Torrent daraus gemacht.
Update: Die taz linkt auf mich und hat sogar ihre Überschrift geändert.
Update: Weil ein paar fragten: Die Nummern auf dem Rücken, das ist die Einheit, nicht die Person. Und bisher läuft das vor Gericht immer so, dass die Polizisten sich dann nicht gegenseitig belasten, auch nicht mit "also ich war es nicht", und dann kann nicht festgestellt werden, wer es genau war, und es gibt Freispruch für alle. Daher ist das ja so erfreulich, dass man auf unserem Video die Gesichter sehen kann.
Update: Vimeo.
Update: Die Zeit. Und dann ist da noch ein separates Foto von der Verhaftung für den Gesichtsabgleich aufgetaucht. Die Morgenpost twittert, dass die Berliner Polizei eine Stellungnahme zu dem Video angekündigt hat. Auf der Kölner Stadt-Anzeiger hat eine Meldung dazu.
Update: Stellt sich raus, dass man geflagte Youtube-Videos ohne Einloggen mit Kommentaren gucken kann, indem man kickyoutube.com substituiert. Guter Service!
Update: Der Tagesspiegel schreibt:
Derzeit untersucht die Berliner Polizei noch die genaueren Umstände. Nach Tagesspiegel-Informationen soll aber ein Verfahren gegen mindestens zwei Polizeibeamte wegen Körperverletzung im Amt eingeleitet werden.
*STRIKE*
Update: Hier sammelt noch jemand fleissig und ich übernehme mal von dort: eine Strafanzeige wurde gestellt (runterscrollen).
Update: Das ehemalige Nachrichtenmagazin springt auf den Zug auf und linkt auf mich! Sie haben die Fakten ein bisschen durcheinandergebracht, aber haben folgendes lustige Detail:
Die Berliner Polizei kündigte für Sonntagnachmittag, 15 Uhr eine Stellungnahme zu dem Vorfall an - bis 16 Uhr war keine erschienen. Auf Anfrage hieß es, der Kommentar verzögere sich.
Also das klingt ja für mich so, als riefe da alle zwei Minuten die DPA an, bei der Polizei, wie das denn mit der Stellungnahme sei :-) Wahrscheinlich brennt da gerade die Luft.
Update: Presseerklärung der Polizei:
Die Vorgehensweise der an der Festnahme beteiligten Beamten einer Einsatzhundertschaft, die auch in einer im Internet verbreiteten Videosequenz erkennbar ist, hat die Polizei veranlasst, ein Strafverfahren wegen Körperverletzung im Amt einzuleiten. Das Ermittlungsverfahren wird durch das zuständige Fachdezernat beim Landeskriminalamt mit Vorrang geführt.
Update: Das Video hat es über den großen Teich geschafft.
Update: n-tv hat auch was.
Update: Jetzt ist es auch bei der ARD und Sat.1 im Videotext, damit haben wir die Generation 40+ erschlossen :-)
Update: Einer der Betroffenen aus dem Video hat eine Gegendarstellung zur Pressemitteilung der Polizei veröffentlicht.
Update: Rheinische Post, DPA und damit sogar die Springer-Presse berichten!
Update: Tagesspiegel und sogar die BZ (die Berliner "Bild"-Konkurrenz) hat was. Und weil gerade Wahlkampf ist, haben auch alle "Innenexperten" eine Position dazu :-)
Update: Lief jetzt im Fernsehen, bei RBB (ARD) in der Abendschau, den Lokalnachrichten, und bei RTL. Mainstreamiger geht es wohl nicht.
Update: NEIN!!!! Die "Bild" hat einen Bericht! "Video zeigt: Polizeibeamte prügeln auf Demonstranten ein". Da mache ich mal eine Ausnahme und linke drauf. Und die Frankfurter Rundschau hat einen Kommentar.
Update: Auch völlig kaputtes Layout kann offensichtlich die Jugend nicht abschrecken, für die "Sonstigen" zu stimmen :-) Harharhar
Update: Oh und ist euch aufgefallen, dass die Farbwahl beim neuen Layout Schwarz-Grau-Orange genau die CDU-CI sind? Na SO ein Zufall!
Update: Mir mailt gerade ein Opera-User, dass das auch in Opera funktioniert.
Update: Und mit allen anderen Browsern, die CSS sauber implementieren. Auch Webkit offenbar.
curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10In der Useragent-Statistik ist das mit weitem Abstand Platz 1 im Moment, hat doppelt so viele Vorkommen wie Firefox.
Interessant ist daran, dass das alles SuSE ist, dass die Zugriffe auf die HTML-Version des Blogs gehen, nicht die RSS-Version (die man in Skripten haben wollen würde, weil die einfacher zu parsen ist), und dass die Zugriffe praktische alle nicht aus Deutschland oder auch nur deutschsprachigen Regionen kommen. Die Top 10 Quell-IPs liegen in China, Lettland, und einer bei Bell Kanada. Chinanet, da denkt man erst mal an ein Botnet. Aber das sind nicht genug Zugriffe, um als DoS zu zählen.
Hat jemand unter meinen Lesern ähnliche Zugriffsmuster woanders beobachten können oder hat eine Idee, was das sein könnte? Sachdienliche Hinweise werden gerne entgegen genommen.
Update: Nein, das ist kein Aprilscherz. Ich habe jetzt diverse Leute, die befürchten, sie seien Schuld. Die Zugriffsmuster entsprechen keiner menschlichen Nutzung, sonst hätte ich ja nichts gesagt. Da kommt sowas wie 80 Zugriffe auf / (immer die selbe URL) innerhalb von 2 Sekunden, dann fünf Sekunden Pause, dann wieder 80 Zugriffe. Da muss sich jetzt keiner Sorgen machen, dass er das mit seinem Firefox versehentlich auslöst.
Mal gucken, was die dazu sagen. Das wäre sozusagen das SSH-Sicherheitsmodell. Wir haben sowas ähnliches im Moment bei self-signed certs, dass er sich das Zertifikat merkt und später nicht mehr rumheult, wenn das gleiche Cert wieder kommt. Nur wenn dann jemand MITM mit einem Cert von Verisign macht später, dann kriege ich das nicht mit, dass das nicht mehr das self-signed cert ist, dem ich mal vertraut habe.
Und das schockierende: vor mir hat das offenbar noch keiner gemerkt. Ich bin anscheinend der einzige, der Firefox aus den Sourcen kompiliert und dann auch Bugs filed, wenn was nicht klappt.
Übrigens: kann ich noch nicht empfehlen. Erstens ist der Javascript JIT offenbar nur für x86, nicht für x64-64, und zweitens gehen natürlich mal wieder die ganzen Add-Ons nicht mehr.
Option "AccelMethod" "EXA"in der Device-Section im xorg.conf. Ist auch im gerade heraus gekommenen Xserver 1.4.2 noch kaputt in XAA.
Und hier ist noch so ein krankes Projekt: Eine Java VM in Javascript.
Bemerkenswert an dem Angebot sind folgende Details:
Ohne irgendwas davon mal in Aktion gesehen zu haben, maße ich mir mal folgende Glaskugel-Aussagen an:
Update: noch was vergessen: die verkaufen der Polizei auch gleich zwei (!) Proxy-Server zum Verschleiern der IPs. Zwei! Das finde ich bemerkenswert. Hat wohl doch mal jemand aufgepaßt bei unseren Tor-Vorträgen :-)
"I can't believe that your company would allow people to make money from something that you allow people to have free access to. Is this really the case?" she asked."If Mozilla permit the sale of copied versions of its software, it makes it virtually impossible for us, from a practical point of view, to enforce UK anti-piracy legislation, as it is difficult for us to give general advice to businesses over what is/is not permitted."
Oooooh die armen Briten und ihre Piratengesetze. (Danke, Ramon)
Ziel sei es, das "Auktionserlebnis für Firefox-Nutzer in Deutschland, Frankreich und Großbritannien noch einfacher zu gestalten"AAAAAAARGH! OK, was jetzt? Konqueror? KOTZ!
Also ich bin ja fast zu wetten gewillt, daß das irgendeine DRM- oder Copyright-Enforcement-Kacke ist, an dem das wieder hängt. Irgendein Antidebug-Scheiß vielleicht? Mann Mann Mann. Das ist selbst für Apple-Verhältnisse schlecht, und hey, das heißt was.
Update: Oh, hier ist noch was schönes:
In light of the recent extremely long article about how cool Macs are, I figured I would provide instructions on how to wreck a brand spankin' new not-even-off-the-shelf Apple Macintosh computer.
- Go to the Apple store.
- Get on a brand new computer.
- Run the Calculator widget.
- Type 99999999*99999999 in the widget.
- Hold down the Enter key until the numbers stop changing.
Voila.
# -fstack-protector breaks usJa, richtig gelesen, Firefox (der Browser, den ihr alle einsetzt), kann nicht mit Stack Protection kompiliert werden, weil die Codebasis zu scheiße ist.
if gcc-version ge 4 1; then
gcc-specs-ssp && append-flags -fno-stack-protector
else
gcc-specs-ssp && append-flags -fno-stack-protector-all
fi
filter-flags -fstack-protector -fstack-protector-all
Daß Firefox nicht baut liegt im Übrigen noch an was anderem. Der Linker heult rum, ich hätte -fPIC nehmen sollen (was ich getan habe), und wenn ich --enable-static --disable-shared sage, baut er trotzdem shared libraries und heult wegen -fPIC an.
Update: Hat sich geklärt, wieso der nicht gebaut hat. gcc 4.1.1 (die aktuelle Release-Version mit dem höchsten Versionsstand) hat ein Symbol Hiding Feature; das ist offenbar kaputt. Diverse Distros haben ihren gcc mit der funktionierenden Version aus dem CVS hochgepatcht. Ich nicht. Das configure von Firefox hat einen Check, der das erkennen will, aber nicht funktioniert. Wenn ich config.cache manuell editiere, damit er glaubt, gcc sei kaputt, dann baut Firefox plötzlich. Heißt aber auch nicht mehr Firefox, sondern "Bon Echo". WTF?!
free called on non-malloced pointer 0x2aaaaeb11010!?Au weia! Und 70k Beschwerden über frees auf Pointer, die nicht aus malloc oder realloc kamen. ELF garantiert, daß auch libc-interne Aufrufe wie z.B. aus opendir/closedir und so umgelenkt werden, insofern bin ich echt am Staunen gerade, wie es dazu kommen kann. Auf jeden Fall bogus ist obiger free jedenfalls, diese Adresse liegt auf dem Stack. Wenn sowas einem free() übergeben wird, ist das ein major fuckup und kann auch Sicherheits-Konsequenzen haben. Mann Mann Mann, die Software um uns rum ist echt voll für den Fuß.
Coincidence? I think not!
Ich gehe also mit Firefox zu deren Site, versuche das zu ziehen, und lande bei einer Seite, bei der ich mich mit meinem Sun Account einloggen soll. Frechheit, aber hey, was tut man nicht alles, um sich qualifiziert über Sun aufregen zu können. Ich habe noch einen Account rumliegen, weil ich mir mal Java gezogen habe (schwerer Fehler, rückblickend), aber die Site hat keine Eingabefelder. Firefox 2 zeigt bei dieser Site keine Eingabefelder. Man sollte denken, daß so ein Problem schon mal jemandem aufgefallen wäre, aber offenbar nicht. Ich gehe also mit Konqueror (!!) zu dieser Site, gebe die Daten ein, und copy+paste die URLs in wget. wget erhält 15 Redirects von Sun und beendet sich dann mit "filename too long". Hach, großartig. Professionelle Datenverarbeitung. Kein Wunder, daß die jetzt lieber aufs Containergeschäft umsteigen.
Eine von Mozilla angestoßene Untersuchung der in Firefox 2 und Internet Explorer 7 integrierten Phishingfilter kommt zu dem Ergebnis, dass der Firefox-Filter überlegen sei. Eine von Microsoft finanzierte Studie kommt zu anderen Ergebnissen.
Und die stellen das auch noch als Vorteil dar, daß die Paßwörter nirgendwo gespeichert sind! Das muss man sich mal überlegen, bei dieser "neuen" "Technologie" muss nur noch ein Shoulder Surfer beobachten, wie das Paßwort eingegeben wird, er muss noch nicht mal per Trojaner irgendeine Datei von dem Rechner klauen! Er muss nicht mal in der Nähe des Terminals sein oder auch nur die IP-Adresse davon raten können! Wie können die diesen offensichtlich Mumpitz als Innovation verkaufen?! Unsere IT-Presse ist echt eine Lachnummer vor dem Herrn. Meiner Ansicht nach hätten die laut ausgelacht gehört, und das auch erst dann, wenn sie nach aktivem Ignorieren nicht von alleine weggehen. Unfaßbar.
gatlings Logformat verteilt seine Zugriffe auf mehrere Zeilen, damit man Statistiken über Sachen machen kann, die man sonst nicht sehen kann. Hier ist ein Beispiel:
Hier kann man an den Zeitstempeln sehen, wie viel Zeit zwischen dem Connect und der eigentlichen Anfrage vergangen ist (und so z.B. sehen, wenn jemand nur connected, dann keine Anfrage stellt, aber die Verbindung offen hält). Für eine Referrer-Analyse. Der Nachteil ist: wenn man nach GET grept, sieht man nicht die verbindende IP-Adresse. Daher habe ich ein kleines Skript namens "acc.pl" gehackt, das das zurück zuordnet. Kein Ding, 24 Zeilen, der formatiert auch noch etwas um.@400000004482340c3386c9cc accept 33 217.20.118.153 38748 1
@400000004482340c33933d4c GET/CGI 33 /rss.xml 0 Mozilla/5.0_(Windows;_U;_Windows_NT_5.1;_en-US;_rv:1.7.10)_Gecko/20050716_Firefox/1.0.6 [no_referrer] blog.fefe.de
@400000004482340c3395d174 cgi_fork 33 62 25805
@400000004482340d27f174cc cgiproxy_read0 62 159 10101
Die zweite Aufgabe ist etwas involvierter, nämlich soll da geguckt werden, welche Links extern referenziert werden. Ich möchte sehen, wer auf meine Meldungen linkt, welche Meldungen besonders häufig verlinkt werden, und von wo sie am meisten Hits zu mir tragen. Das ist gut, weil ich so auch Missbrauch sehen kann, wie z.B. als ich neulich über 1000 Hits pro Tag von irgendwelchen Foren-Sites auf ein Bild bei mir hatte. Dieses Skript nannte ich "deep-links", und es ist ähnlich komplex, 34 Zeilen perl. So, und jetzt schaut euch mal das typische Zeitverhalten an:
Gut, die Kiste ist nicht die schnellste, und das waren die Logdaten von mehreren Tagen, ein paar MB kommen da zusammen. In C ist das deutlich komplexer, weil es da keinen System-Hashing-Code gibt, und weil man da mehr Error Checking machen muss und mehr explizit hinschreiben muss, und so ist acc.c 136 Zeilen lang, und referrer.c 190 Zeilen. Ein deutlicher Sprung in Komplexität, keine Frage, aber schaut euch das Zeitverhalten für die selben Daten auf dem selben Rechner an:perl ~/acc.pl 5.99s user 0.07s system 81% cpu 7.449 total
deep-links 1.23s user 0.06s system 17% cpu 7.560 total
Und das ist der Grund, wieso perl und co ja ganz nett sind, aber man am Ende eben doch C nehmen will.acc 0.40s user 0.05s system 78% cpu 0.574 total
referrer 0.06s user 0.02s system 13% cpu 0.573 total
Python und Ruby sind übrigens noch viel langsamer als perl, von PHP mal ganz zu schweigen.
Eine andere häufig gehörte Ausrede ist, daß das ja keine Rolle spielt, ob eine kurze Aufgabe 0.2 oder 2 Sekunden braucht, das sei ja weniger Unterschied, als man bräuchte, um sich darüber aufzuregen. Das halte ich für groben Unfug. Es gab da Studien, aber mal von mir ganz persönlich aus gesprochen: auf den Computer warten zu müssen macht schlechte Laune. Das macht sogar so viel schlechte Laune, daß die Leute sich alle paar Jahre neue kaufen, obwohl ihr alter noch prima funktioniert. Schon eine halbe Sekunde ist spürbar zu langsam. Ich habe mal mit einem Aktientrader zu tun gehabt, und der hatte für seine Software das Ziel, daß die Software schneller den Bildschirm updaten (und auf Tastendrücke reagieren) muss, als der Bildschirm für seinen Refresh braucht. Das ist jetzt viele Jahre her, daß ich mit dem Mann zu tun hatte, aber denkt mal drüber nach. Im Grunde hat er Recht. Wenn ich auf meinem Rechner 5 Megabyte Logs durchgefummelt haben will, dann ist es bei 1,8 GHz nicht vertretbar, daß ich da länger als ne Sekunde drauf waren muss.
Jedenfalls, bei dem Benchmark ist ihre eigene Technologie natürlich das schnellste auf dem Markt, aber Cairo hat ungefähr 20-25% der Performance von GDI+. Wie peinlich ist DAS denn bitteschön!? Von Windows-Steinzeit-GDI überholt zu werden!? Oh Mann. Manchmal wünschte ich mir, es gäbe da so eine Darwinistische Grundeinstellung wie bei den Japanern, daß sich solche Leute dann einfach in einem stillen Stüblein entleiben und gut ist. Unfaßbar. Zumindest muss man da Modalitäten für Schadensbegrenzung finden. Bei solcher Infrastrukturarbeit ist es ja kein Wunder, daß Firefox unter Windows eine Größenordnung flinker wirkt als unter Linux.
Prozentuale Aufteilung:
Wenn man mit KDE zu einer Webseite mit 100 Bildern geht, startet KDE n I/O slaves, bei mir so um die 20. Jeder von denen macht ein DNS-Lookup auf, sagen wir, bilder.spiegel.de, und zwar pro zu ladendem Bild. Wenn man, wie ich im Moment, über einen schrottigen Netgear-"Router" eingewählt ist, der per DHCP sich selbst als DNS-Server proklamiert, aber kein Caching macht, nur 8 Slots hat (oder so), und darüber hinaus gehende Anfragen einfach weg wirft, ergibt sich das Ergebnis, daß die Hälfte der I/O Slaves auf DNS-Antworten wartet. Firefox hat intern einen DNS-Cache und macht Connection Keep-Alive, d.h. holt die Bilder alle über eine HTTP-Verbindung, muss daher nur einmal einen DNS-Lookup machen am Anfang beim Aufbau der Verbindung.