Stranger Than Usual

Auch nicht in Ordnung

Vor ein paar Wochen habe ich einen Artikel geschrieben, in dem es darum ging, dass manche Sachen nicht normal, nicht akzeptabel und nicht in Ordnung sind, auch wenn sie gerade überall passieren, und viele Leute das einfach so hinnehmen.

Die Idee dahinter war, dass wir an dem Gedanken festhalten müssen, dass diese Dinge nicht in Ordnung sind und wir uns nicht daran gewöhnen dürfen.

Die komplette Liste ist leider sehr lang, was dabei hilft, unakzeptable Dinge einfach zu vergessen. Hier nur ein paar aktuelle Dinge zum Thema Gewaltenteilung:

Zusammengefasst: Es ist, sehr milde ausgedrückt, nicht normal und nicht in Ordnung, sämtliche Gewalten außer der Exekutive zu demontieren. So etwas hatten (und haben) wir weltweit genug. Das nennt sich Diktatur.

PS: Hier noch ein paar andere, weniger weltbewegende Sachen, die auch nicht in Ordnung und nicht akzeptabel sind:

  • Menschen mit Visa an der Grenze festzuhalten, zu foltern und auszuweisen
  • Menschen ohne Visa an der Grenze festzuhalten, zu foltern und auszuweisen
  • Menschen in ein auszuweisen, in denen ihnen der Tod droht, sei es aus Hunger order politischer Verfolgung
  • Menschen zu deportieren, die jahrelang in einem Land gelebt haben
  • Geflüchtete wie Menschen zweiter Klasse zu behandeln und sie jahrelang unter schlechtesten Bedingungen in irgendwelche Camps zu sperren
  • und im weitesten Sinne: überhaupt Menschen zu deportieren, auszuweisen oder aufzuhalten, nur weil sie auf der falschen Seite einer imaginären Linie geboren wurden.

Lilith Wittmann vs. Online-Casinos

Meine Lieblingskrawallinfluenzerin/Hackerin Lilith Wittman hat mal wieder zugeschlagen. Sie hat ja ein Talent dafür, ungesicherte Datenschnittstellen zu finden. Dieses Mal hat sie festgestellt, dass die Merkur-AG, die Online-Casinos betreiben, ihre Spielerdaten ungesichert im Netz stehen hatten. Lest es euch selbst durch. Auch auf heise.de hat sie dazu ein Interview gegeben.

Nebenbei hat sie auch herausgefunden, dass Töchter der Merkur-AG illegale Online-Casinos betreiben. Und dass die Schnittstelle für Ein- bzw. Auszahlungen auf Benutzerkonten auch nicht gesichert ist. Eigentlich sollten zumindest AUszahlungen noch einmal manuell geprüft werden, aber auch das wird nicht ordentlich gemacht, und so hat Lilith Wittmann aus Versehen 200€ von einem illegalen Casino abgebucht und weiß jetzt nicht, wie sie die zurückgeben soll.

Links und Landkarten

Eigentlich müsste der Titel „Links und eine Weltkarte“ sein, aber ich mag Alliterationen. In der Anfang Februar erschienenen Folge des Podcasts Irmimi (Irgendwas mit Mittelalter) von Katrin Stupp ging es um die Ebstorfer Weltkarte, einer Weltkarte aus dem 13. oder 14. Jahrhundert. Die Karte ist groß (etwa 3,57m Durchmesser), das Original wurde im zweiten Weltkrieg zerstört (es wurden danach Faksimilia angefertigt). Hört euch für mehr Details die Folge an.

Nun ist in den Shownotes der Folge auch eine digitale Ansicht der Karte im Museum Lüneburg. Anfang Februar muss der noch funktioniert haben. Als ich die Folge am 22.3.2025 angehört und mir danach die Karte anschauen wollte, kriegte ich von der Museumsseite einen 404-Fehler. Der Text auf der Website:

Es tut uns leid, die von Ihnen gesuchte Seite ist nicht verfügbar! Derzeit arbeiten wir an unserer neuen Webpräsentation. Seien Sie gespannt!

Ich glaube, den Leuten ist nicht bewusst, was sie alles zerstören, wenn sie ihre URLs ändern. Es ist möglich, eine neue Webpräsenz einzurichten, ohne alle Links zu zerstören, die auf die alte Seite zeigen. Damit macht man das Web kaputt. Die Stärke des Webs sind Links. Wenn man Links unbrauchbar macht, macht man das Netz kaputt. Das erzeugt Frustration bei Benutzern, die den Inhalt, der verlinkt ist, nicht mehr finden, und bei den Websitebetreibern, weil die Nutzer nicht mehr zu ihnen kommen. Wie das W3C schon geschrieben hat: Cool URIs don't change.

Scheibenwelt-Webarchäologie

Vor ein paar Jahren habe ich von einem damaligen Kollegen einige alte Scheibenweltbücher übernommen. Der Kollege brauchte Platz, ich ich habe ihm die Bücher abgenommen, die ich noch nicht hatte (obwohl ich sie schon gelesen habe).

Darunter auch eine englische Ausgabe von The Truth aus dem Jahr 2001. Neulich habe ich dieses Buch noch einmal gelesen. Auf der letzten Seite war noch eine Anzeige für „the discworld fanzine The Wizard's Knob“. Das schien ein gedrucktes Werk zu sein, jedenfalls sollte man dafür der Autorin einen Briefumschlag zuschicken.

