Zum Inhalt springenSkip to content
Vivodepot

Technisches Konzept und DatenblattTechnical Concept and Datasheet

Stand: 05.11.2026As of: 5 November 2026

Vivodepot GmbH, Berlin
Quelltext:Source code: github.com/vivodepot/vivodepot(öffnet in neuem Fenster)(opens in a new window) (EUPL-1.2)

Vivodepot ist ein persönliches Depot, das alles Wichtige eines Lebens an einem Ort zusammenbringt – Familie, Finanzen, Wohnen, Arbeit, Gesundheit –, verschlüsselt und bei den Menschen selbst. Es besteht aus einer einzelnen HTML-Datei, die im Browser läuft, auch offline. Es braucht weder Installation noch Konto; von sich aus sendet die Anwendung keine Daten aus dem Depot an einen Server. Die Unterlagen liegen verschlüsselt bei der Person selbst. Die Depots anderer Menschen, für die sie sorgt, etwa Kinder, betreute Menschen oder Angehörige, führt sie als Sub-Depots mit, jedes mit eigenem Passwort.Vivodepot is a personal depot that brings everything important in a life together in one place – family, finances, home, work, health – encrypted and kept by people themselves. It consists of a single HTML file that runs in the browser, also offline. It needs no installation and no account; on its own, the application sends no data from the depot to a server. The documents are stored encrypted with the person herself. The depots of other people she cares for, such as children, adults for whom she acts as legal carer, or relatives, she keeps as sub-depots, each with its own password.

Technisches KonzeptTechnical concept

Die Person geht souverän und auf Augenhöhe mit ihren eigenen Daten um. Datenschutz ist dafür die Voraussetzung, aber nicht das Ziel.The person handles her own data with confidence and on an equal footing. Data protection is the precondition for this, not the goal.

  • Die Daten bleiben bei der Person. Das Depot ist eine verschlüsselte Datei auf ihrem Gerät. Es gibt kein Konto, und das Depot liegt bei keinem Dienst von Vivodepot.The data stays with the person. The depot is an encrypted file on her device. There is no account, and no Vivodepot service holds the depot.
  • Eine Datei, offline. Die Anwendung ist eine einzelne HTML-Datei und läuft auch offline; von sich aus sendet sie keine Daten aus dem Depot an einen Server.One file, offline. The application is a single HTML file and also runs offline; on its own, it sends no data from the depot to any server.
  • Weitergabe nur auf Veranlassung der Person. Sie wählt den Weg: verschlüsselte Datei für die Lese-App, QR-Code, PDF, Fachformat-Datei (FHIR, XML, JSON) zum Versenden oder Hochladen ins System der Stelle, Einmal-Link oder Solid-Pod. Mailen, Hochladen oder Übergeben tut sie selbst; über die Dienste von Vivodepot (Ablage, Pod-Brücke) läuft nur Chiffrat.Sharing only at the person's initiative. She chooses the route: encrypted file for the Reader app, QR code, PDF, structured file (FHIR, XML, JSON) to send or upload to the recipient's system, one-time link or Solid pod. She sends, uploads or hands over herself; only ciphertext passes through Vivodepot's services (storage, pod bridge).
  • Austausch über Dateien und Links, ohne API. Vivodepot bietet mit Absicht keine Schnittstelle, über die ein fremdes System auf das Depot zugreift. Einrichtungen behalten ihre Systeme; der Austausch läuft an den Übergängen, über Dateien und Links, die die Person weitergibt oder einliest.Exchange through files and links, no API. Vivodepot deliberately offers no interface through which another system accesses the depot. Institutions keep their systems; exchange happens at the transitions, through files and links that the person shares or imports.
  • Vertrauen über Signaturen statt über einen Server. Ein öffentlicher Schlüssel ist in jede Anwendung eingebettet; Module, Vorlagen, Zertifikate und Produkte werden gegen diese Kette geprüft.Trust through signatures instead of a server. A public key is embedded in every application; modules, templates, certificates and products are verified against this chain.
  • Fester Kern, fachliche Module. Sprache, Recht, Dokumente, Formate und Erscheinungsbild sind Module; ein Produkt ist der Kern mit einer festen Auswahl.Fixed core, domain modules. Language, law, documents, formats and appearance are modules; a product is the core with a fixed selection.
  • Wachstum durch Bausteine anderer. Vivodepot legt die Infrastruktur so an, dass sie wächst, weil andere darauf bauen und Bausteine wiederverwenden, etwa die Feldkennungen des Registers (CC0), nicht durch zentrale Sammlung von Daten. Einrichtungen reichen Vorlagen aus dem Studio signiert bei Vivodepot ein, und die Anwendung lässt Module anderer Anbieter ein, deren Zertifikatskette bis zur Trust-Authority führt.Growth through others' building blocks. Vivodepot designs the infrastructure to grow because others build on it and reuse its building blocks, such as the Field Register identifiers (CC0), not through central collection of data. Institutions submit signed templates from the Studio to Vivodepot, and the application admits modules from other providers whose certificate chain leads to the Trust Authority.
  • Eine Bedeutung je Feld. Jedes Depot-Feld hat im Feldregister eine dauerhafte Kennung mit fester Adresse. Formate und Vorlagen verweisen darauf, statt die Bedeutung mitzuführen.One meaning per field. Every depot field has a persistent identifier with a fixed address in the Field Register. Formats and templates refer to it instead of carrying the meaning themselves.
  • Offene Standards an den Rändern. FHIR, SMART Health Links, W3C Verifiable Credentials, Solid.Open standards at the edges. FHIR, SMART Health Links, W3C Verifiable Credentials, Solid.
