Architecture Gankpo — vue d'ensemble.
L'écosystème Gankpo repose sur un noyau cryptographique unique, gkp_core, sur lequel s'appuient toutes les applications — Suite, Reader, Wallet, Gateway, Portail Docs. Cette page présente les grandes lignes de cette architecture.
Les trois rôles
Gankpo suit le modèle holder-issuer-verifier :
- Émetteur (issuer) : l'organisation qui produit un document scellé ou un identifiant. Elle détient une clé de signature.
- Détenteur (holder) : la personne ou l'organisation qui reçoit le document ou l'identifiant. Elle peut le stocker, le présenter, le transmettre.
- Vérificateur (verifier) : la personne ou l'organisation qui reçoit un document ou un identifiant et qui en vérifie l'authenticité.
Ce modèle est aligné sur les recommandations du W3C pour les identifiants vérifiables et sur le modèle de l'EUDI Wallet européen.
Le noyau gkp_core
gkp_core est un noyau cryptographique propriétaire en Rust de 38 000 lignes, réparti sur 93 fichiers source. Il regroupe :
- les primitives cryptographiques (signature, chiffrement, hachage, dérivation de clé) ;
- les parseurs et encodeurs des formats
.gkp,.gksend, GKP1 ; - le modèle de chaîne de multisignature (
GKPR) ; - les adaptateurs X.509 et CMS pour interopérabilité PKI ;
- le modèle de révocation.
Il est couvert par 48 fichiers de tests d'intégration et 10 vecteurs de conformité binaire.
Les applications
Les applications de l'écosystème sont des binaires applicatifs qui s'appuient sur gkp_core via une interface FFI C :
- Gankpo Suite (Tauri v2) — création, scellement, vérification côté poste de travail.
- Gankpo Reader (Tauri v2 + mobile) — vérification hors ligne sur poste de travail et sur mobile.
- Gankpo Wallet (Capacitor) — détention et présentation d'identifiants sur iOS et Android.
- Gankpo Gateway (Rust axum) — orchestration serveur, API REST.
- Portail Docs — documentation publique.
Intégration avec les magasins de clés sécurisés
Gankpo s'intègre avec les magasins de clés matériels disponibles sur chaque plateforme :
- iOS : Secure Enclave via CryptoKit.
- Android : Android Keystore, StrongBox quand disponible.
- macOS : Keychain Services.
- Windows : CNG et TPM via le fournisseur Microsoft Platform.
- Linux : PKCS#11 pour HSM externes.
L'utilisation d'un magasin de clés matériel est recommandée pour les clés d'émetteur en production.
Modèle offline-first
La vérification d'un document .gkp, d'une enveloppe .gksend ou d'un identifiant GKP1 ne nécessite aucun appel réseau au moment de l'opération, à condition que le vérificateur dispose localement :
- de la clé publique de l'émetteur ;
- de la liste de révocation applicable, synchronisée selon la politique locale.
Les mises à jour des clés publiques et des listes de révocation se font lors des phases de synchronisation en ligne, selon une cadence définie par chaque déploiement.
Déploiement
Gankpo Gateway est distribuée sous forme d'image conteneur. Un déploiement type comprend :
- une instance Gateway ;
- un stockage persistant pour les clés et les journaux ;
- une passerelle TLS en amont (reverse proxy).
Les déploiements à plus forte charge peuvent horizontalement scaler la Gateway et répartir la charge via un équilibreur.