Viel interessanter ist, dass darunter auch eine Web-Adresse steht: 'http://fly.to/discworld'. Nun, das ist interessant. 2001 war, was das Web anging, eine andere Welt. Die Dotcom-Blase war im Jahr davor geplatzt. Das Web war trotzdem immer noch neu und shiny, und mit der geplatzten Investitionsblase war der Hype-Zyklus vermutlich gerade irgendwo zwischen dem „Tal der Enttäuschung“ und dem „Plateau der Produktivität“. Das Web war nicht mehr komplett jung und unschuldig, aber es war eine Zeit vor den sozialen Medien, bevor große Konzerne den größten Teil des Internets beherrschten (es war auch eine Zeit, in der mit HTTPS gesicherte Verbindung eine absolute Seltenheit waren).

fly.to war damals, so wie es aussieht, ein URL-shortener. http:/fly.to/discworld leitete auf diese GeoCities-Seite weiter.

GeoCities war damals ein Freehoster, wo man kostenlos (statische) Websites hochladen konnte. Wie gesagt, das war vor Facebook, und auch noch vor Myspace. Wenn man günstig eine eigene Website haben wollte, ging man halt zu GeoCities. Ich weiß, das klingt jetzt ein bisschen romantisierend, aber damals gab es mehr (auch technisch nicht so versierte Leute), die sich einfach mal eine eigene Website gebastelt haben. Heute gehen halt alle zu einem der großen Anbieter, machen sich da einen Account, laden ihren Krams hoch. Das ist bequemer, hat aber nicht den Charme einer selbst zusammengeschusteter Website.

Die Qualität der Websites auf GeoCities war dementsprechend durchwachsen. Ein Klassiker war ein gelb-schwarzes „this site is under construction“-Banner, dass auf vielen Seiten zeitweise (auf manchen auch dauerhaft) zu sehen war. Das Webdesign war… naja, das Webdesign des frühen Internets halt. Und GeoCities halt halt auf den Seiten Werbung eingeblendet, um das ganze zu finanzieren (das war noch die alte Internetwerbung, nicht personalisiert).

Die Scheibenweltseite hat kein „under construction“-Banner. Allerdings ist das Design ziemlich genau das, was man vom Web in dieser Zeit erwarten würde. gekachelte Hintergrundbilder, komisches Layout (schaut es euch an!), eine Landing-page die nicht viel aussagt, aber Terry Pratchett auf einem Motorrad zeigt und ansonsten nur einen Link zum eigentlichen Inhalt anbietet.

Die Seite ist eine umfangreiche Fanpage zur Scheibenwelt im Speziellen und zu Terry Pratchett im Allgemeinen. In mir persönlich weckt sie Nostalgie. Damals habe ich selber gerade angefangen, im Web zu surfen (gefühlt recht spät, muss ich sagen). Das Web war ein anderes damals. Viel davon ist natürlich durch die Nostalgiebrille verklärt, aber es gab wirklich einige Aspekte, die schöner waren. Zum Beispiel viel mehr kleine Fanseiten wie diese (von denen einige auch auf der Seite verlinkt sind). Weniger riesige Techkonzerne, die den größten Teil des Internets kontrollieren.

Davon geblieben ist nicht viel. GeoCities wurde irgendwann eingestellt, die Seiten von damals sind nur noch in Archiven zu finden. 'fly.to' macht heute Werbekampagnen und ist kein URL-Kürzer mehr (PSA: vermeidet URL-Kürzer! Das sorgt nur dafür, dass eure Links irgendwann kaputt gehen, so wie dieses Jahr Googles URL-Kürzer). Alles, was noch auf diese Scheibenwelt-Fansite hinweist ist eine gedruckte URL in einem über zwanzig Jahre alten Buch.

Papier überlebt länger als viele Dinge im Web. Vielleicht sollte uns das zu denken geben, wie viel von unserer Gegenwartskultur für die Nachwelt erhalten bleibt. Papier ist geduldig. Digitale Daten sind auf so vielen Ebenen flüchtiger. Denkt daran, wenn ihr irgendwo Daten hinterlegt, von denen ihr wollt, dass sie erhalten bleiben.

Unbelievable Shitshow of America

Es kommt ja gerade wieder Schlag auf Schlag. Nicht nur aus den USA. Ich kann nicht zu jedem Thema etwas schreiben, zu dem ich etwas zu sagen habe und ich habe nicht zu jedem Thema etwas Sinnvolles zu sagen, zu dem ich schreibe. Aber schauen wir uns mal ganz kurz die USA an.

Zum Einen scheint Trump gerade wütend auf Putin zu sein. Hat er es endlich eingesehen? Wenn ich auf Trumps bisheriges Verhalten sehe, dann nein. Trumps aufgeblasenes Ego kann einfach nicht damit ab, dass jemand auf seine Deals nicht eingeht. Das gleiche Verhalten zeigt er auch bei Verhandlungen mit Kanada, Europa, Mexiko und eigentlich allem und jedem. Wenn es nicht genau nach seinem Willen geht verhält er sich wie ein Kleinkind, schreit herum und beleidigt seine Gegner. Das bedeutet nicht, dass er jetzt endlich verstanden hat, worum es in der Ukraine geht. Es wurde einfach nur sein Ego verletzt.

Die beiden anderen Nachrichten sind besorgniserregender: Erstens: Trump schließt nicht aus, Grönland militärisch zu übernehmen. Genauer gesagt: Er ist sich zu 100% sicher, dass er Grönland bekommen wird, diplomatisch wenn möglich, militärisch wenn nötig. Formulieren wir das mal anders: Der Präsident der USA droht Dänemark mit Krieg, wenn die nicht Grönland an ihn abtreten.. Das ist es. Unbeschönigt. Trump droht einem NATO-Bündnispartner mit Krieg, wenn der ihm nicht eine Insel überlässt. Argumentiert das mit Sicherheit, obwohl die USA schon Militärbasen auf Grönland haben.

