Cryptology Academy · Lekcja

GPG do asymetrycznego szyfrowania plików

Proszę używać GPG do szyfrowania plików dla określonych odbiorców, podpisywania treści i zarządzania pękiem kluczy GPG.

Lekcja 1 z 413 kroki

GPG do asymetrycznego szyfrowania plików to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Przegląd GPG i jego przeznaczenie

GNU Privacy Guard (GPG) implementuje standard OpenPGP (RFC 4880) do asymetrycznego szyfrowania plików i tworzenia podpisów cyfrowych. Umożliwia wykonanie dwóch podstawowych operacji: zaszyfrowanie pliku tak, aby tylko zamierzony odbiorca mógł go odszyfrować, oraz podpisanie pliku tak, aby inne osoby mogły zweryfikować jego autentyczność i integralność. GPG jest standardowym narzędziem do bezpiecznego przesyłania plików i podpisywania wydań oprogramowania.

Generowanie kluczy GPG

Generowanie kluczy GPG jest interaktywne za pomocą gpg --gen-key lub możliwe do wykonania w skrypcie za pomocą gpg --quick-gen-key. Współczesne GPG domyślnie używa ed25519 do podpisywania i cv25519 (Curve25519) do szyfrowania, tworząc główny klucz podpisujący oraz podklucz szyfrujący. Opcja --full-gen-key zapewnia pełną kontrolę nad typem i rozmiarem klucza oraz datą wygaśnięcia użytkownikom, którzy potrzebują niestandardowej konfiguracji.

Porównanie typów kluczy GPG

Klucze GPG RSA o długości 4096 bitów są zgodne ze wszystkimi implementacjami OpenPGP i zapewniają silne zabezpieczenia. ECDSA z Curve25519 (Ed25519 do podpisywania, Cv25519 do szyfrowania) tworzy mniejsze klucze i umożliwia szybsze operacje, zachowując równoważny poziom bezpieczeństwa. Starsze klucze DSA są w starszych implementacjach ograniczone do skrótów SHA-1 i nie należy ich używać. Nowe klucze powinny używać typów opartych na Curve25519.

Eksportowanie i udostępnianie kluczy publicznych

Po wygenerowaniu pary kluczy należy wyeksportować klucz publiczny w celu jego rozpowszechnienia: gpg --armor --export your@email.com wyświetla blok klucza publicznego w formacie ASCII-armored. Należy udostępnić ten plik każdej osobie, która powinna szyfrować pliki dla Państwa lub weryfikować Państwa podpisy. Odbiorcy importują Państwa klucz publiczny za pomocą gpg --import publickey.asc, zanim będą mogli szyfrować pliki lub weryfikować podpisy.

Szyfrowanie plików dla odbiorców

Aby zaszyfrować plik dla konkretnego odbiorcy, należy użyć polecenia: gpg --encrypt --recipient recipient@email.com --output secret.gpg plaintext.txt. GPG używa klucza publicznego odbiorcy do zaszyfrowania klucza sesyjnego pliku, a następnie szyfruje plik za pomocą AES-256 (lub wynegocjowanego szyfru). Tylko odbiorca posiadający pasujący klucz prywatny może odszyfrować klucz sesyjny pliku i odzyskać tekst jawny.

Tworzenie podpisów odłączonych

Podpis odłączony (gpg --detach-sign --armor file.tar.gz) tworzy osobny plik .asc zawierający podpis. Oryginalny plik pozostaje niezmieniony. Odbiorcy weryfikują podpis za pomocą gpg --verify file.tar.gz.asc file.tar.gz. Podpisy odłączone są standardem w przypadku wydań oprogramowania, ponieważ umożliwiają weryfikację podpisu bez odszyfrowywania lub modyfikowania rozpowszechnianego pliku.

Weryfikowanie podpisów

Weryfikacja podpisu potwierdza, że plik został podpisany przez wskazany klucz i nie został zmodyfikowany od czasu podpisania. Polecenie gpg --verify signature.asc file wyświetla odcisk palca klucza, identyfikator użytkownika oraz informację, czy podpis jest prawidłowy, czy nieprawidłowy. Bezpieczeństwo zależy od prawidłowego zaufania do klucza publicznego osoby podpisującej: prawidłowy podpis złożony za pomocą niezaufanego lub niezweryfikowanego klucza daje niewielką gwarancję.