KomponenteComponentAufgabeFunction
VivodepotVivodepotStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Die Anwendung der Person, als Privat und Pro: Depot anlegen, Unterlagen führen, Vorsorgedokumente erstellen, weitergeben.The person's application, as Privat and Pro: create a depot, manage documents, draw up advance care documents, share them.
Lese-AppReader appStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Für die empfangende Stelle: öffnet, was die Person weitergibt, nur lesend, ohne Speicher, ohne Netz, ohne Konto.For the receiving party: opens what the person shares, read-only, without storage, without network, without an account.
StudioStudioStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Für Einrichtungen: Sie richten Vivodepot für ihre Menschen ein, erstellen Vorlagen ohne Programmierung und reichen sie bei Vivodepot ein.For institutions: they set up Vivodepot for their people, create templates without programming and submit them to Vivodepot. studio.vivodepot.org(öffnet in neuem Fenster)(opens in a new window)
VC-IssuerVC-IssuerStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Für die Vertrauensstelle: stellt Anbietern Zertifikate aus, als JWS mit einem Credential nach W3C-Muster.For the trust authority: issues certificates to providers, as a JWS with a credential following the W3C pattern.
FeldregisterField RegisterStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Das öffentliche Verzeichnis aller Depot-Felder.
  • Eine dauerhafte Kennung je Feld unter register.vivodepot.de/feld/<kennung>: für Menschen als Seite, für Maschinen als JSON-LD (SKOS), mit Fassungen, Lizenz CC0.
  • Andere Standards knüpfen an die Kennung an: Format-Module, Ein- und Ausgaben ordnen ihr Felder aus FIM-Schemata, FHIR-Profilen (IPS, ISiK) und SD-JWT VC zu; eingelesene EDCI-Nachweise ebenso.
  • Die Werte tragen Codes aus LOINC, SNOMED CT, ICD-10, ATC und ISO 4217; die ISiK-Datei trägt zwei KDL-Codes, sobald die Person die KDL selbst geladen hat. Für ESCO und die XÖV-Rollencode-Liste sind Code-Listen angelegt, noch ohne Codes.
  • Ergänzbar: Neue Felder kommen mit einer neuen Fassung hinzu. Bezüge zu weiteren Standards kommen als neue Format-Module hinzu, ohne den Kern zu ändern, solange ein vorhandener Leser oder Schreiber (JSON, XML) passt.
  • Ab v1 bleiben vergebene Kennungen unverändert; eine nicht mehr gebrauchte wird deaktiviert, nicht gelöscht.
The public directory of all depot fields.
  • One persistent identifier per field at register.vivodepot.de/feld/<kennung>: a page for people, JSON-LD (SKOS) for machines, with versions, licence CC0.
  • Other standards link to the identifier: format modules, inputs and outputs map fields from FIM schemas, FHIR profiles (IPS, ISiK) and SD-JWT VC to it; imported EDCI credentials likewise.
  • The values carry codes from LOINC, SNOMED CT, ICD-10, ATC and ISO 4217; the ISiK file carries two KDL codes once the person has loaded the KDL herself. Code lists for ESCO and the XÖV role code list are in place, not yet filled.
  • Extensible: new fields are added with a new version. References to further standards are added as new format modules without changing the core, as long as an existing reader or writer (JSON, XML) fits.
  • From v1 onwards, assigned identifiers remain unchanged; an identifier no longer needed is deactivated, not deleted.
DiensteServicesStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Brückenseite zum Solid-Pod, Ablage für Einmal-Links (nur Chiffrat) und der Download-Dienst, der jedes Produkt nach seinem signierten Rezept ausliefert.Bridge page to the Solid pod, storage for one-time links (ciphertext only) and the download service, which delivers each product according to its signed recipe.

ArchitekturArchitecture

Die Person wählt den Weg und gibt selbst weiter Kern eine HTML-Datei, offline keine Netzanfragen aus dem Depot Depot-Datei verschlüsselt Empfänger Stelle oder Vertrauensperson Lese-App: nur lesen, ohne Netz oder eigenes Fachsystem Datei + Passwort verschlüsselt · direkt in die Lese-App QR-Code verschlüsselt · mit Ablaufdatum PDF drucken, mailen, hochladen Fachformat-Datei FHIR, XML, JSON · versenden, hochladen Einmal-Link (SHL) verschlüsselt · einmal abrufbar Solid-Pod-Brücke verschlüsselt · eigene Seite The person chooses the route and shares it herself Core one HTML file, offline no network requests from the depot depot file encrypted Recipient Receiving party or trusted person Reader app: read-only, no network or its own system File + password encrypted · straight into the Reader app QR code encrypted · with expiry date PDF print, email, upload Structured file FHIR, XML, JSON · send, upload One-time link (SHL) encrypted · retrievable once Solid pod bridge encrypted · separate page

Kern eine HTML-Datei, offline · keine Netzanfragen aus dem Depot · Depot-Datei verschlüsseltCore one HTML file, offline · no network requests from the depot · depot file encrypted

Die Person wählt den Weg und gibt selbst weiterThe person chooses the route and shares it herself

  • Datei + Passwort verschlüsselt · direkt in die Lese-AppFile + password encrypted · straight into the Reader app
  • QR-Code verschlüsselt · mit AblaufdatumQR code encrypted · with expiry date
  • PDF drucken, mailen, hochladenPDF print, email, upload
  • Fachformat-Datei FHIR, XML, JSON · versenden, hochladenStructured file FHIR, XML, JSON · send, upload
  • Einmal-Link (SHL) verschlüsselt · einmal abrufbarOne-time link (SHL) encrypted · retrievable once
  • Solid-Pod-Brücke verschlüsselt · eigene SeiteSolid pod bridge encrypted · separate page

Empfänger Stelle oder Vertrauensperson · Lese-App: nur lesen, ohne Netz · oder eigenes FachsystemRecipient Receiving party or trusted person · Reader app: read-only, no network · or its own system

