Ważna terminologia dotycząca bezpieczeństwa

Dwie przeszkody, jakie napotykają programiści podczas migracji do protokołu HTTPS, to pojęcia i terminologia. W tym przewodniku znajdziesz krótkie omówienie obu tych usług.

Krzysiek Palmer
Chris Palmer

Podsumowanie

  • używanie kluczy publicznych/prywatnych do podpisywania i odszyfrowywania wiadomości między przeglądarką a serwerem;
  • Urząd certyfikacji to organizacja, która poręcza za mapowanie kluczy publicznych na publiczne nazwy DNS (na przykład „www.foobar.com”).
  • Żądanie podpisania certyfikatu to format danych, który łączy klucz publiczny z metadanymi o jednostce, do której należy klucz.

Co to są pary kluczy (publicznych i prywatnych)?

Para kluczy publiczny/prywatny to para bardzo dużych liczb używanych do szyfrowania i odszyfrowywania, które są ze sobą ściśle powiązane matematycznie. Typowym systemem dla par kluczy jest kryptosystem RSA. Do szyfrowania wiadomości służy klucz publiczny, który można odszyfrować tylko przy użyciu odpowiedniego klucza prywatnego. Twój serwer WWW rozgłasza swój klucz publiczny do świata, a klienty (np. przeglądarki) używają go do wczytywania bezpiecznego kanału na Twój serwer.

Co to jest urząd certyfikacji?

Urząd certyfikacji to organizacja, która poręcza za mapowanie kluczy publicznych i publicznych nazw DNS (np. „www.foobar.com”). W jaki sposób klient może na przykład dowiedzieć się, czy określony klucz publiczny dla domeny www.foobar.com jest true? a priori, nie ma sposobu, żeby to stwierdzić. Urząd certyfikacji poświadcza, że dany klucz jest prawidłowy dla danej witryny, wykorzystując własny klucz prywatny do kryptograficznego podpisania klucza publicznego witryny. Takiego podpisu nie można sfałszować za pomocą obliczeń. Przeglądarki (i inne klienty) utrzymują magazyny zakotwiczonych zaufania zawierające klucze publiczne należące do znanych urzędów certyfikacji, które używają tych kluczy publicznych do kryptograficznego weryfikowania podpisów urzędu certyfikacji.

Certyfikat X.509 to format danych, który łączy klucz publiczny z metadanymi dotyczącymi encji, do której on należy. W przypadku sieci właścicielem klucza jest operator witryny, a ważne metadane to nazwa DNS serwera WWW. Gdy klient łączy się z serwerem WWW HTTPS, serwer przedstawia swój certyfikat do weryfikacji przez klienta. Klient sprawdza, czy certyfikat nie utracił ważności, czy nazwa DNS odpowiada nazwie serwera, z którym klient próbuje się połączyć, oraz czy znany urząd certyfikacji kotwicy zaufania podpisał certyfikat. W większości przypadków urzędy certyfikacji nie podpisują bezpośrednio certyfikatów serwera WWW. Zwykle istnieje łańcuch certyfikatów łączący kotwicę zaufania z pośrednikiem lub podmiotami podpisującymi, a w końcu z certyfikatem serwera WWW (podmiotem końcowym).

Co to jest żądanie podpisania certyfikatu?

Żądanie podpisania certyfikatu to format danych, który, tak jak certyfikat, łączy klucz publiczny z metadanymi o jednostce, do której należy klucz. Jednak klienty nie interpretują żądań podpisania certyfikatu, urzędy certyfikacji tak. Jeśli chcesz uzyskać gwarancję urzędu certyfikacji dla klucza publicznego serwera WWW, wysyłasz do urzędu certyfikacji żądanie podpisania certyfikatu. Urząd certyfikacji weryfikuje informacje zawarte w żądaniu podpisania certyfikatu i używa ich do wygenerowania certyfikatu. Urząd certyfikacji wyśle Ci końcowy certyfikat i zainstaluje ten certyfikat (lub, w większym stopniu, łańcuch certyfikatów) oraz klucz prywatny na serwerze WWW.