Jak zweryfikować integralność obrazu ISO rozkładu Linuksa

Jak zweryfikować integralność obrazu ISO rozkładu Linuksa

Kiedy zdecydujemy się zainstalować system operacyjny na podstawie jądra Linux, pierwszą rzeczą, którą robimy, jest pobranie jego obrazu instalacyjnego lub ISO z oficjalnej strony internetowej dystrybucji. Przed przystąpieniem do faktycznej instalacji kluczowe jest zweryfikowanie integralności obrazu, aby upewnić się, że tak jest, i nikt go nie naruszył. W tym samouczku zobaczymy podstawowe kroki, które możemy wykonać, aby wykonać to zadanie.

W tym samouczku się nauczysz:

  • Jaka jest podstawowa różnica między szyfrowaniem GPG a podpisaniem
  • Jak pobrać i zaimportować klawisz publiczny GPG z kluczowego serwera
  • Jak zweryfikować podpis GPG
  • Jak zweryfikować sumę kontrolną ISO
Jak zweryfikować integralność obrazu ISO

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Niezależny od rozkładu
Oprogramowanie GPG, SHA256Sum (należy domyślnie zainstalować)
Inny Żadnych innych wymagań
Konwencje # - Linux -commands do wykonania z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$-Linux-commands, który ma zostać wykonany jako zwykły użytkownik niepewny


Kroki związane z sprawdzaniem integralności pobranego ISO to w zasadzie dwa:

  1. Weryfikacja podpisu pliku zawierającego kontrolę kontrolną ISO
  2. Weryfikacja sumy kontrolnej podanej w pliku jest taka sama z jednego z faktycznych ISO

Tutaj zobaczymy, jak wykonać oba kroki.

Krok 1

Weryfikacja podpisu GPG pliku suma kontrolnego

Aby upewnić się, że pobrane przez nas ISO nie zostało zmienione, istnieje jedna prosta rzecz: sprawdź, czy jej suma kontrolna odpowiada tej wskazanej w pliku, który jest zwykle dostępny na tej samej stronie, z której ISO pobrano. Jest tylko jeden problem: jak możemy mieć pewność, że ten plik nie został zmieniony? Musimy sprawdzić jego podpis GPG! Nawiasem mówiąc, co to jest podpis GPG i jaka jest różnica między podpisaniem a szyfrowaniem z GPG?

Szyfrowanie vs podpisanie

Szyfrowanie GPG opiera się na użyciu par kluczowych. Każdy użytkownik generuje klucz prywatny i publiczny: ten pierwszy, jak sugeruje jego nazwa, jest ściśle osobisty i musi być tak bezpieczny, jak to możliwe; ten ostatni może być dystrybuowany i swobodnie dostępny przez społeczeństwo. Zasadniczo są dwie rzeczy, które możemy zrobić z GPG: szyfrowanie i podpisanie.

Powiedzmy, że mamy dwie osoby: Alice i Bob. Jeśli chcą skorzystać z korzystania z GPG, pierwszą rzeczą, którą muszą zrobić, jest wymiana kluczy publicznych.

Jeśli Alice chce wysłać prywatną wiadomość do Boba i chce mieć pewność, że tylko Bob jest w stanie przeczytać wiadomość, musi ją zaszyfrować za pomocą klucza publicznego Boba. Po zaszyfrowaniu wiadomości tylko klucz prywatny Boba będzie w stanie go odszyfrować.

To jest szyfrowanie GPG; Inną rzeczą, którą możemy zrobić z GPG, jest stworzenie podpisu cyfrowego. Załóżmy, że Alice chce tym razem rozpowszechnić publiczną wiadomość: każdy powinien ją przeczytać, ale potrzebna jest metoda, aby sprawdzić, czy wiadomość jest autentyczna i została naprawdę napisana przez Alice. W takim przypadku Alice powinna użyć swojego klucza prywatnego do wygenerowania podpis cyfrowy; Aby zweryfikować podpis Alice, Bob (lub jakakolwiek inna osoba) używa klucza publicznego Alice.



Przykład rzeczywisty - pobieranie i weryfikacja Ubuntu 20.04 ISO

Po pobraniu ISO z oficjalnej witryny powinniśmy również pobrać, aby ją zweryfikować, powinniśmy również pobrać odpowiedni plik sumy kontrolnej i jego podpis. Zróbmy przykładowy przykład. Załóżmy, że chcemy pobrać i zweryfikować ISO najnowszej wersji Ubuntu (20.04). Prowadzimy się do strony wydania i przewijamy do dołu strony; Tam znajdziemy listę plików, które można pobrać:

