Czy istnieje narzędzie do szyfrowania pliku lub katalogu?


66

Jaki jest najpopularniejszy sposób szyfrowania pojedynczych plików lub folderów?


Pytanie jest nieco niejasne. Czy chcesz ręcznie szyfrować i deszyfrować pliki czy w locie?
psusi

4
Zamiast „najbardziej popularnego” pomocne może być dopasowanie rozwiązania do twoich wymagań (zgodnie z pytaniem psusi). Szukasz połączenia łatwego, niezawodnego, natywnego, bezpiecznego, szybkiego i otwartego oprogramowania? Wszystkie czy niektóre z nich?
belacqua

7
Chciałbym dodać uwagę, że wbrew temu, co twierdzą niektóre odpowiedzi, TrueCrypt nie jest uważany za wolne oprogramowanie lub Open Source przez Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / itp.
JanC

Odpowiedzi:


46

GnuPG (GPG) może korzystać z szyfrowania asymetrycznego i symetrycznego. Krypto asymetryczne obejmuje dwa klucze, klucz publiczny do szyfrowania i klucz prywatny do deszyfrowania. Zobacz odpowiedź djeikyb na tej stronie dla asymetrycznego użycia klucza.

W przypadku szyfrowania symetrycznego klucze szyfrowania i deszyfrowania są takie same. Ważne jest, aby zdawać sobie sprawę, że większość ludzi bardzo źle wybiera silne hasła. Dlatego schemat szyfrowania wykorzystujący hasła powinien wykorzystywać funkcję wyprowadzania klucza, która wymaga więcej zasobów (czasu, pamięci), aby spowolnić ataki siłowe.

Aby zapoznać się z opisem KDF GnuPG, zobacz ten post dotyczący wymiany stosów kryptograficznych . Przykład zastosowania szyfrowania symetrycznego:

gpg --symmetric < unencrypted_file > encrypted_file

Deszyfrowanie:

gpg --decrypt < encrypted_file > decrypted_file

Pamiętaj, że gpgdomyślnie buforuje klucz (udokumentowane zachowanie). Aby tego uniknąć, użyj --no-symkey-cacheopcji opisanej w powiązanej odpowiedzi .

Strona instrukcji gpg .


stara odpowiedź dla użytkowników, którzy potrafią wybrać dobre klucze, patrz uwaga poniżej

W przypadku pojedynczych plików openssljest bardzo przydatny, szczególnie przy wysyłaniu pliku niezabezpieczonym kanałem (np. E-mail). Jest darmowy (w gotówce i w wolności), w przeciwieństwie do Truecrypt, który jest darmowy tylko w pieniądzu.

UWAGA : hasło, które tu wprowadzisz, zostanie przetworzone przez jedną iterację MD5 1 . Jeśli wybierzesz hasło „123456”, będziesz mieć bardzo małe bezpieczeństwo.

Szyfruj:

openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file

Zostaniesz poproszony o podanie hasła, które musisz wprowadzić dwa razy.

Odszyfruj:

openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file

Strona podręcznika dla programu enc .

1 openssl enc używa funkcji podsumowania zdefiniowanej przez -mdopcję (domyślnie md5) i wywołuje funkcję EVP_BytesToKey()z liczbą iteracji równą 1. Można ją znaleźć w źródle openssl pod adresem apps/enc.c.


Czy można to zrobić bez hasła?
Assaf Lavie

@Assaf Lavie: OpenSSL nie obsługuje plików kluczy, jeśli miałeś na myśli, chociaż może odczytać hasło z pierwszego wiersza pliku. Przeczytaj stronę podręcznika na openssl, sekcja Przekaż argumenty wyrażeń .
Lekensteyn

dodatkowo możesz użyć flagi „-a”, która pozwala skopiować zaszyfrowany tekst, tak jak: „openssl aes-256-cbc -a -salt -in
unencrypted_file

@ v2r Aby dodać kolejne czytniki: -abase64-koduje dane wejściowe (pseudonim -base64), aby je odszyfrować, musisz również dodać -aopcję.
Lekensteyn

1
@Lucio aes-256to pseudonim aes-256-cbc, nie ma różnicy. CBC to tryb działania szyfrów blokowych. Zobacz stronę podręcznika, enc(1)aby uzyskać listę obsługiwanych szyfrów.
Lekensteyn,

30

W tym celu używam konika morskiego . Jest to interfejs Gnome dla GnuPG i dobrze integruje się z nautilus:Integracja Nautilus

Aby uzyskać integrację nautilus, zainstaluj pakiet seahorse-nautilusz Centrum oprogramowania: konik morski-nautilus Zainstaluj konika morskiego-nautilus


3
działa to tylko wtedy, gdy masz w systemie klucze GPG ...
hhlp

3
@hhlp: odpowiedź djeikyb wyjaśnia, jak to zrobić.
idbrii

