Czy partycja VeraCrypt działa wolniej?

6

Właśnie dostałem nowy zewnętrzny dysk twardy. Chcę utworzyć na nim zaszyfrowaną partycję za pomocą VeraCrypt. Zrobiłem to samo z podobnym napędem. Właśnie skopiowałem do niego plik, a prędkość wynosiła około 100 MB / s. Prędkość drugiego napędu po szyfrowaniu była znacznie niższa, może 10 MB / s. Nie wiem jednak, jaka była pierwotna prędkość napędu.

Czy to oznacza, że ​​zaszyfrowana partycja jest wolniejsza niż szyfrowanie, które nie jest zaszyfrowane, nawet po zamontowaniu? Czy faktycznie szyfruje nowo skopiowane pliki podczas kopiowania, co znacznie spowalnia kopiowanie?

użytkownik511405
źródło
3
Nie; Szyfrowanie nie ma mierzalnego wpływu na szybkość transferu na dysk zewnętrzny. Szczerze mówiąc, różnice prędkości wskazują, który dysk był USB 2, a drugi USB 3
Ramhound
Wygląda na to, że nastąpił niewielki spadek prędkości (średnia prędkość wynosi teraz około 80 MB / s przy kopiowaniu tych samych dużych plików wideo), ale nic podobnego do starego napędu. Myślę, że to prawdopodobnie dlatego, że kiedy kopiowałem pliki na inny dysk, były one bardzo małe i kopiowałem wiele rzeczy jednocześnie. Powinienem również zauważyć, że oba dyski są USB 3.0 i że podłączyłem je do portu USB 3.0 w moim laptopie.
user511405
Jak wskazałem, wzrosty i spadki prędkości nie będą wynikały z szyfrowania dysku z powodu JAK działa.
Ramhound,
1
Teoretycznie, o ile szyfrowanie można wykonać tak szybko, jak dysk jest w stanie napisać, nie powinno być żadnego poważnego spowolnienia. Jednak spełnienie tego warunku będzie zależeć od wielu czynników, takich jak szybkość procesora i szybkość napędu. Wydajność algorytmu może również wpływać na wyścig między procesorem a kontrolerem dysku. W praktyce nie jestem obecnie pewien VeraCrypt na obecnym sprzęcie, więc nie mam prostego „tak” lub „nie”, dlatego nie przesyłam tego jako oficjalnej odpowiedzi. Pamiętaj, że wyniki tego „wyścigu” mogą się zmieniać w czasie: zmiany oprogramowania lub sprzętu mogą mieć na to wpływ.
TOOGAM,
^ Rzeczywista odpowiedź tutaj.
Andrew

Odpowiedzi:

2

Moje testy z dyskiem twardym USB 3.1 Gen 2 typu C (w stanie pisać z prędkością 10 Gib / s, czyli nieco więcej niż 1 GiB / s) to:

  • Zaszyfrowane za pomocą TrueCrypt, veraCrypt, DiskCryptor lub dowolnego innego sprawią, że odczyt i zapis będą znacznie wolniejsze, najlepsze, co mam, to arrond 100 Mb / s (jedna dziesiąta nieszyfrowanych), więc szyfrowanie sprawia, że ​​jest dziesięć razy wolniejszy.
  • Kopiowanie ogromnego dużego dużego pliku (ponad 600GiB) w nieszyfrowanym locie, zajęło nieco mniej niż 10 minut), kopiowanie ogromnej ilości naprawdę bardzo małych plików (z włączoną pamięcią podręczną zapisu) robi taką samą prędkość, pamiętaj, że napisz takie ogromna ilość naprawdę bardzo małych plików bez zapisywania danych w pamięci podręcznej na zawsze, czyli prędkość spada do 1KiB / s (tak kilobajta), wszystkie te testy bez szyfrowania.
  • Dzięki szyfrowaniu VeraCrypt prędkość nie może wynosić 1 GiB / s, a spada do około 100 Mb / s, procesor nie jest wystarczająco szybki, między innymi ma 64 rdzenie (wyjaśnię to później, jak to poprawić) ... ale kopiowanie małych pliki powodują, że prędkość spada do około 1 kB / s przy włączonej pamięci podręcznej zapisu ... to błąd VeraCrypt ... wydaje się, że nie zezwala na buforowanie NTFS widocznego w systemie Windows, a Windows może buforować tylko zapisy wykonane na samym dysku twardym .

