Blockchain – eine Einführung

Das Konzept Blockchain ist grundlegender Bestandteil der verschiedenen Kryptobezahlmethoden wie Bitcoin und Ethereum. Was hat es aber mit der Technologie Blockchain auf sich und wozu kann man dieses Konzept noch anwenden? Grundlegend kann man sagen, dass Blockchain wie die Datenstruktur der rückwärtsverketteten Liste aufgebaut ist. Jedes Element der Liste zeigt auf den Vorgänger. Was macht die Blockchain aber nun so besonders?

Blockchain erweitert das Konzept der Liste um verschiedene Rahmenbedingungen. Eine dieser Rahmenbedingungen ist, sicherzustellen, dass kein Element der Liste verändert oder entfernt werden kann. Das lässt sich recht einfach bewerkstelligen. Hierzu verwendet man eine Hashfunktion. Wir codieren über einen Hashalgorithmus den Inhalt eines jeden Elements in der Liste zu einem Hash. Es gibt mittlerweile ein breites Angebot an Hashfunktionen, von denen ein aktueller Standard SHA-512 ist. In nahezu jeder Programmiersprache ist dieser Hashalgorithmus in der Standardbibliothek bereits implementiert und man kann ihn einfach verwenden. Im Konkreten bedeutet es, dass über die gesamten Daten eines Blockes der Hash SHA‑512 gebildet wird. Dieser Hash ist stets eineindeutig und kommt nicht noch einmal vor. Somit dient der Hash als Identifier (ID), um einen Block zu finden. Ein Eintrag in dem Block ist der Verweis auf seine Vorgänger. Dieser Verweis ist der Hashwert des Vorgängers, also seine ID. Bei der Implementierung einer Blockchain ist es essenziell, dass der Hashwert des Vorgängers Bestandteil der Berechnung des Hashwertes des aktuellen Blockes ist. Dieses Detail sorgt dafür, dass die in der Blockchain geänderten Elemente nur sehr aufwendig geändert werden können. Man muss sozusagen für das Element, das man manipulieren möchte, alle nachfolgenden Elemente ebenfalls ändern. Bei der umfangreichen Blockchain mit sehr vielen Blöcken bedeutet so ein Vorhaben einen enormen Rechenaufwand, der nur sehr schwer bis überhaupt nicht zu leisten ist.

Durch diese Verkettung erhalten wir eine lückenlose Transaktionshistorie. Dieser Umstand erklärt auch, weswegen Kryptobezahlmethoden nicht anonym sind. Auch wenn der Aufwand, einen Transaktionsteilnehmer eindeutig zu identifizieren, enorm werden kann. Nutzt dieser Transaktionsteilnehmer zudem noch verschiedene Verschleierungsmöglichkeiten mit unterschiedlichen und nicht durch weitere Transaktionen verknüpften Wallets, steigt der Aufwand exponentiell an.

Natürlich hat der gerade beschriebene Mechanismus noch erhebliche Schwachstellen. Denn Transaktionen, also das Hinzufügen neuer Blöcke, können erst als verifiziert und sicher eingestuft werden, wenn genügend Nachfolger in der Blockchain hinzugekommen sind, die sicherstellen, dass Änderungen wieder schwerer zu bewerkstelligen sind. Für Bitcoin und Co. gilt eine Transaktion als sicher, wenn fünf Nachfolgetransaktionen sind.

Damit es nun nicht nur eine Instanz gibt, die die Transaktionshistorie, also alle Blöcke der Blockchain, aufbewahrt, kommt ein dezentraler Ansatz ins Spiel. Es gibt also keinen zentralen Server, der als Vermittler agiert. Ein solcher zentraler Server könnte durch den Betreiber manipuliert werden. Man hätte so die Möglichkeit, mit genügend Rechenleistung auch sehr umfangreiche Blockchains neu aufzubauen. Im Kontext von Kryptowährungen spricht man hier von einer Reorganisation der Chain. Dies ist auch die Kritik an vielen Kryptowährungen. Außer Bitcoin existiert keine andere dezentrale und unabhängige Kryptowährung. Wenn die Blockchain mit allen ihren enthaltenen Elementen öffentlich gemacht wird und jeder Nutzer eine eigene Instanz dieser Blockchain lokal auf seinem Rechner besitzt und dort Elemente hinzufügen kann, die dann mit allen anderen Instanzen der Blockchain synchronisiert werden, haben wir einen dezentralen Ansatz.

Die Technologie zur dezentralen Kommunikation ohne einen Vermittler nennt sich Peer to Peer (P2P). P2P Netzwerke sind besonders in ihren Entstehungsphasen, also wenn nur wenige Teilnehmer im Netzwerk sind, schwach und angreifbar. Man könnte einfach mit sehr viel Rechenleistung eine große Anzahl von sogenannten Zomi Peers erstellen, die das Verhalten des Netzes beeinflussen. Gerade in Zeiten, in denen das Cloud-Computing mit AWS und der Google Cloud Platform als Anbieter, für vergleichsweise wenig Geld schier endlose Ressourcen bereitstellen kann, ist dies ein nicht zu unterschätzendes Problem. Besonders wenn es einen sehr hohen finanziellen Anreiz für Betrüger gibt, darf man diesen Punkt auf keinen Fall vernachlässigen.

Auch bei P2P gibt es verschiedene Konzepte, die miteinander konkurrieren. Um eine stabile und sichere Blockchain zu implementieren, ist es notwendig, nur auf Lösungen zurückzugreifen, die ohne unterstützende Backbone Server auskommen. Es soll vermieden werden, dass sich eine Master Chain etablieren kann. Daher müssen Fragen geklärt werden, wie sich die einzelnen Peers finden können und mit welchem Protokoll sie ihre Daten synchronisieren. Als Protokoll verstehen wir ein Regelwerk, also ein festes Schema, wie die Interaktion zwischen den Peers geregelt wird. Da bereits dieser Punkt sehr umfangreich ist, verweise ich zum Einstieg in das Thema auf meinen Vortrag 2022.

