Zaszyfrowałem plik przy użyciu szyfrowania symetrycznego, takiego jak to:
gpg --symmetric myfile
co powoduje powstanie pliku myfile.gpg
.
W porządku. Teraz ponownie odszyfrujmy plik:
gpg -o myfile --decrypt myfile.gpg
Poproszono mnie o hasło, które założyłem, a potem widzę
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
Nie jestem pewien pierwszej i ostatniej linii.
- Co to jest szyfr CAST5 i czy jest bezpieczny? Znam 3DES i AES i wiem, że są bezpieczne.
- Dlaczego nie jest chroniony pod względem integralności?
- Co więcej, jak to naprawić?
encryption
gnupg
data-integrity
aes
gertvdijk
źródło
źródło
gpg -c myfile
zaszyfrować igpg myfile.gpg
odszyfrować, dane wyjściowe zostanąmyfile
domyślnie odszyfrowane .gpg myfile.gpg
spowoduje odszyfrowanie danych wyjściowych wysyłanych do standardowego wyjścia w moim systemie ...Odpowiedzi:
tło
CAST-5 jest starszym algorytmem szyfrowania używanym przez GnuPG, ponieważ AES jeszcze nie istniał w czasie, gdy GnuPG był początkowo tworzony jako źródło . Nie jest powszechnie używany (oprócz GnuPG ze względu na kompatybilność).
Wynika
WARNING: message was not integrity protected
to z faktu, że ta funkcja nie jest domyślnie włączona w momencie szyfrowania. Jeśli to zostało włączone, GnuPG może stwierdzić, czy plik został zmieniony podczas przesyłania.Aktualizacja: nowoczesne wersje GnuPG dostarczane z Ubuntu / Debian mają teraz domyślnie włączone MDC i nigdy nie powinieneś widzieć tego komunikatu dla niczego podpisanego nowszymi wersjami.
Rozwiązania
Aby użyć silniejszego AES-256, musisz podać go w wierszu polecenia lub w pliku konfiguracyjnym.
Wiersz polecenia: dodaj
--cipher-algo AES256
opcję, aby stała się pełna linia do szyfrowaniaPlik konfiguracyjny (zalecane): dodaj następujący wiersz do
~/.gnupg/gpg.conf
pliku konfiguracyjnego.Polecam to podejście, ponieważ będzie ono używane do wszystkich przyszłych operacji GPG na tym koncie użytkownika.
Użytkownik nie musi nic zmieniać w celu odszyfrowania pliku - GnuPG wykryje to automatycznie.
Należy pamiętać, że przy użyciu szyfru AES-256 wiadomość jest automatycznie chroniona pod kątem integralności. Aby ręcznie włączyć ochronę integralności na innych szyfrach, dla których nie jest to włączone (np. CAST-5), dodaj
--force-mdc
opcję podczas szyfrowania.Jeszcze lepiej: znak!
Jeszcze lepszym rozwiązaniem byłoby podpisanie plików za pomocą pary kluczy (jeśli je masz). Po prostu dodaj
--sign
opcję do polecenia szyfrowania, tak jak poniżej:Spowoduje to nie tylko sprawdzenie integralności pliku, ale także umożliwi odbiorcy pliku sprawdzenie pochodzenia. Wszelkie zmiany w pliku spowodowałyby niepowodzenie sprawdzania podpisu.
źródło