Och, tak, byłem bardzo szczęśliwy, że mogłem (tylko przez kilka dni) płytę główną z 4 gniazdami i 4 mikroprocesorami z 16 rdzeniami każda, więc w sumie 64 rdzenie ... i RAM, wow! to 32GiB pamięci RAM w 4 sekcjach, każda w pobliżu każdego gniazda procesora z 4 bankami każda i 2GiB pamięci RAM w każdym banku 4 sekcje * 4Banki / sekcja * 2GiB / Bank = 32GiB ... najszybszy komputer, jaki kiedykolwiek dotknąłem.

Innymi słowy:

  • System Windows ma włączoną pamięć podręczną zapisu (dla urządzenia USB), jeśli nie jest szyfrowana, pamięć podręczna znacznie poprawia zapis małych plików.
  • Wygląda na to, że VeraCrypt nie zezwala systemowi Windows na buforowanie zapisów w systemie plików NTFS, ponieważ nie ma możliwości włączenia / wyłączenia takiej pamięci podręcznej, a zapisywanie małych plików jest bardzo, bardzo wolne.

Testowałem z innym oprogramowaniem szyfrującym (bardzo drogim), które emuluje cały kontroler SAS (tak Serial SCSI), a także emuluje cały podłączony do niego dysk twardy ... więc w systemie Windows można włączyć i wyłączyć pamięć podręczną zapisu ... oprogramowanie zapisujące małe pliki jest tak szybkie, jak zapisywanie dużego pliku (jeśli taka pamięć podręczna zapisu jest włączona w systemie Windows).

Mówię o pamięci podręcznej zapisu systemu Windows, więc wyjaśnię, jak włączyć / wyłączyć dla osób, które nie wiedzą, jak:

  1. Otwórz Eksploratora i przejdź do folderu głównego zamontowanych partycji, C :, D: itd.
  2. Wybierz jeden z nich, kliknij prawym przyciskiem myszy i przejdź do właściwości.
  3. Przejdź do Sprzęt i wybierz urządzenie z listy (tutaj jest problem z VeraCrypt, nie tworzy on wirtualnego kontrolera).
  4. Kliknij przycisk Właściwości.
  5. Na karcie Ogólne kliknij przycisk, aby zmienić konfigurację.
  6. Teraz przejdź do zakładki dla dyrektyw.
  7. Tam możesz wybrać szybkie rozpakowywanie (zapisywanie pamięci podręcznej) lub lepszą wydajność (zapisywanie pamięci podręcznej włączone).

Pamiętaj, że jeśli pamięć podręczna zapisu jest włączona, nie odłączaj bez systemu Windows informującego, że możesz ją bezpiecznie wysunąć ... po prośbie o bezpieczne usunięcie.

Cóż, ta pamięć podręczna wpływa tylko na operacje zapisu wykonywane na urządzeniu, ponieważ urządzenie jest fizyczne, oznacza to zaszyfrowane dane zapisane na dysku twardym, a nie zaszyfrowane dane zapisane w strukturze NTFS.