Ubuntu 20.04 Upuszcza stronę

Przypuśćmy, że chcemy zweryfikować i zainstalować wersję dystrybucji „Desktop”, powinniśmy pobrać następujące pliki:

  • Ubuntu-20.04-Desktop-AMD64.ISO
  • SHA256Sums
  • SHA256Sums.GPG

Pierwszy plik to sam obraz rozkładu; drugi plik, SHA256Sums, zawiera sumę kontrolną wszystkich dostępnych zdjęć i czy powiedzieliśmy, że musi sprawdzić, czy obrazy nie zostały zmodyfikowane. Trzeci plik, SHA256Sum.GPG Zawiera podpis cyfrowy z poprzedniej: używamy go do sprawdzenia, czy jest autentyczny.

Po pobraniu wszystkich plików pierwszą rzeczą, którą musimy zrobić, jest zweryfikowanie podpisu GPG pliku suma kontrolnego. Aby to zrobić, musimy użyć następującego polecenia:

GPG -Weryfy SHA256Sums.GPG SHA256Sums 

Gdy GPG dostarczono więcej niż jeden argument --zweryfikować polecenie, pierwszym zakłada się, że plik zawiera podpis, a pozostałe, które zawierają podpisane dane, które w tym przypadku są sumą kontrolną obrazu Ubuntu. Jeśli dystrybucja, w której obecnie pracujemy, nie jest Ubuntu, i po raz pierwszy sprawdzamy obraz Ubuntu, polecenie powinno zwrócić następujący wynik:

GPG: Signature Made 23 kwietnia 2020 03:46:21 PM CEST GPG: Korzystanie z klucza RSA D94AA3F0EFE21092 GPG: Nie można sprawdzić podpis: Brak klucza publicznego 


Wiadomość jest jasna: GPG nie może zweryfikować podpisu, ponieważ nie mamy klucza publicznego powiązanego z kluczem prywatnym, który został użyty do podpisywania danych. Gdzie możemy uzyskać klucz? Najłatwiejszym sposobem jest pobrać go z Keyserver: W tym przypadku będziemy używać Keyserver.Ubuntu.com. Aby pobrać klucz i zaimportować go do naszego klucza, możemy uruchomić:

$ gpg -Keyserver keyserver.Ubuntu.Com--Recv-Keys D94AA3F0EFE21092 

Poświęćmy chwilę, aby wyjaśnić powyższe polecenie. Z -Keyserver Opcja określiliśmy klawiszer, którego chcemy użyć; -Keysy Opcja, zamiast tego wymaga Key-id jako argument i jest potrzebny do odwołania się do klucza, który należy zaimportować z Keyserver. W takim przypadku identyfikator klucza, który chcemy wyszukiwać i importować D94AA3F0EFE21092. Polecenie powinno wytworzyć to wyjście:

GPG: Klucz D94AA3F0EFE21092: Klucz publiczny „Ubuntu CD Image Automatyczne podpisywanie klucza podpisywania (2012)” Importowany GPG: Całkowita liczba Przetworzona: 1 GPG: Importowany: 1 

Możemy sprawdzić, czy klucz jest teraz w naszym breloczu, uruchamiając następujące polecenie:

$ GPG--List-Keys 

Powinniśmy łatwo znaleźć wpis w stosunku do importowanego klucza:

Pub RSA4096 2012-05-11 [SC] 843938DF228D22F7B3742BC0D94AA3F0EFE21092 UID [Nieznany] Ubuntu CD obraz automatycznego podpisywania (2012)  

Teraz, gdy zaimportowaliśmy klucz publiczny, możemy powtórzyć, aby zweryfikować SHA256Sum podpis:

GPG -Weryfy SHA256Sums.GPG SHA256Sums 

Tym razem, zgodnie z oczekiwaniami, polecenie się powiodło i zostaliśmy powiadomieni o dobrym podpisie:

GPG: Signature Made Thu 23 kwietnia 2020 03:46:21 PM CEST GPG: Korzystanie z klucza RSA D94AA3F0EFE21092 GPG: Dobra podpis z „Ubuntu CD Image Automatic Signing Key (2012)” „[Nieznany] GPG: OSTRZEŻENIE: Klucz ten nie jest certyfikowany za pomocą zaufany podpis! GPG: Nic nie wskazuje, że podpis należy do właściciela. Kluczowy odcisk palca: 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 


