Co jest dobrym rozwiązaniem do szyfrowania niektórych plików w systemie Unix? [Zamknięte]

44

Szukam narzędzia do szyfrowania niektórych katalogów w systemie Linux. Nie szukam żadnych usług szyfrowania całego dysku, ale po prostu szyfruję kilka katalogów w celu przechowywania plików w chmurze. Po ich odzyskaniu powinienem je odszyfrować, aby uzyskać do nich dostęp. Chciałbym to zrobić dla kilku katalogów (kilkaset GB). Jakieś pomysły? Najlepiej oparte na CLI.

Piotr
źródło

Odpowiedzi:

51

Do tego zadania używam tylko GnuPG. Foldery są najpierw pakowane do archiwum TAR-GZ:

tar czf files.tar.gz /path/to/my/files

Jeśli nie zostało to jeszcze zrobione, musisz najpierw utworzyć parę kluczy prywatny / publiczny GPG:

gpg --gen-key

Postępuj zgodnie z instrukcją. Wartości domyślne powinny wystarczyć do pierwszego testu. Pojawi się coś takiego:

gpg (GnuPG) 2.0.18; Prawa autorskie (C) 2011 Free Software Foundation, Inc.
To jest wolne oprogramowanie: możesz je zmieniać i rozpowszechniać.
Nie ma ŻADNEJ GWARANCJI, w zakresie dozwolonym przez prawo.

Wybierz rodzaj klucza, który chcesz:
   (1) RSA i RSA (domyślnie)
   (2) DSA i Elgamal
   (3) DSA (tylko znak)
   (4) RSA (tylko znak)
Twój wybór? 1
Klucze RSA mogą mieć długość od 1024 do 4096 bitów.
Jakiego rozmiaru chcesz? (2048) 4096
Żądany rozmiar klucza to 4096 bitów
Proszę określić, jak długo klucz powinien być ważny.
         0 = klucz nie wygasa
        = klucz wygasa za n dni
      w = klucz wygasa za n tygodni
      m = klucz wygasa za n miesięcy
      y = klucz wygasa za n lat
Klucz jest ważny przez? (0)
Klucz w ogóle nie wygasa
Czy to jest poprawne? (t / N) y

GnuPG musi utworzyć identyfikator użytkownika, aby zidentyfikować Twój klucz.

Prawdziwa nazwa: klucz szyfrowania pliku
Adres e-mail: [email protected]
Komentarz: Klucz szyfrowania pliku
Wybrałeś ten ID UŻYTKOWNIKA:
    „Klucz szyfrowania pliku (klucz szyfrowania pliku)”

Zmienić (N) ame, (C) pominięcie, (E) mail lub (O) kay / (Q) uit? o

Zostaniesz poproszony o hasło do klucza. Zdecydowanie zaleca się stosowanie silnego. Zresztą nie jest to potrzebne do szyfrowania plików, więc nie martw się późniejszym użyciem partii.

Jeśli wszystko zostanie zrobione, na ekranie pojawi się coś takiego:

Musimy wygenerować wiele losowych bajtów. To dobry pomysł na wykonanie
jakąś inną akcję (wpisz na klawiaturze, porusz myszą, użyj
dyski) podczas pierwszego generowania; daje to liczbę losową
generator ma większą szansę na uzyskanie wystarczającej entropii.
Musimy wygenerować wiele losowych bajtów. To dobry pomysł na wykonanie
jakąś inną akcję (wpisz na klawiaturze, porusz myszą, użyj
dyski) podczas pierwszego generowania; daje to liczbę losową
generator ma większą szansę na uzyskanie wystarczającej entropii.
gpg: klucz FE53C811 oznaczony jako ostatecznie zaufany
klucz publiczny i tajny utworzony i podpisany.

gpg: sprawdzanie trustdb
gpg: potrzebne 3 margines (y), 1 komplet (y) potrzebne, model zaufania PGP
gpg: głębokość: 0 poprawna: 1 podpisana: 0 zaufanie: 0-, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      Odcisk klucza = **** **** **** **** **** **** **** **** **** **** ****
Uid Key Encryption Key (klucz szyfrowania pliku) 
sub ***** / ******** 2013-03-19

Teraz możesz chcieć wyeksportować keyfile publicznego do importowania go na innych maszynach:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

To File Encryption Keynazwa, którą wpisałem podczas procedury generowania klucza.

Teraz używam GnuPG w nowo utworzonym archiwum:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

Masz teraz files.tar.gz.gpgplik, który jest zaszyfrowany.

Możesz go odszyfrować za pomocą następującego polecenia (zostaniesz poproszony o podanie hasła):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

