Dieser Blogpost beschreibt das Ausstellen und Verifizieren von Verifiable Credentials mit einer QNAP (ein Network-Attached-Storage-System –  NAS)

Setup

Wir verwenden für unsere Installation ein QNAP TS-x53D NAS mit 4x3TB Platten im Raid 1 Betrieb. Es läuft das hauseigene Betriebssystem QTS 5.0.0.1986 build 20220324 mit der QNAP Container Station App, das den Einsatz von Virtualisierungstechnologien wie LXD, Docker® und Kata integriert.

Weitere Informationen zum Betreiben von Docker Containern auf einer QNAP finden sich hier: https://www.qnap.com/de-de/how-to/tutorial/article/verwenden-der-container-station

Installation

Zur Ausführung der Docker Container müssen eine Reihe von Umgebungsvariable für den jeweiligen Anwendungsfall gesetzt werden:

  • Issuer Use Case: stellt die Funktionen zum Ausstellen von Zertifikaten zur Verfügung
  • Verifier Use Case: stellt die Funktionen zum Überprüfen von Zertifikaten bereit

Als grundlegender Trust-Anchor für beide Anwendungsfälle ist ein Account bei der Softwareplattform SOWL der esatus AG notwendig. Dieser Zugang stellt die entsprechende Vertrauensbasis zum Ausstellen von Zertifikaten bzw. die garantierte Identität zum Überprüfen der Credentials sicher. Folgende Parameter von SOWL werden benötigt:

  • Tenant_ID: Tenant ID für den SOWL Zugang
  • VcApp_ID: Applikations ID zum Erstellen eines Verifiable Credentials
  • VcApp_Secret: zugehöriges Secret zur App für das Erstellen eines Verifiable Credentials
  • VcDef_ID: ID der Credential Definition zum Ausstellen des Zertifikats
  • PrfApp_ID: Applikations ID zum Überprüfen eines Verifiable Credentials
  • PrfApp_Secret: zugehöriges Secret zur App für das Überprüfen eines Verifiable Credentials
  • PrfTmpl_ID: ID der Beweisvorlage (Proof Template) zum Überprüfen eines Verifiable Credential

Befehlszeile zum Starten für den Issuer Use Case mit Umgebungsvariablen:

docker run -d --name issuer -p 4500:3000 \
    -e SOWL_TENANT_ID=Tenant_ID \
    -e SOWL_VCAPP_ID=VcApp_ID \
    -e SOWL_VCDEF_ID=VcDef_ID \
    -e SOWL_VCAPP_SECRET=VcApp_Secret \
    semcon/sc-issuer

Befehlszeile zum Starten für den Verifier Use Case mit Umgebungsvariablen:

docker run -d --name issuer -p 4600:3000 \
    -e SOWL_TENANT_ID=Tenant_ID \
    -e SOWL_PRFAPP_ID=PrfApp_ID \
    -e SOWL_PRFAPP_SECRET=PrfApp_Secret \
    -e SOWL_PRFTMPL_ID=PrfTmpl_ID \
    semcon/sc-verifier

Konfiguration

Nach dem Start des Semantic Container müssen folgende Konfigurationen abgelegt werden:

  • OpenID Connect Login
    die Konfiguration ist in diesem Blogbeitrag beschrieben: https://www.ownyourdata.eu/en/openidconnect/
  • Usage Policy
    die Usage Policy legt fest unter welchen Bedingungen die Daten verarbeitet werden und muss konform zur SOyA Struktur UsagePolicy angegeben werden:

    {
        "key":"usage_policy",
        "value": Usage Policy wie in SOyA Schema UsagePolicy angegeben
    }
  • allgemeine Informationen über die Impf-/Prüfstelle
    diese Informationen enthalten Details über die Impfung verabreichende Stelle und muss konform zur SOyA Struktur VaccinationInfo angegeben werden:

    {
        "key":"vaccination_info",
        "value": Informationen wie in SOyA Schema VaccinationInfo
    }

    die das Impfzertifikat überprüfende Stelle und muss konform zur SOyA Struktur VerificationInfo angegeben werden:

    {
    "key":"verification_info",
    "value": Informationen wie in SOyA Schema VerificationInfo
    }
  • QR Code
    en QR Code der Informationen für OYD Datentresor Benutzer enthält, um eine Verbindung zwischen Semantic Container und Datentresor herzustellen:

    {
        "key":"connect_qr",
        "value": DID zum zugehörigen DID Dokument wie unten beschrieben
    }

    Inhalt des Service-Attributes eines W3C DID Dokuments:

    {
        "usagePolicy": "HOST/api/meta/usage",
        "info": "HOST/api/vaccination_info",
        "connect": "HOST/api/vaccination_apply"
    }

    Der Wert für HOST muss mit der jeweiligen Hostadresse (zB “https://idunion-issuer.data-container.net“) an der der Semantic Container betrieben wird, ersetzt werden. Die DID kann mit einem öffentlichen Service wie zB https://uniregistrar.io erstellt werden.

Mit diesen Konfigurationen kann ein Semantic Container zum Erstellen und Verifizieren von Credentials betrieben werden. Detaillierte Informationen über Ablauf finden sich hier: https://www.ownyourdata.eu/idunion

Zusammenfassung

In diesem Blogbeitrag haben wir gezeigt, wie ein KMU mit eigener Hardware Covid19 Credentials ausstellen und überprüfen kann. Mit einer aktuellen NAS (hier eine QNAP) stehen die notwendigen Ressourcen für das Betreiben von Semantic Containern zur Verfügung, welche natürlich auch weitere Credentials / Verifizierung verarbeiten können und so einen wichtigen Beitrag zur Datensouveränität von Klein- und Mittelbetrieben leisten.

Wenn du Fragen oder Anregungen zu diesem Thema hast, Melde dich bei uns unter der Email Adresse: support@ownyourdata.eu.