1
Chcę zaszyfrować mój klucz GPG.
KI4JGT

19
  • Aplet zasobnika systemowego EncFS dla programu szyfrującego GNOME

TrueCrypt : wycofane, niezabezpieczone, dostępne źródło bezpłatne oprogramowanie do szyfrowania dysków.


2
+1, encfs - z graficznym interfejsem użytkownika lub bez niego - jest bardzo przydatne i wystarcza do większości celów.
loevborg

3
Cryptkeeper jest niesamowity - prosty, potężny i łatwy do skonfigurowania w Dropbox ( askubuntu.com/questions/19613/... ).
Scaine

TrueCrypt nie jest pakowany w Ubuntu (ani żadnej innej dużej dystrybucji) z powodów związanych z licencjonowaniem.
MagicFab

2
TrueCrypt nie jest tak open-source. en.wikipedia.org/wiki/…
yuric

4
„OSTRZEŻENIE: Korzystanie z TrueCrypt nie jest bezpieczne” - TrueCrypt
user457015

16

Metodą cli byłby GnuPG , a może tar. To jest krótki przewodnik dla odniesienia, naprawdę powinieneś przeczytać dokumentację.

Pierwszy bieg gpg --gen-key. Postępuj zgodnie z instrukcjami, aby wygenerować parę kluczy publiczny / prywatny. Teraz można szyfrować pliki: gpg -e foo.txt. Spowoduje to utworzenie pliku o nazwie foo.txt.gpg. GnuPG nie usuwa oryginalnego niezaszyfrowanego pliku, od Ciebie zależy, czy chcesz go zawiesić. Aby odszyfrować foo.txt.gpg, uruchom gpg foo.txt.gpg. Deszyfrowanie wyświetli monit przed zastąpieniem istniejących plików.

Jeśli chcesz zaszyfrować katalog, najpierw spisz go:

tar -cf foo.tar foo/
gpg -e foo.tar

Możesz zmienić nazwę zaszyfrowanego pliku, jak chcesz. Po odszyfrowaniu oryginalna nazwa pliku zostaje zachowana.


2
Zalety tej metody to: Po pierwsze, nie wymaga instalacji dodatkowych pakietów; Po drugie, nie wymaga dostępu do roota. Dodałbym kompresję do polecenia tar (xz lub gz).
Panther

12

Istnieją również eCryptfs , których Ubuntu używa do szyfrowania katalogów domowych.

Możesz wybrać szyfrowanie katalogu domowego podczas instalacji lub możesz $HOME/Privatedomyślnie skonfigurować pojedynczy katalog , używając narzędzia ecryptfs-setup-private . Ten folder można skonfigurować do automatycznego montowania przy logowaniu i odmontowywania przy logowaniu. $HOME/PrivateRekurencyjnie każdy pojedynczy plik i folder będzie szyfrowany.


Niestety eCryptfs działa BARDZO wolno. Również w najnowszej wersji jest kilka błędów
ruX

Wręcz przeciwnie, jeśli cokolwiek eCryptfs jest szybsze niż gpg; domyślnie gpg próbuje kompresować przed szyfrowaniem. ECryptfs jest teraz używany również przez większość Androida
Xen2050,

2

Możesz także użyć „Podpisu akademickiego”, aby użyć kryptografii krzywej eliptycznej z graficznym interfejsem użytkownika wxWidgets. Jest to oprogramowanie typu open source, ale nie w repozytoriach. Wykonuje głównie szyfrowanie asymetryczne ECC, sygnatury i znaczniki czasu. Ale narzędzie ma również pozycję Menu do wywoływania Gnupg (RSA) i bezpośredniego dostępu do symetrycznego szyfrowania / deszyfrowania plików oferujących AES i inne algorytmy. Jego strona główna znajduje się tutaj: https://www.academic-signature.org

Często go używam do ochrony plików w tranzycie i do cyfrowego podpisywania dokumentów akademickich (transkrypcje, listy polecające, listy ocen itp.)


1

Wziąłem kilka innych sugestii i stworzyłem proste opakowanie skryptu powłoki (dla leniwych)

https://github.com/orionM/ssl-crypt-tools

cieszyć się


1
hmm, używanie skryptu bash openssl aes-256-cbc ...Wiesz, zamiast używać if [ $? -ne 0 ] ; then... fimożesz po prostu użyć ||? I są ludzie, którzy myślą, że OpenSSL „* miał kilka poważnych wad bezpieczeństwa w ciągu ostatniego roku [ Heartbleed ], podczas gdy dokumenty Snowdena pokazują, że GPG jest jednym z niewielu programów, które mogą zakłócać działanie NSA, gdy są właściwie używane. Kod OpenSSL jest również kompletny szambo i ma straszne relacje z testów. (Ujawnienie: [on] pracuje nad projektem „Bani OpenSSL; naprawmy to”.) - jbarlow * ”
Xen2050
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.