Microsofts Peer Name Resolution Protocol

Seite 3: Identitäten

Inhaltsverzeichnis

Die PNRP-ID errechnet sich aus der sogenannten P2P-ID, die ihrerseits den Klartext- Namen enthält, und der "Service Location" (siehe Abbildung oben rechts). Der für Menschen verständlichen Name heißt bei Microsoft "Classifier" und darf 149 Zeichen lang sein. Erlaubt sind Unicode-Zeichen, jedoch weder Satz-, Leer- noch manche Sonderzeichen. PNRP unterscheidet hier Groß- und Kleinschreibung.

Im Prinzip kann jeder in PNRP jeden Namen registrieren. Um sicherzustellen, dass man wirklich die Adresse eines ganz bestimmten Rechners bekommt, enthält PNRP ein Public/Private-Key-Verfahren. Um einen Namen so zu sichern, bildet der registrierende Rechner den 128 Bit langen SHA1-Hash seines öffentlichen Schlüssels. Dieser Wert heißt in PNPR Authority und er bildet zusammen mit dem Classifier die P2P-ID, beispielsweise 1d55d80b110802e9f93e6a8a8a669b64791d1647.PnrpTest - Webserver.

Computer können solche Zahlenmonster austauschen, um einander ihre Dienste anzupreisen, und beim Aufbau einer Home-Group tun sie das auch. Menschen kommen besser mit P2P-IDs zurecht, die nicht per Public Key gesichert sind. Die Authority ist dann 0 und Microsoft spricht von "ungesicherten P2P-IDs". In den folgenden Beispielen kommen nur unsichere P2P-IDs wie 0.mypnrpname vor. Übrigens benutzt auch Microsoft sie für Easy Connect. Anders als gesicherte P2P-IDs verweisen sie jedoch jedes Mitglied einer Wolke jede unsichere ID registrieren kann. Die Prüfung muss auf einer anderen Protokollebene stattfinden, auch dazu dient das Passwort beim Easy Connect.

Über die gesamte P2P-ID wird nun wiederum der SHA1-Hash gebildet, sodass eine 128-Bit-Zahl entsteht. Daran wird die ebenfalls 128-bittige Service Location gehängt, und fertig ist die PNRP-ID, die schließlich als Index in die verteilte Hash-Tabelle dient. Der Service-Location-Teil der PNRP-ID wird aus der IPv6-Adresse gewonnen. Sie identifiziert den Knoten eindeutig, auch wenn eine identische P2P-ID mehrfach auf mehreren Knoten-Rechnern benutzt wird. So kann die P2P-ID beispielsweise einen Dienst beschreiben, den verschiedene Rechner anbieten. Sie registrieren dann einfach dieselbe unsichere P2P-ID mit verschiedenen Service Locations.

Der anfragende Knoten kann die Service Location nicht vorher kennen, da sie ja aus der IPv6-Adresse des Knotens berechnet wird. Daher gilt die PNRP-Suche als erfolgreich, wenn einem Eintrag die ersten 128 Bit (von links gezählt) der PNRP-ID mit der gesuchten übereinstimmen. In diesem Anteil der PNRP-ID steckt ja der Hash der gesuchten P2P-ID. Daher können mehrere Anfragen nach derselben P2P-ID auch zu unterschiedlichen Antworten führen.