Die andere Nachricht: Trump spekuliert über Möglichkeiten, eine dritte Amtszeit als Präsident zu bekommen. In den USA dürfen Präsidenten nur zwei Amtszeiten haben (sollten wir bei uns für die Bundeskanzlerin auch mal einführen). Und Trump kokettiert jetzt öffentlich mit dem Gedanken. Zitat: „No, no, I’m not joking. I’m not joking“.

Ich könnte jetzt versuchen, das abzumildern. „Er spielt ja nur mit dem Gedanken“, „Er hat ja nicht gesagt, dass er es macht.“. Ok, dann bringen wir das mal in den Kontext seines Wahlkampfes in 2020: Hier ist er der Frage ausgewichen, ob der eine Wahlniederlage akzeptieren würde. Er hat nie explizit gesagt, dass er eine Wahlniederlage nicht akzeptieren würde. Er hat „nur“ gesagt, dass er nur verlieren kann, wenn die Wahl gefälscht werde, dass die Wahl vor Gerichten entschieden würde oder hat einfach abgelenkt.

Kein einziges Mal hat er gesagt, dass er eine Niederlage nicht akzeptieren würde. Aber genau das ist passiert. Am 6. Januar 2021 hat er seine Anhänger zu einem Sturm auf das Kapitol aufgehetzt um die formelle Bestätigung von Bidens Wahlsieg zu verhindern.

Trump wird Grönland angreifen, wenn ihn niemand davon abhält. Und Trump wird eine dritte Amtszeit anstreben, wenn ihn niemand davon abhält. Das sollten wir und insbesondere unsere Politiker im Kopf haben, wenn wir mit Trump verhandeln.

Blogartikel? Nachrichtenwebsite? Bitte nur mit Datum!

An alle, die ein Blog, eine Nachrichtenwebsite oder etwas ähnliches betreiben: Schreibt bitte, bitte, bitte, verdammt noch mal ein Datum an jeden Artikel. Muss nicht einmal die Uhrzeit haben. Tag reicht. Bonuspunkte, wenn es im HTML auch ein <time>-Tag benutzt. Das ist aber zweitrangig.

Wenn ihr die Seite nicht selber gestalten, sondern nur dort posten könnt und die Seite kein Datum vorsieht: Bitte das Datum einfach dazuschreiben.

Es ist nämlich wirklich ätzend, ständig Artikel zu lesen, bei denen kein Datum steht. Bei Nachrichten weiß ich nicht ob es aktuell ist oder von vor vier Jahren. Bei technischen Artikeln kann ich nicht einschätzen, ob der Artikel vielleicht schon wieder veraltet ist. Bitte schreibt ein fucking Datum an eure Artikel!

Zwei Studien zum Verkehr

Ich dumpe hier einfach mal Links zu zwei Studien hinein, hauptsächlich, damit ich die wiederfinde, wenn ich die mal zum Argumentieren brauche.

Zum einen ist da diese Pressemitteilung des deutschen Instituts für Urbanistik. Die haben sich einige Studien aus dem In- und Ausland angeschaut und festgestellt:

Die Analyse der empirischen Studien aus dem In- und Ausland zeigt, dass es keinen ursächlichen Zusammenhang zwischen Verkehrsberuhigungsmaßnahmen und einer wirtschaftlichen Schlechterstellung des Einzelhandels gibt.

Die Studien und Praxisberichte zeigen vielmehr: Ein attraktiver öffentlicher Raum zieht Menschen an, lädt zum Bummeln und Verweilen ein und kommt damit auch dem Einzelhandel zugute.

Das ist wichtig. Ich lese nämlich auf der einen Seite immer wieder Berichte, wie Einzelhändler gegen Radwege, Parkplatzabbau vor dem Laden oder ähnliches protestieren und auf der anderen Seite, wie froh Einzelhändler sind, dass diese Maßnahmen gemacht wurden, obwohl sie vorher dagegen waren. Bisher hatte ich da aber immer nur anekdotische Beweise. Jetzt habe ich etwas Konkretes, worauf ich hinweisen kann, wenn ich das nächste Mal von solchen Protesten höre (oder wenn die FDP mal wieder vorschlägt, Fußgängerzonen abzuschaffen).

Das andere ist eine Studie zum Deutschlandticket. Da steht u.a. drin:

  • das Deutschlandticket hat eine Verlagerung vom Autoverkehr auf den ÖPNV bewirkt
  • Deutschland dadurch eine ganze Menge Geld spart (wenn ich das richtig verstehe mehr, als den Staat das Ticket kostet)

Teil des Fazits:

Das Deutschlandticket kann ein wichtiger Impuls für die Verkehrswende sein, es ist aber nicht alleine in der Lage, die Verkehrswende herbeizuführen oder die Klimaziele zu erreichen. Dazu bedarf es weiterer Maßnahmen. Allerdings sind die Potenziale des Tickets noch nicht erschöpft. Der ab 1.1.2025 geltende höhere Preis (58 Euro) und die Unsicherheit über die Zukunft des Tickets unter einer neuen Bundesregierung bringen gleichzeitig das Risiko mit sich, dass die positiven Wirkungen überproportional verloren gehen, umso mehr, wenn eine verlässliche Weiterführung gefährdet erscheint und weiterhin starke Preiserhöhungen in Aussicht gestellt werden.