KomponenteComponentMerkmaleCharacteristics
KernCoreStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Keine Netzanfragen aus dem Depot: Die Content-Security-Policy setzt connect-src 'none'. Es gibt keine Telemetrie. Automatisch geprüft wird die Datei: Beim Laden und Benutzen stellt sie 0 Anfragen ins Netz. Eine gehostete Kopie fragt über ihren Service Worker beim eigenen Server nach Aktualisierungen.No network requests from the depot: the Content Security Policy sets connect-src 'none'. There is no telemetry. The file is checked automatically: on loading and use it makes 0 network requests. A hosted copy asks its own server for updates through its service worker.
SpeicherungStorageStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Die Datei ist das Depot. Der Browserspeicher (IndexedDB) dient nur als Zwischenspeicher; die Depotinhalte liegen dort nur als Chiffrat.The file is the depot. Browser storage (IndexedDB) serves only as a cache; the depot contents are held there only as ciphertext.
KryptografieCryptographyStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)PBKDF2-HMAC-SHA-256 mit 600.000 Iterationen, daraus HKDF-SHA-256 je Depot, daraus AES-256-GCM. Jede Verschlüsselung erhält einen frischen, zufälligen 96-Bit-IV. Die AAD bindet Kryptoversion, Iterationen und KDF-Typ. Für ein vergessenes Passwort lässt sich ein Wiederherstellungs-Code einrichten. Ableitung, Verschlüsselung und Signatur laufen über die Web Crypto API; nur den öffentlichen Ed25519-Schlüssel berechnet die eingebettete Bibliothek noble-ed25519. Die geheimen Schlüssel des Depots und der Signatur sind als CryptoKey nicht extrahierbar. Testvektoren nach RFC 5869 (HKDF) und NIST CAVP (AES-GCM).PBKDF2-HMAC-SHA-256 with 600,000 iterations, from which HKDF-SHA-256 per depot, from which AES-256-GCM. Each encryption uses a fresh, random 96-bit IV. The AAD binds the crypto version, the iterations and the KDF type. A recovery code can be set up for a forgotten password. Derivation, encryption and signing run through the Web Crypto API; only the public Ed25519 key is computed by the embedded library noble-ed25519. The secret keys of the depot and of the signature are non-extractable as CryptoKey. Test vectors per RFC 5869 (HKDF) and NIST CAVP (AES-GCM).
SignaturSignatureStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Die Halterin signiert mit Ed25519 (JWS, alg Ed25519 nach RFC 9864). Beim Prüfen nimmt Vivodepot auch EdDSA und ES256 an. Nachweise, die die Halterin selbst signiert, sind selbst signiert; ohne die Signatur einer Institution tragen sie kein Vertrauen.The holder signs with Ed25519 (JWS, alg Ed25519 per RFC 9864). When verifying, Vivodepot also accepts EdDSA and ES256. Credentials that the holder signs herself are self-signed; without the signature of an institution they carry no trust.
Einmal-LinkOne-time linkStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Der Kern erzeugt lokal eine JWE (dir/A256GCM) und einen Link shlink:/ nach SMART Health Links. Der Schlüssel steht nur im Link. Die Ablage speichert nur Chiffrat. Die Datei ist einmal abrufbar, höchstens sieben Tage lang, und wird danach gelöscht. Diese beiden Regeln setzt die Ablage von Vivodepot durch; der Standard schreibt sie nicht vor.The core generates a JWE (dir/A256GCM) locally and a shlink:/ link per SMART Health Links. The key is only in the link. The storage holds only ciphertext. The file can be retrieved once, for at most seven days, and is deleted afterwards. These two rules are enforced by Vivodepot's storage; the standard does not prescribe them.
Solid-PodSolid podStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Eine eigene Brückenseite übernimmt den Pod; der Kern bleibt ohne Netz. Über die Grenze geht nur Chiffrat. Anmeldung per Solid-OIDC mit PKCE und DPoP, Zugriff je Freigabe per WAC. Die Bürgerin kann den Zugriff über die Brückenseite zurücknehmen. Erprobt gegen einen lokalen Solid-Server.A separate bridge page handles the pod; the core stays without network. Only ciphertext crosses the boundary. Sign-in via Solid-OIDC with PKCE and DPoP, access per share via WAC. The citizen can withdraw access through the bridge page. Tested against a local Solid server.

Modularer AufbauModular structure

Vivodepot besteht aus einem Kern und Modulen. Der Kern bringt Speicherung, Kryptografie, Oberfläche und Prüfung mit; was fachlich wechselt, steht in Modulen: Sprache, Recht, Dokumente, Formate und Erscheinungsbild. Ein Produkt ist der Kern mit einer festen Modulauswahl, als eine einzelne Datei.Vivodepot consists of a core and modules. The core provides storage, cryptography, user interface and verification; whatever varies by domain lives in modules: language, law, documents, formats and appearance. A product is the core with a fixed selection of modules, as a single file.

Kern Speicher · Krypto · Oberfläche · Prüfung Sprache (DE, EN) Rechtsraum (DE) Dokumente Erscheinungsbild Formate Rezept je Produkt Core Storage · Crypto · UI · Verification Language (DE, EN) Jurisdiction (DE) Documents Appearance Formats Recipe per product

Kern Speicher · Krypto · Oberfläche · PrüfungCore Storage · Crypto · UI · Verification

ModuleModules

  • Sprache (DE, EN)Language (DE, EN)
  • Rechtsraum (DE)Jurisdiction (DE)
  • DokumenteDocuments
  • ErscheinungsbildAppearance
  • FormateFormats
  • Rezept je ProduktRecipe per product
