Dlaczego pliki z komputerów Mac są często szyfrowane podczas kopiowania na dysk twardy i przeglądania w systemie Windows?

Nov 21 2020

Dlaczego pliki z komputerów Mac są często szyfrowane po umieszczeniu na dysku zewnętrznym, a ten dysk jest podłączony do systemu Windows?

Wyjaśnię, o co mi chodzi, bo na pierwszy rzut oka nie wyglądają na zaszyfrowane, ponieważ można je otworzyć.

ale po dokładniejszym przyjrzeniu się, mogą pojawić się zielone w eksploratorze Windows

a polecenie szyfrowania systemu Windows wyświetla się jako zaszyfrowane, a właściwości ich atrybutów są wyświetlane jako zaszyfrowane.

Nie jestem jedyną osobą, która się z tym spotkała, szukając na przykład Jak wyświetlić listę zaszyfrowanych plików w systemie Windows 7? jeden plakat pisze „... czyściłem zewnętrzny dysk twardy i natknąłem się na 150 plików, które były zaszyfrowane. Chciałem więc wiedzieć, co i gdzie one są, ponieważ nie używam szyfrowania na moich komputerach. Okazuje się, że pochodziło to z kilka pobrań, które mogę łatwo pobrać. Lub widzę foldery „_MACOSX” na moim komputerze. Zawsze są zaszyfrowane. ”

Przykładem, na który natknąłem się, jest program, który napisałem na railsach, po prostu katalog o nazwie "scaffoldingtest1", który utworzyłem za pomocą polecenia, rails new scaffoldingtest1a katalog nadrzędny skopiowałbym na zewnętrzny dysk twardy.

Widziałem również pliki PDF związane z Adobe, od użytkowników komputerów Mac.

Są zaszyfrowane tak, jakby były zaszyfrowane na komputerze z systemem Windows, ponieważ można je wyświetlać tylko z tej nazwy użytkownika systemu Windows na tym komputerze. Jak pokazano we właściwościach szyfrowania w systemie Windows. A ten użytkownik na tym komputerze może je odszyfrować. Ale jakoś zostały zaszyfrowane w ten sposób. Jeśli ten dysk zewnętrzny został przeniesiony na inny komputer z systemem Windows, nie można ich odczytać.

Zastanawiam się, jakie ustawienie w systemie OSX to powoduje?

Uwaga - ponieważ niektórzy moderatorzy mają tendencję do usuwania długich wątków z komentarzami i utraty ważnych informacji, tutaj znajduje się łącze do wątku komentarzy w tej chwili, którego kopia zapasowa jest tutaj, od 21/11/2020 20:13 czasu brytyjskiego https: // pastebin. com / raw / f2Aytv6W

Odpowiedzi

6 jksoegaard Nov 21 2020 at 15:13

Powodem tego jest znany problem ze zgodnością z wbudowanym programem MacOS Archive i wbudowanym programem do rozpakowywania w różnych wersjach systemu Windows.

Gdy używasz narzędzia „Kompresuj” wbudowanego w Findera, otrzymasz plik ZIP. Plik ZIP zawiera, między innymi, tak zwane „atrybuty pliku zewnętrznego” dla każdego pliku. Te atrybuty są zależne od systemu hosta (tj. Nie ma gwarancji, że te atrybuty będą rozumiane w ten sam sposób w różnych systemach operacyjnych).

Niestety, jeden z atrybutów, którymi narzędzia macOS oznaczają pliki, są interpretowane przez wbudowane narzędzie Windows do rozpakowywania plików jako oznaczenie pliku jako „zaszyfrowanego” (co jest specjalną formą szyfrowania pojedynczego pliku wbudowanego w plik NTFS system). Oznacza to, że po rozpakowaniu pliki mają zaszyfrowany atrybut, a ich nazwy są wyświetlane na zielono w Eksploratorze Windows.

Nie ma to jednak żadnych istotnych wad, ponieważ można łatwo otworzyć Właściwości plików i usunąć zaznaczenie z atrybutu „zaszyfrowane”. Zawartość pliku nie jest tak naprawdę zaszyfrowana, więc pliki można otwierać jak zawsze.

Możesz uniknąć tego problemu, używając innego narzędzia do kompresji na komputerze Mac lub używając innego narzędzia do dekompresji w systemie Windows.

Szczegóły techniczne są następujące:

Problem jest spowodowany tym, że program do rozpakowywania systemu Windows nieprawidłowo analizuje „atrybuty plików zewnętrznych” w nagłówku ZIP dla każdego pliku / folderu. Ten element nagłówka jest zależny od hosta, ponieważ taki program do rozpakowywania powinien sprawdzić element nagłówka pliku katalogu centralnego, znany jako „Wersja utworzona przez”, aby sprawdzić, który system operacyjny utworzył plik. Narzędzie do kompresji systemu macOS prawidłowo przechowuje tutaj wartość atrybutu 3 dla „Unix”.

Niestety narzędzie Windows ignoruje tę wartość i zawsze interpretuje atrybuty plików tak, jakby zostały utworzone w systemie Windows. Problem „szyfrowania” wynika z faktu, że pliki ZIP utworzone w systemie Windows przechowują atrybuty plików zgodnie ze stałymi atrybutów plików (FILE_ATTRIBUTE _ <...>) zdefiniowanymi przez firmę Microsoft. W szczególności FILE_ATTRIBUTE_ENCRYPTED zdefiniowany przez wartość 0x4000 oznacza zaszyfrowany plik lub katalog. Jednak systemy Unix używają stałych POSIX, gdzie S_IFDIR to atrybut oznaczający „to jest folder” - i jest zwykle definiowany jako wartość 0040000, co odpowiada 0x4000.