Problemy ze zrozumieniem certyfikatów CA

0

Mam nieporozumienia dotyczące certyfikatów CA (Certificate Authority). Bez względu na to, ile rzeczy przeczytałem, nadal nie jest do końca jasne.

Weźmy przykład, Bob uzyskuje dostęp do strony internetowej. Aby możliwa była zaufana i szyfrowana komunikacja między Bobem a witryną, strona najpierw wystawia Bobowi certyfikat cyfrowy, który zawiera klucz publiczny i inne informacje.

Następnie Bob użyje tego klucza publicznego do zaszyfrowania danych, w których wyśle ​​go na stronę internetową, a strona internetowa użyje odpowiedniego klucza prywatnego do jego odszyfrowania. (Właśnie rozważam tutaj komunikację jednokierunkową)

Mężczyzna pośrodku może udawać, że jest stroną internetową i dostarczyć Bobowi to, co uważa za ważny cyfrowy certyfikat, a potem wszystko idzie strasznie źle.

Jeśli strona internetowa używa urzędu certyfikacji do tego problemu w celu sprawdzenia lub wygenerowania własnego certyfikatu, które z moich oświadczeń jest poprawne, czy oba są częściowo poprawne? :

1) Bob po prostu porównuje certyfikat cyfrowy otrzymany z witryny z certyfikatem z urzędu certyfikacji, więc nie przeprowadza się odszyfrowywania, tylko porównanie? W takim przypadku, czy każdy pojedynczy certyfikat CA na świecie jest przechowywany na lokalnym komputerze Boba do porównania? Jak to się stało.

2) Bob ma po prostu specjalny certyfikat CA, który służy do odszyfrowywania certyfikatów z witryn. Urząd certyfikacji zaszyfrował wcześniej cyfrowy certyfikat witryny, którego Bob chce używać z kluczem prywatnym urzędu certyfikacji. Bob następnie pobiera certyfikat z witryny, odszyfrowuje go za pomocą klucza publicznego urzędu certyfikacji z certyfikatu urzędu certyfikacji. Jeśli certyfikatu nie można odszyfrować, oczywiste jest, że urząd certyfikacji go nie zaszyfrował, a zatem jest nieważny.

Z góry dziękuję.

Inżynier999
źródło
„Mężczyzna pośrodku może udawać, że jest stroną internetową i dostarczyć Bobowi to, co uważa za ważny certyfikat cyfrowy, a potem wszystko idzie strasznie źle”. - Wstępny uścisk dłoni by temu zapobiec. Bob byłby albo połączony z legalną stroną internetową, albo „człowiekiem pośrodku” w żadnym momencie Bob nie mógł zostać przełączony z legalnej strony internetowej na „mężczyznę pośrodku”, ponieważ „mężczyzna pośrodku” nie mógł odszyfrować danych pomiędzy serwer i Bob. Początkowy uścisk dłoni również określi, do kogo należy certyfikat - serwer lub „człowiek pośrodku”.
Ramhound
@Ramhound 5, mówię tylko o początkowym uścisku dłoni tutaj
Engineer999
Bob będzie musiał odwiedzić fałszywą stronę internetową, aby otrzymać certyfikat, który według niego należał do strony, którą próbował odwiedzić. Opisany przez ciebie atak typu „człowiek w środku” nie jest możliwy, jeśli Bob faktycznie odwiedza witrynę, którą zamierzał odwiedzić (chyba że dosłownie ma zainstalowany w sieci sprzęt „człowiek w środku”), ale nie tego próbujesz opisać.
Ramhound
Oprogramowanie AV w celu skanowania ruchu HTTPS przekieruje cały ruch HTTPS przez swój proces, ale wymaga to ataku typu „man in the middle”, co oznacza, że ​​każdy certyfikat musi być podpisany przez AV. Witryna nadal będzie obsługiwać poprawny certyfikat, ale certyfikat wyświetlany przez przeglądarkę będzie fałszywym certyfikatem podpisanym przez oprogramowanie AV. Nie jest to jednak opisywany atak, ponieważ oprogramowanie AV zostało zainstalowane przez Boba.
Ramhound

Odpowiedzi:

0

Masz nieporozumienie. W rzeczywistości oba twoje scenariusze są błędne.

Po pierwsze, certyfikat cyfrowy jest wydawany przez urząd certyfikacji i zawiera klucz publiczny do podpisywania cyfrowego oraz określa tożsamość osoby podpisującej. Certyfikat służy do potwierdzenia, że ​​klucz publiczny należy do osoby podpisującej, w której CA działa jako gwarant.

Certyfikat jest weryfikowany w stosunku do urzędu certyfikacji przez Internet, a nie lokalnie, jeśli chodzi o ważność certyfikatu, pobieranie z urzędu certyfikacji klucza publicznego w tym procesie.

Klucz publiczny służy do sprawdzenia, za pomocą algorytmu skrótu, czy podpisany obiekt był rzeczywiście tym, który został podpisany i nie został w żaden sposób zmieniony.

Ponieważ obraz jest wart tysiąca słów:

wprowadź opis zdjęcia tutaj

Źródło: Zrozumienie podpisów cyfrowych .