To cała magia.

Utwórz kopię zapasową klucza! I nigdy nie zapomnij swojego hasła! Jeśli nie utworzono kopii zapasowej lub zapomniano, masz gigabajty śmieci danych!

Wykonaj kopię zapasową klucza prywatnego za pomocą tego polecenia:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

Zalety

  • Żaden z programów szyfrujących nie musi znać poufnych informacji o szyfrowaniu - szyfrowanie odbywa się za pomocą klucza publicznego. (Możesz utworzyć parę kluczy na lokalnej stacji roboczej i przenieść tylko klucz publiczny na swoje serwery)
  • Hasła nie pojawią się w plikach skryptów ani zadaniach
  • Możesz mieć tyle samo, co szyfrerów w dowolnym systemie
  • Jeśli trzymasz swój klucz prywatny i hasło w tajemnicy, wszystko jest w porządku i bardzo bardzo trudno je skompromitować
  • Możesz odszyfrować kluczem prywatnym na platformach Unix, Windows i Linux, używając konkretnej implementacji PGP / GPG
  • Nie potrzeba specjalnych uprawnień do szyfrowania i deszyfrowania systemów, bez montowania, bez kontenerów, bez specjalnych systemów plików
zero
źródło
1
Zauważ, że w zależności od danych, uruchomienie może być szybsze tarbez zprzełącznika, aby uniknąć kompresji.
l0b0
28

Ze swojej strony używam głównie dwóch metod:

Pierwsza metoda: tar i openssl

Taruj katalog

tar cvf backup.tar /path/to/folder

Możesz usunąć przełącznik [v] z polecenia tar, aby wyłączyć tryb gadatliwy.

Szyfruj

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

Możesz zmienić aes-128-cbc na dowolną inną metodę szyfrowania, która obsługuje openssl (openssl --help).

Odszyfruj

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

Poprosi o hasło.

Druga metoda: szyfrowany zip

zip -r -0 -e backup.zip /path/to/folder

Poprosi o hasło.

  • -r oznacza rekurencyjnie (całe drzewo folderów)
  • -0 oznacza tylko sklep (nie kompresuje się, szybciej)
  • -e oznacza szyfrowanie archiwum

Zaleta tego: lepiej będzie działał w systemie Windows.

Julien R.
źródło
3
Podanie hasła w wierszu poleceń nie jest dobrym pomysłem. Hasło pozostaje w historii powłoki.
pbies
1
Należy zauważyć, że zippodobno szyfrowanie można złamać.
Acumenus,
22

Jeśli nie chcesz szyfrować plików za pomocą pary kluczy publiczny / prywatny i zamiast tego użyj po prostu szyfrowania symetrycznego z frazą hasła, użyj następującego polecenia:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Zostaniesz poproszony o podanie hasła. Następnie files.tar.gz.gpgtworzony jest zaszyfrowany plik o nazwie .

Aby odszyfrować, użyj polecenia

gpg --decrypt files.tar.gz.gpg > files.tar.gz
Chiborg
źródło
2

Możesz użyć truecrypt bardzo prostego i przyjemnego rozwiązania. Ma pakiet do użytku wyłącznie na konsoli. Jest bardzo prosty do nauczenia się i obsługi. http://www.truecrypt.org

B14D3
źródło
4
Od 28 maja 2014 TrueCrypt już nie ma. Zobacz en.wikipedia.org/wiki/TrueCrypt
Bryce
2

W tym celu sugerowałbym szyfrowanie FUSE (np. Encfs ) - dla mniejszych danych używałbym gpg.

Jest on zaimplementowany w przestrzeni użytkownika, więc nie potrzebujesz żadnych specjalnych uprawnień.

Maciej Piechotka
źródło
1

Istnieje kilka systemów plików Linux przeznaczonych do szyfrowania danych. Czy myślałeś już o LUX np.?

Opiekun
źródło
1

Bardzo prosty sposób zaszyfrowania jednego pliku to:

gpg -c filename.ext

Zostaniesz dwukrotnie zapytany o hasło, a gpg utworzy filename.ext.gpg. Prześlij zaszyfrowany plik do usługi w chmurze. Aby odzyskać plik, użyj:

gpg filename.ext.gpg

Które zostaną odtworzone filename.ext. Pamiętaj, że niezaszyfrowane pliki nie są bezpieczne, a odpowiednie dane pozostaną na twoim nośniku nawet po usunięciu. Tylko pojemnik gpg jest bezpieczny. EncFS jest bardziej praktyczną alternatywą dla szyfrowania w chmurze na poziomie plików.

Bryce
źródło