Passwörter, aber sicher?

Muss jetzt schon wieder einer was zu Passwörtern scheiben? – Natürlich nicht, aber ich mach’s trotzdem. Das Thema sichere Passwörter ist nicht umsonst ein Evergreen. In diesem stetigen Katz und Maus Spiel zwischen Hackern und Anwendern gibt es nur eine funktionierende Lösung: stets am Ball bleiben. Schnellere Computer und Verfügbarkeiten von KI‑Systemen mischen die Karten immer wieder neu. In der Kryptografie gibt es ein ungeschriebenes Gesetz, das besagt, dass reines Geheimhalten von Informationen kein ausreichender Schutz ist. Vielmehr sollte der Algorithmus zur Geheimhaltung offengelegt sein und anhand eines mathematischen Nachweises sollte dessen Sicherheit bewiesen werden.

Gegenwärtig beobachten Sicherheitsforscher einen Trend, wie mittels künstlicher Intelligenz vermeintlich sichere Passwörter erraten werden können. Bisher hat sich im Umgang mit Passwörtern eine Regel etabliert: Je länger ein Passwort ist, umso schwieriger ist es, zu erraten. Diese Tatsache können wir an einem einfachen Zahlenschloss ausprobieren. Ein Zahlenschloss mit drei Stellen hat genau 1000 mögliche Kombinationen. Nun ist der Aufwand, alle Nummern von 000 bis 999 manuell durchzuprobieren, recht überschaubar und kann mit etwas Geschick in weniger als 30 Minuten gelöst werden. Ändert man jetzt das Zahlenschloss von drei Stellen auf fünf, vervielfacht sich diese Arbeit und die Lösung unter 30 Minuten zu finden, basiert dann mehr auf Glück, wenn etwa die Kombination im unteren Zahlenbereich liegt. Die Sicherheit wird weiter erhöht, wenn pro Stelle nicht nur Zahlen von 0 bis 9 möglich sind, sondern Buchstaben mit Groß- und Kleinschreibung hinzukommen.

An diesem kleinen und einfachen Beispiel sehen wir, wie der ‚Teufelskreis‘ funktioniert. Schnellere Computer erlauben es, mögliche Kombinationen in kürzerer Zeit durchzuprobieren, also muss die Menge der möglichen Kombinationen mit möglichst überschaubarem Aufwand ins Unermessliche getrieben werden. Während Anfang der 2000er noch 8 Stellen mit Ziffern und Buchstaben ausgereicht haben, sollten es heute möglichst 22 Stellen mit Ziffern, Groß- und Kleinschreibung inklusive Sonderzeichen sein. Die KI von Proton lumo gibt folgende Empfehlung:

  • Länge mindestens 22 Zeichen
  • Mischung: Groß- /Kleinbuchstaben, Ziffern, Sonderzeichen, Unterstrich

Ein praktisches Beispiel für ein sicheres Passwort wäre beispielsweise: R3gen!Berg_2025$Flug.

Hier sehen wir schon die erste Schwachstelle. Solche Passwörter kann sich kein Mensch merken. Beruflich gibt Dir eventuell jemand eine Passwortrichtlinie vor, die Du erfüllen musst – isso, dumm gelaufen, leb damit! Aber keine Sorge, es gibt für alles einen Lifehack.

Daher kommt auch immer noch der Fall vor, dass Mitarbeiter ihr Passwort in unmittelbarer Nähe zu ihrem PC aufbewahren. Ja, immer noch auf den kleinen Zetteln unter der Tastatur oder als Post-it am Bildschirmrand. Wenn ich mich als EDV-ler in einen Mitarbeiter PC einloggen möchte, der nicht am Platz ist geht nach wie vor mein Blick über den Bildschirmrand und als Nächstes schaue ich unter der Tastatur nach.

Woran erkenne ich dann, dass es sich um das Passwort handelt? Klar! Ich achte auf eine Folge von Groß- Kleinbuchstaben, Zahlen und Sonderzeichen. Würde am Bildschirmrand ein Post-it kleben mit z. B. der Aufschrift: »Mi Fußpflege 10:45« würde ich das erst mal als Passwort überhaupt nicht wahrnehmen.

Also als Passwort »MiFußpflege10:45« 16stellig, Groß- und Kleinbuchstaben, Zahlen, Sonderzeichen. Also perfekt! Und zunächst, nicht einmal als Passwort erkennbar. Übrigens: Der Zettel sollte möglichst wenig Staub bzw. Patina haben.

Im beruflichen Alltag kommen dann noch so nette Eigenheiten hinzu, dass man sein Passwort monatlich ändern muss, und das neue Passwort darf dann nicht in den letzten Monaten verwendet worden sein. Auch hier haben sich Mitarbeiter Lösungen einfallen lassen, wie etwa Passwort01, Passwort 02 und so weiter, bis alle 12 Monate durch waren. Also gab es ein erweitertes Prüfverfahren und es musste nun eine bestimmte Menge unterschiedlicher Zeichen enthalten sein.

Aber auch im Privaten sollten wir das Thema sichere Passwörter nicht auf die leichte Schulter nehmen. Die Dienste, zu denen wir uns regelmäßig anmelden, sind für viele ein wichtiger Bestandteil ihres Lebens geworden. Onlinebanking und auch Social Media sind hier wichtige Punkte. Die Menge der Online Accounts wächst stetig. Es ist natürlich klar, dass man seine Passwörter nicht recyceln sollte. Also sollte man mehrere Passwörter verwenden. Wie man das am besten angeht, also wie viele und wie man die aufbaut, muss jeder natürlich eigenverantwortlich umsetzen, so wie es für Dich persönlich passt. Aber wir sind auch keine Memory Meister und je seltener wir ein bestimmtes Passwort benötigen, desto schlechter können wir es uns merken. Abhilfe können Passwort Manager schaffen.

Passwort Manager

Der gute alte Karteikasten. Übrigens, Akkulaufzeit: unendlich. Auch, wenn das jetzt eines Computernerds unwürdig erscheint, ist es dennoch für zu Hause die möglicherweise effektivste Aufbewahrungsvariante für Passwörter.

Klar ist bei der heutigen Anzahl der Passwörter eine Software zur Verwaltung attraktiv, allerdings besteht die Gefahr, dass, wenn jemand die Software unter seine Kontrolle bringt, hat er Dich unter Umständen – wie unsere amerikanischen Freunde umgangssprachlich gerne sagen „By the balls“ – frei übersetzt auf Deutsch: im Schwitzkasten. Diese Regel gilt besonders für die im ersten Moment bequem erscheinenden Cloud Lösungen.

Für Linux und Windows gibt es aber eine Lösung, die man sich auf den eigenen Computer installieren kann, um die vielen Passwörter der Online Accounts z verwalten. Diese Software heißt KeePass, ist Open Source und auch legal kostenfrei im kommerziellen Umfeld einsetzbar. Dieser sogenannte Passwort Store speichert die Passwörter verschlüsselt auf der eigenen Festplatte ab. Natürlich ist es recht lästig, auf jeder Webseite die Log-ins aus dem Passwort-Manager herauszukopieren und dann einzufügen. Hier hilft ein kleines Browser Plug-in namens TUSK KeePass, das für alle gängigen Browser wie _Brave, Firefox und Opera vorhanden ist. Auch wenn einem andere Leute über die Schulter schauen, wird das Passwort niemals im Klartext angezeigt. Bei Copy und Paste wird es nach wenigen Minuten auch wieder aus der Zwischenablage gelöscht.

