Tout d’abord, qu’est-ce que BenefitMe ?
BenefitMe est une plateforme qui permet la centralisation, la présentation, la simulation et la gestion de tous les avantages offerts à vos collaborateur·trice·s. Intégrée ou non à votre portail RH, elle permet à chaque employé·e de visualiser les bénéfices dont il·elle dispose dans le domaine des salaires, du temps, des assurances, de la prévoyance ainsi que des avantages en nature. L’employé·e peut effectuer des simulations à volonté, intégrant les impacts fiscaux de ses choix, avant de le soumettre aux RH pour validation.
BenefitMe utilise le framework php Laravel qui permet d’encrypter les mot de passe de manière sécurisée. L'encryption bcrypt est un mécanisme crucial pour sécuriser les mots de passe des utilisateurs dans les applications. Lorsqu'un utilisateur crée un compte ou modifie son mot de passe, Laravel utilise bcrypt pour hasher le mot de passe avant de le stocker dans la base de données. Voici une explication détaillée de ce processus :
1) Hashage du mot de passe : Quand un utilisateur saisit son mot de passe, Laravel n'enregistre pas le mot de passe en clair dans la base de données. Au lieu de cela, il utilise la fonction bcrypt pour hasher le mot de passe.
2) Salage automatique : Bcrypt génère automatiquement un "salt" (une chaîne de caractères aléatoire) qui est ajouté au mot de passe avant le processus de hashage. Cela assure que même si deux utilisateurs ont le même mot de passe, leurs hashes seront différents.
3) Facteur de coût : Le facteur de coût dans bcrypt détermine le nombre d'itérations du processus de hashage, rendant la création du hash plus lente et donc plus difficile à attaquer par force brute.
4) Stockage du hash : Une fois le mot de passe hashé, Laravel stocke le résultat dans la base de données.
BenefitMe est une plateforme qui centralise des données hautement confidentielles, telles que les salaires, dates de naissance, adresses, et autres informations personnelles. Afin de garantir une protection optimale des données utilisateurs, tous les champs sensibles de la base de données sont chiffrés en utilisant entre autres l'algorithme AES-256.
Le principal défi de ce projet était de chiffrer l'ensemble des champs sensibles tout en préservant la capacité d'effectuer des recherches sur ces données chiffrées. Pour surmonter ce défi, nous avons mis en place une technique sophistiquée utilisant une table d'indexation, permettant de retrouver les informations de manière totalement sécurisée. Il est crucial de souligner que seul le serveur possédant la clé adéquate peut déchiffrer les données et effectuer des recherches sur ces champs spécifiques avant de les transmettre de manière sécurisée au client via HTTPS (comme vu précédemment).
Pour conclure, BenefitMe applique une stratégie de sécurité rigoureuse en intégrant l'encryption à chaque niveau de son infrastructure.
Pour la protection des mots de passe, le framework Laravel est utilisé pour implémenter le hashage bcrypt, offrant une sécurité renforcée grâce au salage automatique et au facteur de coût. En parallèle, l'encryption AES-256 est mise en œuvre pour chiffrer les données sensibles dans la base de données, assurant une protection solide des informations confidentielles et sensibles. Enfin, la communication entre le serveur et le client est sécurisée via HTTPS, garantissant l'intégrité et la confidentialité des données échangées.