Co się dzieje? Windows zapisuje do struktury NTFS bez pamięci podręcznej zapisu, następnie VeraCrypt wykonuje szyfrowanie (tak, potokowo) i wysyła zaszyfrowane dane na dysk twardy, a następnie Windows widzi, że urządzenie ma pamięć podręczną zapisu, więc czeka trochę na zapis danych ... ale modyfikacja struktura NTFS jest wykonywana bez pamięci podręcznej ... więc w praktyce Windows prosi VeraCrypt o szyfrowanie tej samej struktury wiele razy (kiedy zapisywane są małe pliki) w krótkim czasie ... więc VeraCrypt musi szyfrować wiele razy coś, co zostanie umieszczone na dokładnie tym samym klastrze dysku.

Powoduje to ogromne, bardzo duże spowolnienie w porównaniu z niezaszyfrowanym.

Do kogo należy wina? Częściowo do Windows NTFS, który nie buforuje zmian struktury, częściowo do VeraCrypt za brak emulacji urządzenia.

Taki sposób działania VeraCrypt (pochodzi z TruCrypt itp.) Powoduje inne rzadkie rzeczy, takie jak SmartDefrag nie widzi i defragmentuje na nim pliki (Piriform Deflagger może, więc może być złym algorytmem na SmartDrefrag) ... także BootIce je widzi jako IFS: a nie jako HD #: lub RM #: ... niektóre aplikacje do zarządzania partycjami nawet go nie widzą itp.

Kolejny efekt uboczny (dla osób z Linuksem): W praktyce nie możesz sformatować jako Ext4 partycji VeraCrypt, jeśli spróbujesz na Windowsie ... przynajmniej wszystkie narzędzia partycjonowania, które próbowałem, pozwalają na tworzenie (tzn. Format) partycji Ext4 nie widzą VeraCrypt urządzenie (jest to bardzo normalne, ponieważ VeraCrypt nie emuluje urządzenia).

Pośród tego wszystkiego ... w przypadku niektórych kopii zapasowych (w systemie Windows) nadal używam VeraCrypt i NTFS z włączoną kompresją ... i nie włączam pamięci podręcznej zapisu urządzenia fizycznego (nie ma sence), dlaczego chcę buforować zapisy zaszyfrowanych danych. .. chcę buforować modyfikacje NTFS, a nie dane wysyłane na dysk twardy ... VeraCrypt używa do tego dobrej pamięci podręcznej zapisu, więc dlaczego podwójne buforowanie ... straszne jest to, że Windows nie buforuje zmian NTFS na pamięci RAM, tylko pamięć podręczna „Klastry” wysłane na dysk.

A jeśli uważasz, że umieszczenie silnika szyfrującego veraCrypt na niższej warstwie (najbliżej fizycznego zapisu na HDD) może coś zyskać ... źle! problem jest taki:

  1. Pytany jest jeden mały plik do zapisu do NTFS
  2. Pojawia się szukanie pustego wpisu w katalogu (w pamięci RAM)
  3. Pojawia się nowy wpis na Dir (w pamięci RAM)
  4. Pamięć podręczna zapisu urządzenia do sprawdzania systemu Windows (VeraCrypt nie emuluje urządzenia, więc nie można się z nim skonsultować, więc interpretowane, ponieważ nie ma pamięci podręcznej zapisu)
  5. Ponieważ system Windows myśli (część nieszyfrowana) nie ma pamięci podręcznej zapisu, wysyła klastry DIR na dysk twardy
  6. VeraCrypt przechwytuje to i wykonuje szyfrowanie (nie jest to konieczne, jeśli te same klastry zostaną ponownie zapisane w niedalekiej przyszłości, co ma miejsce podczas zapisywania wielu małych plików w tym samym folderze)
  7. VeraCrypt wysyła zaszyfrowane dane na dysk twardy
  8. Windows sprawdza, czy urządzenie (tym razem jest to prawdziwe, więc można się z nim skonsultować) i widzi, czy pamięć podręczna zapisu jest włączona (lub wyłączona)
  9. Jeśli był włączony, nie zapisuje „zaszyfrowanego” klastra na dysku fizycznym, tylko trochę czeka
  10. Przejdź do kroku 1 dla następnego pliku