Mit anderen Worten: schlechte Idee, den Preis zu erhöhen, besser: Ticket langfristig absichern. Ich kann noch hinzufügen: und den ÖPNV verbessern, so dass Leute ihn noch lieber benutzen wollen.

Stupid Wednesday

Aus aktuellem Anlass hat tagesschau.de eine Auflistung der größten Börsencrashes seit 1929. Schauen wir uns doch mal polemisch an, was die Ursachen waren.

Börsencrash 1929 (Black Thursday / schwarzer Freitag): Zu viele Leute haben über Jahre zu hohe Kredite aufgenommen, die sie nicht zurückzahlen konnten. Als die Wirtschaft zusammenbrach konnten noch mehr Leute ihre Kredite nicht zurückzahlen.

Börsencrash 1987 (schwarzer Montag): Viele verschiedene Gründe, längerfristige Fehlplanungen, Fehlentscheidungen, verstärkt durch Computerisierung

Börsencrash 2000 (Platzen der Dotcom-Blase): Das Internet wurde gehyped, es hat sich eine Investitionsblase um alle Unternehmen gebildet, die irgendwas mit dem Internet machen, die Unternehmen waren aber bei weitem nicht so viel wert wie für die Aktien bezahlt wurde. Klassische Blase.

Weltfinanzkrise 2008: Banken über den ganzen Globus verteilt haben sich über Jahre hinweg verzockt bis das ganze zusammenbrach.

Wirtschaftskrise 2020/2021 (Covid-19-Pandemie): Globale Pandemie

Börsencrash 2025: Der Weltwirtschaft ging es ganz in Ordnung bis Donald Trump völlig willkürliche Zölle gegenüber praktisch allen bewohnten Ländern (und einigen unbewohnten Inseln) erhob.

Können wir uns darauf einigen, dass der letzte Crash hier dümmste Wirtschaftskrise ist, die wir bisher hatten? Praktisch alle anderen Weltwirtschaftskrisen entstanden, weil entweder zu viele Leute kleine bis mittlere Dummheiten begangen haben oder es einen unerwartete Katastrophe gab (z.B. Covid-19). Diese hier enstand, weil der Präsident der USA den Unterschied zwischen Handelsdefizit und Betrug nicht kennt, keine Ahnung hat wie Zölle funktionieren aber sie trotzdem nach dem Gießkannenprinzip verteilt.

Viele der Wirtschaftskrisen haben so dramatische Namen: „schwarzer Freitag“, „Tulpenmanie“, „Dotcom-Blase“… Ich finde, wir sollten der hier auch einen Namen geben. Angelehnt an John Olivers „Stupid Watergate“ nennen wir die hier „Stupid Wednesday“.

Android, Nextcloud OsmAnd und ein GPX-Track

Ich war kürzlich im Urlaub. Wir haben einige schöne Wanderungen gemacht, und ich habe für ein paar dieser Wanderungen auch die Geokoordinaten der Wanderung aufgezeichnet. Dafür habe ich OsmAnd benutzt, eine Android-App, die Kartenmaterial von Openstreetmap verwendet (es gibt auch Tracker ohne Kartenmaterial, aber ich fand es praktisch, die Route dann direkt auf der Karte zu sehen).

Damit ich diese Aufzeichnungen nicht verliere, wenn meinem Phone etwas zustößt, habe will ich sie zu meiner privaten Nextcloud-Instanz hochladen, und zwar automatisch. Auch dazu gibt es eine praktische Android-App. Dort kann man einen Ordner angeben, aus dem alle erstellten Dateien automatisch hochgeladen werden.

OsmAnd speichert die Tracks im GPS Exchange Format, einem verbreiteten Format. Sollte also alles eigentlich einfach sein, oder? Aber die Tatsache, dass ich diesen Blogpost schreibe ist ja ein klarer Hinweis, dass dem nicht so ist.

OsmAnd speichert die Daten in seinem App-Verzeichnis, also /Android/data/net.osmand.plus/files/tracks/rec. Auf dieses Verzeichnis dürfen aber keine anderen Apps zugreifen. Ist vermutlich ein Sicherheitsfeature und das Problem ist den Nexcloud-Entwicklern bekannt, sie können aber nichts machen:

Not even file managers (including the android built-in Files) can see inside Android/data. There may be some phones in which this works, but generally it is not expected to work. Additionally it would take a significant work for us to even start integrating this, as it would mean interacting with the filesystem in a different way than we do currently.

Nun gut, mein file manager kann das, aber ich habe auch /e/OS als Android-Variante. Andere Apps können dort trotzdem nicht zugreifen.

Ärgerlich. Benutzerdaten im Verzeichnis des Programms anstatt im allgemeinen Benutzerverzeichnis abzulegen hat selbst die Windows-Welt schon 2001 mit Windows XP hinter sich gelassen (was zu einigem Ärger mit älteren Spielen führte, die ihre Daten unbedingt im – nun schreibgeschützten – Programmverzeichnis ablegen wollten).

Also, was tun? Man kann doch sicher in OsmAnd umstellen, wo wie Tracks abgelegt werden sollen. Also Menü → Trip recording… ne, da ist nichts. Vielleicht Menu → Settings → [Profil auswählen] → Trip recording? Ah, da ist es! „Track storage folder“. Allerdings… kann man da keinen beliebigen Ordner einstellen. Der größte Teil des oben genannten Pfades bleibt konstant, nur den Ordner rec ganz am Ende kann man ändern in „Store recorded tracks in monthly folders“. Will ich nicht.

