Das Projekt BrainExtender

Die Bausteine

erstellt:19.4.2023
letzte Änd.: 1.5.2023

Ich habe sechs verschiedene Bausteine/Komponenten, die einen BrainExtender definieren, ausgemacht.

Bevor ich mit dem ersten Baustein beginne, möchte ich zuerst ein paar Gedanken anstellen zum Thema, was wir eigentlich tun, wenn wir mit unseren Computern arbeiten. Damals in den Anfang der 80er Jahre war das so noch nicht absehbar. Darum sind sich auch viele Menschen heute noch nicht darüber bewusst. Wir reden viel über die "virtuelle Welt". Ja das ist auch richtig. Mit unseren Computern und der ganzen Software haben wir eine virtuelle Welt erschaffen. Aber, wenn wir es mal genau betrachten, dann ist doch die virtuelle Welt nur ein Modell, ein Abbild, unserer realen Welt. So wie die vielen Eisenbahn-Modellbauer die reale Welt in einem kleineren Maßstab so Natur getreu als möglich nachzubauen, bauen wir die Welt so getreu als möglich, wie es unsere Computer zulassen, in digitaler Form nach.

Wir bilden Gegenstände, Objekte, unsere reale Welt im Computer nach in dem wir digitale Modelle davon erstellen. Und mit unserer Software händeln wir diese Modelle.

Der erste Baustein

D.h. wir brauchen einen Objekt-Verwalter oder eben Englisch, einen ObjectManager. Dieser ObjectManager ist für alle unsere digitalen Objekte verantwortlich. Über ihn erzeugen wir Objekte, verwalten wir die Objekte und löschen sie auch wieder, wenn wir sie nicht mehr brauchen.

Der ObjectManager ist ein Stück Hardware und Software mit einer angeschlossenen Festplatte, auf der die ganzen Objekte gespeichert werden. Wie das technisch geschieht, darüber brauchen wir uns momentan keine Gedanken zu machen.

Wir können das mit einer Autowerkstatt vergleichen. Es gibt die Kfz-Mechaniker, die in ihrer Halle mit den Hebebühnen sich um die Autos der Kunden kümmern. Und es gibt ein Lager mit einem Lagerverwalter für Ersatzteile und Spezial-Werkzeuge. Die Kfz-Mechaniker machen sich keine Gedanken darum wie der Lagerverwalter seine Gegenstände lagert und verwaltet. Sie gehen lediglich an den Schalter und fassen die Ersatzteile und Werkzeuge aus, die sie für ihren Auftrag brauchen. Ob der Lagerverwalter ein Pedant oder ein "chaotisches Genie" ist, kümmert die Kfz-Mechaniker nicht, solange sie schnell genug ihre Teile und Werkzeuge bekommen können.

Ähnlich verhält es sich mit den Objekten. Ich als Anwender definiere Schablonen für Objekte und "backe" mithilfe dieser Schablonen meine Objekte. Der ObjectManager bewahrt sie für mich auf und bei Bedarf hole ich sie mir von ihm ab und arbeite mit ihnen. Eventuell verändere ich sie auch und gebe sie ihm dann wieder zur Aufbewahrung zurück. Dabei interessiert mich, hier an dieser Stelle, die Technologie, mit der das realisiert wird, überhaupt nicht. Ob das nun eine Objekt-Datenbank, eine Objekt-relationale Datenbank, eine SQL-Datenbank, eine NoSQL oder eine noch zu entwickelnde Technologie ist.

Der zweite Baustein

Jetzt brauchen wir noch etwas um mit dem ObjectManager kommunizieren zu können. Ich nenne das mal ganz allgemein eine Ein-/Ausgabe-Einheit oder Englisch eine Input-/Output-Unit.