Ganz anders ist es natürlich, wenn man unterwegs ist und an fremden Computern arbeiten muss. Im privaten Bereich bietet es sich an, Passwörter auch entsprechend den Umständen anzupassen, je nachdem, wo man sie einsetzt. Angenommen, Du möchtest Dich an einem PC in Dein E-Mail-Konto einloggen, kannst aber eventuell nicht jederzeit sicherstellen, dass Du unbeobachtet bist.

An der Stelle wäre es sicherlich kontraproduktiv, einen Spickzettel herauszukramen, auf dem ein Passwort aufgeschrieben ist, das die empfohlenen Richtlinien aufweist. Groß- Kleinbuchstaben, Zahlen, Sonderzeichen, darunter möglichst auch japanische und kyrillische etc., die man dann mittels des Adler-such-System Zeichen für Zeichen mit dem Zeigefinger eintippt.

(bei fortschrittlichem Tastatur Layout auch anstelle von ‚Alt‘ mit ‚Kölsch‘ beschriftet)

Wenn man nicht zu unbegabt, also mitunter auch schon etwas schneller, auf der Tastatur tippen kann, solle man eher ein Passwort verwenden, das man in 1–1,5 Sekunden eintippen kann. Einen normalen Beobachter überfordert man damit. Insbesondere dann, wenn man bei der Eingabe mit der Schift-Taste unauffällig agiert. Man lenkt die Aufmerksamkeit auf die tippende rechte Hand und verwendet unauffällig mit der linken Hand gelegentlich Schift- oder Alt-Taste.

Möglicherweise, bei vorsichtiger Einschätzung, kommt das Leaken der persönlichen Tetris Highscoreliste keinem sicherheitsrelevanten Verlust gleich. Der Zugang zum Onlinebanking ist da schon ein ganz anderes Thema. Sinnig ist sicherlich deshalb, ein eigenes Passwort für Geldgeschäfte – ein anderes für weniger kritische Log-In’s – und ein einfach gehaltenes für „0-8-15“ Registrierungen zu verwenden.

Falls man die Möglichkeit hat, Alias E-Mail Adressen anlegen zu können, ist das auch sehr sinnvoll, da der Log-In normalerweise ja nicht nur ein Passwort, sondern auch eine E-Mail-Adresse braucht. Wenn Du dort, nach Möglichkeit, eine eindeutige, nur für die entsprechende Seite angelegte E-Mail hast, kann das nicht nur die Sicherheit erhöhen, sondern Dir auch die Möglichkeit geben, unerreichbar zu werden, wenn Du es möchtest. Hin und wieder passiert es mir z. B. dass ich Werbung bekomme, obwohl ich explizit auf Werbung verzichtet habe. Komischerweise sind das für gewöhnlich die gleichen ‚Vögel‘, die sich bei z. B. ihren Zahlungsbedingungen nicht an das halten, was sie vor der Registrierung versprochen hatten. Da gehe ich einfach den effektivsten Weg und lösche die Alias E-Mail-Adresse bei mir raus → und gut!

Merkfähigkeit

Ein paar Worte über die Merkfähigkeit von Passwörtern möchte ich auch noch loswerden. Wie wir in dem Artikel nun gesehen haben, ist es sinnvoll, möglichst für jeden Onlineaccount ein eigenes Passwort zu verwenden. So vermeiden wir, wenn mal wieder bei Sony der Play Station Store gehackt wird und alle Daten der Kunden gestohlen werden, dass unser Login zu Facebook und Co. ebenfalls betroffen ist. Natürlich gibt es mittlerweile Mehrfaktoren, Authentifizierungen und viele andere Sicherheitslösungen, aber nicht überall kümmern sich die Betreiber darum. Zudem gilt in Hackerkreisen die Devise: Jedes Problem hat eine Lösung.

Um nun ein marktfähiges Passwort mit allen Sicherheitskriterien zu erstellen, bedienen wir uns eines einfachen Ansatzes. Unser Passwort besteht aus einem sehr komplexen statischen Teil, der möglichst ohne persönlichen Bezug auskommt. Als Eselsbrücke hilft uns dabei die Vorstellung von einem Bild, wie im anfänglichen Beispiel. Kombination aus einem Bild („Regener Berg“) und einer Jahreszahl, ergänzt durch ein weiteres Wort („Flug“). Sehr beliebt ist es auch, zufällig Buchstaben durch ähnlich aussehende Zahlen zu ersetzen, also das E durch eine 3 oder das I durch eine 1 auszutauschen. Damit man die Menge der Möglichkeiten nicht einschränkt und sozusagen alle E nun eine 3 sind, machen wir das nicht bei allen E. So kommen wir zu einem statischen Passwortteil, der wie folgt aussehen könnte: R3gen!Berg_2025$Flug. Diesen statischen Teil können wir uns leicht merken. Brauchen wir nun ein Passwort für unser X Log-In ergänzen wir den statischen Teil mit einem dynamischen Segment, das nur für unseren X Account gilt. Der statische Teil lässt sich gut über ein Sonderzeichen wie # einleiten und dann über den Bezug zum Log-in ergänzen. Das könnte dann wie folgt aussehen: sOCIAL.med1a-X. Wie bereits mehrfach erwähnt, ist das eine Idee, die jeder nach seinen eigenen Bedürfnissen anpassen kann.

Abschließend

Am Arbeitsplatz solltest Du Dir immer darüber im Klaren sein, dass der, der sich in Deinen Account einloggt, auch in Deinem Namen agiert. Also unter Deiner Identität.

Es ist schon logisch, dass die Abläufe bisweilen wesentlich ‚runder‘ laufen, wenn ein befreundeter Kollege mal eben bei Dir ‚nachschauen‘ kann. Die Wahrscheinlichkeit, dass Dir das auf die Füße fällt, ist sicher gering, solange er mit Deinem Passwort sorgfältig umgeht.

Sicherlich sollte man generell das Thema Passwörter nicht unterschätzen, aber selbst wenn man ein Passwort verliert: Das Leben auf dem Planeten, so wie wir es kennen, wird sich nicht signifikant ändern. Zumindest nicht deshalb. Versprochen!


Dokumente mit AnythingLLM und Ollama verarbeiten

Wir haben bereits mit GPT4all eine Anleitung, wie man ein eigenes lokales LLM betreiben kann. Leider gibt es bei der vorangegangenen Lösung eine kleine Einschränkung. Es können keine Dokumente wie PDF verarbeitet werden. In diesem neuen Workshop installieren wir AnythingLLM mit Ollama um Dokumente analysieren zu können.

Auch für diesen Workshop gilt als Mindestvoraussetzung ein Computer mit 16 GB RAM auf dem optimalerweise ein Linux (Mint, Ubuntu oder Debian) installiert ist. Mit einigen Anpassungen kann diese Anleitung auf Windows und Apple Computer ebenfalls durchgeführt werden. Je geringer die Hardwareressourcen sind, um so länger dauern die Antwortzeiten.

Beginnen wir auch gleich mit dem ersten Schritt und installieren Ollama. Dazu öffnen wir die Bash und benötigen folgendes Kommando: sudo curl -fsSL https://ollama.com/install.sh | sh. Der Befehl bewirkt, das Ollama heruntergeladen wird und das Installationsscript ausgeführt wird. Damit die Installation auch beginnt, muss noch das Administratorkennwort eingegeben werden. Ollama ist ein Kommandozeilenprogramm, das über die Konsole gesteuert wird. Nach erfolgreicher Installation muss noch ein Sprachmodell geladen werden. Auf der Internetseite https://ollama.com/search sind entsprechende Modelle zu finden.

