@mana/shared-key-grant
HKDF-basierte Mission-Key-Grants — Apps bekommen per-Mission-Decrypt-Access, ohne den User-Masterkey zu sehen.
@mana/shared-key-grant ist eine der wenigen Krypto-Primitiven des
Vereins. Es löst ein spezifisches Problem: wie kann eine App auf
verschlüsselte User-Daten zugreifen, ohne dass der Master-Encryption-
Key des Users je den User-Browser verlässt?
Antwort: per-Mission-Key-Grants via HKDF. Der User-Master-Key bleibt clientseitig. Für eine konkrete Aufgabe (z.B. „transkribiere diese Audio-Aufnahme”) leitet der Client einen missionsspezifischen Sub-Key ab und sendet ihn dem Server. Der Server kann nur diese eine Aktion durchführen, danach ist der Sub-Key wertlos.
Das ist nicht-trivial zu bauen und nicht-trivial zu prüfen. Klasse-A,
weil das Wire-Format ein Vertrag ist, an dem mana-auth und jeder
Konsument-Service hängt. Wer es benutzen will, soll genau das gleiche
verstanden haben wie wir, als wir es gebaut haben.
Mitnehmen
Vereins-Pakete liegen auf der Vereins-eigenen Verdaccio-Registry.
Apps und Services-Repos haben dort ein .npmrc, das
den @mana/-Scope auf npm.mana.how routet.
pnpm add @mana/shared-key-grant Auch nutzbar mit npm oder yarn — der Scope-Mechanismus ist Standard-npm-Verhalten. Wer den Verein nicht-mitgliedlich nutzen will, kann die Registry frei konfigurieren.
Worauf es sich bindet
- Klasse
- Klasse A — Verein-Vertrag — öffentlich, semver-strikt, Plattform-Pflicht.
- Sprache
- TypeScript
- Version
- v0.1.0
- Registry
- npm.mana.how — eigene Vereins-Registry, kein npmjs.com
- Lizenz
- Quelloffen — Details im Repo.
Was es für den Verein verkörpert
- DatensouveränitätVerwahrer statt Eigentümer.
- OffenheitCode und Mittelverwendung öffentlich.
- EigenbetriebEigene Infrastruktur, quelloffener Stack.
Was läuft, was nicht
Version: v0.1.0.
- Adoption durch weitere Apps mit Zero-Knowledge-Anforderung.
- Hardware-Key-Backed Grants (z.B. via Secure Enclave) ist Roadmap.
@mana/shared-key-grant ist eines von vielen Paketen, die der Verein selbst pflegt — eigene Bauteile auf eigener Registry, frei nachnutzbar.