Na tym polega problem ... kroki 5 i następne ... nie zostałyby wykonane, jeśli NTFS ma pamięć podręczną zapisu ... ale VeraCrypt nie oferuje opcji buforowania na tym poziomie .. aby to zrobić, musiałby emulować całe urządzenie.

Tak więc dzieje się tak, że klastry, w których przechowywana jest lista folderów plików, są wysyłane do VeraCrypt wiele razy, po jednym na plik; zamiast wysyłane, jeśli tylko raz po ustawieniu wszystkich plików w katalogu.

Powiedziane małymi słowami: problemem jest często szyfrowanie tej samej listy folderów ... myślcie, że to zaszyfrowanie całego tekstu po napisaniu każdej litery w porównaniu do zaszyfrowania całego tekstu po zakończeniu pisania ... to sprawia, że ​​wszystko idzie naprawdę powolne (gdy wiele zmian jest wprowadzanych w tym samym folderze w krótkim czasie, takich jak dodawanie wielu małych plików).

Nie wspominając o tym, że problem ten ma również wpływ na usuwanie plików ... umieść ponad dziesięć tysięcy plików w folderze na niezaszyfrowanym dysku (z włączoną pamięcią podręczną zapisu), usuń je, aby trwać mniej niż sekundę (jeśli pamięć podręczna jest wyłączona, oznacza to więcej niż jedna godzina), teraz zrób to samo, ale mając zaszyfrowaną partycję i zapisz pamięć podręczną (tak, aktywowane), usuń tyle plików, że dziesięć tysięcy razy szyfruje listę folderów plików, zajmuje to również dużo na tym samym dysku ( całkiem blisko, jakby nie były szyfrowane bez pamięci podręcznej zapisu).

Mówiąc ogólnie: szyfrowanie może spowolnić operacje, nie tylko z powodu wolnego procesora lub dużego obciążenia procesora przez inny proces itp., Również dlatego, że brakuje pamięci podręcznej zapisu dla zmian w strukturze NTFS i powodują wielokrotne szyfrowanie informacje, które byłyby przechowywane w tym samym miejscu.

Mam nadzieję, że mogę otworzyć oczy komuś na szyfrowanie ... i mam nadzieję, że VeraCrypt (najlepsza pod względem bezpieczeństwa, jaką kiedykolwiek widziałem) aktywuje pamięć podręczną zapisu NTFS przed szyfrowaniem ... to bardzo proste, po prostu inne szyfrowanie dowolnego klastra, a jeśli przed końcem nadejdzie taki czas, zapisz do tego klastra, po prostu zignoruj ​​poprzednie niezaszyfrowane dane ... więc szyfrowanie jest wykonywane tylko raz ... innymi słowy ... bufor dynamiczny przed szyfrowaniem.

Złą stroną tego jest ... utrata zasilania, nagłe wyłączenie itp. ... sprawi, że rozmiar utraconych informacji będzie nieco większy ... tak jakbyś używał dysku twardego z pamięcią podręczną 1GiB bez baterii itp. zawsze jest wyścig między szybkością lub upewnienie się, że zapis został zakończony ... wolę prędkość, pozwól mi wyjaśnić, dlaczego ...

Jeśli kopiowanie jednego miliona małych plików (wszystkie w tym samym folderze; Windows naprawdę tego nienawidzi, zaleca się) zajmuje tylko 10 minut (z pamięcią podręczną zapisu na wszystkich poziomach) w porównaniu z jednym tygodniem (zapisywanie pamięci podręcznej na wszystkich poziomach) ... matematyka sama ... te dane to rzeczywiste czasy życia, uzyskane przeze mnie podczas nienormalnych testów, które przeprowadziłem w przeszłości w systemie NTFS (FAT32 był znacznie szybszy).

