Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Septembre 2021 -
En général, en informatique, on essaie de diminuer la
consommation de mémoire et de processeur des programmes, afin de les
rendre plus efficaces. Mais il y a aussi des cas où on va tenter de
réduire délibérement l'efficacité d'un
programme. C'est le cas des fonctions de
condensation qui sont utilisées en sécurité :
on ne veut pas faciliter la tâche de l'attaquant. Ainsi, Argon2, spécifié dans ce RFC est volontairement très
consommatrice de mémoire et d'accès à cette mémoire. Elle peut être
utilisée pour condenser des mots de passe, ou pour des sytèmes à
preuve de travail.
L'article original décrivant Argon2 est « Argon2: the
memory-hard function for password hashing and other
applications » et vous pouvez également lire « Argon2:
New Generation of Memory-Hard Functions for Password Hashing and
Other Applications ». Notre RFC reprend la description
officielle, mais en s'orientant davantage vers les programmeurs et
programmeuses qui devront mettre en œuvre cette fonction. Argon2 est
conçu pour être memory-hard, c'est-à-dire faire
souvent appel à la mémoire de la
machine. Cela permet notamment aux ordinateurs classiques de tenir
tête aux systèmes à base d'ASIC. (Par exemple, nombreuses sont
les chaînes de blocs utilisant des
preuves de travail. La fonction utilisée par
Bitcoin, SHA-256,
conçue pour être simple et rapide, n'est pas
memory-hard et le résultat est qu'il y a belle lurette qu'un ordinateur,
même rapide, n'a plus aucune chance dans le
minage de Bitcoin. Seules les machines
spécialisées peuvent rester en course, ce qui contribue à
centraliser le minage dans peu de fermes de minage.) Argon2 est donc
dur pour la mémoire, comme décrit dans
l'article « High Parallel Complexity
Graphs and Memory-Hard Functions ». À noter qu'Argon2 est très
spécifique à l'architecture x86.
Argon2 se décline en trois variantes, Argon2id (celle qui est
recommandée par le RFC), Argon2d et Argon2i. Argon2d a des accès
mémoire qui dépendent des données, ce qui fait qu'il ne doit pas
être employé si un attaquant peut examiner ces accès mémoire
(attaque par canal auxiliaire). Il convient
donc pour du minage de cryptomonnaie mais pas
pour une carte à puce, que l'attaquant
potentiel peut observer en fonctionnement. Argon2i n'a pas ce défaut
mais est plus lent, ce qui ne gêne pas pour la condensation de mots
de passe mais serait un problème pour le minage. Argon2id, la
variante recommandée, combine les deux et est donc à la fois rapide
et résistante aux attaques par canal
auxiliaire. (Cf. « Tradeoff Cryptanalysis of
Memory-Hard Functions », pour les
compromis à faire en concevant ces fonctions dures pour la mémoire.)
Si vous hésitez, prenez donc Argon2id. La section 4 du RFC décrit
plus en détail les paramètres des variantes, et les choix
recommandés.
Argon repose sur une fonction de condensation existante (qui
n'est pas forcément dure pour la mémoire) et le RFC suggère
Blake (RFC 7693).
La section 3 du RFC décrit l'algorithme mais je n'essaierai pas
de vous le résumer, voyez le RFC.
La section 5 contient des vecteurs de test
si vous voulez programmer Argon2 et vérifier les résultats de votre
programme.
La section 7 du RFC revient en
détail sur certaines questions de sécurité, notamment l'analyse de
la résistance d'Argon2, par exemple aux attaques par
force brute.