ModulModuleMerkmaleCharacteristics
ProdukteProductsStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Ein Produkt ist eine Kombination aus Kern und Modulen: Sprache, Rechtsraum, Bereiche, Vorlagen, Erscheinungsbild. Kern und Module sind frei kombinierbar. Eine Einrichtung kann so ein eigenes Produkt bekommen, etwa für ungarische Hebammen mit eigener Sprache, eigenen Fachbegriffen und eigenem Startbildschirm; jedes Depot, das damit entsteht, erbt Sprache und Module. Jedes Produkt ist eine Datei, die Module stecken eingebettet darin. Gebaut werden heute Privat und Pro, je auf Deutsch und Englisch; öffentlich abrufbar ist Privat DE/EN.A product is a combination of core and modules: language, jurisdiction, areas, templates, appearance. Core and modules can be combined freely. An institution can thus get its own product, for example for Hungarian midwives with their own language, their own technical terms and their own start screen; every depot created with it inherits language and modules. Each product is one file, with the modules embedded in it. Currently built are Privat and Pro, each in German and English; publicly available is Privat DE/EN.
SpracheLanguageStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Auch Deutsch ist ein Sprachmodul; je Produkt steckt genau eines darin. Ein weiteres Sprachmodul lässt sich signiert nachträglich einlassen oder von vornherein als eigenes Produkt anlegen.German, too, is a language module; each product contains exactly one. A further language module can be admitted afterwards, signed, or set up from the outset as a separate product.
RechtsraumJurisdictionStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Das deutsche Recht ist ein Modul; der Kern legt kein Land fest. Ein zweiter Rechtsraum ist als Mechanik geprüft, Recht eines anderen Landes ist nicht enthalten.German law is a module; the core does not fix any country. A second jurisdiction has been tested as a mechanism; the law of another country is not included.
DokumenteDocumentsStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Patientenverfügung, Vorsorgevollmacht, Betreuungsverfügung und die Verfügung zur digitalen Nachbildung (KI-Verfügung) – ob und unter welchen Bedingungen Texte, Sprachaufnahmen, Fotos und Videos nach dem Tod für eine KI-Nachbildung genutzt werden dürfen – sind Dokumentmodule mit einem gemeinsamen Generator und einer Ausgabeschicht.Advance healthcare directive, lasting power of attorney, guardianship directive and the directive on digital recreation (AI directive) – whether and on what terms texts, voice recordings, photos and videos may be used after death for an AI recreation – are document modules with a shared generator and an output layer.
ErscheinungsbildAppearanceStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Marke und Erscheinungsbild sind eigene Register im Kern.Brand and appearance are separate registers in the core.
FormateFormatsStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Ein- und Ausgabeformate docken als Format-Module an. Ein Format-Modul ist eine Beschreibung, kein Code: Es nennt Leser oder Schreiber, Erkennung und die Zuordnung zu den Depot-Feldern. Format-Module lassen sich auch aus Fachschemata erzeugen, etwa aus dem Schema einer FIM-Leistung.Input and output formats plug in as format modules. A format module is a description, not code: it names the reader or writer, the detection and the mapping to the depot fields. Format modules can also be generated from domain schemas, for example from the schema of a FIM service.
AuslieferungDeliveryStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Jedes Produkt ist als signiertes Rezept beschrieben: Kern-Stand, Sprach-, Rechtsraum- und Bereichsmodule und Vorlagen, je mit SHA-256. Der Auslieferungslauf baut aus dem Rezept die Datei und schreibt ihre Prüfsumme mit ins Rezept. Der Download-Dienst prüft bei jedem Abruf die Signaturkette des Rezepts und die Prüfsumme der Datei; stimmt eine nicht, liefert er nicht aus.Each product is described as a signed recipe: core version, language, jurisdiction and area modules and templates, each with SHA-256. The delivery run builds the file from the recipe and writes its checksum into the recipe. On every request the download service checks the recipe's signature chain and the file's checksum; if either does not match, it does not deliver.