Matematyka jest następująca: jakie jest ryzyko, że potrzebuję zasilania tylko przez dziesięć minut w porównaniu do całego tygodnia? ile będę tracić? jeśli pamięć podręczna jest włączona, mogę stracić 1/600 danych (mniej więcej); jeśli pamięć podręczna jest wyłączona, mogę utracić tylko plik, nad którym w tej chwili pracował ... ale w obu przypadkach będę musiał dokonać porównania (pełne porównanie, ponieważ nazwa pliku może być w katalogu, ale treść może się różnić), więc będę potrzebować prawie w tym samym czasie, aby upewnić się, że wszystko jest dobrze skopiowane ... wolę marnować 10 minut, niż potrzebować jednego tygodnia na porównanie i zobaczenie, co jest brakujące lub inne treści itp.

I ogólnie, jeśli luźna dla ciebie nie jest opcją ... na początek nie używałbyś systemu Windows, ani FAT32, NTFS itp. ... nie używałby przynajmniej Linuksa i Ext3 / 4 (kronikowanie) i mocy generator itp.

Więc proszę, VeraCrypt, umieść bufor zapisu NTFS tak szybko, jak to możliwe.

Uwaga końcowa: ta sama koncepcja ma wpływ na FAT32 ... to nie tylko NTFS ... to sposób, w jaki Windows prosi o zmiany kierunków podczas tworzenia lub usuwania plików.

Wykonaj ten test, aby zobaczyć, jak przebiega prędkość ... w jednym kliknięciu utwórz dziesięć tysięcy plików o rozmiarze ZERO ... zwróć uwagę na szybkość / czas, jaki zajmuje pierwsze 100, w porównaniu do tego, ile czasu zajmuje kolejne 100, gdy jesteś w środku lub koniec ... naprawdę zobaczysz jeden plik na minutę (w niektórych niezbyt szybkich procesorach) ... ah! zrób to na ramdrive (aby upewnić się, że HDD nie wpływa na prędkość).

Teraz, aby zakończyć ... nie mogłem się powstrzymać przed wykonaniem tych samych testów w systemie Linux (na partycji Ext4, która znajduje się na woluminie VeraCrypt) ... pamiętaj, że w systemie Linux wszystkie są urządzeniami ... więc VeraCrypt przedstawia jądro urządzeniu. .. więc pamięć podręczna zapisu może być włączona na obu poziomach, poziomie Ext4 i fizycznym zapisywaniu klastra ... i domyślnie Linux ma je wszystkie włączone.

W Linuksie naprawdę leci ... tak jak powinno, ponieważ pamięć podręczna zapisu jest włączona, na obu urządzeniach, tym, który jest normalnie zamontowany na / media / veracrypt # i tym, który jest fizyczny / dev / sd $ # (jeśli mówimy o szyfrowanie partycji fizycznej).

Ale, hej, VeraCrypt nie ma bufora zapisu dla zmian Ext4, nie, to Linux go ma ... również ważniejsze ... okres czasu, kiedy coś nie jest wysyłane na dysk, jest resetowany, gdy tylko inny pisz do tego; niektóre linuksy mają górny limit i wysyłają dane na dysk, który minął, ale inny Linux nie wysyła danych na dysk przez lata, na przykład w przypadku, gdy klaster jest zapisywany dwa razy na sekundę, każda sekunda pełnego rok, ten klaster w takim roku nigdy nie mógłby zostać zapisany na dysku fizycznym.

Tak więc w Linuksie jest Linux, który nie wysyła więcej niż raz, listy folderów (jeśli zmiany na nim zostaną wprowadzone w krótkim czasie, na przykład tworzenie wielu plików w tym samym folderze, jak podczas kopiowania itp.), Więc VeraCrypt będzie szyfruj tylko raz, po ustawieniu wszystkich plików na liście folderów plików ... itd. Dużo, dużo szybciej niż szyfrowanie całej listy plików po dodaniu każdego pliku.