Eine weitere Eigenschaft von Blockchain‑Blöcken ist, dass sich diese problemlos und mit wenig Mühe auf Gültigkeit hin verifizieren lassen. Hierzu muss lediglich über die gesamten Inhalte eines Blocks der SHA-512 Hash erzeugt werden. Stimmt dieser mit der ID überein, ist der Block gültig. Aber auch zeitrelevante beziehungsweise zeitkritische Transaktionen, wie sie bei Bezahlsystemen relevant sind, lassen sich mit wenig Aufwand erstellen. Dazu werden auch keine komplexen Zeitserver als Vermittler benötigt. Jeder Block wird um einen Zeitstempel erweitert. Dieser Zeitstempel muss allerdings den Ort, an dem er erstellt wird, berücksichtigen, also die Zeitzone mit angeben. Um den Standort der Transaktionsteilnehmer zu verschleiern, können auch alle Uhrzeiten der verschiedenen Zeitzonen auf die aktuelle UTC 0 umgerechnet werden.

Um sicherzustellen, dass die Uhrzeit auch korrekt auf dem System eingestellt ist, kann man einen Zeitserver für die aktuelle Uhrzeit beim Start der Software abfragen und bei Abweichungen einen Hinweis zur Korrektur ausgeben.

Natürlich sind zeitkritische Transaktionen mit einer Reihe von Problemen behaftet. Es muss sichergestellt werden, dass eine Transaktion in einem festgelegten Zeitfenster durchgeführt wurde. Ein Problem, mit dem sich sogenannte Echtzeitsysteme auseinandersetzen müssen. Aber auch das Double Spending Problem muss verhindert werden. Also, dass derselbe Betrag zweimal an unterschiedliche Empfänger gesendet werden kann. Was in einem dezentralisierten Netzwerk die Bestätigung der Transaktion von mehreren Teilnehmern erfordert. Aber auch klassische Race Conditions können ein Problem darstellen. Race Conditions lassen sich durch die Anwendung des Immutable-Entwurfsmusters auf die Block-Elemente beherrschen.

Damit die Blockchain nun nicht durch Spam-Attacken gestört wird, benötigen wir eine Lösung, die das Erstellen eines einzelnen Blocks in der Masse teuer macht. Das erreichen wir, indem wir die Rechenleistung einbeziehen. Hierzu muss der Teilnehmer, der einen Block erstellt, ein Puzzle lösen, das eine ‚gewisse‘ Rechenzeit beansprucht. Wenn ein Spammer das Netzwerk mit vielen Blöcken fluten möchte, steigt seine Rechenleistung exorbitant an und es ist ihm unmöglich, in kurzer Zeit beliebig viele Blöcke zu erzeugen. Dieses kryptografische Puzzle nennt man Nonce, was für „number used only once“ steht. Der Mechanismus Nonce in der Blockchain wird auch oft als Proof of Work (POW) bezeichnet und dient bei Bitcoin zur Verifizierung der Blöcke durch die Miner.

Die Nonce ist eine (pseudo) zufällige Zahl, zu der ein Hash generiert werden muss. Dieser Hash muss dann ‚bestimmte‘ Kriterien erfüllen. Das können zum Beispiel zwei oder drei führende Nullen im Hash sein. Damit man nun keinen beliebigen Hash in den Block einfügt, wird die Zufallszahl, die das Rätsel löst, direkt abgespeichert. Eine bereits genutzte Nounce darf kein weiteres Mal verwendet werden, da sonst das Rätsel umgangen werden kann. Erzeugt man nun aus der Nonce den Hash, muss dieser die Vorgaben z. B. führende Nullen erfüllen, um akzeptiert zu werden.

Da je mehr Blöcke in einer Blockchain enthalten sind, es immer schwieriger wird, eine gültige Nonce zu finden, ist es notwendig, die Regeln für so eine Nonce zyklisch, beispielsweise alle 2048 Blöcke, zu verändern. Das bedeute aber auch, dass die Regeln für eine gültige Nonce ebenfalls den entsprechenden Blöcken zugeordnet werden müssen. Ein solches Regelwerk für die Nonce lässt sich problemlos über eine RegEx formulieren.

Mittlerweile haben wir auch eine beachtliche Menge an Regelwerk für eine Blockchain kennengelernt. Sodass es nun an der Zeit ist, sich ein wenig Gedanken über die Performance zu machen. Würden wir alle einzelnen Blöcke der Blockchain einfach in einer Liste abspeichern, würde uns recht bald der Arbeitsspeicher ausgehen. Jetzt könnte man die Blöcke auch in einer lokalen Datenbank speichern, was auch bei einer Embedded-Lösung wie SQLlite durchaus negative Auswirkungen auf die Geschwindigkeit der Blockchain haben würde. Eine einfache Lösung wäre hier, die Blockchain in gleichlange Teile zu zerlegen, sogenannte Chunks. Ein Chunk hätte sozusagen eine feste Länge von 2048 validen Blöcken und der erste Block eines neuen Chunk zeigt auf den letzten Block des vorhergehenden Chunk. In jedem Chunk kann man auch eine zentrale Regel für die Nonce hinterlegen und mögliche Metadaten wie beispielsweise Min- und Max-Zeitstempel abspeichern.

Wenn wir unseren aktuellen Stand des Blockchain-Regelwerks kurz rekapitulieren, kommen wir aktuell auf drei verschiedene Ebenen. Die größte Ebene ist die Blockchain selbst, welche grundlegende Metainformationen und Konfigurationen enthält. Solche Konfigurationen sind etwa der verwendete Hash Algorithmus. Die zweite Ebene stellen die sogenannten Chunks dar, die eine festgelegte Menge an Block-Elementen enthalten. Wie bereits erwähnt enthalten die Chunks auch Metadaten und Konfigurationen. Das kleinste Element der Blockchain ist der Block selbst, der aus einer ID, den beschriebenen Zusatzinformationen wie Zeitstempel und Nonce und dem Payload besteht. Der Payload ist eine allgemeine Bezeichnung für jedes beliebige Datenobjekt, das durch die Blockchain überprüfbar gemacht werden soll. Für Bitcoin und andere Kryptowährungen ist der Payload die Information, welcher Betrag von Wallet A (Quelle) an Wallet B (Ziel) transferiert wird.