Czytając powyższe dane wyjściowe, prawie na pewno pojawiłoby się pytanie: co robi „Nic nie wskazuje na to, że podpis należy do właściciela” Wiadomość oznacza? Wiadomość pojawia się, ponieważ nawet jeśli zaimportowaliśmy klucz do naszego lądowania, nie zadeklarowaliśmy go jako zaufania i nie ma faktycznego dowodu, że należy do określonego właściciela. Aby pozbyć się wiadomości, musimy oświadczyć, że ufamy klubie; jak możemy być pewni, że należy to zaufać? Istnieją dwa sposoby:

  1. Osobiście weryfikuj klucz należy do określonego użytkownika lub jednostki;
  2. Sprawdź, czy został podpisany przez klucz, którym już ufamy, bezpośrednio lub za pośrednictwem serii klawiszy pośrednich.

Ponadto istnieje wiele poziomów zaufania, które możemy przypisać do klucza; Jeśli jesteś zainteresowany tym tematem (zdecydowanie powinieneś być!) i chcę dowiedzieć się o tym, podręcznik Prywatności GNU jest dobrym źródłem informacji.

Krok 1

Weryfikacja sumy kontrolnej obrazu

Teraz, kiedy zweryfikowaliśmy, że SHA256Sum Podpis jest OK, możemy faktycznie kontynuować i sprawdzić, czy suma kontrolna pobranego obrazu odpowiada temu faktycznie przechowywanej w pliku, który ma następującą zawartość:

E5B72E9CFE2098891C9CD87BDE43C0B691E3B67B01F76D23F8150615883CE11 *UBUNTU-20.04-Desktop-AMD64.ISO CAF3FD69C77C439F162E2BA6040E9C320C4FF0D69AAD1340A514319A9264DF9F *UBUNTU-20.04-Live-Server-AMD64.ISO 

Jak widać na każdym wierszu pliku, mamy sumę kontrolną powiązaną z obrazem. Zakładając SHA256Sum Plik znajduje się w tym samym katalogu, w którym Ubuntu 20.04 Zdjęcie zostało pobrane, aby zweryfikować integralność ISO, wszystko, co musimy zrobić, to uruchomić następujące polecenie:

$ sha256Sum -C SHA256Sum 


SHA256Sum jest programem używanym do obliczania, a także sprawdzania wiadomości SHA256. W takim przypadku uruchomiliśmy go za pomocą -C opcja, która jest krótka dla --sprawdzać. Gdy używana jest ta opcja, instruuje program do odczytania suum kontrolnych przechowywanych w pliku przekazanym jako argument (w tym przypadku SHA256Sum) i zweryfikuj to dla powiązanego wpisu. W tym przypadku dane wyjściowe polecenia powyżej jest następujące:

Ubuntu-20.04-Desktop-AMD64.ISO: OK SHA256Sum: Ubuntu-20.04-Live-Server-AMD64.ISO: Brak takiego pliku lub katalogu Ubuntu-20.04-Live-Server-AMD64.ISO: nieudane otwarte lub odczytane SHA256Sum: Ostrzeżenie: 1 plik wymieniony nie można odczytać 

Ze wyjścia widzimy, że Ubuntu-20.04-Desktop-AMD64.ISO ISO zostało zweryfikowane, a jego suma kontrolna odpowiada tej wskazanej w pliku. Jesteśmy również powiadomieni, że niemożliwe było odczytanie i zweryfikowanie kontroli kontrolnej Ubuntu-20.04-Live-Server-AMD64.ISO Zdjęcie: To ma sens, ponieważ nigdy go nie pobraliśmy.

Wnioski

W tym samouczku nauczyliśmy się weryfikacji pobranego ISO: Nauczyliśmy się sprawdzić, czy jego suma kontrolna odpowiada tej podanej w pliku Suma kontrolnego i jak sprawdzić podpis GPG tego ostatniego. Aby sprawdzić podpis GPG, potrzebujemy klucza publicznego odpowiadającego prywatnemu, który go wygenerował: W samouczku widzieliśmy również, jak pobrać klucz publiczny z Keyserver, określając jego identyfikator.

Powiązane samouczki Linux:

  • Jak montować obraz ISO na Linux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak otwierać pliki ISO na Ubuntu Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak wygenerować i tworzyć kopię zapasową klawiatury GPG na Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Jak podwójnie rozruch Kali Linux i Windows 10
  • Pobierz Linux
  • Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć