OCSP Stapling – sprawdzanie ważności certyfikatów TLS bez kontaktu z CA
Algorytmy

OCSP Stapling – sprawdzanie ważności certyfikatów TLS bez kontaktu z CA

OCSP Stapling – sprawdzanie ważności certyfikatów TLS bez kontaktu z CA

OCSP Stapling (Online Certificate Status Protocol Stapling) to mechanizm TLS, który pozwala serwerowi samodzielnie dostarczyć klientowi informację o aktualnym statusie certyfikatu.

Jego cel:

Sprawdzić, czy certyfikat TLS nie został unieważniony, bez konieczności pytania urzędu certyfikacji (CA) przez każdego użytkownika.


Problem: jak sprawdzić, czy certyfikat jest ważny?

Certyfikat TLS może być:

VALID

      lub

REVOKED

Przykładowe powody unieważnienia:

  • wyciek klucza prywatnego,
  • przejęcie serwera,
  • błędne wydanie certyfikatu,
  • kompromitacja CA.

Klasyczne OCSP

Bez staplingu wygląda to tak:


Browser

   |
   |
   |  "Czy certyfikat jest ważny?"
   |
   v

Certificate Authority (CA)

   |
   |
   v

VALID / REVOKED

Czyli każdy użytkownik kontaktuje się bezpośrednio z CA.


Problem z klasycznym OCSP

1. Prywatność

CA może zobaczyć:


User IP

+

Certificate being checked

Czyli może wiedzieć, jakie strony odwiedza użytkownik.


2. Wydajność

Wyobraźmy sobie:


10 milionów użytkowników

        |

        v

10 milionów zapytań do CA

To ogromne obciążenie.

 

OCSP Stapling – sprawdzanie ważności certyfikatów TLS bez kontaktu z CA
OCSP Stapling – sprawdzanie ważności certyfikatów TLS bez kontaktu z CA

3. Dostępność

Jeżeli serwer OCSP CA nie działa:


Browser

   |

   X

OCSP Server Down

Co zrobić?

  • zablokować stronę?
  • zaufać certyfikatowi?

Jak działa OCSP Stapling?

Zamiast:


Browser → CA

mamy:


Server

  |
  | Pobiera status certyfikatu
  |
  v

CA OCSP Server


Server przechowuje odpowiedź


Browser

  |
  v

TLS Handshake

  |
  v

OCSP Response

Schemat działania


       Certificate Authority

              |
              |
        OCSP Response

              |
              v

          Web Server


              |
              |
        TLS Handshake

              |
              v

            Browser

Co zawiera OCSP Response?

Odpowiedź jest podpisana kryptograficznie.

Zawiera:


Certificate ID

Status:

GOOD

REVOKED

UNKNOWN


Timestamp

Expiration Time

CA Signature

TLS Handshake z OCSP Stapling

Normalny TLS:


ClientHello

       |

ServerHello

       |

Certificate

       |

Finished

TLS + OCSP Stapling:


Client

 |

ClientHello

 |

Server

 |

Certificate

 |

OCSP Response

 |

Finished

Serwer dołącza aktualną odpowiedź OCSP.


Dlaczego nazywa się „Stapling”?

Stapling oznacza:

„przypięcie”

Serwer „przypina” odpowiedź OCSP do certyfikatu podczas handshake.

Czyli:


Certificate

+

OCSP Proof

=

TLS Response

OCSP Stapling a bezpieczeństwo

Bez staplingu:


Browser

        ufa CA

        |

        v

OCSP Query

Ze staplingiem:


Browser

        |

        v

Server provides signed proof

        |

        v

Verify CA Signature

Czy serwer może oszukać?

Nie powinien.

Dlaczego?

Ponieważ OCSP Response jest podpisana przez CA.

Serwer nie może stworzyć:


Fake:

Certificate VALID

bo nie posiada klucza CA.


OCSP Stapling i TLS 1.3

TLS 1.3 bardzo dobrze współpracuje z OCSP Stapling.

Schemat:


Certificate

       +

OCSP Response

       +

CertificateVerify

       +

Finished

Klient sprawdza:

  1. certyfikat,
  2. podpis CA,
  3. OCSP Response,
  4. ważność czasową.

OCSP Stapling vs Certificate Transparency

To dwa różne mechanizmy.

Certificate Transparency

Pyta:

Czy ten certyfikat został publicznie zarejestrowany?

Schemat:


Certificate

       |

       v

CT Log

       |

       v

Visible?

OCSP Stapling

Pyta:

Czy ten certyfikat nadal jest ważny?

Schemat:


Certificate

       |

       v