Die Blockchain-Technologie eignet sich aber auch für viele andere Anwendungszenarien. So könnten beispielsweise die Hashwerte von Open-Source-Software Artefakten in einer Blockchain gespeichert werden. Damit könnte man auch Binärdateien aus unsicheren Quellen herunterladen und gegen die entsprechende Blockchain verifizieren. Das gleiche Prinzip wäre auf für die Signaturen von Antivirenprogrammen denkbar. Aber auch im behördlichen Umfeld könnten Anträge und andere Dokumente rechtssicher übermittelt werden. Die Blockchain würde hier als ‚Posteingangsstempel‘ funktionieren. Aber auch Buchhaltung inklusive aller Belege der Warenwirtschaft aus dem Einkauf und der verkauften Artikel und Dienstleistungen sind denkbare Szenarien.

Eine Erweiterung der Blockchain wäre je nach Anwendungsfall die eindeutige Signierung eines Blocks durch den Ersteller. Hierzu käme das klassische PKI Verfahren mit dem öffentlichen und privaten Schlüssel zum Einsatz. Der Unterzeichner speichert in Block seinen öffentlichen Schlüssel, erstellt mittels seines geheimen Schlüssels über den Payload eine Signatur, die als Signatur ebenfalls im Block mitgespeichert wird.

Bisher gibt es zwei frei verfügbare Implementierungen der Blockchain, BitcoinJ und für Ethereum Web3j. Natürlich ist es möglich, mit den gerade beschriebenen Prinzipien auch eine eigene allgemeingültige Blockchain-Implementierung zu erstellen. Hier liegen die Stolperfallen natürlich in den Details, von denen ich in diesem Artikel bereits einige angesprochen habe. Grundsätzlich ist Blockchain aber auch keine Raketentechnologie und für erfahrene Entwickler gut beherrschbar. Wer mit dem Gedanken spielt, sich an einer eigenen Implementierung zu versuchen, hat nun genügend Grundwissen, um sich mit dem notwendigen Detailwissen in den verschiedenen zum Einsatz kommenden Technologien tiefer vertraut zu machen.


Privatsphäre

Immer wieder begegne ich Aussagen wie, „Ich nutze Apple wegen des Datenschutzes.“ oder „Unter Linux gibt es keine Viren.“ und so weiter und so fort. Im richtigen Leben schmunzle ich dann in mich hinein und verkneife mir eine Antwort. Diese Menschen sind meist Jünger einer bestimmten Marke, die sie abgöttisch anbeten und sogar mit ihrem Leben verteidigen würden. Daher spare ich meine Energie für sinnvolleres auf, wie zum Beispiel diesen Artikel hier zu verfassen.

Mein Bestreben, ist, möglichst wenig technische Details beziehungsweise auch wenig Fachsprache zu verwenden, damit auch die Menschen ohne entsprechenden Hintergrund Zugang zu diesem Thema finden. Sicher mag der ein oder andere Skeptiker nach Beweisen meiner Aussagen rufen, die meine Behauptungen zu belegen. Diesen Personen sei gesagt, dass es für die einzelnen Aussagen genügend Stichworte gibt, mit denen man sich selbst auf die Suche machen kann, und entsprechend genügend Primärquellen findet, die abseits von KI und Wikipedia existieren.

Wenn man darüber sinniert, was Freiheit eigentlich bedeutet, stößt man oft auf Aussagen wie: „Freiheit ist, das zu tun, worauf man Lust hat, ohne dabei die Freiheit anderer Menschen zu beeinträchtigen.“ Diese Definition beinhaltet auch, die Tatsache, dass vertrauliche Aussagen auch vertraulich bleiben. Hier gibt es allerdings schon Bestrebungen, lange vor der Verfügbarkeit von elektronischen Geräten zur Kommunikation. Nicht umsonst gibt es eine jahrtausendealte Kunst namens Kryptografie, mit der Nachrichten, die auf unsicheren Wegen übermittelt werden, für Uneingeweihte unverständlich bleiben. Dass die Begehrlichkeiten, die Gedanken anderer Menschen zu erfahren, sehr alt sind, besagt auch der Spruch, dass die beiden ältesten Gewerbe der Menschheit die käufliche Liebe und die Spionage sind. Daher kann man sich die Frage stellen: Wieso sollte dies nun im Zeitalter der Kommunikation anders sein?

Besonders unbedachte Zeitgenossen begegnen dem Thema mit der Einstellung, sie hätten ohnehin nichts zu verbergen, wozu sollten sie dann auf die eigene Privatsphäre bedacht sein? Ich persönlich gehöre zu der Gruppe Menschen, die diese Einstellung für sehr gefährlich halten, da sie machthungrigen Gruppierungen Tür und Tor für den Missbrauch öffnet. Jeder Mensch hat Bereiche in seinem Leben, die er nicht in die Öffentlichkeit gezerrt bekommen möchte. Hier kann es sich um spezielle sexuelle Vorlieben handeln, Untreue dem Partner gegenüber oder eine Vorliebe für das Glücksspiel, also Dinge, die eine perfekte Fassade von moralischer Integrität schnell bröckeln lässt.

In der DDR glaubten viele Menschen, das sie selbst zu unbedeutend waren, als dass der berüchtigte Inlandsgeheimdienst STASI an ihnen Interesse haben könnte. Wie sehr sie mit ihrer Einschätzung danebenlagen, zeigte die Öffnung der STASI‑Unterlagen nach der deutschen Wiedervereinigung. In diesem Zusammenhang möchte ich nur auf die gültige Gesetzeslage in der EU hinweisen, die Errungenschaften wie Hatespeech, Chatkontrolle und Vorratsdatenspeicherung vorweisen kann. Auch die Privatwirtschaft hat genügend Gründe, mehr über jeden einzelnen Menschen zu erfahren. Denn so lässt sich dieser optimal manipulieren und zum Kauf von Dienstleistungen und Produkten animieren. Eine Zielstellung von Unternehmen ist, den optimalen Preis ihrer Angebote ermitteln zu können, also den größtmöglichen Gewinn zu erzielen. Das erreicht man durch Methoden der Psychologie. Oder glauben Sie wirklich, dass Produkte wie ein Telefon, mit dem man fotografieren kann, wirklich den Preis wert sind, der dafür verlangt wird? Wir sehen also: Es gibt genügend Gründe, wieso personenbezogene Daten durchaus einen hohen Wert haben können. Betrachten wir uns daher einmal die vielen technologischen Halbwahrheiten an, die in der breiten Öffentlichkeit so kursieren. Viele dieser Halbwahrheiten habe ich auch bei Technologieprofis vernommen, die selbst viele Dinge nicht hinterfragt haben.

