CertifiK.io adopte js-sha3 pour le hachage côté client : un choix stratégique
Chez CertifiK.io, nous garantissons l’intégrité et la traçabilité des documents numériques grâce au hachage cryptographique et à l’inscription sur la blockchain Algorand. Récemment, nous avons décidé de déplacer le processus de hachage côté client et avons soigneusement évalué les solutions disponibles. Deux options principales s’offraient à nous : l’API native crypto.subtle
et la bibliothèque js-sha3
. Après analyse, nous avons choisi js-sha3
. Voici pourquoi.
Pourquoi ce choix ?
Un support natif de SHA-3
L’un des critères décisifs a été la compatibilité avec SHA-3. Contrairement à crypto.subtle
, qui prend en charge SHA-1, SHA-256 et SHA-512, js-sha3
permet d’utiliser SHA3-256 et SHA3-512. SHA-3 est une évolution majeure en matière de sécurité, offrant une meilleure résistance aux attaques. En optant dès maintenant pour cet algorithme, nous anticipons l’avenir et évitons d’avoir à changer d’outil plus tard.
Portabilité et flexibilité accrues
Contrairement à crypto.subtle
, qui impose un environnement sécurisé (HTTPS ou localhost), js-sha3
fonctionne dans tous les contextes. Cela simplifie les tests et le développement, offrant une adaptabilité précieuse.
Contrôle et personnalisation
Étant open-source, js-sha3
nous donne un accès total à son code, ce qui permet de l’inspecter, de l’optimiser et de l’adapter à nos besoins. Avec crypto.subtle
, cette personnalisation n’est pas possible, car l’API est intégrée aux navigateurs.
Facilité d’intégration
L’utilisation de js-sha3
est simple : une seule ligne de code et la bibliothèque est prête à l’emploi. De plus, notre implémentation n’introduit aucune dépendance à un réseau de diffusion de contenu (CDN) puisque nous hébergeons le script localement.
Les compromis acceptés
Bien que js-sha3
offre de nombreux avantages, il n’est pas parfait :
- Performance :
crypto.subtle
est optimisé pour tirer parti des accélérations matérielles, ce qui le rend plus rapide pour SHA-256 et SHA-512. - Poids : Ajouter une bibliothèque externe augmente la taille de notre application (environ 20 Ko).
Toutefois, ces inconvénients sont largement compensés par la compatibilité avec SHA-3, la flexibilité et la simplicité d’utilisation.
Une veille active sur crypto.subtle
Bien que nous ayons opté pour js-sha3
aujourd’hui, nous suivrons de près les évolutions de crypto.subtle
. Si l’API finit par supporter SHA-3, nous ne nous priverons pas de ses performances exceptionnelles, notamment grâce à l’exploitation des instructions matérielles des ordinateurs clients.
Conclusion
Nous avons choisi js-sha3
pour sa compatibilité avec SHA-3, sa portabilité, sa flexibilité et son contrôle total sur le code. Ce choix nous permet d’anticiper l’évolution des standards de sécurité tout en offrant une solution robuste et adaptable à nos utilisateurs. Dans un prochain article, nous détaillerons l’implémentation technique de cette solution et son impact sur la sécurité à long terme.