• # Chiffrement des clefs, dérivation et recherche exhaustive

    Posté par . En réponse au journal De la gestion des clefs OpenPGP. Évalué à 3.

    Les clefs sont chiffrées par une clef AES de 128 bits dérivée de votre phrase de passe par n itérations d’une fonction de condensation, n étant déterminée empiriquement pour que la dérivation prenne environ 100 millisecondes — ceci afin de rendre la recherche exhaustive de la phrase de passe trop coûteuse.

    Quelqu'un sait comment c'est fait en pratique ? Les 100ms sont valables sur la machine sur laquelle la clef est protégée ou 100ms c'est en général sur une machine représentative ?
    Parce que protéger une clef avec 100ms de temps de calcul sur un processeur vieux ou lent n'est pas la même chose que de le protéger avec 100ms de calcul sur un processeur de serveur moderne.

    Par ailleurs pour vraiment gêner la recherche exhaustive il est bon d'utiliser une fonction de hachage pas très performante en implémentation logicielle comme matérielle (une carte FPGA ne coûte vraiment pas cher) à l'inverse des fonctions de hachage standardisées (qui visent à être rapide sur toutes les plate-formes). En gros, l'idéal est d'utiliser des fonctions spécialisées vraiment grosses et lentes pour la recherche exhaustive tout en étant assez rapides pour la dérivation de mot de passe en clefs.

    En 100ms, une machine a de quoi faire vraiment plein de calculs et surtout, ce qui coûte vraiment cher en pratique pour la recherche exhaustive, d'utiliser plein de mémoire (quelques mégaoctets bien réutilisés peuvent considérablement gêner l'utilisation des caches et ne pas tenir sur un FPGA tout en étant traités en moins de 100ms).

    Bref, comme le dit l'article cité ci-dessous, il ne vaut mieux pas trop compter sur une simple augmentation du nombre d'appels à une fonction optimisée :
    https://www.tarsnap.com/scrypt/scrypt.pdf explique "Consequently, using existing key derivation algorithms, even if the iteration count is increased such that the time taken to verify a password remains constant, the cost of finding a password by using a brute force attack implemented in hardware drops each year."