Als konkretes Gerät stellen wir uns für den Moment einen handelsüblichen Desktop-Rechner, bestehend aus Bildschirm, Tastatur, Maus und Rechnergehäuse vor. Nur die Festplatte lassen wir außen vor. Die brauchen wir nicht, weil ihre Aufgabe übernimmt der ObjectManager. Verbunden werden beide Einheiten über ein LAN-Kabel.

Das reicht für das Verständnis des Arbeitsprinzips für den Anfang. Später bauen wir die I/O-Units viel weiter aus. Und wir können jetzt mit diesem eigenständigen Gerät arbeiten. Nur heute sind wir mit unseren Geräten alle miteinander verbunden. Darum kommen wir zum dritten Baustein.

Der dritte Baustein

Wir brauchen Sicherheit. Darum ist der dritte Baustein ein Pförtner, ein Portier, eine Concierge, ein Hausmeister und ein Ver- und Entschlüssler. Also technisch gesehen ein Switch mit eigener Rechenleistung und einem kleinen RAM. Er verwaltet die übrigen Komponenten des BrainExtender. Über ihn definieren wir welche Komponenten zu unserem BrainExtender gehören. Und über ihn kommunizieren wir mit anderen BrainExtendern. Und er sorgt dafür, dass die Kommunikation verschlüsselt wird, und zwar ohne unser Zutun. Diese Verschlüsselung ist ein fester Bestandteil des Systems und von Anfang an vorhanden. Ich nenne in Porter (Englischer Ausdruck für Pförtner).

Der vierte Baustein

wir brauchen einen Ausweis um uns gegenüber unserem BrainExtender ausweisen zu können. Wir möchten ja, dass er uns dient und nicht irgendwem. Bei vielen herkömmlichen Personal-Computern ist das momentan immer noch ein Passwort, das wir beim Start eingegeben. Das reicht nicht aus. Darum wird momentan die Zwei-Faktor-Authentifizierung favorisiert.

Was sagt ChatGPT zur Zwei-Faktor-Authentifizierung?

Kannst du mir was über die Zwei-Faktor-Authentifizierung erzählen und wie könnte sie bei einem Desktop-Rechner oder Laptop realisiert werden?
Die Zwei-Faktor-Authentifizierung (auch als Zwei-Schritt-Authentifizierung oder 2FA bezeichnet) ist eine Methode der Zugangskontrolle, bei der Benutzer zwei verschiedene Authentifizierungsmethoden verwenden müssen, um sich bei einem Konto anzumelden oder eine Transaktion durchzuführen. Dies kann die Sicherheit des Kontos erheblich verbessern, da ein potenzieller Angreifer sowohl das Passwort des Benutzers als auch den zweiten Authentifizierungsfaktor benötigen würde, um Zugriff auf das Konto zu erhalten.
Die meisten Zwei-Faktor-Authentifizierungssysteme verwenden eine Kombination aus etwas, was der Benutzer kennt (z.B. ein Passwort) und etwas, was der Benutzer besitzt (z.B. ein Smartphone). Wenn der Benutzer sich anmeldet, muss er zuerst sein Passwort eingeben und dann einen zweiten Code eingeben, der per SMS, E-Mail oder einer speziellen Authentifizierungs-App auf seinem Smartphone generiert wird.

Für Desktop-Rechner und Laptops gibt es verschiedene Möglichkeiten, die Zwei-Faktor-Authentifizierung zu implementieren. Einige Online-Dienste bieten beispielsweise eine spezielle App an, mit der Benutzer einen einmaligen Code generieren können, um sich bei ihrem Konto anzumelden. Andere Dienste verwenden möglicherweise ein Hardware-Token, das an den Computer angeschlossen wird und einen zweiten Authentifizierungsfaktor bereitstellt.

Einige Betriebssysteme und Programme bieten auch integrierte Zwei-Faktor-Authentifizierungsoptionen an. Zum Beispiel ermöglicht es macOS Benutzern, sich mit ihrer Apple Watch oder ihrem iPhone zu authentifizieren, während Windows 10 eine Funktion namens "Windows Hello" enthält, die es Benutzern ermöglicht, sich mit biometrischen Daten wie Fingerabdrücken oder Gesichtserkennung zu authentifizieren.