OCSP Status

       |

       v

Valid?

Razem:


Certificate Transparency

        |

        v

Czy certyfikat został wydany?


        +

       


OCSP Stapling

        |

        v

Czy certyfikat został unieważniony?


        +

       

TLS 1.3

        |

        v

Secure HTTPS

OCSP Stapling vs CRL

Starsza metoda:

CRL (Certificate Revocation List)

CA publikuje listę:


Revoked Certificates:

cert1

cert2

cert3

Problem:

Listy są duże.


OCSP:


Query:

Is cert123 revoked?

OCSP Stapling:


Server already has answer

OCSP Must-Staple

Istnieje rozszerzenie:

TLS Feature Extension

znane jako:


OCSP Must-Staple

Informuje przeglądarkę:

Nie akceptuj tego certyfikatu bez poprawnej odpowiedzi OCSP.

Schemat:


Certificate

+

Must-Staple Flag

        |

        v

Browser requires OCSP

OCSP Stapling w praktyce

Przykład:

Użytkownik odwiedza:


https://example.com

Serwer wysyła:


Certificate:

example.com


OCSP Response:

GOOD


TLS Keys:

X25519


Encryption:

AES-GCM

Przeglądarka:


Certificate OK

OCSP OK

TLS OK

↓

HTTPS Connection

Konfiguracja serwera

Przykład nginx:

server {

    listen 443 ssl;

    ssl_certificate example.com.crt;
    ssl_certificate_key example.com.key;

    ssl_stapling on;
    ssl_stapling_verify on;

}

OCSP Stapling i Let’s Encrypt

Certyfikaty od Let’s Encrypt wspierają OCSP.

Typowy stos HTTPS:


Let's Encrypt Certificate

        |

Certificate Transparency

        |

OCSP Stapling

        |

TLS 1.3

        |

AES-GCM / ChaCha20-Poly1305

OCSP Stapling w architekturze Zero Trust

W modelu Zero Trust:


Never Trust

Always Verify

OCSP Stapling dodaje dodatkową kontrolę:


Identity

+

Certificate

+

Revocation Status

↓

Trust Decision

OCSP Stapling i przyszłość PQC

Obecnie:


Certificate

RSA/ECDSA

       |

OCSP Signature

W przyszłości:


Certificate

ML-DSA

       |

Post-Quantum OCSP Proof

Mechanizm pozostaje taki sam:

  • podpis,
  • weryfikacja,
  • zaufanie.

Zmieniają się tylko algorytmy kryptograficzne.


Pełny obraz nowoczesnego HTTPS


                    HTTPS SECURITY


DNSSEC
  |
  |
Correct DNS Answer


Certificate Transparency
  |
  |
Certificate Visibility


OCSP Stapling
  |
  |
Certificate Revocation Check


TLS 1.3
  |
  |
X25519 / ML-KEM
  |
HKDF
  |
AES-GCM / ChaCha20-Poly1305


Encrypted Communication

Najważniejsze do zapamiętania


OCSP
→ sprawdza status certyfikatu u CA


OCSP Stapling
→ serwer dostarcza podpisaną odpowiedź OCSP


SCT
→ dowód obecności certyfikatu w CT Log


TLS 1.3
→ szyfruje komunikację


Certificate Transparency
→ wykrywa nieuczciwie wydane certyfikaty

OCSP Stapling jest ważnym elementem współczesnego HTTPS. Usuwa potrzebę ciągłego kontaktu klientów z urzędami certyfikacji, poprawia prywatność, wydajność i niezawodność procesu sprawdzania certyfikatów. W połączeniu z Certificate Transparency i TLS 1.3 tworzy obecnie jeden z najważniejszych filarów bezpieczeństwa komunikacji internetowej.

Polecane wpisy
Jak zabezpieczyć swoją pocztę e-mail za pomocą PGP/GnuPG i silnych algorytmów szyfrujących
Jak zabezpieczyć swoją pocztę e-mail za pomocą PGP/GnuPG i silnych algorytmów szyfrujących

📧 Jak zabezpieczyć swoją pocztę e-mail za pomocą PGP/GnuPG i silnych algorytmów szyfrujących 🔐 Dlaczego warto szyfrować e-maile? Poczta elektroniczna Czytaj dalej

AES-GCM – szyfrowanie danych i uwierzytelnianie w jednym
AES-GCM – szyfrowanie danych i uwierzytelnianie w jednym

AES-GCM – szyfrowanie danych i uwierzytelnianie w jednym AES-GCM (Galois/Counter Mode) to jeden z najważniejszych współczesnych sposobów wykorzystania AES. Zapewnia Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.