Klucze prywatne chronione hasłem

GPG szyfruje klucz prywatny szyfrem symetrycznym wyprowadzonym z hasła przed zapisaniem go. Bez hasła osoba atakująca, która zdobędzie plik klucza prywatnego, nie może go użyć. GPG korzysta z funkcji wyprowadzania klucza, aby uzyskać klucz szyfrujący na podstawie hasła. Hasło powinno być długie i łatwe do zapamiętania, ale nieużywane nigdzie indziej, ponieważ chroni ono wszystkie zaszyfrowane pliki.

Operacje na serwerach kluczy GPG

Serwery kluczy GPG przechowują klucze publiczne, ułatwiając ich wyszukiwanie. Polecenie gpg --send-keys KEYID --keyserver hkps://keys.openpgp.org przesyła Państwa klucz publiczny. Inne osoby mogą go wyszukać i zaimportować za pomocą gpg --recv-keys KEYID. Serwery kluczy synchronizują się ze sobą, zapewniając globalną dostępność kluczy. Nowoczesne serwery kluczy, takie jak keys.openpgp.org, wymagają weryfikacji adresu e-mail przed publikacją, co zapobiega atakom polegającym na spamowaniu kluczami.

Wygaśnięcie i unieważnienie klucza

Ustawienie daty wygaśnięcia klucza zapewnia automatyczną ochronę w przypadku utraty nad nim kontroli, bez konieczności tworzenia certyfikatu unieważnienia. Po wygaśnięciu klucza GPG ostrzega użytkowników szyfrujących dane za jego pomocą. Jeśli klucz zostanie przejęty, należy natychmiast opublikować certyfikat unieważnienia (utworzony w momencie generowania klucza) na serwerach kluczy: gpg --import revocation.cert i gpg --send-keys. Uniemożliwia to dalsze szyfrowanie na przejęty klucz.

GPG w zautomatyzowanych procesach

GPG może działać nieinteraktywnie w skryptach dzięki flagom --batch i --yes oraz przekazywaniu haseł za pomocą --passphrase-fd w celu odczytu z deskryptora pliku. Agent GPG (gpg-agent) przechowuje hasło w pamięci podręcznej przez konfigurowalny czas, umożliwiając jego automatyczne ponowne użycie. W potokach CI/CD materiał klucza powinien być przechowywany w systemach zarządzania sekretami, a nie w kodzie źródłowym ani w zmiennych środowiskowych.

Polecenie szyfrowania GPG

Które polecenie GPG szyfruje plik dla konkretnego odbiorcy za pomocą jego klucza publicznego?

Podsumowanie szyfrowania plików za pomocą GPG

Podsumowanie GPG: należy generować pary kluczy (preferując Curve25519), eksportować i udostępniać klucze publiczne, szyfrować za pomocą klucza publicznego odbiorcy (--encrypt --recipient), osobno podpisywać pliki za pomocą podpisów odłączonych (--detach-sign), weryfikować podpisy za pomocą --verify, chronić klucze prywatne hasłami, ustawiać daty wygaśnięcia i przygotowywać certyfikaty unieważnienia, a także używać serwerów kluczy do wyszukiwania i rozpowszechniania kluczy publicznych.

Bezpłatny start

Ucz się Cryptology Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
67
Lekcje
261

Często zadawane pytania

Czy lekcja „GPG do asymetrycznego szyfrowania plików” jest bezpłatna?

Tak — pełny tekst „GPG do asymetrycznego szyfrowania plików” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „GPG do asymetrycznego szyfrowania plików”?

Proszę używać GPG do szyfrowania plików dla określonych odbiorców, podpisywania treści i zarządzania pękiem kluczy GPG. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „GPG do asymetrycznego szyfrowania plików”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. GPG do asymetrycznego szyfrowania plików
  2. Narzędzie szyfrujące age: nowoczesna alternatywa dla GPG
  3. Szyfrowane kontenery VeraCrypt
  4. Bezpieczne usuwanie i niszczenie kluczy
← Powrót do Cryptology Academy