Co to jest przypinanie certyfikatu?

Przypinanie certyfikatów to technika zabezpieczeń, w której podczas ustanawiania bezpiecznej sesji akceptowane są tylko autoryzowane lub przypięte certyfikaty. Każda próba ustanowienia bezpiecznej sesji przy użyciu innego certyfikatu zostanie odrzucona.

Historia przypinania certyfikatu

Przypinanie certyfikatu zostało pierwotnie opracowane jako środek udaremnienia ataków Man-in-the-Middle (MITM). Przypinanie certyfikatów po raz pierwszy stało się popularne w 2011 roku w wyniku naruszenia bezpieczeństwa urzędu certyfikacji DigiNotar, gdzie osoba atakująca mogła utworzyć certyfikaty z symbolami wieloznacznymi dla kilku witryn internetowych o wysokim profilu, w tym Google. Przeglądarka Chrome została zaktualizowana do "przypnij" bieżące certyfikaty dla witryn internetowych Firmy Google i odrzuci wszelkie połączenia, jeśli zostanie przedstawiony inny certyfikat. Nawet jeśli osoba atakująca znalazła sposób przekonania urzędu certyfikacji do wystawienia fałszywego certyfikatu, nadal będzie rozpoznawana przez Chrome jako nieprawidłowa i połączenie odrzucone.

Chociaż przeglądarki internetowe, takie jak Chrome i Firefox, były jednymi z pierwszych aplikacji do zaimplementowania tej techniki, zakres przypadków użycia szybko się rozszerzył. Urządzenia Internetu rzeczy (IoT), aplikacje mobilne dla systemów iOS i Android oraz różne kolekcje aplikacji oprogramowania zaczęły używać tej techniki do obrony przed atakami typu Man-in-the-Middle.

Przez kilka lat przypinanie certyfikatów było uznawane za dobrą praktykę w zakresie zabezpieczeń. Nadzór nad publicznym krajobrazem infrastruktury kluczy publicznych (PKI) poprawił się dzięki przejrzystości praktyk wystawiania publicznie zaufanych urzędów certyfikacji.

Jak adresować przypinanie certyfikatu w aplikacji

Zazwyczaj aplikacja zawiera listę autoryzowanych certyfikatów lub właściwości certyfikatów, w tym nazwy wyróżniające podmiotu, odciski palca, numery seryjne i klucze publiczne. Aplikacje mogą przypinać poszczególne certyfikaty liścia lub jednostki końcowej, certyfikaty podrzędnego urzędu certyfikacji, a nawet certyfikaty głównego urzędu certyfikacji.

Jeśli aplikacja jawnie określa listę akceptowalnych urzędów certyfikacji, może być okresowo konieczne zaktualizowanie przypiętych certyfikatów po zmianie lub wygaśnięciu urzędu certyfikacji. Aby wykryć przypinanie certyfikatu, zalecamy wykonanie następujących czynności:

  • Jeśli jesteś deweloperem aplikacji, wyszukaj kod źródłowy dowolnego z poniższych odwołań dla urzędu certyfikacji, który zmienia się lub wygasa. Jeśli istnieje dopasowanie, zaktualizuj aplikację, aby zawierała brakujące urzędy certyfikacji.

    • Odciski palca certyfikatu
    • Nazwy wyróżniające podmiotu
    • Nazwy pospolite
    • Numery seryjne
    • Klucze publiczne
    • Inne właściwości certyfikatu
  • Jeśli niestandardowa aplikacja kliencka integruje się z interfejsami API platformy Azure lub innymi usługami platformy Azure i nie masz pewności, czy używa przypinania certyfikatu, sprawdź dostawcę aplikacji.

Ograniczenia przypinania certyfikatu

Praktyka przypinania certyfikatów stała się powszechnie kwestionowana, ponieważ niesie ze sobą niedopuszczalne koszty elastyczności certyfikatów. Jedna konkretna implementacja, przypinanie klucza publicznego HTTP (HPKP), zostało całkowicie przestarzałe

Ponieważ nie ma żadnego standardu internetowego dotyczącego sposobu wykonywania przypinania certyfikatów, nie możemy zaoferować bezpośrednich wskazówek dotyczących wykrywania jego użycia. Chociaż nie zalecamy przypinania certyfikatów, klienci powinni pamiętać o ograniczeniach, które ta praktyka tworzy, jeśli zdecyduje się go użyć.

Następne kroki