Les trois propriétés essentielles sont la résistance à la préimage (un condensé ne révèle rien de son entrée), la résistance à la seconde préimage (aucune entrée différente au même condensé ne peut être trouvée pour une entrée donnée) et la résistance aux collisions (aucune paire d'entrées au même condensé ne peut être trouvée du tout). Des algorithmes tels que MD5 et SHA-1 ont échoué sur ces propriétés et ne doivent pas être utilisés là où elles comptent.
Le hachage apparaît partout en sécurité : vérifications d'intégrité et preuve d'altération, signatures numériques qui signent des condensés plutôt que des messages entiers, adressage par contenu et — avec un travail supplémentaire délibéré — stockage de mots de passe. Les mots de passe exigent des fonctions salées et coûteuses en calcul telles que les algorithmes dédiés de hachage de mots de passe ; un hachage rapide généraliste est le mauvais outil pour ce travail précis.
Points clés
Usage pour l'intégritéUn condensé concordant confirme que le contenu n'a pas changé depuis que le condensé a été calculé — à condition que le condensé lui-même ait été obtenu par un canal de confiance.
Stockage de mots de passeStocker des condensés salés à hachage lent plutôt que des hachages rapides ; le sel défait les recherches précalculées et le coût ralentit les devinettes par force brute à grande échelle.
Choix d'algorithmeUtiliser les familles approuvées actuelles (SHA-2, SHA-3) et traiter MD5 et SHA-1 comme cassés pour les usages de sécurité — ils ne restent acceptables que pour des checksums non adverses.
Limite importanteUn hachage prouve seulement que deux entrées concordaient sous une fonction à un moment donné. Il ne fournit aucune confidentialité — le condensé d'une entrée devinable est trivialement retrouvé en essayant des candidats — et un hachage calculé sur un canal non fiable peut être échangé avec le contenu qu'il garantit.