Bewährte Sprachmodelle sind:

  • lama 3.1 8B: Leistungsstark für anspruchsvollere Anwendungen.
  • Phi-3-5 3B: Gut geeignet für logisches Denken und Mehrsprachigkeit.
  • Llama 3.3 2B: Effizient für Anwendungen mit begrenzten Ressourcen.
  • Phi 4 14B: State-of-the-art Modell mit erhöhter Hardware-Anforderung aber Leistung vergleichbar mit deutlich größeren Modellen.

Nachdem man sich für ein Sprachmodell entschieden hat, kann man den entsprechenden Befehl aus der Übersicht kopieren und in das Terminal eingeben. Für unser Beispiel soll das zu Demonstrationszwecken DeepSeek R1 sein.


Wie im Screenshot zu sehen ist lautet der entsprechende Befehl, den wir benötigen, um das Modell lokal in Ollama zu installieren: ollama run deepseek-r1. Die Installation des Sprachmodells kann ein wenig Zeit in Anspruch nehmen, Das hängt von der Internetverbindung und der Geschwindigkeit des Rechners ab. Nachdem das Modell lokal in Ollama installiert wurde, können wir das Terminal wieder schließen und zum nächsten Schritt übergehen, der Installation von AnythingLLM

Die Installation von AnythingLLm erfolgt ganz analog zu der Installation von Ollama. Dazu öffen wir das Terminal und geben folgenden Befehl ein: curl -fsSL https://cdn.anythingllm.com/latest/installer.sh | sh. Wenn die Installation abgeschlossen ist, können wir in das Installationsverzeichnis wechseln, welches in der Regel /home/<user>/AnythingLLMDesktop ist. Dort navigieren wir zum Link start und machen diese ausführbar (rechtsklick und Eigenschaften auswählen) und erstellen noch zusätzlich eine Verknüpfung auf dem Desktop. Nun können wir AnythingLLM bequem vom Desktop aus starten, was wir auch gleich tun.

Nachdem wir den Workspace festgelegt haben, können wir Anything nun mit Ollama verknüpfen. Dazu gehen wir auf das kleine Schraubenschlüssel Icon (Einstellungen) im linken unteren Bereich. Dort wählen wir den Eintrag LLM und wählen Ollama aus. Nun können wir das für Ollama hinterlegte Sprachmodell auswählen. Jetzt speichern wir unsere Einstellung ab. Nun kann man in den Chatmodus wechseln. Es besteht natürlich jederzeit die Möglichkeit, das Sprachmodell zu wechseln. Im Gegensatz zu vorhergehenden Workshop können wir jetzt PDF Dokumente hochladen und zum Inhalt Fragen stellen. Viel Spaß damit.


Marketing mit künstlicher Intelligenz

Nichts ist so sicher wie die Veränderung. Diese Weisheit trifft auf so ziemlich alle möglichen Bereiche unseres Lebens zu. Auch das Internet befindet sich in einem stetigen Wandel. Allerdings passieren die vielen Veränderungen im Technologiesektor so rasant, dass es kaum noch möglich ist, Schritt zu halten. Wer sein Geschäftsmodell auf die Vermarktung auf Onlinekanälen ausgerichtet hat, kennt die Problematik bereits perfekt. Auch im Bereich des Marketings wird es auch künftig sehr starke Veränderungen geben, die durch die Verfügbarkeit von künstlicher Intelligenz beeinflusst werden.

Bevor wir uns die Details ein wenig genauer anschauen, möchte ich gleich vorwegnehmen, dass bei weitem nicht alles obsolet geworden ist. Sicher werden einige Agenturen sich künftig nicht weiter durchsetzen können, wenn sie sich auf klassische Lösungen konzentrieren. Deswegen ist es auch für Auftragnehmer wichtig zu verstehen, welche Marketingkonzepte umgesetzt werden können, die dann auch zum Ziel führen. Hier vertreten wir die Auffassung, dass Kompetenz und Kreativität nicht durch KI ersetzt werden. Dennoch werden erfolgreiche Agenturen nicht an dem zielgerichteten Einsatz von Künstlichen Intelligenzen vorbeikommen. Betrachten wir uns daher einmal genauer, wie sich bereits seit der Einführung von ChatGPT um 2023 das Verhalten der Internetnutzer verändert hat.

Immer mehr Personen greifen auf KI Systeme zu, um Informationen zu erhalten. Das führt natürlich zu einem Rückgang der klassischen Suchmaschinen wie Google und Co. Suchmaschinen per se werden mit hoher Wahrscheinlichkeit nicht verschwinden, da auch KI Modelle eine indizierte Datenbasis benötigen, auf der sie operieren können. Wahrscheinlicher ist es, dass Menschen nicht mehr direkt auf Suchmaschinen zugreifen werden, sondern künftig einen persönlichen KI Assistenten haben, der sämtliche Suchanfragen für sie auswertet. Das lässt auch darauf schließen, dass möglicherweise die Menge der frei verfügbaren Internetseiten erheblich zurückgehen wird, da diese wegen Besuchermangel kaum noch rentabel sein werden. Was wird es denn stattdessen geben?

Verfolgt man dazu aktuelle Trends, lässt sich vermuten, dass bekannte und möglicherweise auch neue Plattformen wie Instagram, Facebook und X weiter an Marktmacht gewinnen werden. Kurze Texte, Grafiken oder Videos dominieren bereits das Internet. Alle diese Tatsachen erfordern bereits heute ein profundes Umdenken für Marketingstrategien.

Es heißt, totgesagte leben länger. Deswegen wäre es verkehrt, klassische Internetseiten und das zugehörige SEO komplett zu vernachlässigen. Seien Sie sich bewusst, welche Geschäftsstrategie Sie mit Ihrer Internet / Social Media Präsenz verfolgen. Als Agentur helfen wir unseren Kunden konkret dabei, vorhandene Strategien zu überprüfen und zu optimieren oder gänzlich neue Strategien zu entwickeln.

Es werden Fragen geklärt, ob Sie Waren oder Dienstleistungen verkaufen möchten oder ob Sie als Kompetenzzentrum zu einem bestimmten Thema wahrgenommen werden möchten. Hier verfolgen wir den klassischen Ansatz aus der Suchmaschinenoptimierung, der qualifizierten Traffic generieren soll. Es nützt wenig, tausende Aufrufe zu erhalten, von denen nur ein kleiner Bruchteil an der Thematik interessiert ist. Mit geschickt gestreuten Beiträgen auf Webseiten und im Social Media werden die zuvor festgesetzten Marketingziele promotet.

Natürlich steht und fällt jede Marketingstrategie mit der Qualität der angebotenen Produkte oder Dienstleistungen. Hat der Kunde einmal das Gefühl, ein schlechtes Produkt bekommen zu haben, oder war eine Dienstleistung zu schlecht, kann sich explosionsartig eine Negativkampagne ausbreiten. Daher ist es sehr erstrebenswert, von echten Kunden ehrliche Bewertungen auf den verschiedenen Plattformen zu erhalten.

