On réfléchit à notre fonctionnalité d'import/export et au futur avec le multi-utilisateurs. Si la sécurité c'est votre truc, on a besoin de vous !
@kresus Est-ce que la raison pour laquelle Kresus utilise ce sel est documenté quelquepart ?
Dans les usages traditionnels du sel, le sel est *inclus* avec le texte haché ( https://en.wikipedia.org/wiki/Salt_(cryptography) ) et le nonce avec le texte chiffré (https://en.wikipedia.org/wiki/Cryptographic_nonce )
@kmk Oui, c'est pour chiffrer, on utilise ce sel pour générer la clé de chiffrement : https://framagit.org/kresusapp/kresus/-/blob/master/server/controllers/all.ts#L178-191
@bnjbvr Pouquoi ne pas simplement utiliser une fonction de dérivation de clé « normale » comme PBKDF2 par exemple ?
Ah ben c'est justement ce qui est fait 🙂
Du coups reste la question : pourquoi ne pas mettre le sel en clair en préfixe du message chiffré ?
@kmk c'était une contribution externe, j'en ai aucune idée :D
Donc le sel doit être unique, mais ensuite on peut l'inclure dans le message, sans avoir besoin de le cacher ?
@bnjbvr Oui.
@nicofrand
1, De manière générale il est recommandé d'utiliser les outils cryptographiques selon leurs recommandations,
2, PBKDF2 nécessite un sel, donc il faut en fournir un,
3, PBKDF2 dit que le sel permet de produire beaucoups de clés à partir d'un mot de passe,
4, si on utilise toujours le même sel alors un attaquant peut pré-calculer des clés et par la suite les essayer exhaustivement et rapidement sur des textes secrets,
@nicofrand Non, il ne peut pas la PRÉ-calculer. Il est obligé d'avoir le texte secret pour calculer les clés
@bnjbvr
@nicofrand C'est pas grave. Le point le plus important est le point 1 : utiliser les outils cryptographiques selon leurs recommandations. B-)
@bnjbvr
@nicofrand Mais pour comprendre l'utilité du sel, il faut penser à un attaquant qui va vouloir déchiffrer des milliers de textes chiffrés avec des mots de passe potentiellement différents. Plusieurs documents et plusieurs victimes.
@bnjbvr
@nicofrand
Peu probable… De se faire attaquer, d'avoir plusieurs documents chiffrés ou d'avoir plusieurs utilisateurs ?
@nicofrand
Euh… Par définition un mot de passe ne doit PAS être commun. Et toujours par définition un sel est connu (par opposition à secret).
@bnjbvr
@nicofrand @kmk @bnjbvr Un sel permet justement d'assurer que 2 fois le même mot de passe seront chiffrés (hashés) différemment. Parce que toute la crypto est déterministe: même entrée => même sortie. Le sel permet d'introduire des variations. Une bonne définition lue un jour: la cryptographie nécessite des mathématiques solides et de l'aléatoire pour nous sauver.
@nicofrand @kmk @bnjbvr Je ne connais pas le cas en particulier, je rebondissais juste sur l'assertion apparemment comme quoi les utilisateurs pouvaient utiliser les mêmes mots de passe. C'est justement pour ca que chaque mot de passe doit être stocké après application d'un algorithme (ex: PBKDF2) qui accepte en entrée une partie variable et "aléatoire" ( le sel).
@nicofrand Ne pas oublier le point numéro 1 : utiliser les mécanismes cryptographiques selon leur préconisations. Ça fait que, même si on ne comprend pas pourquoi il faut le faire, on reste à l'abris.
Mais effectivement, vous pouvez faire comme vous voulez, et ne pas suivre les recommandations. Mais du coups la sécurité s'en trouvera affaiblie.
@pmevzek @bnjbvr
@kmk
Non mais je vois pas en quoi le fait que le sel soit privé diminuerait la sécurité du même système (hormis pour plusieurs utilisateurs/ instance).
Par contre dans notre cas précis (attaque ciblant un fichier/utilisateur en particulier), le fait que ce soit publique me semble + préjudiciable.
Bref on tourne en rond, je vais m'arrêter là et on verra selon les propositions éventuelles sur le forum.
@nicofrand Ça n'est pas le fait qu"il soit privé qui diminue la sécurité du système. C'est le fait qu'il soit constant.
@pmevzek @bnjbvr
@nicofrand @kmk @bnjbvr Comme le dit Kim-Minh vous pouvez effectivement juste appliquer les bonnes pratiques reconnues et utilisées partout et qui fonctionnent ou décider de faire autre chose de votre côté car vous êtes sûr que c'est mieux pour une certaine définition de mieux. On tourne en rond, mais si ca peut vous aider, il est largement connu que n'importe qui est capable de définir une crypto qu'il pense incassable et parfaite. Le point important est dans le "il". Bon courage.
@nicofrand @pmevzek @kmk Je confirme, à aucun moment on ne cherche à réimplémenter notre propre crypto, c'est vraiment pas l'objectif. On cherche juste à comprendre pourquoi et comment ça marche.
@nicofrand @pmevzek @kmk D'ailleurs on a un superbe forum pour faire des réponses longues et éviter les messages courts qui mènent aux incompréhensions, wink wink nudge nudge say no more :p
@bnjbvr
Oui, mais il nécessite une inscription. Donc je ferais une réponse courte : le point le plus important est le point numéro 1.
@nicofrand @pmevzek
@kmk @bnjbvr
Merci pour cette réponse ! Mais pour le point 4, si le sel est fourni avec le texte secret, un attaquant peut toujours pré-calculer des clés ? Donc ça réduit l'intérêt ?