Beim BrainExtender bekommt jeder Benutzer eine eindeutige Identifikations-Nummer. Diese Identifikations-Nr. wird auf einem kleinen Stück Hardware ähnlich einem FIDO2-Key hinterlegt. Plus weitere Daten. Dazu gehören auch die Schlüssel für die Verschlüsselung der Daten im ObjectManager und bei der Kommunikation im Internet.

Ich nenne dieses kleine Stück Hardware Pass. Das ist ein Ausdruck der sowohl im Englischen als auch im Deutschen für einen Ausweis steht.

Der Besitz des Passes allein ist kein gültiger Ausweis dem System gegenüber, denn er könnte ja gestohlen sein. D.h. es bedarf einer oder sogar weiterer Erkennungsmerkmale. Nach dem momentanen Stand der Technik halte ich einen Fingerabdruck-Sensor, der sich leicht in die Pass-Hardware integrieren lässt, und/oder ein Passwort für sinnvoll.

Für alle, die eine solche unter auch, die eine eindeutige Identifizierung im Netz für gefährlich halten und deshalb ablehnen, sage an dieser Stelle, dass ich auf dieses Thema noch sehr genau eingehen werde. Und vorab mal eine alte Weisheit:

Es sind nicht die Dinge wie Ideen, Erfindungen, Prinzipien, Werkzeuge etc. die gut oder schlecht sind. Sie sind zunächst einmal wertfrei. Der Mensch dahinter, der sie einsetzt, anwendet etc., dessen Absicht macht sie gut oder böse.

Ein Zweites vorab, es ist im "BrainExtender-Kosmos" nicht geplant, dass man immer und überall seine Identität preisgeben muss. Es ist wie im realen Leben, man kann anonym in der virtuellen Welt herumspazieren und nur bei bestimmten Handlungen sollte man seine Identität preisgeben müssen. Das ist ja heute bei einer Konto-Eröffnung bei einer Bank auch schon so. Kein Konto ohne dem Vorzeigen des Personalausweises. Geht man zum Frisör und zahlt bar, weiß der Frisör nicht wen er bedient hat. Das ist zumindest nach der heutigen Gesetzeslage noch so.

Der fünfte Baustein

Eine Möglichkeit, bzw. die sinnvollste Art, einen BrainExtender mit viel Rechenleistung auszustatten, ist eine Komponente, die ich "NumberCruncher" nenne. Im Prinzip ist ein NumberCruncher ein Server der mit viel Rechenleistung und Speicher, aber ohne Bildschirm.

Die sechsten Bausteine

Das BrainExtender-Netz bedarf einiger Dienste um:

  • die Identität im Netz gewährleisten zu können.
  • das anonyme Surfen zu ermöglichen.
  • Dienstleistungen, Objekte, Information bereit zustellen und zu verbreiten, also so eine Art schwarze Bretter.
  • Suchmaschinen.

Das sind spezielle Server im Netz. Welche Aufgaben so ein Server übernimmt, alle vier? Oder ob es für jede einzelne Funktion einen ganz speziellen Server gibt? Das vermag ich heute noch nicht zu sagen.

Ich fasse sie unter dem Sammelbegriff BE-Server zusammen.

Zusammenfassung

Es gibt also sechs verschiedene Typen von Komponenten, die spezialisiert auf eine ganz bestimmte Aufgabe hin sind:

  1. ObjectManager
  2. I/O-Unit
  3. Porter
  4. Pass
  5. NumberCruncher
  6. BE-Server

Im nächsten Abschnitt geht es um den Aufbau, wie diese Bausteine miteinander kombiniert verschiedene BrainExtender ergeben.

Weiter zu den Kombinationen der Bausteine