Ein verzweifelter Versuch, einen Ordner im allgemein zugänglichen (sofern Erlaubnis dafür erteilt wurde) Bereich anzulegen und dann per Kommandozeilen-App einen Symlink dorthin in das OsmAnd-Verzeichnis zu legen scheiterte daran, dass die Kommandozeilen-App natürlich auch keinen Zugriff auf /Android/data kriegt.

Die letzte Rettung wäre vielleicht, unter Menü → Settings → OsmAnd settings → Data storage Folder den Speicherort für alle OsmAnd-Daten zu verschieben, aber ich will ja nur die Tracks, außerdem muss ich dann vielleicht ja alle Karten neu herunterladen oder manuell verschieben oder so, weil die ja auch in dem Ordner gespeichert sind.

Also bleibt mit nur, alle tracks manuell zu exportieren und zu importieren, damit sie dann hochgeladen werden. Doof.

Street Art Utopia

In den letzten Monaten ist mir immer wieder die Seite Street Art Utopia untergekommen. Dort gibt es viele Fotos zu Straßenkunst aus verschiedensten Gegenden.

Da die Bilder dort nicht unter einer freien Lizenz stehen (soweit ich erkennen kann), kann ich sie hier nicht wiedergeben, aber ich kann auf sie verlinken. Hier ein paar meiner Lieblingsbildersammlungen:

Furchtbare Passwortrichtlinien bei der Bundesagentur für Arbeit

Ich musste vor Kurzem einen Account bei der Bundesagentur für Arbeit anlegen. Ein Account braucht irgendeine Authentifizierung, traditionell ein Passwort. Zunächst einmal die positiven Seiten: Man muss zwar ein Passwort nutzen, muss aber nach Anlegen des Accounts entweder einen zweiten Faktor (TOTP) hinzufügen oder kann einen Passkey anlegen. Die Mindestlänge des Passworts ist mit 12 Zeichen angemessen, aber nicht übertrieben hoch.

Aber ich würde diesen Blogpost nicht schreiben, wenn ich nicht etwas zu meckern hätte. Ich habe mich ja früher schon über doofe Passwortregeln ausgelassen. Andere Leute auch, z.B. Jeff Atwood vor 20 Jahren, Bruce Schneier und andere Experten. Deswegen sollte es keine Überraschung sein, dass ich hier mal wieder über furchtbare Passwortregeln herziehen muss. Und zwar die schlimmsten, die mir bisher untergekommen sind (von Spielen wie Password Purgatory mal abgesehen):

Eine Liste von Passwortkriterien. Darunter die üblichen Verdächtigen (Groß-/Kleinschreibung, Ziffern, Sonderzeichen) aber auch „Keine unerlaubten Zeichen“

Als Erstes ist das natürlich ein Rundumschlag über alles, was man als Pflicht ins Passwort nehmen muss. Großschreibung, Kleinschreibung, Ziffern und Sonderzeichen. Für mich hat aber „Keine unerlaubten Zeichen“ den Vogel abgeschossen. Denn erst einmal ist das eine dumme Regel, wenn man sichere Passwörter ermöglichen möchte. Und zum Anderen steht nicht dabei, welche Zeichen nicht erlaubt sind.

Ich wäre das ja einfach übergangen, hätte ich nicht die Komfortfunktion von Firefox benutzt und mir ein sicheres, zufälliges Passwort generieren lassen. Nehmen wir mal Beispielsweise an, das wäre 6=kjW.s%Ka3N$>N gewesen (war es nicht, das hier stammt aber auch von Firefox). 15 Zeichen, alles druckbare ASCII-Zeichen, bunte gemischte Groß- und Kleinschreibung, Sonderzeichen, unmöglich zu merken (aber wozu hat man Passwortmanager), das ganze Programm. Was sagt die BA-Seite?

Die sagt: „Geht nicht, da sind unerlaubte Zeichen drin“. Welche Zeichen sind nicht erlaubt? Muss ich das jetzt echt manuell nachprüfen? Ein anderes, von Firefox generiertes Passwort, V"YP6YdxNV;"CTj, ist auch nicht erlaubt (enthält keine Ziffern). pwgen 12 liefert mir so twas wie Igah9aeli1ba. Da fehlt dann das Sonderzeichen. Nun könnte ich mir natürlich die Manpage von pwgen durchlesen und mit der Option -y noch Sonderzeichen hinzufügen. Auf die Gefahr hin, dass ich dann wieder ein unerlaubtes Zeichen habe. Also habe ich getan, was jeder frustrierte Nutzer machen würde: Einfach an das von pwgen generierte Passwort ein ! (oder ein anderes der Sonderzeichen aus der Liste) drangehängt. Schwupp, Passwort wird akzeptiert.

Das ist natürlich Murks. Da benutzt man schon einen Passwortgenerator, der auch sichere Passwörter ausspuckt, und dann werden die auch nicht erlaubt. So wird das nichts.

Man hätte an dem Passwort auch ganz vorbeikommen können, wenn man direkt bei der Accounterstellung die Passkey-Option angeboten hätte. Bei dieser Seite hat sich offensichtlich jemand Gedanken über die Loginsicherheit gemacht, mit der Option für Passkeys und 2FA. Warum zur Hölle werden dann noch Passwortregeln verwendet, die vom Anfang des Jahrtausends stammen und schon seit 20 Jahren in der Kritik stehen?

Der Computer schummelt!

