/ Fedy Salah @fedysalah Lors de la création du compte • Initialisation ◦ hachage bcrypt du mot de passe ▪ passwordHash = bcrypt.hash(password, bcrypt.generateSalt(10)) ◦ génération d’un sel propre à l’utilisateur ▪ salt = bcrypt.generateSalt(10) ◦ génération d’un couple de clés (publique/privée) propre à l’utilisateur • Chiffrement de la clé privée et du sel ◦ chiffrement AES du sel avec le mot de passe de l’utilisateur ▪ encryptedSalt = aes.encrypt(salt, password) ◦ création d’un hash bcrypt du mot de passe avec le sel pour chiffrer (AES) la clé privée avec ▪ encryptedPrivateKey = aes.encrypt(privateKey, bcrypt.hash(password, salt)) • Stockage sur le serveur ◦ email, nom, clé publique, passwordHash, encryptedSalt, encryptedPrivateKey { "email": "
[email protected]", "name": "Bobby Boby", "password": "$2b$2$FtXnxAf6EU", "salt": "wMTRhODAwYWVlYTA3Zj", "publicKey": "a public key", "privateKey": "BueD6aAB2L6" }