Einlass. Neben den eingebetteten Modulen lassen sich Module nachträglich einlassen. Ein signiertes Modul prüft der Kern gegen den eingebauten Vertrauensanker und zeigt die Prüfstufe an. Ein unsigniertes Modul kann die Person selbst einlassen, außer einem Marken-Modul (Name, Farben, Logo) und einem Verweis auf eine lokale KI-Modelldatei (Name und Prüfsumme einer Modelldatei auf dem eigenen Gerät; der Kern liest dabei keine Datei, lädt nichts und führt nichts aus), die der Kern nur signiert einlässt; ein unsigniert eingelassenes Modul bleibt als „ungeprüft“ gekennzeichnet. Ein Einlass lässt sich nicht rückgängig machen.Admission. In addition to the embedded modules, modules can be admitted afterwards. The core verifies a signed module against the built-in trust anchor and displays the verification level. A person can admit an unsigned module themselves, except a brand module (name, colours, logo) and a reference to a local AI model file (name and checksum of a model file on the person's own device; in doing so the core reads no file, loads nothing and runs nothing), which the core admits only when signed; a module admitted unsigned stays marked as “unverified”. An admission cannot be undone.Stelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)

Zertifizierung und SignaturCertification and signing

KomponenteComponentMerkmaleCharacteristics
VertrauensankerTrust anchorStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Ein öffentlicher Ed25519-Schlüssel der Vivodepot Trust-Authority ist in die Anwendung, die Lese-App und das Studio eingebettet. Jede Zertifikatskette endet dort. Den Fingerabdruck veröffentlicht Vivodepot zum Abgleich in seiner Sicherheitsrichtlinie auf GitHub.A public Ed25519 key of the Vivodepot Trust Authority is embedded in the application, the Reader app and the Studio. Every certificate chain ends there. Vivodepot publishes the fingerprint for comparison in its security policy (in German) on GitHub.
ZertifikateCertificatesStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Zertifikate sind JWS mit einem Credential nach W3C-Muster und tragen ein Ablaufdatum. Zwischenstellen gibt es in drei Arten: Ausgabestelle, Prüfstelle und Institution; sie zertifizieren Anbieter. Gesperrte Schlüssel stehen in einer eingebetteten Sperrliste, ohne Online-Dienst; eine neue Sperrung erreicht die Person mit der nächsten Fassung. Anbieter-Zertifikate tragen ein Ablaufdatum; für externe Anbieter stellt die Vertrauensstelle sie auf 18 Monate aus.Certificates are JWS with a credential following the W3C pattern and carry an expiry date. Intermediate authorities come in three kinds: issuing authority, verification authority and institution; they certify providers. Revoked keys are listed in an embedded revocation list, without an online service; a new revocation reaches the person with the next version. Provider certificates carry an expiry date; for external providers the trust authority issues them for 18 months.
Module und VorlagenModules and templatesStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Ein signiertes Modul kommt mit Aussteller-Zertifikat, Anbieter-Zertifikat und Modul-Signatur. Die Anwendung prüft die Kette bis zum Anker und leitet die Prüfstufe allein aus den Zertifikaten ab; schlägt ein Schritt fehl, lässt sie das Modul nicht ein. Vivodepot gibt die Muster des Bundesjustizministeriums (BMJ, heute BMJV) und der BZgA (heute BIÖG) unverändert wieder und signiert sie mit einem eigenen Schlüssel. Beide Stellen sind daran nicht beteiligt.A signed module comes with an issuer certificate, a provider certificate and a module signature. The application verifies the chain up to the anchor and derives the verification level solely from the certificates; if any step fails, it does not admit the module. Vivodepot reproduces the forms of the Federal Ministry of Justice (BMJ, now BMJV) and the Federal Centre for Health Education (BZgA, now BIÖG) unchanged and signs them with its own key; these bodies are not involved.
FassungenVersionsStelle im QuellcodeLocation in source code(öffnet in neuem Fenster)(opens in a new window)Jede öffentliche Fassung des Quellcodes auf GitHub trägt einen eigenen Tag; seit dem 2. Oktober 2026 ist er signiert und lässt sich mit git tag -v gegen den Schlüssel unter vivodepot.de/.well-known/ prüfen. Die Prüfsummen jeder ausgelieferten Fassung stehen in der Sicherheitsrichtlinie auf GitHub.Every public release of the source code on GitHub carries its own tag; since 2 October 2026 it has been signed and can be verified with git tag -v against the key at vivodepot.de/.well-known/. The checksums of every delivered version are listed in the security policy (in German) on GitHub.
KonformitätConformityValidierungValidation Auf der Testplattform Gazelle (IHE Europe, EHDS Continuous Testing) tragen 4 Testinstanzen den Status „Verified“; außerdem liegen 4 Validierungsberichte vor, alle Schritte und Kriterien bestanden. „Verified“ gilt für die geprüften Testinstanzen; das ist keine Produktzertifizierung und kein Sicherheitsaudit. Die Nennung eines Standards auf dieser Seite ist kein Konformitätsnachweis; geprüfte Ergebnisse stehen je Profil auf der Seite Validierung.On the Gazelle test platform (IHE Europe, EHDS Continuous Testing), 4 test instances hold the status “Verified”; in addition, 4 validation reports are available, with all steps and criteria passed. “Verified” applies to the tested test instances; it is not a product certification and not a security audit. Naming a standard on this page is not proof of conformity; tested results are listed per profile on the Validation page.

Datenmodell und offene StandardsData model and open standards

  • FHIR R4 mit IPS (eu-eps): Export als FHIR-Bundle. Eine Provenance-Ressource verweist auf jede erzeugte Ressource und hält fest, dass die Person oder ihre Vertretung sie angelegt hat (Autorin, Vorgang „CREATE“, Zeitpunkt). So bleiben selbst eingetragene Daten erkennbar.FHIR R4 with IPS (eu-eps): export as a FHIR Bundle. Advance healthcare directives, lasting powers of attorney and guardianship directives are included in the Advance Directives section as one Consent resource each; the directive on digital recreation and powers of attorney limited to banking are not. A Provenance resource refers to every generated resource and records that the person or her representative created it (author, activity “CREATE”, time). Self-entered data thus remains identifiable.
  • Die Datenschicht ist sektor-agnostisch. Andock-Schichten: Medizin über FHIR, Identität über SD-JWT VC, Bildung über EDCI.The data layer is sector-agnostic. Domains connect through standards: health via FHIR, identity via SD-JWT VC, education via EDCI.
  • Über Sektorgrenzen: Für die Übertragung nutzt Vivodepot SMART Health Links aus der Medizininformatik (HL7-FHIR-Leitfaden „SMART Health Cards and Links“, STU 1), auch für Unterlagen außerhalb der Medizin.Across sector boundaries: For transfer, Vivodepot uses SMART Health Links from medical informatics (HL7 FHIR implementation guide “SMART Health Cards and Links”, STU 1), also for documents outside medicine.
  • Codelisten: LOINC, ICD-10, ATC, SNOMED CT (Allergene), ISO 4217; angelegt, noch ohne Codes: ESCO, XÖV-Rollencode.Code lists: LOINC, ICD-10, ATC, SNOMED CT (allergens), ISO 4217; in place, not yet filled: ESCO, XÖV role code.
  • Feldregister: eine dauerhafte Kennung je Feld, maschinenlesbar (JSON-LD/SKOS), Lizenz CC0, Bezugspunkt für die Zuordnungen zu FIM, FHIR, KDL und weiteren Codes in den Ein- und Ausgaben; das Register selbst veröffentlicht die SEMIC-Bezüge, ergänzbar.Field Register: one persistent identifier per field, machine-readable (JSON-LD/SKOS), licence CC0, reference point for the mappings to FIM, FHIR, KDL and further codes in inputs and outputs; the register itself publishes the SEMIC references, extensible.
  • Urheberschaft: Einträge werden angehängt, nie überschrieben. Eine Vollmachtskette ist möglich.Authorship: entries are appended, never overwritten. A chain of delegation is possible.

In EntwicklungIn development

  • Empfang in Nextcloud: zuerst als Datei, danach als Brückenseite über WebDAV.Receiving in Nextcloud: first as a file, then as a bridge page via WebDAV.
  • Übergang zu Post-Quanten-Kryptografie, beschlossen.Transition to post-quantum cryptography, decided.

Grenzen: Gegen Schadsoftware auf dem Gerät oder eine Browser-Erweiterung mit Zugriff auf die Seite schützt die Anwendung nicht; die Sicherheitsrichtlinie auf GitHub nennt diese und weitere Restrisiken. Ein externes Sicherheitsaudit hat bisher nicht stattgefunden.Limits: The application does not protect against malware on the device or a browser extension with access to the page; the security policy (in German) on GitHub lists these and further residual risks. An external security audit has not yet taken place.

Kontakt: Carola Klessen, Geschäftsführerin · Vivodepot GmbH, Körnerstraße 7–10, 10785 Berlin · info@vivodepot.de · vivodepot.deContact: Carola Klessen, Managing Director · Vivodepot GmbH, Körnerstraße 7–10, 10785 Berlin · info@vivodepot.de · vivodepot.de