UBIRCH SIM Überblick

Allgemein

Der UBIRCH client wird als SIM-Applikation (SIGNiT) in Kombination mit einer zusätzlichen Softwarebibliothek bereitgestellt, welche die Kommunikation zwischen Kundenapplikation und der SIM erleichtert. Die Softwarebibliothek ist als Referenzimplementation mit einer Open Source Lizenz verfügbar.

Für Tests kann ein Testkit basierend auf Pycom Hardware Modulen bezogen werden.

 

Softwarebibliothek:

github.com/ubirch/ubirch-protocol-sim

 

Testkit-Quellen:

github.com/ubirch/ubirch-testkit

Voraussetzungen

  • ein System (Computer/Mikrocontroller) mit Zugriff auf ein Modem, welches AT+CSIM
    Kommandos erlaubt
  • optional ein ubirch Testkit

Sicherheit

Die Applikation auf der SIM-Karte wird durch eine PIN gesichert. Die Beispielsoftware des Testkits bezieht die PIN automatisch vom UBIRCH Trust Service. Entwickler müssen sicherstellen, dass die PIN geschützt auf dem Zielgerät verwahrt wird, da diese PIN die Kryptofunktionen der SIM-Applikation absichert.

Funktionale Beschreibung

Die SIM-Applikation stellt Funktionalität zur Verfügung, um Applikationsdaten zu versiegeln – miteinander zu verknüpfen/verketten (Reihenfolge) – und mit einer Signatur zu versehen. Dabei werden die Originaldaten von der SIM-Applikation mittels Hash-Operationen verarbeitet und in ein signiertes UBIRCH PROTOCOL PACKET (UPP) verpackt. Das Versenden des UPP an den UBIRCH Trust Service liegt dann im Aufgabenbereich der Kundenapplikation. Der UBIRCH Trust Service (API) prüft die Signatur, Reihenfolge sowie weitere Merkmale und kümmert sich um die Verankerung in einer Blockchain. Der UBIRCH Trust Service kann auch für die Prüfung der Originaldaten auf Authentizität, Integrität und Blockchain-Verankerung etc. genutzt werden.

 

Es ist die Aufgabe der Kundenapplikation, die Originaldaten sicher in einer Datenbank zu speichern, um eine spätere Prüfung zu ermöglichen. UBIRCH speichert nur den HASH der Originaldaten und kann diese auch nicht wiederherstellen!

 

Wenn die SIM-Karte zusammen mit dem Testkit benutzt wird, sendet das Testkit Daten an den UBIRCH Simple Dataservice, welcher Originaldaten speichert. Dies ist nur für Demonstrationszwecke gedacht.

 

Originaldaten werden an die SIM-Applikation via SIM APDU Kommandos gesendet. Die Softwarebibliothek kümmert sich hierbei um die Codierung der Kommandos. Jede SIM-Karte wird mit einer provisionierten Universally Unique Identifier (UUID) sowie einem kryptografischen Schlüsselpaar ausgeliefert und ist dem UBIRCH Trust Service bekannt. Damit die SIM-Applikation arbeitsfähig wird, muss die IMSI der SIM in der UBIRCH Konsole angemeldet und einem Kunden zugeordnet werden.

Um eine SIM-Karte anzumelden und mit der SIM-Applikation zu arbeiten gibt es ein Quickstart Tutorial auf Englisch: Setup SIM card and device. Sollten Probleme entstehen bitte die FAQ prüfen und den Support kontaktieren.

Überblick: UBIRCH TRUST SERVICE

Der UBIRCH Trust Service ist eine Cloud-basierte Lösung, welche sich um das Identitätsmanagement, die Blockchain-Verankerung und Account-Management kümmert. Er bietet einfache REST API Endpunkte an, um UPPs zu empfangen und zu verarbeiten.

