|
|
Opublikowano 15.08.2017 21:08:39
|
|
|

Już wcześniej nadepnąłem na tę jamę. Zapomniałem, jak ćwiczyć, ale wciąż pamiętam tę zasadę. Wyjaśnij to w przybliżeniu:
Pakiet instalacyjny przeglądarki przechowuje niektóre z certyfikatów root (kluczy publicznych), którym ufa.
Dla bezpieczeństwa wydawcy certyfikatów zazwyczaj przechowują klucze prywatne odpowiadające tym certyfikatom korzeniowym w całkowicie odłączonym skarbcu. Te klucze prywatne korzeniowe są używane w skarbcu do wydawania niektórych "pośrednich" certyfikatów, a klucze prywatne tych certyfikatów pośrednich mają uprawnienia do wydawania certyfikatu następnego poziomu. Te pośrednie klucze prywatne są instalowane na serwerach online, aby zarabiać pieniądze poprzez wydawanie certyfikatów na stronie internetowej. Po zhakowaniu tych serwerów wydawca może wydać nakaz unieważnienia, używając fizycznie izolowanego klucza prywatnego certyfikatu korzeniowego w skarbcu, aby wyeliminować zaufanie do tych pośrednich certyfikatów bez całkowitego braku zaufania do certyfikatu korzeniowego wydawcy. Podpisz nowy certyfikat o emisji średniej, a będziesz dobrym człowiekiem, który może zarabiać.
I tu pojawia się pytanie.
Przeglądarka rozpoznaje tylko certyfikat główny. Aby uzyskać certyfikat pośredni, Ty (strona internetowa) musisz wydać własny certyfikat.
Prawidłowo skonfigurowana strona HTTPS powinna zawierać cały łańcuch certyfikatów w certyfikacie. Na przykład użyj polecenia openssl s_client -connect www.wosign.com:443, aby zobaczyć konfigurację strony internetowej Wosign. Resztę treści można pominąć, wystarczy spojrzeć na akapit łańcuchowy Certyfikatu: --- Łańcuch certyfikatów 0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Prywatne Organization/serialNumber=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\xE5\xE5\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA 1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA i:/C=CN/O=WoSign CA Limited/CN=Organ certyfikacyjny WoSign 2 s:/C=CN/O=WoSign CA Limited/CN=Organ certyfikacyjny WoSign i:/C=IL/O=StartCom Ltd./OU=Bezpieczne podpisywanie certyfikatów cyfrowych/CN=Urząd Certyfikacyjny StartCom ---
0, 1 i 2 to numery seryjne każdego poziomu certyfikatu w łańcuchu certyfikatów. 0 to certyfikat używany przez stronę internetową do weryfikacji. Jego CN powinno odpowiadać nazwie domeny strony internetowej. Po każdym numerze seryjnym linia zaczynająca się na s odnosi się do certyfikatu, a linia zaczynająca się od i do osoby, która wydała certyfikat.
Widać, że CN 0 zawiera podejrzewaną chińską domenę oraz angielską domenę www.wosign.com. Jest wydawany przez WoSign CA Limited/CN=WoSign Class 4 EV Server CA.
Certyfikat 1 jest emitentem 0. Sam certyfikat 1 jest wydawany przez inny certyfikat, Authority of WoSign. Przyjrzyjmy się kolejnemu poziomowi, 2. Jest napisane, że Certyfikacja WoSign jest wydana przez StartCom (haha, okazuje się, że to podwykonawca!). )
Po tak dużym spojrzeniu przeglądarka mówi: "O, znam wydawcę dwójki", a jest to wspomniane w pakiecie instalacyjnym StartCom. Poprawny podpis i weryfikacja, więc zaufaj 2. Wtedy powinieneś też ufać 1 wydanemu przez 2 i 0 wydanemu przez 1. Dlatego tej stronie można ufać.
--
Jednak jeśli strona jest skonfigurowana tak, by zawierała tylko siebie w pliku CRT, a nie łańcuch certyfikatów wystarczająco kompletny, by można go zweryfikować przez wbudowane dane przeglądarki, może zostać odrzucona przez przeglądarkę. Na przykład co OpenSSL s_client -connect touko.moe:443 --- Łańcuch certyfikatów 0 s:/CN=touko.moe i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Darmowy Certyfikat SSL G2 --- W jednej grupie jest tylko zero. Opis Touko.moe w linii s jest wydawany przez WoSign CA Free SSL Certificate G2 w linii i. Zniknęło.
To jest najbardziej niesamowite w tej pułapce: nie zawsze jest prawdą, czy przeglądarka nie zweryfikowa w tym momencie. Są dwie sytuacje: O. Nigdy wcześniej tego nie widziałem od czasu instalacji przeglądarki. Wtedy walidacja zawodzi. B. Jeśli przeglądarka wcześniej widziała i zweryfikowała i, weryfikacja będzie pomyślana.
Zazwyczaj administrator wchodzi na stronę https wydawcy certyfikatu, aby kupić certyfikat, a przeglądarka go weryfikuje, a następnie buforuje wszystkie pośrednie certyfikaty, które zostały pomyślnie zweryfikowane, oszczędzając czas w przyszłości. Gdy administrator (błędnie) skonfigurował swoją stronę i zaczął przeglądać test, nie napotkał żadnych problemów. Ponieważ jego przeglądarka już rozpoznaje ten certyfikat pośredni.
Jednak wielu użytkowników mogło nie odwiedzić innych poprawnie skonfigurowanych stron internetowych wydanych przez ten certyfikat pośredni. W związku z tym walidacja zawodzi, ponieważ nie może znaleźć zaufanego emitenta.
Jest porównywalna z kontrolą emisji spalin w samochodach Volkswagena z dieslem. Wszystko było w porządku po sprawdzeniu. Jak tylko wychodzą na zewnątrz, wsypują truciznę.
EDYCJA: Jak naprawić ...... Prawdopodobnie chodzi o dodanie ustawienia SSLCertificateChainFile podczas konfiguracji serwera i użycie pliku pakietu udostępnionego przez stronę wydawcy certyfikatu (plik zawiera wiele certyfikatów pośrednich, aby nawiązać powiązanie między Twoim certyfikatem a certyfikatem o wysokim zaufaniu).
|
Poprzedni:OpenSSL konwertuje format PFX na pliki .key i .crtNastępny:Przeglądarki na Androidzie wskazują, że certyfikat nie jest zaufany
|