Es gibt unzählige Angebote unseriöser Agenturen, die ihren Kunden anbieten, eine festgesetzte Anzahl an Followern, Klicks oder Bewertungen zu generieren. Schnell verschwinden die Ergebnisse dann auch wieder, wenn die Dienstleistung nicht mehr eingekauft wird. Abgesehen davon, lassen sich solche generischen Beiträge, die durch Bots erstellt wurden, schnell erkennen, und viele Menschen blenden das mittlerweile auch selektiv aus. So steht der Aufwand zu keinem Nutzen. Zudem sind echte Bewertungen und Kommentare auch ein wichtiges Hilfsmittel, um die tatsächliche Außenwirkung des eigenen Geschäftes beurteilen zu können. Wird einem stetig gesagt, wie toll man ist, könnte man in die Versuchung kommen, dies auch für wahrzunehmen. Es gibt einige Stars und Sternchen, die so etwas am eigenen Leibe erfahren haben.

Daher setzen wir auf regelmäßige Veröffentlichungen von hochwertigen Inhalten, die zum Marketingziel gehören, um so Aufmerksamkeit zu erzielen. Diese Aufmerksamkeit versuchen wir zu nutzen, um die Nutzer zu Interaktionen zu bewegen, die wiederum zu einer höheren Sichtbarkeit führen. Unsere KI Modelle helfen uns dabei, aktuelle Trends rechtzeitig zu erkennen, damit wir diese in unsere Kampagnen einfließen lassen können.

Basierend auf unseren Erfahrungen, können wir dank künstlicher Intelligenz für einen relativ langen Kampagnenzeitraum hochfrequente Veröffentlichungen erstellen und planen. Denn auch die Uhrzeit, wann ein Post oder Kommentar online geht, hat Einfluss auf den Erfolg.

Es werden vereinzelt Stimmen laut, die davon sprechen, dass das Ende für Agenturen eingeläutet ist. Die Begründung ist dann oft, dass viele Kleinunternehmer nun alle diese tollen Dinge, die zum Marketing gehören, dank KI nun selbst machen können. Diese Ansicht teilen wir nicht. Vielen Unternehmern fehlt schlichtweg die Zeit, selbstständig Marketing auf allen Kanälen zu betreiben. Deswegen setzen wir bei vielen Schritten auf eine gesunde Mischung aus echter Handarbeit und Automatisierung. Denn unsere Überzeugung lautet, dass Erfolg nicht aus der Retorte kommt. Wir nutzen unsere Werkzeuge und Erfahrung, um damit qualitative individuelle Ergebnisse zu erzielen.


Künstliche Intelligenz GPD4all unter Linux installieren

Künstliche Intelligenz ist ein sehr breites Feld, in dem man schnell den Überblick verlieren kann. Large Language Models (LLM), wie ChatGPD verarbeiten natürliche Sprache und können je nach Datenbasis verschiedene Probleme lösen. Neben netten Unterhaltungen, die durchaus therapeutischen Charakter haben können, kann man mit LLM durchaus komplexe Aufgaben bewältigen. Ein solches Szenario wäre das Verfassen von behördlichen Schreiben. In diesem Artikel gehen wir nicht darauf ein, wie Sie die KI nutzen können, sondern erklären Ihnen, wie Sie Ihre eigene KI auf Ihrem Computer lokal installieren können.

Bevor wir ans Eingemachte gehen, beantworten wir die Frage, wozu das Ganze überhaupt nütze ist. Man kann ja problemlos auf die zum Teil kostenlos online verfügbaren KI Systeme zurückgreifen.

Was vielen Menschen nicht bewusst ist, ist die Tatsache, dass alle Anfragen, die man an ChatGPT, DeepSeek und Co. sendet, protokolliert und dauerhaft gespeichert werden. Wie diese Protokollierung im Detail aussieht, können wir nicht beantworten, aber IP Adresse und Nutzeraccount mit der Prompt Anfrage dürften sicherlich zu den minimal erhobenen Daten gehören. Hat man indessen seine eigene KI auf dem lokalen Computer installiert, werden diese Informationen nicht ins Internet übertragen. Zudem kann man so oft man möchte mit der KI interagieren, ohne dass Gebühren erhoben werden.

Für unser Projekt, eine eigene künstliche Intelligenz auf dem eigenen Linux Rechner zu installieren, benötigen wir keine ausgefallene Hardware. Ein handelsüblicher Rechner reicht durchaus. Wie zuvor erwähnt: Als Betriebssystem verwenden wir Linux, da dies viel ressourcenschonender als Windows 10 oder Windows 11 ist. Für den Workshop kann jedes beliebige von Debian abgeleitetes Linux verwendet werden. Debian Derivate sind zum Beispiel Ubuntu und Linux Mint.

Als Arbeitsspeicher sollten mindestens 16 GB (RAM) vorhanden sein. Wer mehr RAM hat, umso besser. Dann läuft die KI viel flüssiger. Als Prozessor (CPU) sollte mindestens ein aktueller i5 / i7 oder AMD Ryzen 5+ verbaut sein. Wenn dann noch eine SSD mit 1 TB Speicher vorhanden ist haben wir das notwendige Setup komplett. Computer / Laptops mit dieser Spezifikation bekommt man schon für kleines Geld gebraucht. Ohne zu viel Werbung machen zu wollen, kann man sich ein wenig bei den gebrauchten Lenovo ThinkPad Laptops umschauen. Aber auch andere Hersteller mit den Mindestanforderungen zur Hardware leisten gute Dienste.