harrymc
źródło
1
„Certyfikat jest weryfikowany przez urząd certyfikacji przez Internet, a nie lokalnie” - nie jestem pewien, czy mówisz tutaj o OCSP? Weryfikacja podpisu odbywa się zawsze w trybie offline, a jedynym ruchem sieciowym jest zwykle sprawdzenie, czy certyfikat nie został jeszcze unieważniony.
grawity
Aby dodać do tego, właśnie do tego służą różne lokalne Magazyny Certyfikatów (np. Zaufany główny sklep, pośredni główny sklep itp.). Ponadto twój post nie dotyczy SSL / TLS i / lub tylko serwera w porównaniu do wzajemnego uwierzytelniania w SSL / TLS.
thepip3r
@grawity: Podpis opisano powyżej. Weryfikacja certyfikatu odbywa się online. Pewne buforowanie zawsze istnieje, ale jest tylko optymalizacją.
harrymc
@ thepip3r: Tam, gdzie przechowywane są znane urzędy certyfikacji, niezależnie od tego, czy certyfikaty są buforowane, a do komunikacji wykorzystywany jest protokół internetowy, wszystkie one są jedynie dodatkami do tematu, czyli w jaki sposób przetwarzane są certyfikaty. Ten post nie prosił o traktat całego tematu autoryzacji, który z łatwością może wypełnić książkę.
harrymc
Certyfikaty na twoich komputerach nie są „urzędami certyfikacji”, są magazynami certyfikatów. I to tam, gdzie ty lub twoja organizacja definiuje zaufane urzędy certyfikacji. Np .: jeśli odwiedzasz stronę somebsite.com, a Verisign dostarcza certyfikat SSL, ale Twój komputer lokalny nie ufa urzędowi certyfikacji Verisign, który został wystawiony na stronie somebsite.com, przeglądarka zgłosi błąd sprawdzania poprawności. Jego pytanie dotyczyło w szczególności certyfikatów internetowych, więc wydaje się, że przynajmniej uścisk dłoni SSL / TLS jest istotny.
thepip3r
0

Przede wszystkim istnieją dwa kroki do weryfikacji certyfikatu wydanego przez urząd certyfikacji:

  1. Czy ten konkretny urząd certyfikacji w ogóle wydaje certyfikaty?
  2. Czy ten certyfikat rzeczywiście został wydany przez urząd certyfikacji, za który się podaje?

Oba twoje opisy są prawie odpowiednie dla połowy całego procesu, ale całkowicie ignoruj ​​drugą połowę. Połącz te dwie rzeczy, a będziesz kiiiinda na właściwym torze.

Ale drugi punkt: szyfrowanie w ogóle nie jest używane , a certyfikaty (zawierające klucze publiczne) mogą być używane do szyfrowania danych, ale nie do ich deszyfrowania. Przeprowadzono weryfikację podpisu.

(Podejrzewam, że niektóre z waszych nieporozumień wynikają z przeczytania gdzieś, że np. „W RSA szyfrowanie i podpisywanie są takie same”. Zapomnij o tym. Chociaż w większości poprawne w sensie matematycznym, w praktyce jest to bardzo mylące, ponieważ intencją jest całkowicie odwrotnie. Kiedy czytasz dokument, który mówi o podpisaniu czegoś, nie zakładaj, że oznacza to to samo, co szyfrowanie.)


„Czy certyfikat tej witryny rzeczywiście został wydany przez urząd certyfikacji, za który się podaje?”

Wariant nr 2 jest w tym przypadku prawie poprawny. W grę wchodzą co najmniej dwa certyfikaty - jeden reprezentujący stronę internetową („certyfikat serwera”), a drugi sam urząd certyfikacji (zwany „certyfikatem urzędu certyfikacji” lub certyfikat główny).

Certyfikat własny strony internetowej nie jest szyfrowany kluczem prywatnym urzędu certyfikacji; jest podpisany kluczem prywatnym urzędu certyfikacji. Jeśli podpisu nie można zweryfikować, jest oczywiste, że urząd certyfikacji tak naprawdę nie podpisał deklaracji.

(W praktyce łańcuch jest zwykle nieco dłuższy, składa się z co najmniej trzech certyfikatów - ale mechanizm jest nadal taki sam; każdy podpisuje kolejny w łańcuchu).

Ale skąd Bob dostaje ten „specjalny certyfikat CA”? Patrz poniżej.

„Czy ten urząd certyfikacji ogólnie ufa wydawaniu certyfikatów?”

Otrzymany certyfikat CA jest porównywany z listą „zaufanych rootów” przechowywanych na komputerze lokalnym.

Teraz jest to podobne do tego, co opisano w wariancie nr 1, z tym wyjątkiem, że komputer nie przechowuje wszystkich certyfikatów wydanych przez urzędy certyfikacji - zamiast tego przechowuje tylko certyfikaty należące do samych urzędów certyfikacji , tj. „Specjalne certyfikaty urzędów certyfikacji” w wariancie nr 1.

W większości systemów zainstalowanych jest około 50–100 „certyfikatów głównych” - nie całkiem „każdy pojedynczy urząd certyfikacji na świecie”, ale obejmuje wiele większych i mniejszych firm. (Dołączenie do listy kosztuje sporo).

grawitacja
źródło