Um Geschwindigkeit, Skalierbarkeit und stabile Transaktionskosten zu garantieren, arbeitet der UBIRCH Trust Service intern mit eigenen Merkle-Tree Strukturen, welche die UPPs aggregieren und in Wurzelhashes zusammenfassen. Die erzeugten Wurzelhashes (engl.: root hashes) werden dann in öffentlichen Blockchains mittels einer Transaktion verankert und garantieren die Unveränderbarkeit der UBIRCH-internen Strukturen.

Der UBIRCH Trust Service wird als Kubernetes Cluster bei Microsoft AZURE gehostet. Alle Performance-kritischen Komponenten sind auch auf Mandantensystemen auslieferbar, sollte die Notwendigkeit bestehen. Der UBIRCH Trust Service ist auf hohen Durchsatz optimiert.

Prozess

Die folgenden zwei Abschnitte beschreiben in Kürze die Vorgänge für die Absicherung und Verifizierung von Daten.
Der grundlegende Ablauf besteht aus drei Schritten:

  1. Absicherung und Versiegelung der Originaldaten an der Quelle durch ein UPP
  2. Verankerung des UPP in der Blockchain
  3. Verifikation der Originaldaten gegen UPP und die Blockchain

 

Versiegelung und Verankerung

Das folgende Sequenzdiagramm zeigt den Ablauf der Versiegelung und Verankerung mithilfe von Pseudocode. Das Beispiel zeigt eine Applikation, welche Daten mit einem beliebigen Empfänger teilt. Der Prozess ist beispielhaft und zeigt nicht notwendigerweise die finale Architektur einer mit dem UBIRCH Trust Service abgesicherten Kundenanwendung.

  1. Sensor generiert Daten
  2. Sensor generiert eindeutigen digitalen Fingerabdruck der Daten (Hash)
  3. Sensor sendet den Hash an die SIM-Applikation, wo ein UPP erzeugt und signiert wird
  4. Sensor sendet die Daten an die Kundenapplikation (Cloud) zur Speicherung und weiteren Verarbeitung
  5. Sensor sendet das UPP an den UBIRCH TRUST SERVICE
  6. UBIRCH TRUST SERVICE verifiziert die Authentizität und Integrität des UPP anhand der Signatur
  7. UBIRCH TRUST SERVICE aggregiert die angelieferten UPPs
  8. UBIRCH TRUST SERVICE verankert die UPPs in einer Blockchain

Verifikation

Jedes Datenpaket, welches mit dem UBIRCH CLIENT an der Quelle versiegelt ( ge-ubirched ) wurde, kann auf einfache Weise durch den Empfänger geprüft werden. Die Verifikation umfasst dabei die Authentizität (Herkunftsbeweis), die Integrität (Unveränderbarkeit), als auch den Zeitpunkt der Verankerung (Zeitstempel) und die Reihenfolge der Daten. Diese Prüfung kann von jedem Empfänger, der die Originaldaten erhalten hat, unabhängig durchgeführt werden. Der Prozess ist dabei unabhängig vom Übertragungsweg und funktioniert über Systemgrenzen hinweg.

Das folgende Sequenzdiagramm nutzt Pseudocode, um den Prozess der Verifikation am Beispiel darzustellen:

  1. Kundenapplikation erhält verifizierbare Daten
  2. Kundenapplikation erzeugt einen digitalen Fingerabdruck der Daten (Hash) in der gleichen Weise, wie die Datenquelle
  3. Kundenapplikation sendet den Hash an den UBIRCH TRUST SERVICE
  4. UBIRCH TRUST SERVICE identifiziert das zum Hash gehörende original UPP
  5. UBIRCH TRUST SERVICE prüft die Signatur des UPP mit dem enthaltenen Hash
  6. UBIRCH TRUST SERVICE identifiziert die zugehörige Blockchain-Transaktion in der das UPP enthalten ist
  7. UBIRCH TRUST SERVICE liefert ein OK (oder nicht-OK) sowie alle Beweise für eine kryptografische Prüfung der Originaldaten an die Kundenapplikation

Technischer Support

Bei Fragen zum technischen Setup kontaktieren Sie bitte jederzeit den UBIRCH Helpdesk.