Votre projet à l'air très bien, mais il y a quelques points qui me chiffonne dans la présentation :
Nous allons hasher le mot de passe et la passe phrase en SHA-384 côté client, et les hasher une seconde fois avec bCrypt en php (cette fois-ci côté serveur) et finalement chiffrer les fichier en AES 256 du côté client.
Ce qui veut dire que seulement l'utilisateur pourra accéder à ses fichiers. Muonium ne pourra en aucun cas percevoir ce qu'il se passe sur l'espace de stockage de l'utilisateur.
Quel est l'interet de hash côté client si tu génère un hash statique ?
Il suffit de sniffer les paquets et récupère le hash. Et on peux reverse le hash. Il existe d'ailleurs des outils en ligne pour dechiffrer le SHA-384. Autant faire transiter le mot de passe en clair, ça reviens exactement au même.
Pareil pour le chiffrement des fichiers. Tu chiffre côté client, mais où stocke tu la clef de déchiffrage ? Car tu dois bien déchiffrer le tout pour que l'utilisateur puisse les consulters sur vos serveurs ? Du coup, tant vous, que n'importe qui sniffer le réseau d'un de vos utilisateurs à accès à ses données et peux les decrypter.
Actuellement, et jusqu'à ce que nous créons l'entreprise nous ne pouvons pas hasher la passphrase à cause des lois françaises (on risque de la prison ><)
Ce n'est pas vrai du tout, je ne suis pas français et je n'ai pas une connaissance parfaite du code civil français, mais, en 5 min sur internet, j'ai lu assez pour te dire que tu te trompe.
Je vais citer wikipedia:
la Loi pour la confiance dans l'économie numérique du 21 juin 2004 a totalement libéré l’utilisation des moyens de cryptologie, en revanche leur importation ou exportation est soumise à déclaration ou autorisation.
Par contre, il est stipuler je-sais-plus-où que tu dois être en mesure de fournir des données déchiffrer si on te présente un mandat d'un juge.
Je n'ai pas regardé le code source, mais d'après ce que je lis, vous avez encore pas mal de boulot afin de rendre votre système correctement chiffré.