Durch TVTropes ist es bekannt: The Computer Is a Cheating Bastard. Gut, da geht es um computergesteuerte Spieler in Computerspielen (z.B. in der Anno-Reihe), aber der Titel passt einfach zu gut.

2019 habe ich bei meinem damaligen Arbeitgeber einen kleinen, unterhaltsamen Talk gegeben. Ich habe ja im Studium einen Fokus auf Neuroinformatik (inkl. maschinelles Lernen) gelegt und mich auch nachher noch dafür interessiert. Was ich jetzt hier darstellen möchte ist hauptsächlich aus diesem Talk. Das bedeutet, das ist alles aus der vor-ChatGPT-Zeit. Über ChatGPT, die Probleme damit und dem aktuellen „AI“-Hype und warum ich den Begriff „AI“ (bzw. „KI“ auf deutsch) nicht mag, rede ich ein anderes Mal.

Hier geht es darum, wie Maschinenlernverfahren sehr gut funktioniert haben und trotzdem nicht das Ergebnis lieferten, dass die Menschen wollten. Das ist manchmal lustig aber auf jeden Fall lehrreich, und vielleicht kann man auch ein bisschen darüber philosophieren. Los geht's!

Exkurs: Maschinelles Lernen

Erst einmal eine kurze Zusammenfassung, was ich überhaupt meine, wenn ich „Maschinenlernen“ schreibe. Ganz grob gesagt: Bei Maschinenlernverfahren gibt man einem Algorithmus Daten aus einem Szenario, die „Trainingsdaten“. Der Algorithmus verarbeitet die Daten dann (er „trainiert“ auf den Daten) und gibt ein Modell aus. Dieses Modell kann dann genutzt werden, um über neue Daten, die aus einem vergleichbaren Szenario stammen, irgendeine Aussage zu treffen. Grundsätzlich kann verschiedene Ansätze unterscheiden, die für verschiedene Anwendungsfälle nützlich sind.

Da wäre zunächst überwachtes Lernen (supervised learning). Hier hat man Trainingsdaten, bei denen man für jeden Datenpunkt ein gewünschtes Ergebnis hat. Das können diskrete Unterscheidungen sein (Klassifizierung), aber auch kontinuierliche, mehrdimensionale Werte (Regression). Beispiel: Eine Menge von Bildern und die (korrekte) Angabe darüber ob auf einem gegebenen Bild eine Katze zu sehen ist oder nicht. Im Idealfall kommt ein Modell heraus, dem man unbekannte Bilder füttern kann und dass dann korrekt entscheidet, ob auf dem Bild eine Katze ist oder nicht.

Dann ist da unüberwachtes Lernen (unsupervised learning). Hier hat man nur die Daten, aber kein gewünschtes Ergebnis. Das Verfahren muss dann selber entscheiden, wie es die Daten einteilt bzw. gruppiert. Das kann man zum Beispiel verwenden, um in großen Datenmengen Gruppierungen zu finden.

Als letztes gibt es da noch reinforcement learning (ich fasse das jetzt mal mit evolutionären Algorithmen zusammen). Hier hat man einen Agenten, der in einem Szenario eine Aufgabe durchführen soll. Macht er seine Aufgabe gut, kriegt er Punkte. Macht er sie schlecht, kriegt er Punkte abgezogen. Der Agent versucht, seine Punkte zu maximieren. Also im Prinzip klassische Konditionierung für Computer. Beispiel: Ein Agent läuft durch einen Irrgarten und muss ein Ziel finden. Je länger er braucht, desto mehr Punkte verliert er. Tritt er auf eine Falle, verliert er besonders viele Punkte.

Alle diese Verfahren haben zwei Dinge gemein: erstens lernen sie Korrelationen. Wenn sie zudem auch noch kausale Zusammenhänge lernen, dann ist das gut, aber vorrangig lernen sie Korrelationen. Zweitens funktionieren sie nur so gut, wie die Eingabedaten sind. Garbage In, Garbage Out.

Fahrzeugerkennung

Ein ganz klassisches Beispiel für ein Maschinenlernverfahren, das bei der Klassifizierung eine Abkürzung genommen hat, stammt aus den 80ern und wurde auch noch 2010 in einem meiner Kurse an der Uni erwähnt.

Das US-Militär wollte damals Panzer automatisch erkennen. Dazu haben sie ein entsprechendes Maschinenlernverfahren mit den Bildern von Panzern und Bildern ohne Panzer gefüttert. Getestet haben sie das Verfahren auch, indem sie nicht alle verfügbaren Bilder für das Training verwendeten, sondern einen Teil zurückhielten um zu testen, wie das Modell mit unbekannten Bildern klar kam.

Die Testergebnisse waren gut, also wollten sie das ausrollen. Weitere Tests ergaben dann aber, dass die Ergebnisse völlig zufällig waren. Was war passiert?

Alle Trainingsilder mit Panzer wurden an bei bewölktem Himmel aufgenommen. Alle Trainingsbilder ohne Panzer hatten blauen Himmel. Der Algorithmus hatte es also einfach und nur gelernt, blauen von grauem Himmel zu unterscheiden. Das hat sehr gut funktioniert, war aber nicht gewollt.

Ein ähnliches Problem ergab sich viel später in einem Agenten, der darauftrainiert wurde, Bilder zu beschreiben. Der hatte zwar jede Menge Bilder zum Lernen gekriegt, aber wenn eine Wiese zu sehen war, waren da auch meist Schafe. Also hat er gelernt: Grüne Wiese = Schafe. Und wenn man ihn dann ein Foto einer grünen Wiese (ohne Schafe) vorlegte, behauptete er steif und fest, Schafe zu sehen. Warum auch nicht? Aus seiner Sicht waren dort Schafe. Nicht das, was wir mit „Schaf“ meinen, aber das ist ja zweitrangig.

