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.
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.
1openssl 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.
@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:
Aby uzyskać integrację nautilus, zainstaluj pakiet seahorse-nautilusz Centrum oprogramowania: konik morski-nautilus
„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.
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.)
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 * ”
Odpowiedzi:
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:
Deszyfrowanie:
Pamiętaj, że
gpg
domyślnie buforuje klucz (udokumentowane zachowanie). Aby tego uniknąć, użyj--no-symkey-cache
opcji 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
openssl
jest 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:
Zostaniesz poproszony o podanie hasła, które musisz wprowadzić dwa razy.
Odszyfruj:
Strona podręcznika dla programu enc .
1
openssl enc
używa funkcji podsumowania zdefiniowanej przez-md
opcję (domyślnie md5) i wywołuje funkcjęEVP_BytesToKey()
z liczbą iteracji równą 1. Można ją znaleźć w źródle openssl pod adresemapps/enc.c
.źródło
-a
base64-koduje dane wejściowe (pseudonim-base64
), aby je odszyfrować, musisz również dodać-a
opcję.aes-256
to pseudonimaes-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.W tym celu używam konika morskiego . Jest to interfejs Gnome dla GnuPG i dobrze integruje się z nautilus:
Aby uzyskać integrację nautilus, zainstaluj pakiet
seahorse-nautilus
z Centrum oprogramowania: konik morski-nautilusźródło
TrueCrypt : wycofane, niezabezpieczone, dostępne źródło bezpłatne oprogramowanie do szyfrowania dysków.
źródło
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 nazwiefoo.txt.gpg
. GnuPG nie usuwa oryginalnego niezaszyfrowanego pliku, od Ciebie zależy, czy chcesz go zawiesić. Aby odszyfrować foo.txt.gpg, uruchomgpg foo.txt.gpg
. Deszyfrowanie wyświetli monit przed zastąpieniem istniejących plików.Jeśli chcesz zaszyfrować katalog, najpierw spisz go:
Możesz zmienić nazwę zaszyfrowanego pliku, jak chcesz. Po odszyfrowaniu oryginalna nazwa pliku zostaje zachowana.
źródło
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/Private
domyś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/Private
Rekurencyjnie każdy pojedynczy plik i folder będzie szyfrowany.źródło
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.)
źródło
Wziąłem kilka innych sugestii i stworzyłem proste opakowanie skryptu powłoki (dla leniwych)
https://github.com/orionM/ssl-crypt-tools
cieszyć się
źródło
openssl aes-256-cbc ...
Wiesz, zamiast używaćif [ $? -ne 0 ] ; then... fi
moż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 * ”