Ich bin ein neuer eCryptfs-Benutzer und habe eine sehr grundlegende Frage, die ich nirgendwo finden konnte. Ich möchte eCryptfs über mein Synology NAS verwenden, das Linux verwendet.
Beim Versuch, meinen Ordner (EXT4) über die Verschlüsselungs-App von Synology (eCryptfs) zu verschlüsseln, treten Fehler auf, die besagen, dass mein Dateiname nicht länger als 45 Zeichen sein darf (also keine Verschlüsselung).
Wenn das Limit wirklich 45 Zeichen beträgt, ist eCryptfs für die meisten möglicherweise nicht verwendbar.
Was ist die maximal zulässige Dateigröße beim Verschlüsseln von Dateien und Ordnern mit eCryptfs? Beträgt Linux 255 Zeichen?
Antworten:
Vollständige Offenlegung: Ich bin einer der Autoren und der aktuelle Betreuer der eCryptfs Userspace-Dienstprogramme.
Gute Frage!
Linux hat eine maximale Dateinamenlänge von 255 Zeichen für die meisten Dateisysteme (einschließlich EXT4) und einen maximalen Pfad von 4096 Zeichen.
eCryptfs ist ein mehrschichtiges Dateisystem. Es wird über einem anderen Dateisystem wie EXT4 gestapelt, das tatsächlich zum Schreiben von Daten auf die Festplatte verwendet wird. eCryptfs verschlüsselt Dateiinhalte immer, kann jedoch optional Dateinamen verschlüsseln (undeutlich machen) (oder nicht).
Wenn Dateinamen nicht verschlüsselt sind, können Sie sicher Dateinamen mit bis zu 255 Zeichen schreiben und deren Inhalt verschlüsseln, da die in das untere Dateisystem geschriebenen Dateinamen einfach übereinstimmen. Während ein Angreifer den Inhalt von
index.html
oder nicht lesen kannbudget.xls
, weiß er, welche Dateinamen existieren. Abhängig von Ihrem Anwendungsfall können dadurch vertrauliche Informationen verloren gehen (oder auch nicht).Wenn Dateinamen verschlüsselt sind, wird es etwas komplizierter. eCryptfs stellt dem verschlüsselten Dateinamen ein wenig Daten voran, damit verschlüsselte Dateinamen eindeutig identifiziert werden können. Auch die Verschlüsselung selbst beinhaltet das "Auffüllen" des Dateinamens.
Ich habe zum Beispiel eine verschlüsselte Datei
~/.bashrc
. Dieser Dateiname wird mit meinem Schlüssel verschlüsselt, um:Für diesen 7-stelligen Dateinamen müssen jetzt mehr als 7 Zeichen verschlüsselt werden. Empirisch haben wir festgestellt, dass Zeichendateinamen, die länger als 143 Zeichen sind, zum Verschlüsseln mehr als 255 Zeichen erfordern. Daher empfehlen wir (als Entwickler von eCryptfs), die Dateinamen auf ca. 140 Zeichen zu beschränken.
Das Synology NAS ist ein kommerzielles Produkt, das eCryptfs und Linux zum Verschlüsseln und Sichern von Daten auf dem Gerät verwendet. Wir (die Upstream-Entwickler von eCryptfs) haben nichts mit Synology oder ihren Produkten zu tun, obwohl wir uns im Allgemeinen darüber freuen, dass eCryptfs in freier Wildbahn eingesetzt wird . Es scheint mir, dass ihre Empfehlung von 45 Zeichen entweder ein Tippfehler (aus unserer Empfehlung von 140 Zeichen) oder einfach eine weitaus konservativere Schätzung ist.
quelle
Dieser Thread ist sehr interessant, weil ich mich genau das Gleiche gefragt habe. Ich kann damit leben, dass ich 20 von 50 000 Dateien umbenennen muss, wenn die Dateinamen 140 Zeichen oder weniger haben müssen, aber 45 oder weniger (in meiner Situation) nicht möglich sind, weil ich zu viele Dateien umbenennen müsste.
Ich habe Synology genau dieselbe Frage direkt gestellt (und sie sogar auf den vorliegenden Artikel verwiesen), und ihre Antwort war interessant: "Das Dateinamenlimit der verschlüsselten Freigabe beträgt 143 Byte. Es kann bis zu 140 reine lateinische Zeichen oder 45 CJK (Chinesisch) sein , Japanische und koreanische) Zeichen. "
Nach dieser Antwort testete ich mich selbst weiter und testete mit Dateien mit 45, 46, 140, 143 und 144 Zeichen. Meine Tests zeigen, dass Dateien mit bis zu 143 Zeichen (nicht Bytes, im Gegensatz zu den Angaben von Synology) verschlüsselt werden. Dateien mit 144 Zeichen verhindern jedoch, dass ein Ordner verschlüsselt wird. Die FEHLERMELDUNG, die ich von meinem NAS erhalte, ist, dass der Dateiname weniger als 45 Zeichen haben muss (in Wirklichkeit sollte er weniger als 144 Zeichen haben).
Ich habe keine Tests mit CJK-Zeichen durchgeführt ... Aber für jeden, der dies liest, scheint es, als ob Sie bis zu 143 Zeichen in Ordnung sind, ungeachtet dessen, was das System Ihnen sagt.
quelle
Ich möchte klarstellen, dass Linux ein Limit von 255 Bytes pro Dateiname hat, nicht 255 Zeichen. Dies ist ein wesentlicher Unterschied. Wenn Sie beispielsweise UTF-8-Codierung verwenden, werden möglicherweise Dateinamen mit maximal 100 Zeichen angezeigt.
quelle
U+10FFFF
auf die Einschränkungen von UCS-2 (im Grunde UTF-16 ohne Ersatzpaare) reduziert wurde , konnte UTF-8 aufgrund seiner Codierung bis zu 6 Byte für die Darstellung eines 32-Bit-Codepunkts erfordern "Beginn des Zeichens" und "Fortsetzung des Zeichens", um sicherzustellen, dass die Parsersynchronisation erneut erfasst werden kann, unabhängig davon, wo Sie mit dem Parsen innerhalb eines Byte-Streams beginnen. Es ist immer eine Möglichkeit, dass sie sich irgendwann dazu entschließen, diese Entscheidung rückgängig zu machen, weil ihnen nicht zugewiesene Codepunkte ausgehen.Die Dateinamenlänge von ecrypt war für mich nur deshalb ein Problem, weil ich einen bestimmten Teilbaum meines Home-Verzeichnisses benötigte, um lange Dateinamen zu unterstützen. Schließlich wurde mir klar, dass ich einfach ein Dateisystem in einer Datei erstellen und Folgendes bereitstellen konnte:
Es gibt wahrscheinlich alle möglichen Effizienzprobleme, aber es ist ausreichend für den Fall, dass die Dateien nur Testergebnisse sind, die regelmäßig für meine eigenen lokalen Zwecke erstellt werden.
Meine Kollegen haben ihr Image in / tmp abgelegt - die Testdaten sind nicht besonders vertraulich: Wir wollen hauptsächlich unseren Quellcode sichern, nicht unsere Testergebnisse.
quelle