Rückkanal und seine Implementierung

In der TyDIDs-P2P Bibliothek existieren zwei Implementierungspunkte, mit denen sich tatsächlich ein Rückkanal realisieren lässt. Beide Punkte sind absolut „optional“, d.h. ob bei einer bestimmten Stelle diese überhaupt genutzt werden und wenn ja, welcher Code dann ausgeführt wird, ist dem Entwickler überlassen. Hierdurch wird sichergestellt, dass auf Höhe von TyDIDs die Identitäten auf jeden Fall souverän/selbstbestimmt sind und weder der Empfänger dem Sender noch der Sender dem Empfänger etwas vorschreiben kann.

     
...
const ssi = await TydidsP2P.ssi(privateKey);
ssi.onACK (function(_presentation) {
     return {pong: new Date().getTime() };
});
...

Bei onACK(function) kann auf Seiten des Empfängers eine Funktion hinterlegt werden, die definiert, ob und wenn ja welche Daten dieser für den ursprünglichen „Sender“ bereitstellt. Im Code-Beispiel ist es ein einfaches JSON-Objekt mit einem Feld pong und dem aktuellen Zeitstempel.

Wichtig ist, dass es sich um eine „Bereitstellung“ handelt, d.h. das Datenpaket (Zeitstempel) wird nicht übermittelt, sondern mit Hilfe einer DID „abgelegt“, wobei die DID als Zeiger dem Sender bekannt ist. Ob der Sender auf diesen Zeiger hört, ob er einen Event-Listener hierauf implementiert hat, das ist wiederum ihm überlassen.

...
const ssi = await TydidsP2P.ssi(privateKey);
ssi.onReceivedACK(function(from,did) {
   console.log(from,did);
})
...

Möchte der ursprüngliche Sender auf die Rückantworten hören, so hinterlegt er eine Funktion mittels onReceivedACK(function). In diesem Beispiel wird lediglich der Absender (ID) und der Inhalt der DID ausgegeben.

Es sei an dieser Stelle für eine Implementierung der Hinweis gegeben, dass Node-JS ab V8 die Möglichkeit hat Prozesse mit Hilfe von sogenannten Workern zu isolieren. Eine gute Einführung hierzu findet sich in folgendem Blog-Post. Ergänzend nur der Hinweis, dass es ein ganz schlechtes Design ist, wenn man in diesen beiden Funktionen einen Code ausführt, welcher den Haupt-Thread blockiert und somit das gesamte System (Empfänger oder Sender) lahmlegt, denn genau dies würde ein Äquivalent zum SYN Flood vom vorherigen Kapitel sein.

Eine kleine Geschichte – Alice lernt den Schalter kennen

Zum bisherigen Szenario wird ein Schalter hinzugefügt, welcher an- und ausgeschaltet werden kann, damit der Auto mit Strom versorgt wird.

Es ist ein schöner Sommertag, als Alice an der Ladesäule ankommt. Sie stellt ihre Antennen auf Empfang und hört, ob sie wohl ein Signal von einem Stromzähler empfangen kann. Nur wenige Bruchteile einer Sekunde später liegt an der bekannten Stelle der Zählerstand versehen mit dem aktuellen Zeitstempel. Alice ist misstrauig und prüft sicherheitshalber die digitale Signatur. Ist es wirklich der Zähler dieser Ladesäule? – Zufrieden entschließt sie sich zu laden, vorher legt sie den Datensatz im JWT-Format bei sich ab. Nun schaut sie, ob sie das Signal des empfangen kann.

Leider gelingt ihr dies zunächst nicht, denn im Gegensatz zum Stromzähler sendet dieser nur, wenn der Schaltzustand gewechselt wird. Sie muss also eine Blindsendung machen – toll denkt sie! Das hat ihr gerade noch gefehlt.

An einen definierten Platz legt Alice ihre Intention (Absicht) ab, dass sie – und kein anderer – den Schalter aktivieren möchte. Ihren Empfänger stellt sie vorher jedoch auf die Stelle ein, bei der genau dieser Schalter seine Bestätigungen ablegt. Nur Bruchteile von Sekunden später hört sie nicht nur das vertraute Knacken, wenn der Schalter aktiviert wird, sondern empfängt – in dem sie an die richtige Stelle schaut – auch die Bestätigung des Schalters. Im Gegensatz zu einigen älteren Modellen, scheint es sich um ein neueres Modell zu handeln, welches auch bestätigt, dass der Zustandwechsel auf „AN“ auf Basis einer Anforderung von Alice vorgenommen wurde.

Am Ende des Ladevorgangs wiederholt sich dieser Ablauf in umgekehrter Reihenfolge. Was bleibt sind einige Präsentationen. Zwei hat Alice bei sich gespeichert, damit sie diese mit Bob später abrechnen kann. Insgesamt vier weitere (zwei vom Schalter und zwei vom Stromzähler) hat sich der Stromversorger gemerkt, der in Bruchteilen von Sekunden seine Rechnung mit ZUGFerd an Alice sendet.

Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Inhalt nicht verfügbar.
Bitte erlauben Sie Cookies, indem Sie auf Übernehmen Sie auf das Banner