simplification
This commit is contained in:
parent
12815c2c3d
commit
f994e9cf55
@ -170,45 +170,56 @@ Dans l'ordre on réalise donc les opérations suivantes pour chaque membres :
|
||||
2. Création de `Message` du `PRDKeyBackup` à destination du membre.
|
||||
3. Envoi de la transaction SP du `Message` du `PRDKeyBackup` à destination du membre.
|
||||
4. Envoi du `Message` du `PRDKeyBackup` à destination du membre.
|
||||
5. Atttente de la réception des `PRDResponse` en réponse aux `PRDKeyBackup` (confirmations).
|
||||
6. Recomposition de la clé pour confirmation depuis les shards reçus dans les `PRDResponse`.
|
||||
6.1. Déchiffrement par le mot de passe de `Part1Enc` depuis le cache.
|
||||
6.2. Déchiffrement par secret partagé de chaque shard reçu dans `id_shard_info_enc_by_shared_secret` des `PRDResponse` de chaque member du role `Member`du process.
|
||||
6.3. Recomposition de `Part2Enc` et déchiffrement par le mot de passe
|
||||
6.4. Concaténation de `Part1` et `Part2`
|
||||
|
||||
##### Étape d'`update` et envoi de l'objet `ItemMember` pour `Onboarding`
|
||||
|
||||
Pour être `onboard` dans un process, c'est-à-dire avoir un rôle, il faut s'ajouter dans la liste des membres du process.
|
||||
Pour être `onboard` dans un process, c'est-à-dire avoir un rôle, il faut :
|
||||
|
||||
Cela signifie envoyer un `PRDUpdate` avec une nouvelle version du PCD de la liste des membres, contenant notre objet `ItemMember` complet. Ce PRD devra recevoir des membres du rôle `Member` du process les `PRDResponse` correspondant aux critères de validation du `process`.
|
||||
1. s'ajouter (objet `Member`) dans la liste des membres et
|
||||
2. s'ajouter son adresse SP dans les adresses d'un des rôles du process.
|
||||
|
||||
C'est à ce moment-là que l'on transmet toutes les clés privées dans l'objet `ItemMember`, en tant que donnée privée (chiffrée par la clé de dépense du signet) dans un PCD (et les `PRDUpdate` correspondant).
|
||||
###### Mise à jour de la liste des membres
|
||||
|
||||
Pour mettre à jour la liste des membres il faut envoyer un `PRDUpdate` avec une nouvelle version du PCD de la liste des membres, contenant l'objet `ItemMember` complet aux membres du role `member`. Ce PRD devra recevoir des membres du rôle `Member` du process les `PRDResponse` correspondant aux critères de validation du `process`.
|
||||
|
||||
C'est à ce moment-là que l'on transmet toutes les clés privées dans l'objet `ItemMember`, en tant que `metadadata` privée (chiffrée par la clé de dépense du signet) dans un PCD (et les `PRDUpdate` correspondant).
|
||||
|
||||
Les adresses SP correspondantes sont aussi transmises en tant que données publiques, ainsi que l'adresse SP de la clé de dépense du login du signet.
|
||||
|
||||
Avant de choisir un process pour continuer l'update de la nouvelle identité :
|
||||
L'`ItemMember` est décrit dans la spécification [Specs-Datamodel.md](Specs-Datamodel.md).
|
||||
|
||||
1. Scan `Nakamoto` des transactions, récupération dans les transactions SP sur Adresse `id_SP` de login du signet, lecture du `RequestHash` de l`output 3` correspondant aux `PRDResponse` à recevoir ou déjà reçus.
|
||||
2. Réception des `PRDResponse` et contrôle de la valeur des signatures (`hash_sig_value`), attente du `validation_timeout` du rôle `Member` du `process` et validation ou non des `PRDKeyBackup`.
|
||||
3. Attente et réception des `pcd_reference_hash` des `PRDResponse` reçus avec le PCD des membres du processus (liste de `itemMember`).
|
||||
4. Recomposition de la clé selon :
|
||||
4.1. Déchiffrement par le mot de passe de `Part1Enc` depuis le cache.
|
||||
4.2. Déchiffrement par secret partagé de chaque shard reçu dans `id_shard_info_enc_by_shared_secret` des `PRDResponse` de chaque member du role `Member`du process.
|
||||
4.3 Recomposition de `Part2Enc` et déchiffrement par le mot de passe
|
||||
4.4 Concaténation de `Part1` et `Part2`
|
||||
1. Création d'un `ItemMember` correspondant à l'utilisateur.
|
||||
2. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemMember` créé.
|
||||
3. Création de `PRDKeyHello` à destination du membre.
|
||||
4. Création de `Message` du `PRDKeyHello` à destination du membre.
|
||||
5. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination du membre.
|
||||
6. Envoi du `Message` du `PRDKeyHello` à destination du membre.
|
||||
7. Réception des `PRDResponse` en réponse aux `PRDKeyHello` et mise à jour des listes depuis les `PCD` correspondants.
|
||||
8. Attente de la validation (`PRDResponse`) du `PRDUpdate`.
|
||||
|
||||
Demande d'update de la liste des membres (PCD) d'un process (exemple avec 2 membres):
|
||||
###### Mise à jour de la liste des process
|
||||
|
||||
1. Création et envoi des `PRDKeyHello`.
|
||||
1.1. Création de `PRDKeyHello` à destination de membre 1 de la liste des membres (adresse SP) du rôle `Member` du `Process`.
|
||||
1.2. Création de `PRDKeyHello` à destination de membre 2 de la liste des membres (adresse SP) du rôle `Member` du `Process`.
|
||||
1.3. Création de `Message` du `PRDKeyHello` à destination de membre 1.
|
||||
1.4. Création de `Message` du `PRDKeyHello` à destination de membre 2.
|
||||
1.5. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination de membre 1.
|
||||
1.6. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination de membre 2.
|
||||
1.7. Envoi du `Message` du `PRDKeyHello` à destination de membre 1.
|
||||
1.11. Envoi du `Message` du `PRDKeyHello` à destination de membre 2.
|
||||
2. Réception des `PRDResponse` en réponse aux `PRDKeyHello` et mise à jour des listes depuis les `PCD` correspondants.
|
||||
3. Création d'un `ItemMember` correspondant à l'utilisateur avec les clés chiffrées (hors clés de révocation) dans la partie data des métadonnées privées et les adresses SP dans les données publiques.
|
||||
4. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemMember` créé.
|
||||
5. Parcours des membres du rôle `Member` et envoi des `PRDUpdate`.
|
||||
6. Attente de la validation (`PRDResponse`) du `PRDUpdate`.
|
||||
7. Redirection vers la page du process sur le relai.
|
||||
Pour mettre à jour la liste des process il faut envoyer un `PRDUpdate` avec une nouvelle version du PCD de la liste des process, contenant l'objet `ItemProcess` complet aux membres du role `process`. Ce PRD devra recevoir des membres du rôle `Process` du process les `PRDResponse` correspondant aux critères de validation du `process`.
|
||||
|
||||
L'`ItemProcess` est décrit dans la spécification [Specs-Datamodel.md](Specs-Datamodel.md).
|
||||
|
||||
Demande d'update de la liste des membres (PCD) d'un process vers chaque membre du rôle `Member` du process.:
|
||||
|
||||
1. Création d'un `ItemProcess` correspondant à l'utilisateur.
|
||||
2. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemProcess` créé.
|
||||
3. Création de `PRDKeyHello` à destination du membre.
|
||||
4. Création de `Message` du `PRDKeyHello` à destination du membre.
|
||||
5. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination du membre.
|
||||
6. Envoi du `Message` du `PRDKeyHello` à destination du membre.
|
||||
7. Réception des `PRDResponse` en réponse aux `PRDKeyHello` et mise à jour des listes depuis les `PCD` correspondants.
|
||||
8. Attente de la validation (`PRDResponse`) du `PRDUpdate`.
|
||||
9. Redirection vers la page du process sur le relai.
|
||||
|
||||
##### Clés de révocation (`revoke`)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user