Bevor ich aber in die Details einsteige, möchte ich noch eine essenzielle Aussage voranstellen. Es gibt keine sichere und private Kommunikation, wenn elektronische Geräte involviert sind. Wer ein absolut vertrauliches Gespräch führen möchte, geht bei starkem Wind auf ein freies Feld, mit einem Sichtradius von mindestens 100 Metern und verdeckt beim Sprechen seinen Mund. Natürlich ist mir klar, dass auch dort Mikrofone versteckt sein könnten. Diese Aussage ist eher demonstrativ und zeigt, wie schwer es ist, eine vertrauliche Umgebung zu schaffen.

Beginnen wir mit der beliebten Marke Apple. Viele der Apple-Nutzer glauben, ihre Geräte wären besonders sicher. Das stimmt nur so weit, dass durchaus Fremde, die versuchen, sich unautorisierten Zugriff auf die Geräte zu verschaffen, große Hürden überwinden müssen. Dafür sind viele Mechanismen in den Betriebssystemen enthalten, die es erlauben, zum Beispiel auf den Telefonen Anwendungen und Inhalte zu blockieren.

Das Unternehmen Microsoft, steht dem in nichts nach und geht noch einige Schritte weiter. Seitdem das Internet für die breite Masse verfügbar ist, rätselt man darüber, welche Telemetriedaten der Nutzer Windows an den Mutterkonzern sendet. Windows 11 treibt alles noch viel mehr auf die Spitze und speichert jeden Tastenanschlag und macht alle paar Sekunden einen Screenshot vom Bildschirm. Angeblich werden diese Daten nur lokal auf dem Computer gespeichert. Das kann man natürlich gern glauben, und selbst wenn es so wäre, handelt es sich hier um eine enorme Sicherheitslücke. Denn jeder Hacker, der einen Windows 11 Rechner kompromittiert, kann dann diese Daten auch auslesen und hat Zugriff auf Onlinebanking und alle möglichen Accounts.

Zudem verweigert Windows 11 seinen Dienst bei angeblich veralteten Prozessoren. Dass Windows schon immer sehr ressourcenhungrig war, ist keine Neuheit. Der Grund der Restriktion auf alte CPUs hat aber einen anderen Grund. CPUs der neuen Generation haben ein sogenanntes Sicherheitsfeature, mit dem sich der Computer eindeutig identifizieren und über das Internet deaktivieren lässt. Das Stichwort, um das es hier geht, lautet Pluton Security Processor mit dem Trusted Platform Module (TPM 2.0).

Wie sehr die Begehrlichkeiten von Microsoft sind, alle möglichen Informationen über die eigenen User abzugreifen, zeigen auch die Änderungen der AGB um das Jahr 2022. Diese bekamen einen neuen Abschnitt, der Microsoft die Erlaubnis erteilt, alle durch ihre Produkte erlangten Daten zum Trainieren von künstlicher Intelligenz verwenden zu dürfen. Zudem behält man sich das Recht vor, bei erkannter Hatespeech den Nutzer von allen Microsoft Produkten auszuschließen.

Aber keine Sorge, nicht nur Microsoft hat solche Disclaimers in den eigenen AGB. Auch Social Media Platformen wie Meta, besser bekannt unter den Produkten Facebook und WhatsApp, oder die Kommunikationsplattform Zoom agieren so. Die Liste solcher Anwendungen ist natürlich weitaus länger. Es ist jeder Einzelne dazu eingeladen, sich vorzustellen, welche Möglichkeiten die bereits beschriebenen Dinge eröffnen.

Ich habe ja bereits Apple als problematisch im Bereich Sicherheit und Privatsphäre erwähnt. Aber auch Android, das Betriebssystem von Google für SMART‑Fernseher und Telefone, gibt enormen Raum für Kritik. Nicht ganz ohne Grund kann man aus den Telefonen die Akkus nicht mehr entfernen. Denn Android verhält sich genauso wie Windows und sendet alle möglichen Telemetriedaten an den Mutterkonzern. Hierzu kommt noch der 2025 bekannt gewordene Skandal des Herstellers Samsung. Dieser hat ein israelisches, verstecktes Programm namens AppCloud auf seinen Geräten, von dem sich nur erahnen lässt, welchen Zweck es erfüllt. Vielleicht hilft auch die Erinnerung, als im Jahr 2023 bei vielen Palästinensern und anderen von Israel erklärten Feinden die Pager explodiert sind. In der Securityszene ist es kein Geheimnis, dass Israel im Bereich Cybersecurity und Cyberattacken an einsamer Spitze steht.

Ein anderes Thema bei Telefonen ist die Verwendung sogenannter Messenger. Neben den bekannten wie WhatsApp und Telegram gibt es auch ein paar Nischenlösungen wie Signal und Session. Alle diese Anwendungen sprechen von einer Ende zu Ende Verschlüsselung für sichere Kommunikation. Es ist schon richtig, dass Hacker hier so ihre Schwierigkeiten haben, um an die Informationen zu kommen, wenn sie nur den Netzwerkverkehr mitschneiden. Was aber nach erfolgreicher Übertragung und der Entschlüsselung auf dem Zielgerät dann mit der Nachricht passiert, steht auf einem anderen Blatt. Wie sonst sollten sich die Meta AGB mit den bereits enthaltenen Passagen erklären lassen?

Wenn man alle die bereits erwähnten Tatsachen zusammen nimmt, muss man sich nicht wundern, wieso viele Geräte wie Apple, Windows und Android erzwungene Updates etabliert haben. Natürlich dient nicht alles der totalen Kontrolle. Auch das Thema Resilienz, welches Geräte vorzeitig altern lässt, um diese durch Neue zu ersetzen, ist ein Grund.