Nachdem die notwendigen Voraussetzungen geklärt sind, machen wir uns zuerst daran, GPT4all auf unserem Rechner zu installieren. Keine Sorge, das ist auch für Anfänger recht leicht zu bewerkstelligen. Es ist kein besonderes Vorwissen notwendig. Beginnen wir damit, die Datei gpd4all.run von der Homepage (https://gpt4all.io/index.html?ref=top-ai-list) herunterzuladen. Ist dies erledigt, machen wir uns daran, die Datei ausführbar (exikutierbar) zu machen.

Wie im Screenshot zu sehen ist, selektieren wir die heruntergeladene Datei mit einem rechts Klick und wählen in dem Menü den Eintrag Eigenschaften aus. Unter dem Reiter Zugriffsrechte setzen wir dann das Häkchen bei Ausführen. Nun kann man die Datei mit dem gewohnten Doppelklick starten, was wir auch sofort tun.

Nun beginnt der Installationsprozess, wo wir unter anderem auswählen können, an welchem Ort GPT4all installiert wird. Bei Linux kommen selbst installierte Programme in der Regel in das Verzeichnis /opt.

Im nächsten Schritt können wir noch eine Desktop-Verknüpfung anlegen. Dazu klicken wir mit der rechten Maustaste in den leeren Desktop und wählen Verknüpfung erstellen. In der aufpoppenden Maske tragen wir nun einen Namen für die Verknüpfung ein z. B. GPT 4 all und setzen den Pfad zur ausführbaren Datei bin/chat und bestätigen mit OK. Nun können wir GPT4all bequem von unserem Desktop aus starten.

Damit GPT4all auch funktioniert, muss ein Modell geladen werden. Wie in den Screenshots zu sehen ist, stehen verschiedene Modelle zur Verfügung. Das Modell muss bei jedem Start des Programms erneut ausgewählt werden. Nun kann die KI lokal auf dem eigenen Rechner genutzt werden.

Bildstrecke:

Andere KI Systeme sind unter anderem:

Abonnement / Subscription

[English] This content is only available to subscribers.

[Deutsch] Diese Inhalte sind nur für Abonnenten verfügbar.

Privatsphäre mit Kodachi Linux im Internet zurückgewinnen

Windows 11 integriert eine ominöse History-Funktion, bei der sämtliche Interaktionen mit dem Computer aufgezeichnet und aller Wahrscheinlichkeit per Telemetrie an Microsoft übertragen werden. Aber auch die unzähligen durch die EU beschlossenen und von Deutschland umgesetzten Gesetze zur Überwachung der Bürger geben vielen Anlass, über das Thema Datenschutz und Privatsphäre neu nachzudenken. Unsere Welt ist stetig im Wandel und die digitale Welt verändert sich um einiges schneller. Es liegt an jedem Einzelnen, wie er oder sie mit diesen Veränderungen umgehen möchte. Dieser Artikel soll dazu anregen, sich ein wenig mehr mit Linux und Sicherheit zu beschäftigen. Vielleicht bekommen Sie ja auch gleich Lust, das hier vorgestellte Kodachi Linux einmal selbst auszuprobieren. Es gibt mehrere Wege, wie Sie Kodachi Linux ausprobieren können.

  1. Virtuelle Maschine: Erstellen Sie einfach mit der ISO‑Datei und dem Programm VirtualBox oder VMWare eine Virtuelle Maschine mit Kodachi Linux. Diese virtuellen Maschinen können Sie auch von einem Windows-Rechner aus erstellen und verwenden.
  2. Booten vom USB-Stick: Tools wie Disks (Linux) oder Rufus (Windows) erlauben es, bootfähige USB‑Sticks zu erstellen. Auf diese Art und Weise können Sie Ihren PC direkt von USB mit Kodachi starten, ohne dass das auf der Festplatte installierte Betriebssystem davon beeinflusst wird.
  3. Native Installation: Sie können den bootfähigen USB-Stick auch dazu verwenden, Kodachi Linux dauerhaft auf Ihrem Computer zu installieren. Diese Methode ist dann zu empfehlen, wenn Sie bereits Erfahrungen mit Kodachi gesammelt haben.

Kodachi OS ist, wie der Name schon vermuten lässt, eine japanische Linux-Distribution mit einem angepassten XFCE Desktop. Kodachi sind eigentlich klassische japanische Samurai-Schwerter, was bereits einen Bezug auf das Thema Sicherheit hinleitet. Kodachi OS selbst ist ein Xubuntu Derivat und somit ein Enkel von Ubuntu und ein Urenkel von Debian Linux. Kodachi Linux bietet eine hoch-sichere, anti-forensische und anonyme Computerumgebung. Es wurde mit Blick auf eine sichere Privatsphäre konzipiert. Alle notwendigen Funktionen, um Vertraulichkeit und Sicherheit der Benutzer zu gewährleisten, sind enthalten. Kodachi ist benutzerfreundlich und eignet sich auch für Linux-Neulinge und Windows-Umsteiger. Zu Testzwecken können Sie das System von einem USB-Stick starten und Sie haben ein voll funktionsfähiges Betriebssystem mit:

  • automatisch etablierte VPN Verbindung
  • vorkonfigurierte TOR Verbindung
  • laufendem DNSCrypt Dienst

Die aktuelle Version von Kodachi kann kostenfrei auf der Homepage [1] heruntergeladen werden. Mit der heruntergeladenen ISO können sie nun entweder eine bootfähigen USB Stick erstellen oder Kodachi in eine Virtuelle Maschine installieren. Wir haben uns für die Variante mit VMWare eine virtuelle Maschine zu erstellen entschieden.

Die Installation ist dank dem VM Ware Ubuntu Template in wenigen Minuten erledigt. Für unseren Test haben wir der VM 20 GB Festplattenspeicher spendiert. Damit das ganze füssig läuft haben wir den RAM auf 8 GB angehoben. Wer nicht so viel RAM zu Verfügung hat kann auch mit 4 GB arbeiten. Nach dem Start der VM sehen Sie das Kodachi OS Desktop wie im untenstehende Screenshot in der Version 8.27. Für alle Linux Nerds sei noch erwähnt das diese Version den Kernel 6.2 verwendet. Laut der Homepage wird bereits fleißig an der neuen Version 9 gearbeitet.

Da die Installation auch für Anfänger möglichst einfach gehalten ist, wurden bereits Benutzerkonten eingerichtet. Der Benutzer lautet kodachi und hat das Passwort r@@t00 (00 sind Nullen). Der Administrator-Account heißt wie unter Linux üblich root und hat ebenfalls das Passwort r@@t00. Wer sich dafür entscheidet, Kodachi fest auf seiner Maschine zu installieren, sollte mindestens die Passwörter ändern.



Eine möglichst hohe Anonymität erreicht man leider nur auf Kosten der Surfgeschwindigkeit. Kodachi Linux bietet daher für unterschiedliche Anforderungen mehrere Profile, zwischen denen gewählt werden kann.

  1. Maximale Anonymität (langsamer)
    • ISP → Router VPN → Kodachi VPN (VM NAT) → Torified System → Tor DNS → Kodachi geladener Browser
  2. Hoch anonym (langsam)
    • ISP → Kodachi VPN → TOR-Endpunkt → Tor DNS → Kodachi geladener Browser
  3. Anonym & Schnell
    • ISP → Kodachi VPN → TOR-Endpunkt → Tor DNS → Kodachi lite Browser
  4. Mäßige Anonymität
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Tor DNS → Kodachi geladener Browser
  5. Standard Anonymität
    • ISP → Kodachi VPN → Torified System → Tor DNS → Kodachi geladener Browser
  6. Verbesserte Anonymität mit Double TOR
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Tor-Browser → Tor-Browser
  7. Double TOR Alternative
    • ISP → Kodachi VPN → Tor-Browser → Tor-Browser → Tor DNS
  8. Hochsicheres Setup
    • ISP → Host-Maschine (XMR VPN) → Kodachi VPN (VM) mit erzwungenem VPN-Verkehr → Kodachi-Browser → Dnscrypt
  9. Sicher und schnell
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Kodachi geladener Browser → Dnscrypt
  10. Erhöhte Sicherheit
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Kodachi geladener Browser → Tor DNS
  11. Hochgeschwindigkeit und Sicherheit
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Kodachi lite Browser → Tor DNS
  12. Doppelsicherung mit Dnscrypt
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Tor-Browser → Dnscrypt
  13. Doppelsicherung mit Tor DNS
    • ISP → Kodachi VPN mit erzwungenem VPN-Verkehr → Tor-Browser → Tor DNS

Kommen wir nun zur Bedienung von Kodachi. Dazu rufen wir das Dashboard auf, das wir auf dem Desktop als Verknüpfung finden. Nach dem Start sehen wir verschiedene Reiter wie VPN, TOR und Settings. Unter Settings haben wir die Möglichkeit, mehrere Profile zu aktivieren, die für Sicherheit und Datenschutz im Internet relevant sind. Wie im unten stehenden Screenshot zu sehen ist, wählen wir Level 1 aus und aktivieren das Profil.

Im unteren Panel finden sich im Abschnitt Security Services verschiedene Dienste wie beispielsweise GnuNet, die sich zuschalten lassen. Hier gibt es mehrere Optionen, die problemlos ausprobiert werden können. GnuNet leitet etwa den gesamten Traffic ins TOR-Netzwerk um. Das hat natürlich zur Folge, dass die Seiten länger brauchen, bis sie vollständig geladen werden.

Mit den Bordmitteln von Kodachi Linux können Sie Ihre Sicherheit und Anonymität beim Surfen im Internet erheblich verbessern. Auch wenn die Benutzung am Anfang etwas ungewöhnlich ist, findet man sich schnell hinein. Wenn Sie sich für die Verwendung als Live-System oder virtuelle Maschine entscheiden, können Sie sich problemlos mit den verschiedenen Programmen und Einstellungen vertraut machen, ohne das Gastbetriebssystem zu beschädigen. Gerade als Anfänger nimmt die Benutzung einer VM die Angst, beim Ausprobieren der verschiedenen Konfigurationen etwas kaputtzumachen.

Wer sich ein wenig zu Kodachi Linux im Internet umschaut, findet auch schnell einen Artikel [2] aus 2021, der sich durchaus kritisch zu Kodachi äußert. Die Hauptkritik bezieht sich darauf, dass Kodachi eher als Ubuntu Distro mit einem angepassten Look and Feel zu betrachten ist, das mit ein paar Shell Scripten aufgepeppt ist, als ein eigenständiges Linux. So ganz von der Hand zu weisen ist diese Kritik nicht. Wer sich etwas genauer mit der Kritik beschäftigt, stellt fest, dass Kadochi durchaus einige praktische Anonymisierungs-Features aufweist. Dennoch ist es wohl weit davon entfernt, eine sogenannte Hackers Toolbox zu sein. Der Autor der Kritik hat sich 2025 [3] Kadochi noch einmal vorgenommen und hat auch für die aktuelle Version kein anderes Fazit als bereits 2021. Ob die anstehende Version 9 des Kadochi Linux sich die angemerkten Punkte zu Herzen nimmt, bleibt abzuwarten.

Resources

Abonnement / Subscription

[English] This content is only available to subscribers.

[Deutsch] Diese Inhalte sind nur für Abonnenten verfügbar.

User Tracking und Shadowbanned

Der Wunsch von Webseitenbetreibern, möglichst viele Informationen über ihre Nutzer zu bekommen, ist so alt wie das Internet selbst. Einfache Zähler für Seitenaufrufe oder das Erkennen des Webbrowsers und der Bildschirmauflösung sind dabei die einfachsten Anwendungsfälle des Usertrackings. Mittlerweile sind die Betreiber von Internetseiten nicht mehr alleine auf Google angewiesen, um Informationen über ihre Besucher zu sammeln. Es gibt ausreichend kostenlose Werkzeuge, um einen eigenen Tracking-Server zu unterhalten. In diesem Artikel gehe ich ein wenig auf die historischen Hintergründe, Technologien und gesellschaftlichen Aspekte ein.

Als um die Jahrtausendwende immer mehr Unternehmen den Weg in die Weiten des WWW fanden, begann das Interesse, mehr über die Besucher der Homepages herauszufinden. Anfänglich begnügte man sich damit, auf der Startseite sogenannte Besucherzähler zu platzieren. Nicht selten wurden recht abenteuerliche Zahlen von diesen Besucherzählern angezeigt. Sicher spielte das Ego der Webseitenbetreiber auch eine Rolle dabei, denn viele Besucher auf der Homepage wirken nach außen und machen auch ein wenig Eindruck auf die Besucher. Wer allerdings ernsthaft über seine Webseite Geld verdienen wollte, merkte recht schnell, das fiktive Zahlen keinen Umsatz generieren. Also brauchte man verlässlichere Möglichkeiten.

Damit Nutzer nicht jedes Mal beim Aufrufen der Startseite mehrfach gezählt wurden, begann man damit, die IP-Adresse zu speichern, und setzte einen Timeout von einer Stunde, bevor wieder gezählt wurde. Das nannte sich dann Reloadsperre. Natürlich war das keine sichere Erkennung. Denn zu dieser Zeit waren Verbindungen über das Telefonnetz per Modem üblich und es kam öfter vor, dass die Verbindung abbrach und man sich neu einwählen musste. Dann gab es auch eine neue IP-Adresse. Die Genauigkeit dieser Lösung hatte also noch viel Potenzial nach oben.

Als um circa 2005 Webspace mit PHP und MySQL-Datenbanken bezahlbar wurde, ging man dazu über, die besuchten Seiten in kleinen Textdateien, den sogenannten Cookies, im Browser zu speichern. Diese Analysen waren schon sehr aussagefähig und haben den Unternehmen geholfen zu sehen, welche Artikel die Leute interessieren. Dumm war nur, wenn argwöhnische Nutzer bei jeder Gelegenheit ihre Cookies löschten. Deshalb ist man dazu übergegangen, alle Requests auf dem Server zu speichern, in sogenannten Sessions. In den meisten der Anwendungsfälle genügt die dadurch erzielte Genauigkeit, um das Angebot besser an die Nachfrage anzupassen.

Ein verbreitetes Werkzeug für Nutzertracking ist das in PHP geschriebene Matomo. Mit dieser selbst gehosteten Open Source Software kann man Google umgehen und erreicht auch eine bessere DSGVO-Konformität, da die erhobenen Daten nicht an Dritte weitergegeben werden. Zudem können personalisierte Daten nach einem festgelegten Zeitraum, zum Beispiel bei Monatsbeginn, anonymisiert werden. In diesem Fall werden Informationen wie IP-Adressen gegen zufällige Identifier ausgetauscht.

Das ganze Thema wird sofort auf ein ganz anderes Niveau gehoben, wenn Geld mit im Spiel ist. Früher waren das Firmen, die auf gut besuchten Internetseiten Werbebanner platzierten und dann pro 1000 Anzeigen einen kleinen Betrag bezahlt haben. Heutzutage sind Streamingdienste wie Spotify oder YouTube daran interessiert, exakt zu ermitteln, wie oft ein bestimmter Inhalt, beziehungsweise wie lange ein Titel angeschaut wurde. Denn in dem Moment, in dem Geld im Spiel ist, gibt es ein großes Interesse, mit kleinen oder großen Tricksereien sich ein wenig mehr Geld zu ergaunern, als einem eigentlich zustehen würde. Ebendarum sind Firmen wie Google und Co. stetig damit beschäftigt, herauszufinden, wie viele Nutzer die Inhalte wie lange konsumieren. Neben Trackingfunktionen in den Anwendungen nutzen diese Unternehmen auch ein komplexes Monitoring, das auf Originaldaten der Serverlogs und des Netzwerkverkehrs zugreifen kann. Hier kommen Tools wie der ELK-Stack oder Prometheus und Grafana ins Spiel.

Wenn wir als Beispiel einmal YouTube herausgreifen, hat dieser Dienst einige Hürden zu meistern. Viele nutzen YouTube als TV‑Ersatz, da sie aus einem enormen Fundus an Content die Dinge selbst heraussuchen können, die sie interessieren. Ein typisches Szenario ist das stundenlange automatische Abspielen von Ambientmusik. Wenn ausreichend viele Personen so etwas tun, ohne wirklich den Inhalten Aufmerksamkeit zu schenken, belastet das nur sinnlos die Serverinfrastruktur und verursacht für den Betreiber erhebliche Kosten. Auch diese automatische Autoplay-Funktion in der Vorschau ist noch keine wirkliche Interaktion und eher als Teaser gedacht.

Um die Nutzer in ständiger Aktion zu halten, gibt es aktuell zwei Strategien. Eine davon sind kurze Videos, die so lange in einer Endlosschleife laufen, bis man manuell zum nächsten übergeht. So kann man einerseits kurze Werbevideos untermischen, aber auch Nachrichten oder Meinungen platzieren. Natürlich muss das Usertracking bei einem Endlosdurchlauf eines monetarisierten Shorts die Wiederholungen herausnehmen. Das führt natürlich zu Korrekturen der Impressionen-Anzeige. Eine andere sehr exzessiv eingesetzte Strategie bei langen Videos ist das unverhältnismäßig langer Werbeunterbrechungen in relativ kurzen Abständen. Was die Nutzer dazu nötigt, diese Werbung jedes Mal aktiv wegzuklicken und somit Aufmerksamkeit abverlangt.

Nun gibt es Themen, bei denen Dienste wie YouTube, aber auch X oder Facebook Interesse daran haben, ihre Nutzer in eine bestimmte Richtung zu beeinflussen. Das kann die Bildung von Meinungen zu politischen Themen sein oder einfach Kommerz. Jetzt könnte man meinen, es wäre eine gängige Strategie, die Sichtbarkeit unerwünschter Meinungen zu unterdrücken, indem man die Aufrufzahlen der Beiträge nach unten korrigiert. Das wäre allerdings nicht förderlich, den die Leute haben den Beitrag ja dann bereits gesehen. Daher ist eine andere Strategie viel zielführender. Im ersten Schritt würde der Kanal oder der Beitrag von der Monetarisierung ausgenommen, so erhält der Betreiber keine zusätzliche Vergütung. Im nächsten Schritt erhöht man die Zahl der Aufrufe, so das der Content Creator im Glauben ist ein breites Publikum zu erreichen, und weniger Maßnahmen unternimmt, mehr Sichtbarkeit zu erlangen. Zusätzlich lassen sich die Aufrufe von Inhalten mit Methoden aus DevOps wie dem A/B Testing unter Verwendung von Feature Flags und Load Balancern nur die Personen auf die Beiträge leiten, die explizit danach suchen. So erweckt man keinen Verdacht, Zensur auszuüben, und die Sichtbarkeit ist signifikant reduziert. Natürlich tauchen unerwünschte Beiträge nur bei den Personen in den Empfehlungen auf, die Kanäle explizit abonniert haben.

In der Netflix-Produktion ‚Das Dilemma mit den sozialen Medien‘ wird zudem beklagt, dass sich Blasen bilden, in denen sich Personen mit bestimmten Interessen sammeln. Dies ist ein Effekt sogenannter Recommender-Systeme. Diese Empfehlungsgeber sind Algorithmen aus dem Bereich der künstlichen Intelligenz. Diese funktionieren recht statisch über statistische Auswertungen. Vorhandene Inhalte werden in Kategorien klassifiziert und anschließend wird geschaut, welche Personengruppen mit welcher Gewichtung Interesse an einer bestimmten Kategorie haben. Entsprechend werden dann Inhalte im Verhältnis der Interessen aus dieser Kategorie ausgespielt. Die so erfassten Inhalte können natürlich problemlos mit zusätzlichen Labels wie „gut geeignet“ oder „ungeeignet“ markiert werden. Entsprechend der Meta-Markierungen können dann unerwünschte Inhalte in den Tiefen der Datenbasis verschüttet werden.

Damit diese ganzen Maßnahmen auch richtig greifen können, ist es wiederum notwendig, möglichst viele Informationen über die Nutzer zu sammeln. So schließt sich wiederum der Kreis zum Usertracking. Das Tracking ist mittlerweile so ausgefeilt, dass Browsereinstellungen, die regelmäßig Cookies löschen, oder das grundsätzliche Nutzen des Inkognito-Modus vollständig wirkungslos sind.

Die einzige Möglichkeit, sich aus der Abhängigkeit der großen Plattformanbieter zu befreien, ist die bewusste Entscheidung, dies möglichst nicht mehr mit Inhalten zu versorgen. Ein Schritt in diese Richtung wäre das Betreiben einer eigenen Homepage mit entsprechendem eigenen Monitoring für das Usertracking. Umfangreiche Inhalte wie Video und Audio können auf mehrere unbekannte Plattformen ausgelagert werden und in die Homepage embedded werden. Hier sollte man auch nicht alle Inhalte auf einer einzigen Plattform wie Odysee oder Rumble hochladen, sondern die Inhalte geschickt auf mehrere Plattformen verteilen, ohne diese dupliziert zu haben. Solche Maßnahmen binden die Besucher an die eigene Homepage und nicht an die entsprechenden Plattformbetreiber.

Wer etwas mehr finanzielle Freiheit hat, kann auch auf freie Software wie den PeerTube zurückgreifen und eine eigene Videoplattform hosten. Hier gibt es einiges an Möglichkeiten, die allerdings einen hohen Aufwand und einiges an technischem Know-how von den Betreibern abverlangen.


Erfolgreiches Validieren von ISBN Nummern

Regelmäßig stehen Entwickler vor der Aufgabe, Nutzereingaben auf Korrektheit zu prüfen. Mittlerweile existiert eine erhebliche Anzahl an standardisierten Datenformaten, mit denen solche Validierungsaufgaben leicht zu meistern sind. Die International Standard Book Number oder kurz ISBN ist ein solches Datenformat. ISBN gibt es in zwei Ausführungen: in einer zehnstelligen und in einer 13-stelligen Variante. Von 1970 bis 2006 wurde die zehnstellige Version der ISBN verwendet (ISBN-10), die im Januar 2007 von der 13-stelligen Fassung abgelöst wurde (ISBN-13). Heutzutage ist es in vielen Verlagen verbreitete Praxis, für Titel beide Versionen der ISBN bereitzustellen. Dass sich anhand dieser Nummer Bücher eindeutig identifizieren lassen, ist allgemein bekannt. Das bedeutet natürlich auch, dass diese Nummern eindeutig sind. Es gibt also keine zwei unterschiedlichen Bücher mit gleicher ISBN (Bild 1).

Der theoretische Hintergrund, um festzustellen, ob eine Zahlenfolge korrekt ist stammt aus der Codierungstheorie. Wer sich also etwas ausführlicher mit dem mathematischen Hintergrund Fehler-erkennender und Fehler-korrigierender Codes beschäftigen möchte, dem Sei das Buch „Codierungstheorie“ von Ralph Hardo Schulz empfohlen [1]. Darin lernt man beispielsweise, wie die Fehlerkorrektur bei Comact Disks (CD) funktioniert. Aber keine Sorge, wir reduzieren in diesem kleinen Workshop die notwendige Mathematik auf ein Minimum.

Bei der ISBN handelt es sich um einen Fehler erkennenden Code. Wir können also den erkannten Fehler nicht automatisch wieder beheben. Wir wissen nur, dass etwas falsch ist, kennen aber nicht den konkreten Fehler. Gehen wir der Sache daher ein wenig auf den Grund.

Warum man sich bei ISBN-13 genau auf 13 Stellen geeinigt hat, bleibt Spekulation. Zumindest haben sich die Entwickler nicht von irgendwelchem Aberglauben beeindrucken lassen. Das große Geheimnis hinter der Validierung ist die Bestimmung der Restklassen [2]. Die Algorithmen für ISBN-10 und ISBN-13 sind recht ähnlich. Beginnen wir also mit dem älteren Standard, ISBN-10, der sich wie folgt errechnet:

1x1 + 2x2 + 3x3 + 4x4 + 5x5 + 6x6 + 7x7 + 8x8 + 9x9 + 10x10 = k modulo 11

Keine Sorge, um die oben stehende Formel zu verstehen, müssen Sie kein Raketeningenieur bei SpaceX sein. Wir heben den Schleier der Verwirrung anschaulich mit einem kleinen Beispiel für die ISBN 3836278340. Daraus ergibt sich folgende Rechnung:

(1*3) + (2*8) + (3*3) + (4*6) + (5*2) + (6*7) + (7*8) + (8*3) + (9*4) + (10*0) = 220
220 modulo 11 = 0

Die letzte Ziffer der ISBN ist die sogenannte Prüfziffer. In dem aufgeführten Beispiel lautet diese 0. Um diese Prüfziffer zu erhalten, multiplizieren wir jede Stelle mit ihrem Wert. Das heißt, an vierter Position steht eine 6, also rechnen wir 4 * 6. Das wiederholen wir mit allen Positionen und die einzelnen Ergebnisse addieren wir zusammen. So erhalten wir den Betrag 220. Die 220 wird mit der sogenannten Restwertoperation Modulo durch 11 geteilt. Da die 11 genau 20 mal in die 220 hineinpasst, bleibt ein Rest null. Das Ergebnis von 220 modulo 11 ist 0 und stimmt mit der Prüfziffer überein, was uns sagt das eine gültige ISBN-10 vorliegt.

Eine Besonderheit gibt es aber noch zu beachten. Bisweilen kommt es vor, dass die letzte Ziffer der ISBN mit X endet. In diesem Fall ist das X gegen 10 auszutauschen.

Wir sehen, der Algorithmus ist sehr einfach gehalten und kann leicht über eine einfache for-Schleife umgesetzt werden.

boolean success = false;
int[] isbn;
int sum = 0;

for(i=0; i<10; i++) {
    sum += i*isbn[i];
}

if(sum%11 == 0) {
    success = true;
}

Um den Algorithmus so einfach wie möglich zu halten, wird jede Stelle der ISBN-10-Nummer in einem Integer-Array gespeichert. Ausgehend von dieser Vorbereitung ist es nur noch nötig, das Array zu durchlaufen. Wenn dann die Überprüfung der Summe durch das Modulo 11 das Ergebnis 0 liefert, ist alles bestens.

Um die Funktion richtig zu testen, werden zwei Testfälle benötigt. Einerseits gilt es zu überprüfen ob eine ISBN korrekt erkannt wird. Der zweite Test überprüft die sogenannten false positives. Es wird also ein erwarteter Fehler mit einer falschen ISBN provoziert. Das lässt sich zügig bewerkstelligen, indem man von einer gültigen ISBN eine beliebige Stelle ändert.

Unser ISBN-10 Validator hat noch einen kleinen Schönheitsfehler. Ziffernfolgen, die kürzer oder länger als 10 sind, also dem erwarteten Format nicht entsprechen, könnten bereits vorher abgewiesen werden. Der Grund hierfür lässt sich in dem Beispiel erkennen: Die letzte Stelle der ISBN-10 ist eine 0 – somit ist das Zeichenergebnis auch 0. Wird die letzte Stelle also vergessen und eine Prüfung auf das korrekte Format fehlt, wird der Fehler nicht erkannt. Etwas das keine Auswirkung auf den Algorithmus hat, aber sehr hilfreich als Feedback bei Nutzereingaben ist, ist das Eingabefeld so lange auszugrauen und den Absenden-Button zu deaktivieren, bis das korrekte Format der ISBN eingegeben wurde.

Der Algorithmus für ISBN-13 ist ähnlich einfach aufgebaut.

x1 + 3x2 + x3 + 3x4 + x5 + 3x6 + x7 + 3x8 + x9 + 3x10 + x11 + 3x12 + x13 = k modulo 10

Analog wie bei ISBN-10 steht xn für den Zahlenwert an der entsprechenden Position in er ISBN-13. Auch hier werden die Teilergebnisse aufsummiert und durch ein Modulo geteilt. Der große Unterschied ist, dass hier nur die geraden Positionen, also die Stellen 2, 4, 6, 8, 10 und 12, mit 3 multipliziert werden und das Ergebnis dann mit Modulo 10 dividiert wird. Als Beispiel berechnen wir die ISBN-13: 9783836278348.

9 + (3*7) + 8 + (3*3) + 8 + (3*3) + 6 + (3*2) + 7 + (3*8) + 3 + (3*4) + 8 = 130
130 modulo 10 = 0

Auch für die ISBN-13 lässt sich der Algorithmus in einer einfachen for-Schleife umsetzen.

boolean success = false;
int[] isbn;
int sum = 0;

for(i=0; i<13; i++) {
    if(i%2 == 0) {
        sum += 3*isbn[i];
    } else {
        sum += isbn[i];
    }
}

if(sum%10 == 0) {
    success = true;
}

Die beiden Codebeispiele zu ISBN-10 und ISBN-13 unterscheiden sich vor allem in der if-Bedingung. Der Ausdruck i % 2 berechnet den Modulo-Wert 2 zur jeweiligen Iteration. Wenn an dieser Stelle der Wert 0 herauskommt, bedeutet das, dass es sich um eine gerade Zahl handelt. Der dazugehörige Wert muss dann mit 3 multipliziert werden.

Hier zeigt sich wie praktisch die Modulo-Operation % für das Programmieren sein kann. Um die Implementierung möglichst kompakt zu halten, kann anstatt der if-else-Bedingung auch der sogenannte Dreifach-Operator verwendet werden. Der Ausdruck sum += (i%2) ? isbn[i] : 3 * isbn[3] ist wesentlich kompakter, dafür aber auch schwerer zu verstehen.

Nachfolgend finden Sie eine vollständig implementierte Klasse zur Prüfung der ISBN in den Programmiersprachen: Java, PHP und C#.

Abonnement / Subscription

[English] This content is only available to subscribers.

[Deutsch] Diese Inhalte sind nur für Abonnenten verfügbar.

Die in den Beispielen vorgestellten Lösungen haben zwar alle denselben Kernansatz, unterscheiden sich aber nicht nur in syntaktischen Details. So bietet die Java-Version eine allumfassende Variante, die etwas generischer zwischen ISBN-10 und ISBN-13 unterscheidet. Das demonstriert zum einen, dass viele Wege nach Rom führen. Soll aber auch gerade weniger erfahrenen Entwicklern verschiedene Lösungsansätze zeigen und sie motivieren, eigene Anpassungen vorzunehmen. Um das Verständnis zu vereinfachen, wurde der Quelltext mit Kommentaren angereichert. Bei PHP, als untypisierte Sprache, entfällt insbesondere das Konvertieren des Strings in Nummern. Dafür wird eine RegEx genutzt, um sicherzustellen, dass die eingegebenen Zeichen typsicher sind.

Lessons Learned

Wie Sie sehen, handelt es sich bei der Überprüfung, ob eine ISBN korrekt ist, um keine Hexerei. Das Thema der Validierung von Benutzereingaben ist natürlich viel umfangreicher. Andere Beispiele sind Kreditkartennummern. Aber auch reguläre Ausdrücke leisten in diesem Zusammenhang wertvolle Dienste.

Ressourcen

  • [1] Ralph-Hardo Schulz, Codierungstheorie: Eine Einführung, 2003, ISBN 978-3-528-16419-5
  • [2] Begriff der Restklasse bei Wikipedia, https://de.wikipedia.org/wiki/Restklasse