Je suis un nouvel utilisateur d'eCryptfs et j'ai une question très fondamentale que je n'ai pu trouver nulle part. Je suis intéressé par l’utilisation de eCryptfs via mon Synology NAS qui utilise Linux.
En essayant de chiffrer mon dossier (EXT4) via l'application de chiffrement de Synology (eCryptfs), je rencontre des erreurs indiquant que la longueur de mon nom de fichier ne peut pas dépasser 45 caractères (donc, aucun chiffrement).
Si la limite est réellement de 45 caractères, eCryptfs peut ne pas être un outil utilisable pour la plupart.
Quelle est la taille de fichier maximale autorisée lors du cryptage de fichiers et de dossiers avec eCryptfs? Est-ce que Linux 255 est des caractères?
Réponses:
Divulgation complète: Je suis l’un des auteurs et le responsable actuel des utilitaires eCryptfs userspace.
Bonne question!
Linux a une longueur de fichier maximale de 255 caractères pour la plupart des systèmes de fichiers (y compris EXT4) et un chemin d'accès maximal de 4096 caractères.
eCryptfs est un système de fichiers en couches. Il se superpose à un autre système de fichiers tel que EXT4, utilisé pour écrire des données sur le disque. eCryptfs chiffre toujours le contenu du fichier, mais il peut éventuellement chiffrer (obscurcir) les noms de fichiers (ou non).
Si les noms de fichiers ne sont pas chiffrés, vous pouvez alors écrire en toute sécurité des noms de fichiers comportant jusqu'à 255 caractères et chiffrer leur contenu, car les noms de fichiers écrits dans le système de fichiers inférieur correspondront simplement. Bien qu'un attaquant ne puisse pas lire le contenu de
index.html
oubudget.xls
, ils sauraient quels noms de fichiers existent. Cela peut (ou non) laisser échapper des informations sensibles en fonction de votre cas d'utilisation.Si les noms de fichiers sont cryptés, les choses se compliquent un peu. eCryptfs ajoute un peu de données à l'avant du nom de fichier chiffré, de manière à ce qu'il puisse identifier de manière définitive les noms de fichier chiffrés. En outre, le chiffrement lui-même implique de "remplir" le nom du fichier.
Par exemple, j'ai un fichier crypté,
~/.bashrc
. Ce nom de fichier est crypté en utilisant ma clé pour:Clairement, ce nom de fichier de 7 caractères nécessite maintenant plus de 7 caractères pour être crypté. De manière empirique, nous avons constaté que les noms de fichiers de caractères de plus de 143 caractères commencent à nécessiter le cryptage de plus de 255 caractères. Nous recommandons donc (en tant que développeurs amont d’eCryptfs en amont) de limiter vos noms de fichiers à environ 140 caractères.
Cela étant dit, le Synology NAS est un produit commercial qui intègre et utilise eCryptfs et Linux pour chiffrer et sécuriser les données sur le périphérique. Nous (les développeurs en amont d’eCryptfs) n’avons rien à faire avec Synology ni avec leurs produits, même si nous sommes généralement heureux de voir que les fichiers eCryptfs sont utilisés à l’état sauvage . Il me semble que leur recommandation de 45 caractères est soit une erreur typographique (de notre recommandation de 140 caractères), soit simplement une estimation beaucoup plus conservatrice.
la source
Ce fil est très intéressant car je me demandais exactement la même chose. Je peux vivre avec devoir renommer 20 fichiers sur 50 000 si les noms de fichiers doivent comporter 140 caractères ou moins, mais 45 ou moins n'est pas réalisable (dans mon cas) car cela me demanderait de renommer trop de fichiers.
J'ai posé la même question directement à Synology (même en leur indiquant le présent article), et leur réponse était intéressante: "Le nom de fichier du partage crypté est limité à 143 octets. Il peut contenir jusqu'à 140 caractères latins purs ou 45 CJK (chinois). , Japonais et coréen). "
Suite à cette réponse, je me suis plus testé moi-même, avec des fichiers de 45, 46, 140, 143 et 144 caractères. Mes tests montrent que les fichiers contenant jusqu'à 143 caractères (pas les octets, contrairement à ce que m'a dit Synology) seront cryptés, mais que les fichiers de 144 caractères EMPÊCHERONT un dossier d'être crypté. Cependant, le message d’erreur que j’obtiens de mon NAS indique que le nom de fichier doit comporter moins de 45 caractères (alors qu’en réalité, il devrait contenir moins de 144 caractères).
Je n'ai pas fait de tests avec des caractères CJK ... Mais à tous ceux qui lisent ceci, il semble que tout va bien pour vous, jusqu'à 143 caractères, malgré ce que le système vous dit.
la source
Je tiens à préciser que Linux a une limite de 255 octets par nom de fichier, et non de 255 caractères. Ceci est une différence significative et si vous utilisez par exemple le codage UTF-8, vous pouvez vous retrouver avec des noms de fichiers de 100 caractères maximum.
la source
U+10FFFF
à respecter les limites d'UCS-2 (essentiellement UTF-16 sans paires de substitution), UTF-8 pouvait nécessiter un maximum de 6 octets pour représenter un point de code à 32 bits en raison de la méthode de codage utilisée. "début du caractère" et "suite du caractère" pour garantir que la synchronisation de l'analyseur peut être ré-acquise peu importe où vous commencez l'analyse dans un flux d'octets. Il est toujours possible qu'ils décident éventuellement d'inverser cette décision car ils sont à court de points de code non attribués.La longueur du nom de fichier d'ecrypt n'était qu'un problème pour moi dans la mesure où j'avais besoin d'une sous-arborescence particulière de mon répertoire personnel pour prendre en charge les noms de fichiers longs.
Cela présente probablement toutes sortes de problèmes d'efficacité, mais cela suffit dans mon cas, car les fichiers ne sont que des résultats de tests créés périodiquement pour mes propres besoins locaux.
Mes collègues ont mis leur image dans / tmp - les données de test ne sont pas particulièrement confidentielles: nous voulons principalement sécuriser notre code source, pas nos résultats de test.
la source