Nun gibt es natürlich auch genügend Angebote, die ihren Nutzern enorme Sicherheit versprechen. An erster Stelle sei das freie Open Source Betriebsystem Linux erwähnt. Es gibt viele verschiedene Linux-Derivate und nicht alle behandeln das Thema Security und Privatsphäre mit der gleichen Priorität. Die von der Firma Canonical veröffentlichte Distribution Ubuntu, erhält regelmäßig Kritik. So war um das Jahr 2013 das Unity Desktop voll mit Werbung, was viel Ablehnung erfahren hat. Auch dass es unter Linux keine Viren gäbe, ist ein Mythos. Sie gibt es durchaus und der Virenscanner unter Linux heißt ClamAV, nur ist deren Verbreitung aufgrund der geringen Privatinstallationen im Vergleich zu Windows weniger verbreitet. Außerdem gelten bisher Linuxnutzer als ein wenig nerdig und klicken nicht so schnell auf verdächtige Links. Wer aber dann unter Linux all die tollen Anwendungen wie Skype, Dropbox, KI Agenten und so weiter installiert hat, hat gegenüber der Big Tech Industrie keine verbesserte Sicherheit.

Ähnlich verhält es sich auch mit sogenannten „degoggeled“ Smart­phones. Auch hier ist ein Problem, die verfügbare Hardware, die sehr reguliert ist. Aber auch die Alltagstauglichkeit zeigt oft Grenzen auf. Diese Grenzen finden sich bereits im familiären Umfeld und bei Freunden, die sich kaum von WhatsApp und Co. abbringen lassen. Aber auch Onlinebanking kann hier einem erhebliche Schwierigkeiten bereiten, denn Banken bieten ihre Apps aus Sicherheitsgründen nur über den verifizierten Google Play Store an.

Wir sehen, das Thema ist sehr umfangreich und ich habe nicht einmal alle Punkte aufgezählt, noch bin ich sehr in die Tiefe gegangen. Ich hoffe, ich konnte dennoch ein wenig Sensibilisierung erreichen, dass zumindest das Smartphone nicht überall mitgenommen und auch mehr Zeit ohne die ganzen technischen Geräte wieder in der Wirklichkeit mit anderen Menschen verbracht wird.

Kryptografie – mehr als nur Zufall

Im täglichen Sprachgebrauch benutzen wir das Wort Zufall recht unreflektiert. Sätze wie, „Ich bin zufällig hier vorbeigekommen.“ oder „Was für ein Zufall, dich hier zu treffen.“ kennt jeder von uns. Aber was möchten wir damit zum Ausdruck bringen? Eigentlich möchten wir damit sagen, dass wir die aktuelle Situation nicht erwartet haben.

Zufall ist eigentlich ein mathematischer Ausdruck, den wir in den täglichen Sprachgebrauch übernommen haben. Zufall meint etwas nicht Vorhersagbares. Also Dinge wie, an welcher Stelle sich zu einem exakten Moment ein beliebiges Elektron eines Atoms befindet. Welchen Weg ich zu einem bestimmten Ziel nehme, kann zwar beliebig sein, dennoch lassen sich über Wahrscheinlichkeiten Präferenzen ableiten, welche die Wahl dann durchaus vorhersagbar machen.

Umstände für ein solches Szenario können Entfernung, persönliche Befinden (Zeitdruck, Unwohlsein oder Langeweile) oder äußere Umstände (Wetter: Sonnenschein, Regen) sein. Habe ich Langeweile UND es scheint die Sonne, wähle ich für etwas Zerstreuung und Neugier eine unbekannte Strecke. Habe ich wenig Zeit UND es regnet, entscheide ich mich für den mir kürzesten bekannten Weg, oder eine Strecke, die möglichst überdacht ist. Daraus folgt: Je besser man die Gewohnheiten einer Person kennt, umso vorhersagbarer sind ihre Entscheidungen. Vorhersagbarkeit aber widerspricht dem Konzept Zufall.

Dass mathematische Begriffe, die sehr streng definiert sind, zeitweilig als Modeerscheinung in unseren täglichen Sprachgebrauch übernommen werden, ist keine neue Sache. Ein sehr populäres Beispiel, das bereits Joseph Weizenbaum angeführt hat, möchte ich hier kurz aufgreifen. Der Begriff Chaos. Eigentlich beschreibt Chaos im mathematischen, den Umstand, dass eine sehr kleine Änderung bei sehr langen Strecken das Ergebnis erheblich verfälscht, sodass es nicht einmal als Schätzung oder Näherung verwendet werden kann. Eine typische Anwendung ist die Astronomie. Richte ich einen Laserstrahl von der Erde auf den Mond, so verursacht bereits eine Abweichung im Winkel von wenigen Millimetern, dass der Laserstrahl kilometerweit am Mond vorbeigeht. Um solche Gegebenheiten populärwissenschaftlich einer breiten Masse zu erklären, verwendete man eine Assoziation, dass, wenn ein Schmetterling in Tokio mit den Flügeln schlägt, dies zu einem Sturm in Berlin führen kann. Leider gibt es nicht wenige Pseudowissenschaftler, die dieses Bild aufgreifen und ihrer Umwelt als Tatsache verkaufen. Das ist natürlich Unfug. Das Flügelschlagen eines Schmetterlings kann auf der anderen Seite des Globus keinen Sturm erzeugen. Denken wir nur daran, welche Auswirkungen das auf unsere Welt hätte, alleine die ganzen Vögel, die sich jeden Tag in die Luft schwingen.

„Warum ist die Ehe des Mathematikers gescheitert? Seine Frau war nicht berechenbar.“

Warum ist Zufall in der Mathematik aber eine so wichtige Sache? Im Konkreten geht es um das breite Thema Kryptografie. Wenn wir für die Verschlüsselung Kombinationen wählen, die man leicht erraten kann, ist der Schutz schnell dahin. Dazu ein kleines Beispiel.