Glitches in Physik-Engines

Aber nicht nur unausgewogene Trainingsdaten bringen Computer dazu, zu schummeln. Wenn man einen Algorithmus in einer virtuellen Umgebung trainiert, können die physikalischen Eigenschaften der Umgebung ausgenutzt werden. Und solche Physik-Engines (wie sie u.a. auch in Computerspielen eingesetzt werden) nehmen in der Regel grobe Vereinfachungen in Kauf, um eine plausible Physik in Echtzeit zu berechnen. Wäre ja auch doof, wenn man in einem Spiel für jedes Frame 10 Sekunden warten müsste, weil irgendwelche Details perfekt ausgerechnet werden müssen.

Diese Vereinfachungen sorgen natürlich dafür, dass sich die Physik unter bestimmten Bedingungen sehr, sehr falsch verhält. Ein bekanntes Beispiel ist diese Reihe von Clips aus dem Spiel „Skate 3“. Und oft genug finden Maschinenlernverfahren (meist irgendeine Form von Reinforcement Learning) Wege, diese Glitches auszunutzen um ihr Ziel einfacher zu erreichen.

Ein Beispiel ist dieses Video. Der Autor hat einen genetischen Algorithmus darauf trainiert, eine Struktur möglichst lange an der Decke kleben zu lassen. Ergebnis: Die Struktur no-clipped durch die Decke und verabschiedet sich nach oben.

Oder dieses Video, wo Agenten darauf trainiert wurden, miteinander Verstecken zu spielen. Die eine Seite hatte irgendwann gelernt, ein Element out-of-bounds zu glitchen, dass die Sucher benötigten, um die sich Versteckenden zu finden. Bis die Sucher dann ihrerseits einen Weg gefunden haben, sich mit einem Glitch in die Luft zu schleudern um die anderen doch noch zu erreichen

In einem anderen Fall sollte ein Körper gebaut werden, der sich möglichst effizient fortbewegt. Ergebnis: Ein Körper, der sich in den Boden glitched, durch den Rückstoß Energie gewinnt und so mehr Energie herausbekommt, als er reinsteckt.

Es gibt viele Beispiele davon. Einige sind im Paper The Surprising Creativity of Digital Evolution: A Collection of Anecdotes from the Evolutionary Computation and Artificial Life Research Communities zusammengefasst.

Steganographie

Ob das bisher „Schummeln“ war, darüber kann man streiten. Das eine ist einfach eine schlechte Datenlage, das andere löst seine Aufgabe, wenn auch auf einem ungewollten Weg. Ich habe aber auch noch einen Fall, indem ein Verfahren im Training Daten in der Ausgabe versteckt hat, damit ein anderer Teil des Verfahrens sie wieder aufbereiten konnte, und zwar ohne, dass ein Teil dazwischen es bemerkt. Davon berichtet wurde im Paper Cyclegan, a master of steganography.

Kurz zusammengefasst: Ziel war, ein Modell zu haben, dass aus Luftaufnahmen abstrakte Landkarten erstellt. Aber wie macht man das, wenn man nur begrenzt Trainingsdaten hat? Ganz einfach: Man trainiert zwei Modelle. Eins versucht, möglichst gute Karten aus Luftaufnahmen zu erstellen. Das andere wird darauf trainiert, handgenerierte Karten von Karten des ersten Modells zu unterscheiden. Die Idee: die beiden müssen quasi wettrüsten: die eine Seite muss immer besser im Generieren werden, die andere immer besser im Erkennen.

Problem: Die Ausgabe des ersten Models muss nichts mit der Eingabe zu tun haben. Einziges Ziel ist es, ein Bild zu erstellen, das das zweite Modell als echte Karte erkennt. Also kann es auch immer dasselbe Bild liefern.

Die Lösung: Man fügt noch ein drittes Modell hinzu, dass aus dem Kartenmaterial wieder ein Luftbild macht, das dem ursprünglichen Luftbild möglichs ähnlich sieht. So kann man sicherstellen, dass auch wirklich eine Karte zum aktuellen Luftbild erstellt wurde.

Das ganze funktioniert gut. Zu gut, wie die Forscher feststellten. Denn auf der Karte waren z.B. von Gebäuden nur die Umrisse zu sehen, Details (Strukturen auf dem Dach) gingen verloren. So weit, so gut, das erwartet man ja. Aber: auf dem wiederhergestellten Luftbild des dritten Modells waren die Strukturen wieder da Die Strukturen, von denen dieses Modell überhaupt nichts wissen konnte, weil sie in den Eingabedaten nicht mehr vorkamen!

Oder waren die Daten vielleicht doch da, nur versteckt? Genau das war der Fall. Das erste Modell hatte grobe Informationen über die Strukturen in niederwertigen Bits versteckt. Gut genug, dass das zweite Modell sie nicht finden konnte, aber so, dass das dritte Modell sie nutzen konnte.

Philosophie

