Szyfrowanie i ochrona API: TLS, HSTS, PFS, secret rotation
1) Obraz zagrożenia i cele
API pod atakiem MitM, przechwytywanie ruchu drogowego, ataki downgrade, fałszowanie tokenów, wycieki kluczy i nadużywanie długotrwałych tajemnic. Cele ochrony:- Poufność i integralność (TLS 1. 3 + mocne szyfry).
- Ochrona przed obniżaniem/usuwaniem (HSTS, zabronione wersje/szyfry).
- Minimalizacja uszkodzeń kompromisowych (PFS, krótki TTL, szybka rotacja).
- Niezawodne uwierzytelnianie klienta/usługi (mTLS/tokeny) i identyfikowalność.
2) TLS jako podstawa (serwer i usługa)
Wersje i szyfry:- Domyślnym jest TLS 1. 3; zezwalaj TLS 1. 2 tylko dla kompatybilności. Wyłączyć 1. 1/1. 0.
- „TLS _ AES _ 128 _ GCM _ SHA256”, „TLS _ AES _ 256 _ GCM _ SHA384”, „TLS _ CHACHA20 _ POLY1305 _ SHA256”.
- Dla TLS 1. 2: tylko ECDHE z podpisem AES-GCM/ChaCha20 i ECDSA/RSA (np. „ECDHE-ECDSA-AES128-GCM-SHA256”).
- Klucze serwera: ECDSA P-256/P-384 (szybciej i krócej) lub RSA 2048 +/3072.
- Klucze klienta do mTLS: ECDSA P-256; emisja za pośrednictwem własnego urzędu certyfikacji lub płatności HSM/KMS.
- Włącz zszywanie OCSP, najlepiej z flagą Must-Staple i ALPN (HTTP/2/3).
- Zapewnione przez efemeryczne giełdy (ECDHE) - nawet jeśli wyciekł klucz serwera, nie można odszyfrować poprzednich sesji.
- Wymuś statyczną umowę DH/RSA.
- ECH (Encrypted Client Hello), jeśli jest obsługiwany przez front/CDN, ukrywa SNI.
- HTTP/2/3 tylko z mocnymi szyframi; zakaz niezabezpieczonego HTTP, przekierowywanie do HTTPS.
3) HSTS vs TLS-stripping
Włącz program HTTP Strict Transport Security w domenie głównej i subdomenach:
ścisłe bezpieczeństwo transportu: maksymalny wiek = 63072000; „SubDomeny”; obciążenie wstępneUmieść domenę na liście wstępnego obciążenia HSTS.
Uważaj na poprawność przed publikacją (rolka jest trudna).
4) Wzajemne uwierzytelnianie: mTLS i/lub żetony
mTLS między mikroserwicami/wewnętrznymi interfejsami API: certyfikaty dwukierunkowe, automatyczne obracanie za pośrednictwem siatki serwisowej (Istio/Linkerd) lub zastrzeżony PKI.
Klienci API (integracje mobilne/partnerskie): żetony (OAuth2/OIDC, JWT), opcjonalny mTLS dla wysokiego ryzyka.
Dla frontów publicznych: TLS + krótkotrwałe żetony OAuth2/OIDC z urządzeniem/wiązaniem DPoP.
5) Certyfikat i zarządzanie cyklem życia
Automatyzacja ACME (na przykład Let's Encrypt/Organizational CA) z automatyczną aktualizacją 30 dni przed wygaśnięciem.
Krótki okres ważności certyfikatów (≤ 90 dni) + monitorowanie terminów, wpisów i pakietów kanaryjskich.
Scentralizowany PKI: root/intermediate CA, CRL/OCSP, wydania audytu i odwołanie.
Przykład nginx (fragment):nginx ssl_protocols TLSv1. 3 TLSv1. 2;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256;
ssl_prefer_server_ciphers dalej;
ssl_ecdh_curve X25519:P-256:P-384;
ssl_stapling dalej; ssl_stapling_verify dalej;
add_header ścisły transport-bezpieczeństwo "maksymalny wiek = 63072000; „SubDomeny”; preload" zawsze;6) Tajna rotacja: Zasady i wzory
Cele rotacyjne: ograniczyć „wybuchowy promień” przecieków, skrócić czas nadużyć i zapewnić bezproblemowe uwolnienia.
Podstawowe zasady:- Przechowywanie tajemnic tylko w tajnym menedżerze (KMS/Vault/Cloud SM). Brak tajemnic w Git/obrazach.
- Krótki TTL i automatyczna rotacja: klucze podpisu, hasła bazy danych, klucze API dostawcy.
- Okno dual-key: Stare i nowe klucze są aktywne jednocześnie w okresie rolki.
- Versioning + kid (dla JWT/JWKS), okno „grace” do walidacji starych żetonów.
- Klucze JWT (podpis/szyfrowanie), sekrety HMAC haków i zwrotów zwrotnych, hasła/konta bazy danych, bufory (Redis), tokeny CI/CD, tajemnice dostawcy (KYC/AML, płatności, SMS/e-mail), SSH - klucze automatyki.
Wyzwalacze nieplanowanej rotacji: podejrzenie wycieku, zwolnienie pracowników z dostępem, zmiana dostawcy, wymagania regulatora.
7) JWT/JWKS: Bezpieczna nakładka ról
Publikacja punktu końcowego JWKS z aktualnym i przyszłym kluczem (wymagane „dziecko”).
Procedura rotacji:1. Wygeneruj nowy klucz → dodaj go do JWKS jako „drugi” klucz.
2. Aktualizacja sygnatariuszy → wydanie nowych żetonów z nowym kluczem.
3. Poczekaj na TTL starych żetonów → usuń stary klucz z JWKS.
Zainstaluj krótkie żetony TTL (na przykład 5-15 minut) + odświeżaj strumienie z dodatkową weryfikacją.
8) Tajne zarządzanie w praktyce
Szyfrowanie KMS +: klucz główny w HSM/KMS, dane są szyfrowane za pomocą „owiniętego” DEK.
Vault/Cloud Secret Manager: dynamiczne kredyty w bazie danych (wydawanie rekordów z TTL), okresowa rotacja.
Kubernetes: Tajemnice zewnętrzne/Tajemnice Sklep CSI; szyfrowanie etcd; RBAC; zakaz rejestrowania tajemnic.
Dostęp do ról: IAM/ABAC, zasada najmniejszych uprawnień, granice sprzętowe (HSM, TPM).
Pełny audyt: kto, co, kiedy, dlaczego czytać/zmieniać.
9) Ochrona transportowa wewnątrz obwodu
Nie ufaj „sieci wewnętrznej”: wszędzie TLS/mTLS (zero-trust).
Siatka serwisowa automatyzuje certyfikaty, uruchamianie ponownie i rotację, obserwowalność (domyślnie mTLS).
Zminimalizuj zakończenie TLS: tylko krawędź + szyfrowany wschód-zachód, lub szyfrowanie end-to-end.
10) API nad polityką bezpieczeństwa TLS
Ograniczenie prędkości/Ochrona DoS, weryfikacja podpisów webhoooków (HMAC z tajną rotacją).
Content-Security-Policy/Referrer-Policy/X-Content-Type-Options дла ронта.
mTLS dla krytycznych punktów końcowych (płatności, panel administracyjny), lista uprawnień IP przez partnerów.
Ochrona powtórki: znacznik czasu + nonce w podpisanych żądaniach, okna nie więcej niż 5 minut.
11) Monitorowanie i badania
Obserwowalność TLS: wersje/szyfry w metrykach, wpisy do prób obniżenia jakości, wzrost awarii uścisku dłoni.
Skanery (w CI/CD i regularnie w sprzedaży): sprawdzanie obsługiwanych szyfrów, certyfikatów, HSTS, OCSP.
Ćwiczenia chaosu/DR: wygaśnięcie certyfikatu, spadek tajnego menedżera, kompromis klucza podpisu - sprawdź plany reakcji.
12) Procedury reagowania
Kompromis kluczowy: natychmiastowe cofnięcie certyfikatu/usunięcie klucza z JWKS, cofnięcie do kopii zapasowej, przymusowa regeneracja tokenu.
Wygaśnięcie bez odnowienia: tymczasowa degradacja (tylko ruch wewnętrzny), automatyczne ponowne zainstalowanie certyfikatów.
Raport incydentalny: Timeline, Affected Subjects, Tech. parts, środki naprawcze.
13) Szybka lista kontrolna (prod-ready)
- Tylko TLS 1. 3 (+ 1. 2 dla legasi), ścisła lista szyfrów.
- HSTS „preload”, zszywanie OCSP, ALPN.
- ECDHE dla PFS; ECDSA P-256/384 lub RSA 3072.
- mTLS w ramach klastra/pomiędzy usługami krytycznymi.
- JWKS + dziecko, krótkie żetony TTL, plan rotacji.
- Tajemnice - tylko w KMS/Vault, automatyczna rotacja baz danych/dostawców.
- Automatyczne odnawianie certyfikatów (ACME), wpisy w ciągu 30 dni.
- Sprawdzenie nagłówków zabezpieczeń i wrażliwych szyfrów przez CI/CD.
- Udokumentowana książka startowa "oraz: rotacja, przypomnienie, incydenty.
Wznów streszczenie
Niezawodna ochrona API to połączenie TLS 1. 3 + HSTS + PFS jako obowiązkowe minimalne i dojrzałe kluczowe i tajne procesy zarządzania. Dodaj mTLS między usługami, zautomatyzuj zwolnienie/obrót poprzez KMS/Vault/mesh, zachowaj krótkie TTL i podwójne okna podczas zmiany klawiszy - i zminimalizujesz ryzyko przechwytywania, obniżania i nadużywania wyciekłych tajemnic bez naruszania dostępności i prędkości produktu.