Die Seiten des Internets sind statuslos. Das bedeutet, dass, nachdem eine Webseite aufgerufen wird und man auf einen Link klickt, um zur nächsten Seite zu gelangen, alle Informationen aus der vorangegangenen Seite verloren gegangen sind. Um dennoch Dinge wie in einem Onlineshop, einen Warenkorb und all die sonst noch notwendigen Funktionen zum Einkaufen bereitstellen zu können, gibt es die Möglichkeit, Daten auf dem Server in sogenannten Sessions zu speichern. Zu diesen Daten gehört oft auch das Login des Nutzers. Um die Sessions zu unterscheiden, haben diese eine Identifikation (ID). Der Programmierer legt nun fest, wie diese ID generiert wird. Eine Eigenschaft dieser IDs ist, dass sie eindeutig sein müssen, es darf also keine ID zweimal vorkommen.

Nun könnte man auf die Idee kommen, den Zeitstempel inklusive der Millisekunden zu nutzen, um daraus einen Hash zu generieren. Der Hash verhindert, dass man auf den ersten Blick erkennt, dass die ID aus einem Zeitstempel erstellt wird. Ein geduldiger Hacker hat dieses Geheimnis mit ein wenig Fleiß vergleichsweise schnell gelüftet. Hinzukommt noch die Wahrscheinlichkeit, dass zwei Nutzer zur gleichen Zeit eine Session erzeugen können, was zu einem Fehler führen würde.

Nun könnte man auf die Idee kommen, die SessionID aus verschiedenen Segmenten wie Zeitstempel + Benutzernamen und anderen Details zusammenzubauen. Obwohl steigende Komplexität einen gewissen Schutz bietet, ist dies keine wirkliche Sicherheit. Denn Profis haben Methoden mit überschaubarem Aufwand, diese ‚vermeidlichen‘ Geheimnisse zu erraten. Der einzig wirkliche Schutz ist die Verwendung von kryptografisch sicherem Zufall. Als ein Segment, das sich mit noch so viel Aufwand nicht erraten lässt.

Bevor ich aber verrate, wie wir dem Problem begegnen können, möchte ich den typischen Angriffsvektor und den damit erzeugten Schaden auf SessionIDs kurz besprechen. Wenn die SessionID durch einen Angreifer erraten wurde und diese Session noch aktiv ist, dann kann der Hacker diese Session in seinem Browser übernehmen. Das Ganze nennt sich Session Hijacking oder auch Session Riding. Der Angreifer, der eine aktive Session übernehmen konnte, ist als fremder Nutzer mit einem Profil, das ihm nicht gehört, bei einem Onlinedienst angemeldet. Damit kann er alle Aktionen durchführen, die ein legitimer Nutzer auch tun kann. Es wäre also möglich, in einem Onlineshop eine Bestellung auszulösen und die Ware an eine andere Adresse zu schicken. Ein Umstand, den es mit allen Mitteln zu verhindern gilt.

Nun gibt es verschiedene Strategien, die eingesetzt werden, um das Stehlen einer aktiven Session zu unterbinden. Jede einzelne dieser Strategien bietet schon einen ‚gewissen‘ Schutz, aber die volle Stärke wird erst durch die Kombination der verschiedenen Optionen erreicht, denn die Hacker rüsten ja auch stetig nach und suchen nach Möglichkeiten. Im Rahmen dieses kleinen Artikels betrachten wir ausschließlich den Aspekt, wie man eine kryptografisch sichere Session ID erzeugen kann.

So ziemlich alle gängigen Programmiersprachen haben eine Funktion random(), die eine zufällige Zahl erzeugt. Die Implementierung dieser Zufallszahl variiert. Leider sind diese generierten Zahlen für Angreifer gar nicht so zufällig, wie sie sein sollten. Deswegen gilt für Entwickler immer der Grundsatz, diese einfache Zufallsfunktion zu meiden. Stattdessen gibt es für Backendsprachen wie PHP und JAVA kryptografisch sichere Implementierungen für Zufallszahlen.

Für Java Programme kann man auf die Klasse java.security.SecureRandom zurückgreifen. Eine wichtige Funktion dieser Klasse ist die Möglichkeit, aus verschiedenen Kryptografie-Algorithmen [1] zu wählen. Zusätzlich lässt sich der Startwert über den sogenannten Seed. Um die Verwendung ein wenig zu demonstrieren, hier ein kleiner Codeausschnitt:

Abonnement / Subscription

[English] This content is only available to subscribers.

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

Wir sehen, die Verwendung ist recht einfach und kann leicht angepasst werden. Für PHP ist es sogar noch einfacher, Zufall zu erzeugen. Dazu ruft man lediglich die Funktion random_int ( $min, $max ); [2] auf. Das Intervall kann optional angegeben werden.

Wir sehen also, dass die Annahme vieler Menschen, unsere Welt wäre in großen Teilen berechenbar, nicht ganz. Es gibt in vielen Bereichen der Naturwissenschaften Prozesse, die wir nicht berechnen können, Diese bilden dann wiederum die Grundlage, um ‚echten‘ Zufall zu erzeugen. Für Anwendungen, die einen sehr starken Schutz benötigen, greift man oft auf Hardware zurück. Das können etwa Geräte sein, die den radioaktiven Zerfall eines gering strahlenden Isotops messen.

Das Feld der Kryptografie und auch der Web-Application-Security sind natürlich noch viel umfangreicher. Dieser Artikel sollte mit einem recht einfachen Beispiel auf die Notwendigkeit dieser Thematik lenken. Dabei habe ich es vermieden, mit komplizierter Mathematik mögliche Interessenten zu verwirren und sie schlussendlich auch zu vergraulen.

Ressourcen

Abonnement / Subscription

[English] This content is only available to subscribers.

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


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!


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.

Tschüß Privatsphäre, Tschüß Freiheit