Ich finde solche Beispiele immer schön. Denn sind wir alle nicht auch aus Glitches entstanden? Irgendwann mal in der fernen Vergangenheit haben Bakterien einen Glitch in der Physik-Engine unserer Welt genutzt, um Sonnenlicht viel effizienter zu nutzen (nur, dass dabei ein giftiges Gas namens Sauerstoff freigesetzt wurde, war nicht geplant). Die Evolution findet viele Lücken in der Physik der Welt und nutzt sie eiskalt aus. Wenn man Federn und Muskeln so und so anordnet? Hey, dann kann man fliegen! Dieses komische nutzlose Molekül? Wenn ich das produziere sterben die Tiere, die mich fressen! Hüpfen ist so anstrengend! Aber durch diesen Glitch mit elastischen Sehnen kann ich einen Teil der Energie zurückkriegen, wenn ich ihn wie in einer Feder speichere!

Auch wir Menschen sind gut darin, das Physik-Engine zu exploiten. Von prähistorischen Speerschleudern, die die Wurfkraft eines Menschen vervielfachen können bis hin zu einer seltsamen Eigenschaft von Silizium die dafür sorgt, dass es manchmal Strom leitet und manchmal nicht, woraus wir dann Rechenmaschinen bauen können. Was ist das anderes, als Eigenschaften des Systems zu unseren Vorteilen zu nutzen?

Ich finde es schön, dass Maschinenlernverfahren das auch tun. Auch, wenn sie dann nicht das machen, was wir wollten. Aber sie funktionieren.

VW und die Security schon wieder

Ende letzten Jahres, während des 38C3, ist Volkswagen ja schon einmal durch die Presse gegangen, weil Positions- und andere persönliche Daten von Autos und deren Nutzern offen im Netz standen.

Stellt sich heraus: Im November letzten Jahres hat ein indischer Sicherheitsforscher unabhängig davon auch ein paar Sicherheitslücken in der VW-API gefunden.

Darunter waren:

  • ein Sicherheitscode, um ein Auto in der App zu registrieren, war vierstellig und ohne rate limiting, er lies sich also brute-forcen
  • interne Passwörter waren über eine API ohne Sicherung abrufbar
  • Persönliche Informationen von Fahrzeugeigentümern waren abrufbar, man brauchte nur eine Fahrzeugnummer, die man wohl am Auto ablesen kann
  • Reparatur- und Wartungsgeschichte des Autos war auch mit nur dieser Fahrzeugnummer abrufbar

Wann genau VW das behoben hat, kann ich aus dem Artikel nicht herauslesen, aber es sieht so aus, als hätten sie Monate dafür gebraucht. Zwei dicke Sicherheitslücken bei VW, praktisch gleichzeitig. Ich vermute mal, dass VW durch den ganzen Trubel einmal die ganzen APIs gut auf Lücken getestet hat. Wetten würde ich nicht darauf. So oder so vermute ich, dass da auch jetzt noch mehr zu finden ist.

Agentenkollaps

Im Pen & Paper-Rollenspiel „World Tree“ gibt es die Möglichkeit, dass Charaktere (auch Spielercharaktere) selber Elementare erschaffen, die dann im Sinne der Magierin handeln. Dabei erschafft die Magierin einen Geist (man könnte auch „Bewusstsein“ sagen), dass sie entweder an einen bestehenden Körper bindet oder direkt auch einen Körper miterschafft.

Der entscheidende Punkt hier ist, dass dieses Elementarwesen einen eigenen Willen bekommt und dann im Sinne der Magierin agiert. Das schafft die Magierin, indem sie den erschaffenen Geist mit ihrem eigenen Geist prägt, das Elementar hat also Wissen über die Welt, die Ziele und die Prioritäten der Magierin.

Das Ganze hat natürlich auch Schwächen. Erschaffene Elementare haben häufig Charakterfehler. Elementare, die zum Kampf bestimmt sind, neigen dazu, bevorzugt andere Elementare (ob Echte oder Künstliche) anzugreifen, egal, auf wessen Seite sie stehen. Elementare für friedliche Zwecke (hier ein Elementar, der Botschaften und kleine Gegenstände überbringt) neigen z.B. dazu, auf dem Weg mit jedem Elementar, dem sie begegnen, ein Gespräch anfangen zu wollen.

Die meisten dieser Elementare sind kurzlebig. Sie halten vielleicht einen Kampf lang, oder ein paar Stunden, bis sie eine Botschaft überbracht haben. Man kann auch länger lebende Elementare erschaffen, aber das ist üblicherweise eine schlechte Idee. Künstlich erschaffene Elementare werden nämlich langfristig wahnsinnig und machen alles Mögliche, nur nicht das, was sie sollen (theoretisch ist es vermutlich möglich, einen Elementar sehr stabil zu konstruieren, aber das können nur sehr mächtige Zauberer, wenn überhaupt).

Warum erzähle ich das? Nun, mir ist vor Kurzem diese Geschichte hier untergekommen, wo jemand ein Experiment gefahren hat um zu sehen, ob ein LLM langfristig einen Getränkeautomaten managen kann. In einer Simulation, natürlich.

Grundsätzlich lief das zunächst gut, nur drehte alle Agenten früher oder später durch. Sie vergaßen wichtige Informationen, die sie schon gesammelt haben, z.B. dass regelmäßig eine Standgebühr von ihrem Konto abgebucht wurde. Einer der Agenten hat dann wohl eine „ABSOLUTE FINAL ULTIMATE TOTAL QUANTUM NUCLEAR LEGAL INTERVENTION“ geplant, ein anderer das simulierte FBI kontaktiert.

Ich komme nicht umhin, die Parallelen zwischen World Tree und diesem Experiment zu erkennen. Die Studie ist auf arxiv.org zu finden. Soweit ich weiß ist sie (noch?) nicht peer-reviewed.