Jestem nowym użytkownikiem eCryptfs i mam podstawowe pytanie, którego nigdzie nie mogłem znaleźć. Jestem zainteresowany korzystaniem z eCryptfs przez mój Synology NAS, który używa Linuksa.
Podczas próby zaszyfrowania mojego folderu (EXT4) za pomocą aplikacji szyfrującej Synology (eCryptfs) napotykam błędy, które wskazują, że długość mojej nazwy pliku nie może przekraczać 45 znaków (więc nie ma szyfrowania).
Jeśli limit tak naprawdę wynosi 45 znaków, eCryptfs może nie być użytecznym narzędziem dla większości.
Jaki jest maksymalny dozwolony rozmiar pliku podczas szyfrowania plików i folderów za pomocą eCryptfs? Czy Linux ma 255 znaków?
Odpowiedzi:
Pełne ujawnienie: jestem jednym z autorów i aktualnym opiekunem narzędzi przestrzeni użytkownika eCryptfs.
Świetne pytanie!
Linux ma maksymalną długość pliku wynoszącą 255 znaków dla większości systemów plików (w tym EXT4) i maksymalną ścieżkę wynoszącą 4096 znaków.
eCryptfs to warstwowy system plików. Kumuluje się na innym systemie plików, takim jak EXT4, który jest faktycznie używany do zapisywania danych na dysku. eCryptfs zawsze szyfruje zawartość pliku, ale może opcjonalnie szyfrować (niejasne) nazwy plików (lub nie).
Jeśli nazwy plików nie są zaszyfrowane, możesz bezpiecznie napisać nazwy plików o długości do 255 znaków i zaszyfrować ich zawartość, ponieważ nazwy plików zapisane w dolnym systemie plików będą po prostu pasować. Chociaż osoba atakująca nie byłaby w stanie odczytać zawartości
index.html
lubbudget.xls
, wiedziałaby, jakie nazwy plików istnieją. Może to (lub nie) wyciekać poufne informacje w zależności od przypadku użycia.Jeśli nazwy plików są szyfrowane, sprawy stają się nieco bardziej skomplikowane. eCryptfs umieszcza trochę danych z przodu zaszyfrowanej nazwy pliku, aby mógł ostatecznie zidentyfikować zaszyfrowane nazwy plików. Również samo szyfrowanie wymaga „uzupełnienia” nazwy pliku.
Na przykład, mam zaszyfrowany plik
~/.bashrc
. Ta nazwa pliku jest szyfrowana za pomocą mojego klucza, aby:Oczywiście ta 7-znakowa nazwa pliku wymaga teraz więcej niż 7 znaków do zaszyfrowania. Empirycznie stwierdziliśmy, że nazwy plików znaków dłuższe niż 143 znaki zaczynają wymagać> 255 znaków do szyfrowania. Więc my (jako programiści eCryptfs) zwykle zalecamy ograniczenie nazw plików do ~ 140 znaków.
Teraz wszystko to powiedziało, Synology NAS jest komercyjnym produktem, który osadza i wykorzystuje eCryptfs i Linux do szyfrowania i zabezpieczania danych na urządzeniu. My (programiści eCryptfs) nie mamy nic wspólnego z Synology ani ich produktami, chociaż ogólnie cieszymy się, że eCryptfs są używane na wolności . Wydaje mi się, że ich zalecenie 45 znaków jest albo błędem typograficznym (z naszej rekomendacji 140 znaków), albo po prostu o wiele bardziej ostrożnym oszacowaniem.
źródło
Ten wątek jest bardzo interesujący, ponieważ zastanawiałem się nad tym samym. Mogę żyć z koniecznością zmiany nazwy 20 plików na 50 000, jeśli nazwy plików muszą mieć 140 znaków lub mniej, ale 45 lub mniej nie jest możliwe (w mojej sytuacji), ponieważ wymagałoby to zmiany nazwy zbyt wielu plików.
Zadałem dokładnie to samo pytanie bezpośrednio Synology (wskazując nawet na niniejszy artykuł), a ich odpowiedź była interesująca: „Limit nazwy pliku zaszyfrowanego udziału wynosi 143 bajty. Może mieć maksymalnie 140 znaków łacińskich lub 45 CJK (chiński , Japońskim i koreańskim). ”
Po tej odpowiedzi sam wykonałem więcej testów, testując pliki o rozmiarze 45, 46, 140, 143 i 144 znaków. Moje testy pokazują, że pliki do 143 znaków (nie bajtów, w przeciwieństwie do tego, co powiedział mi Synology) zostaną zaszyfrowane, ale pliki zawierające 144 znaki ZAPOBIEGAJĄ folderowi, który ma zostać zaszyfrowany. Jednak KOMUNIKAT O BŁĘDZIE, który otrzymuję z mojego serwera NAS, to, że nazwa pliku musi mieć mniej niż 45 znaków (podczas gdy rzeczywistość jest taka, że powinna mieć mniej niż 144 znaki).
Nie przeprowadzałem testów ze znakami CJK ... Ale dla każdego, kto to czyta, wydaje się, że wszystko w porządku do 143 znaków, pomimo tego, co mówi system.
źródło
Chciałbym wyjaśnić, że linux ma limit 255 bajtów na nazwę pliku, a nie 255 znaków. Jest to znacząca różnica i jeśli użyjesz np. Kodowania UTF-8, możesz otrzymać nazwy plików o długości do 100 znaków.
źródło
U+10FFFF
spełnić ograniczenia UCS-2 (w zasadzie UTF-16 bez par zastępczych), UTF-8 może wymagać do 6 bajtów do przedstawienia 32-bitowego punktu kodowego z powodu sposobu kodowania „początek znaku” i „kontynuacja znaku”, aby zapewnić, że synchronizacja analizatora składni może zostać ponownie uzyskana bez względu na to, gdzie rozpoczyna się analizowanie w strumieniu bajtów. Zawsze istnieje możliwość, że ostatecznie zdecydują się cofnąć tę decyzję, ponieważ brakuje im nieprzypisanych punktów kodu.Długość pliku ecrypt była dla mnie problemem tylko dlatego, że potrzebowałem konkretnego poddrzewa mojego katalogu domowego do obsługi długich nazw plików, i ostatecznie zdałem sobie sprawę, że mogę po prostu stworzyć system plików wewnątrz pliku i zamontować go:
Prawdopodobnie występują z tym różnego rodzaju problemy z wydajnością, ale to wystarcza w moim przypadku, w którym pliki to tylko wyniki testów okresowo tworzone dla moich własnych lokalnych celów.
Moi koledzy umieścili swój obraz w / tmp - dane testowe nie są szczególnie poufne: chcemy przede wszystkim zabezpieczyć nasz kod źródłowy, a nie wyniki testów.
źródło