Zakończ myśl: Windows nienawidzi, Linux kocha ... czy nie, Linux ma tendencję do tracenia dużej ilości informacji, utrata zasilania, znacznie więcej niż Windows ... tylko dlatego, że ma pamięć podręczną zapisu ... co jest lepsze? prędkość? lub być bezpieczne zapisy są gotowe? kopiowanie wszystkich zajęło 10 minut, czy tydzień? niektórzy preferują jeden, inni preferują inny ... to zależy od ciebie.

Ale przynajmniej mam nadzieję, że wyjaśniłem, dlaczego kopiowanie wielu małych plików może być tak wolne (oczywiście w systemie Windows) do zaszyfrowanego kontenera (dysku, partycji, pliku itp.) W porównaniu do urządzenia fizycznego, gdy nie jest zaszyfrowane.

Claudio
źródło
2
Witamy w Super User! Na tej stronie pytań i odpowiedzi staramy się udzielać dobrych odpowiedzi na pytania, które zadają ludzie. Chociaż wydaje się, że włożyłeś wiele wysiłku w odpowiedź na to pytanie, jego rozmiar może odstraszyć niektórych ludzi. Edytuj swoją odpowiedź, aby na początku łatwo znaleźć wniosek, taki jak TL; DR lub streszczenie.
cascer1
Jeśli jest to dysk SSD, nie polecam używać VeraCrypt. Ma problemy z IOps. Zamiast tego spróbuj użyć DiskCryptor. Działa znacznie szybciej z dyskami SSD. Pamiętaj jednak, że w trybie paranoicznym musisz użyć ponad 30 znaków (ponieważ nie używa tyle iteracji, co VeraCrypt).
Maxim,
Przeczytałem dużo tej odpowiedzi i nadal nie otrzymałem informacji, których szukałem. Chcę odzyskać te 2 minuty mojego życia.
Andrew
1

Nowoczesne procesory są bardzo szybkie. Nawet poprzednia generacja AMD FX-8350 ze sprzętową obsługą AES wykonuje 5 Gb / s z VeraCrypt v1.19 AES-256.

Najprawdopodobniej drugi dysk USB nie może działać lepiej. Może to być na przykład dysk USB 2.0.

W każdym razie radzę poświęcić trochę czasu na testy obok siebie. Będziesz miał o wiele więcej informacji ... a może będziesz w stanie pomóc komuś innemu.

Maksyma
źródło
0

Aby uzupełnić to, co zostało powiedziane do tej pory:

VeraCrypt wydaje się mieć poważne wady wydajności w porównaniu do niektórych innych rozwiązań ( tutaj i tutaj ). Strony, do których się odwołują, są głównie zatytułowane „... SSD ...”, ale treść opisuje wiele przypadków obniżenia wydajności w przypadku konwencjonalnych dysków twardych i bardziej złożonych konfiguracji (RAID / etc.). Poważne przypadki wydają się wynikać z (a) nieoptymalnego kodowania lub (b) świadomych pod względem bezpieczeństwa decyzji konfiguracyjnych społeczności VeraCrypt. Reszta tego posta dotyczy (b).

WAŻNA UWAGA Niektóre ważne parametry muszą zostać wzięte pod uwagę, zbadane i znormalizowane przed porównaniem różnych dostępnych rozwiązań:

  1. Niektóre wyniki obserwowane przez inne rozwiązania mogą wynikać z faktu, że (prawie?) Całkowicie odciążają operacje kryptograficzne na samym urządzeniu, co jest bardzo złe esp. po kilku ostatnich raportach. Zobacz to i to od Microsoft . Ujawnione badania koncentrują się na BitLocker, ale niektóre inne rozwiązania mogą robić to samo.
  2. Co ważniejsze, jak zauważyli inni, stosowanie niższych marginesów bezpieczeństwa może być przyczyną niektórych / większości obniżenia wydajności (np. Mniej domyślnych iteracji skrótu, mniejsza domyślna długość klucza, tryb działania itp.).
Mohammad Amin Bandekhoda
źródło