Die im Oktober 2023 veröffentlichten neuen AGB für Microsoft-Dienste lösten in der IT-Welt einen Aufschrei aus. Der Grund war ein Absatz, in dem es hieß, dass mittlerweile alle Microsoft-Dienste auf künstlicher Intelligenz basieren. Diese K.I. soll dazu dienen, Urheberrechtsverletzungen zu erkennen. Dazu gehören Dinge wie Musik, Filme, Grafiken, E-Books und natürlich auch Software. Falls diese K. I. Urheberrechtsverletzungen auf dem System erkennt, sollten diese Dateien automatisch vom „System“ gelöscht werden. Derzeit ist nicht klar, ob diese Regel für die eigene lokale Festplatte oder nur für die Dateien in der Microsoft Cloud gilt. Microsoft hat außerdem erklärt, dass Benutzer, die gegen die Urheberrechtsbestimmungen verstoßen, künftig von allen Microsoft-Diensten ausgeschlossen werden sollen.

Dieser Ausschluss hat verschiedene ‘Geschmäckle’. Die ersten Fragen, die mir in den Sinn kommen, sind: Was passiert mit kostenpflichtigen Abonnements wie Skype? Werde ich gesperrt und anschließend wird mein ungenutztes Guthaben zurückerstattet? Ein noch schlimmeres Szenario wäre, dass ich möglicherweise auch all mein Guthaben und digitale Käufe wie den Zugang zu Spielen und anderen Dingen verliere. Oder sind kostenpflichtige Abonnements davon nicht betroffen? Bisher ist dieser Teil nicht klar.

Wer ein Apple Nutzer ist und denkt, dass dies keine Auswirkungen auf Applegeräte hat, sollte sicherstellen, dass keine Microsoft-Dienste verwendet werden. Möglicherweise wissen sie nicht, dass dieser zu Microsoft gehört. Nicht jedes Produkt enthält den Firmennamen. Denken Sie darüber nach, denn wer weiß, ob diese Produkte Ihr System ausspionieren. Einige Anwendungen wie Skype, Teams, Edge Browser und Visual Studio Code sind auch für andere Plattformen wie Apple und Linux verfügbar.

Microsoft besitzt außerdem die Quellcode-Hosting-Plattform GitHub und ein soziales Netzwerk für Spezialisten namens LinkedIn. Mit Office 360 können Sie die gesamte Microsoft Office Suite per Webbrowser als Cloud-Lösung nutzen und alle Ihre Dokumente werden in der Microsoft Cloud gespeichert. Dieselbe Cloud, in der US-Regierungsinstitutionen wie die CIA, die NSA und viele andere ihre Dateien aufbewahren. Nun, es scheint wohl ein sicherer Ort für alle Ihre Gedanken zu sein, die in ein Office Dokument niedergeschrieben wurden.

Dieses kleine Detail zu Office-Dokumenten führt uns zu einer weiteren Randbemerkung in den neuen Geschäftsbedingungen von Microsoft. Der Kampf gegen Hassrede. Was auch immer das heißt. Öffentliche Beleidigungen und Verleumdungen werden seit jeher vom Gesetzgeber strikt als Straftat behandelt. Es ist kein Kavaliersdelikt, der mit einem kleinen Bußgeld geahndet wird. Daher ist mir nicht klar, was dieses ganze Gerede über Hassreden bedeutet. Vielleicht ist es ein Versuch, eine öffentliche Zensur der Meinungsfreiheit einzuführen.

Aber zurück zum Randhinweis der Microsoft-Nutzungsbedingungen zu Hassreden. Microsoft hat so etwas geschrieben wie: Wenn Hassreden festgestellt werden, wird der Benutzer verwarnt und wenn die Verstöße mehrmals auftreten, wird das Microsoft-Konto des Benutzers deaktiviert.

Wenn Sie vielleicht denken, dass dies nur etwas ist, was jetzt bei Microsoft passiert, seine sie sich im klaren, dass viele andere Unternehmen ebenfalls daran arbeiten, solche Bestimmungen für ihre Produkte einzuführen. Die Kommunikationsplattform Zoom beispielsweise beinhaltete auch K. I. Techniken, um die Benutzerkommunikation zu ‘Trainingszwecken’ zu beobachten.

Bei all diesen Neuigkeiten stellt sich eine große Frage, die beantwortet werden muss: Was kann ich selbst tun? Die Lösung ist einfach. Verlassen Sie das digitale Universum und gehen Sie zurück in die reale Welt. Schalten Sie das Gehirn wieder ein. Benutzen Sie Stift und Papier, zahlen Sie bar, lassen Sie Ihr Smartphone zu Hause und dort niemals auf dem Nachttisch. Wenn Sie es nicht verwenden, schalten Sie es aus! Treffen Sie Ihre Freunde, wann immer es möglich ist physisch und bringen Sie dazu nicht Ihr Smartphone mit. Es wird keine Regierung, keinen Präsidenten und keinen Messias geben, die eine Veränderung herbeiführen wird. Es ist an uns, dies zu tun.

Zu argumentieren, dass Privatsphäre für dich nicht wichtig ist, weil du nicht zu verbergen hast, ist das Gleiche wie zu sagen, das Meinungsfreiheit unwichtig ist, weil man nicht zu sagen hat.

Das Neueste wird nicht immer das Beste sein

Microsoft hat beispielsweise seit der Einführung von Windows 10 seinen Nutzern ein Update-Zwang auferlegt. Grundsätzlich war die Idee durchaus begründet. Denn ungepatchte Betriebssysteme ermöglichen Hackern leichten Zugriff. Also hat sich vor sehr langer Zeit der Gedanke: ‚Latest is greatest‘ durchgesetzt.

Windows-Nutzer habe hier wenig Freiräume. Aber auch auf mobilen Geräten wie Smartphones und Tabletts sind in der Werkseinstellung die automatischen Updates aktiviert. Wer auf GitHub ein Open Source Projekt hostet, bekommt regelmäßige E-Mails, um für verwendete Bibliotheken neue Versionen einzusetzen. Also auf den ersten Blick durchaus eine gute Sache. Wenn man sich mit der Thematik etwas tiefer auseinandersetzt, kommt man rasch zu dem Schluss, dass latest nicht wirklich immer das Beste ist.

Das bekannteste Beispiel hierfür ist Windows 10 und die durch Microsoft erzwungenen Update Zyklen. Dass Systeme regelmäßig auf Sicherheitsprobleme untersucht und verfügbare Aktualisierungen eingespielt werden müssen, ist unumstritten. Dass die Pflege von Rechnersysteme auch Zeit in Anspruch nimmt, ist ebenfalls einsichtig. Problematisch ist es, aber wenn durch den Hersteller eingespielte Aktualisierungen einerseits das gesamte System lahmlegen und so eine Neuinstallation notwendig wird, weil das Update nicht ausreichend getestet wurde. Aber auch im Rahmen von Sicherheitsaktualisierungen ungefragt Funktionsänderungen beim Nutzer einzubringen, halte ich für unzumutbar. Speziell bei Windows kommt noch hinzu, dass hier einiges an Zusatzprogrammen installiert ist, die durch mangelnde Weiterentwicklung schnell zu einem Sicherheitsrisiko werden können. Das bedeutet bei aller Konsequenz erzwungene Windowsupdates machen ein Computer nicht sicher, da hier die zusätzlich installierte Software nicht auf Schwachstellen untersucht wird.

Wenn wir einen Blick auf Android-Systeme werfen, gestaltet sich die Situation weitaus besser. Aber auch hier gibt es genügend Kritikpunkte. Zwar werden die Applikationen regelmäßig aktualisiert, so dass tatsächlich die Sicherheit markant verbessert wird. Aber auch bei Android bedeutet jedes Update in aller Regel auch funktionale Veränderungen. Ein einfaches Beispiel ist der sehr beliebte Dienst Google StreetMaps. Mit jedem Update wird die Kartennutzung für mich gefühlt unübersichtlicher, da eine Menge für mich unerwünschter Zusatzinformationen eingeblendet werden, die den bereits begrenzten Bildschirm erheblich verkleinern.

Als Nutzer ist es mir glücklicherweise bisher nicht passiert, dass Applikationsupdates unter Android das gesamte Telefon lahmgelegt haben. Was also auch beweist, dass es durchaus möglich ist, Aktualisierungen ausgiebig zu testen, bevor diese an die Nutzer ausgerollt werden. Was aber nicht heißt, dass jedes Update unproblematisch war. Probleme, die hier regelmäßig beobachtet werden können, sind Dinge wie ein übermäßig erhöhter Batterieverbrauch.

Reine Android Systemupdates wiederum sorgen regelmäßig dafür, dass die Hardware nach knapp zwei Jahren so langsam wird, dass man sich oft dazu entscheidet, ein neues Smartphone zu kaufen. Obwohl das alte Telefon noch in gutem Zustand ist und durchaus viel länger genutzt werden könnte. So ist mir bei vielen erfahrenen Nutzern aufgefallen, dass diese nach circa einem Jahr ihre Android-Updates ausschalten, bevor das Telefon durch den Hersteller in die Obsoleszenz geschickt wird.

Wie bekommt man ein Update-Muffel nun dazu, seine Systeme trotzdem aktuell und damit auch sicher zu halten? Mein Ansatz als Entwickler und Konfigurationsmanager ist hier recht einfach. Ich unterscheide zwischen Feature Update und Security Patch. Wenn man im Release Prozess dem Semantic Versioning folgt und für SCM Systeme wie Git ein Branch by Release Modell nutzt, lässt sich eine solche Unterscheidung durchaus leicht umsetzen.

Aber auch der Fragestellung einer versionierbaren Konfigurationseinstellung für Softwareanwendungen habe ich mich gewidmet. Hierzu gibt es im Projekt TP-CORE auf GitHub eine Referenzimplementierung, die in dem zweiteiligen Artikel ‘Treasue Chest’ ausführlich beschrieben wird. Denn es muss uns schon klar sein, dass wenn wir bei einem Update die gesamte vom Nutzer vorgenommene Konfiguration auf Werkseinstellung zurücksetzen, wie es recht oft bei Windows 10 der Fall ist, können ganz eigene Sicherheitslücken entstehen.

Das bringt uns auch zu dem Punkt Programmierung und wie GitHub Entwickler durch E-Mails dazu motiviert, neue Versionen der verwendeten Bibliotheken in ihre Applikationen einzubinden. Denn, wenn es sich bei einem solchen Update um eine umfangreiche API-Änderung handelt, ist das Problem der hohe Migrationsaufwand für die Entwickler. Hier hat sich für mich eine ebenfalls recht einfache Strategie bewährt. Anstatt mich von den Benachrichtigungen über Aktualisierungen von GitHub beeindrucken zu lassen, prüfe ich regelmäßig über OWASP, ob meine Bibliotheken bekannte Risiken enthalten. Denn wird durch OWASP ein Problem erkannt, spielt es keine Rolle, wie aufwendig eine Aktualisierung werden kann. Das Update und eine damit verbundene Migration muss zeitnahe umgesetzt werden. Dies gilt dann auch für alle noch in Produktion befindlichen Releases.

Um von Beginn an der Update Hölle zu entrinnen, gilt allerdings eine Faustegel: Installiere beziehungsweise nutze nur das, was du wirklich benötigst. Je weniger Programme unter Windows installiert sind und je weniger Apps auf dem Smartphone vorhanden sind, umso weniger Sicherheitsrisiken entstehen. Das gilt auch für Programmbibliotheken. Weniger ist aus Sicht der Security mehr. Abgesehen davon bekommen wir durch den Verzicht unnötiger Programme noch eine Performance Verbesserung frei Haus.

Sicher ist für viele private Anwender die Frage der Systemaktualisierung kaum relevant. Lediglich neue unerwünschte Funktionen in vorhandenen Programme, Leistungsverschlechterungen oder hin und wieder zerschossene Betriebssysteme verursache mehr oder weniger starken Unmut. Im kommerziellen Umfeld können recht schnell erhebliche Kosten entstehen, die sich auch auf die gerade umzusetzenden Projekte negativ auswirken können. Unternehmen und Personen, die Software entwickeln können die Nutzerzufriedenheit erheblich verbessern, wenn sie bei Ihren Release Veröffentlichungen zwischen Security Patches und Feature Updates unterscheiden. Und ein Feature Update sollte dann entsprechend auch allen bekannten Security Aktualisierungen enthalten.