Kontrola dostępu do kluczy szyfrujących: najlepsze praktyki
Ochrona kluczy szyfrujących jest tak samo ważna jak szyfrowanie danych. Słaba kontrola dostępu do kluczy może prowadzić do wycieków danych, podszywania się pod usługi i trwałej utraty danych. Oto, co musisz wiedzieć, aby zadbać o bezpieczeństwo swoich kluczy:
- Zasada najmniejszych przywilejów: Udzielaj tylko minimalnych uprawnień wymaganych do wykonania konkretnych zadań. Unikaj zbyt szerokich uprawnień, takich jak:
km:*i egzekwować surowe zasady dostępu. - Kontrola dostępu oparta na rolach (RBAC): Oddziel role dla zarządzania kluczami (np. administratorów) i operacji kryptograficznych (np. użytkowników). Unikaj nakładania się obowiązków.
- Centralne zarządzanie kluczami: Korzystaj z narzędzi takich jak AWS KMS, Google Cloud KMS lub Azure Key Vault, aby zapewnić spójne i bezpieczne przetwarzanie kluczy.
- Moduły bezpieczeństwa sprzętowego (HSM): Przechowuj klucze w sprzęcie odpornym na manipulację, aby zapewnić lepszą ochronę. Zarządzane moduły HSM upraszczają integrację i zapewniają zgodność z FIPS.
- Monitorowanie i rejestrowanie: Włącz szczegółowe dzienniki aktywności administratora i użycia kluczy. Skonfiguruj alerty dotyczące nietypowych zachowań lub działań wysokiego ryzyka.
- Rotacja i cofanie kluczy: Regularnie zmieniaj klucze, aby ograniczyć ryzyko. Natychmiast unieważnij zagrożone klucze i wymień je bezzwłocznie.
Postępując zgodnie z tymi krokami, masz pewność, że klucze szyfrujące pozostaną bezpieczne, co ograniczy ryzyko i zapewni integralność danych.
PKI 101: przechowywanie i używanie prywatnego klucza szyfrującego
sbb-itb-59e1987
Stosowanie najmniejszych uprawnień do zarządzania kluczami
Role i uprawnienia administratora kluczowego a użytkownika kluczowego
Co oznacza „najmniejsze przywileje”
Zasada najmniejszych uprawnień (PoLP) koncentruje się na przyznawaniu użytkownikom i usługom wyłącznie uprawnień absolutnie niezbędnych do wykonywania ich zadań – i nic więcej. W kontekście zarządzania kluczami oznacza to dokładną kontrolę nad tym, kto może szyfrować, deszyfrować, modyfikować zasady lub usuwać klucze.
"Żaden użytkownik AWS nie ma uprawnień do klucza KMS, chyba że uprawnienie to zostanie udzielone jawnie i nigdy nie zostanie mu odmówione. Nie ma żadnych domyślnych ani automatycznych uprawnień do używania lub zarządzania kluczem KMS". – Usługa zarządzania kluczami AWS
To podejście "domyślnie odrzucane" stanowi fundament bezpieczeństwa. Nawet właściciel konta lub osoba tworząca klucz nie ma automatycznie uprawnień – muszą one zostać wyraźnie przyznane. Ta ścisła kontrola znacznie ogranicza potencjalne luki w zabezpieczeniach. W przypadku naruszenia danych uwierzytelniających, szkody ograniczają się do konkretnych uprawnień przypisanych do danej tożsamości. Na przykład, naruszone dane uwierzytelniające "Kluczowego użytkownika" nie pozwolą na usunięcie klucza, jeśli nie zostaną przyznane uprawnienia administracyjne.
Nieprzestrzeganie zasady najmniejszych uprawnień może prowadzić do poważnych konsekwencji. Bez odpowiednich ograniczeń atakujący mogliby rozszerzyć swoje uprawnienia, zmieniając zasady dotyczące kluczy, aby uzyskać pełną kontrolę. Co gorsza, mogliby zaplanować usunięcie klucza, co trwale zniszczyłoby zaszyfrowane dane. AWS wymusza okres oczekiwania wynoszący co najmniej 7 dni (do 30 dni) na usunięcie klucza, ponieważ po usunięciu klucza wszystkie zaszyfrowane nim dane zostają utracone na zawsze.
Aby skutecznie wdrożyć te kontrole, kluczowym narzędziem staje się kontrola dostępu oparta na rolach (RBAC).
Konfigurowanie kontroli dostępu opartej na rolach (RBAC)
RBAC upraszcza zasadę najmniejszych uprawnień, przypisując uprawnienia na podstawie role zawodowe Zamiast zarządzać uprawnieniami dla poszczególnych użytkowników, definiujesz role takie jak "Kluczowy administrator" i "Kluczowy użytkownik", a następnie przypisujesz osoby do tych ról na podstawie ich obowiązków.
Kluczową zasadą RBAC jest oddzielenie zadania administracyjne od operacje kryptograficzne. Administratorzy kluczy odpowiadają za cykl życia kluczy – tworzenie, włączanie i wyłączanie, aktualizowanie zasad i planowanie usuwania. Użytkownicy kluczy z kolei odpowiadają za szyfrowanie i deszyfrowanie. Role te nigdy nie powinny się nakładać na siebie dla tych samych kluczy.
| Typ roli | Typowe uprawnienia | Cel, powód |
|---|---|---|
| Administrator kluczy | Utwórz, Włącz/Wyłącz, PutKeyPolicy, ScheduleKeyDeletion, Tagowanie | Zarządza kluczowym cyklem życia, metadanymi i zasadami dostępu |
| Użytkownik kluczowy | Szyfruj, Odszyfruj, Ponownie zaszyfruj, Wygeneruj klucz danych, Opisz klucz | Używa klucza do operacji kryptograficznych na danych |
Podczas konfigurowania RBAC należy unikać używania uprawnień wieloznacznych, takich jak km:* w swoich zasadach. Zawsze określaj dokładny numer ARN klucza lub identyfikator zasobu. Symbole wieloznaczne mogą nieumyślnie przyznać dostęp do kluczy na innych kontach lub w innych regionach. Dodatkowo, używaj oddzielnych kluczy dla różnych typów danych – dane klientów, dokumentacja finansowa i komunikacja wewnętrzna powinny mieć własne klucze. Dzięki temu w przypadku naruszenia jednego poświadczenia zagrożony będzie tylko określony podzbiór danych.
Aby zapewnić dodatkową ochronę, należy Uwierzytelnianie wieloskładnikowe (MFA) do wrażliwych działań, takich jak planowanie usuwania kluczy lub zmiana zasad dotyczących kluczy. Inną przydatną warstwą jest kontekst szyfrowania, który wiąże uprawnienia z określonymi metadanymi. Te nietajne pary klucz-wartość gwarantują, że klucz może odszyfrować dane tylko wtedy, gdy podany zostanie ten sam kontekst, co podczas szyfrowania, co stanowi dodatkową ochronę przed nieautoryzowanym użyciem – nawet jeśli sam klucz zostanie naruszony.
Centralne zarządzanie dostępem do kluczy
Korzyści z zarządzania scentralizowanego
Scentralizowane zarządzanie kluczami opiera się na zasadach minimalnego poziomu uprawnień i zdefiniowanych ról, pomagając organizacjom egzekwować spójne praktyki bezpieczeństwa. Zarządzając kluczami szyfrującymi z poziomu jednego konta lub projektu, firmy mogą uniknąć konieczności żonglowania kluczami w wielu środowiskach. Zamiast korzystać z oddzielnych kont dla cyklów życia kluczy, administratorzy mogą polegać na ujednoliconej konsoli. Staje się to szczególnie ważne w miarę rozwoju organizacji, gdzie zarządzanie dużą liczbą kluczy wymaga usprawnionego podejścia.
"Możliwość grupowania kluczy i punktów końcowych oraz przypisywania ról i zasad do tych grup za pomocą ujednoliconej konsoli zarządzania to jedyny sposób na zarządzanie milionami kluczy i operacji". – Nisha Amthul, starszy menedżer ds. marketingu produktów w firmie Thales
Systemy scentralizowane zmniejszają również ryzyko błędów konfiguracji poprzez egzekwowanie spójnych środków bezpieczeństwa. Zmniejszają one ryzyko, takie jak przypadkowe usunięcie kluczy czy eskalacja uprawnień, ponieważ lokalni administratorzy nie mają niekontrolowanych uprawnień do kluczowych kluczy.
"Ten scentralizowany model może pomóc zminimalizować ryzyko niezamierzonego usunięcia kluczy lub eskalacji uprawnień przez delegowanych administratorów lub użytkowników". – AWS Prescriptive Guidance
Kolejną istotną zaletą jest oddzielenie zadań administracyjnych od dostępu do danych. To nie tylko wzmacnia zgodność, ale także upraszcza audyty poprzez stworzenie jasnego podziału obowiązków. Scentralizowane rejestrowanie dodatkowo to usprawnia, konsolidując wszystkie kluczowe zdarzenia dostępu w jeden ślad audytu, ułatwiając monitorowanie i weryfikację aktywności.
Mając na uwadze te korzyści, wybór odpowiedniego scentralizowanego narzędzia do zarządzania kluczami staje się kluczowym krokiem w celu zapewnienia efektywnego i bezpiecznego zarządzania cyklem życia kluczy.
Narzędzia do scentralizowanego zarządzania kluczami
Dostępnych jest kilka narzędzi usprawniających scentralizowane zarządzanie kluczami:
- Usługa zarządzania kluczami AWS (KMS): Chroni klucze główne przy użyciu modułów zabezpieczeń sprzętowych (HSM) zweryfikowanych zgodnie ze standardem FIPS 140-2 lub 140-3 poziomu 3 i bezproblemowo integruje się z innymi usługami AWS, umożliwiając ujednolicone audyty.
- Google Cloud KMS: Oferuje klucze szyfrujące zarządzane przez klienta z opcjami poziomów ochrony oprogramowania, HSM i zewnętrznego menedżera kluczy.
- Azure Key Vault: Centralizuje przechowywanie kluczy, sekretów i certyfikatów, a jednocześnie zawiera wbudowaną kontrolę dostępu opartą na rolach.
W przypadku organizacji działających w środowiskach wielochmurowych dodatkowe narzędzia mogą zapewnić ujednolicony interfejs:
- Silnik sekretów zarządzania kluczami HashiCorp Vault: Zapewnia spójny przepływ pracy do zarządzania kluczami w usługach AWS KMS, Azure Key Vault i Google Cloud KMS z poziomu jednego interfejsu.
- Menedżer Thales CipherTrust: Nadzoruje kluczowe cykle życia serwerów, systemów pamięci masowej i platform chmurowych za pośrednictwem jednej konsoli.
Wybierając narzędzie, priorytetyzuj te, które obsługują szczegółową kontrolę dostępu, aby wzmocnić zasadę minimalnych uprawnień. Kolejnym kluczowym czynnikiem są możliwości automatyzacji. Chociaż organizacje z silnymi systemami automatyzacji mogą obsługiwać zdecentralizowane konfiguracje, scentralizowane zarządzanie często lepiej sprawdza się w przypadku procesów manualnych. Oceń swoje specyficzne potrzeby, takie jak wymagania dotyczące zgodności (np. walidacja FIPS 140-3 poziomu 3), kontrola cyklu życia oraz limity usług na konto, aby dokonać najlepszego wyboru dla swojej organizacji.
Kluczowe zasady i podział obowiązków
Tworzenie i egzekwowanie kluczowych zasad
Zasady dotyczące kluczy powinny obejmować każdy etap cyklu życia klucza – od jego utworzenia do ostatecznego zniszczenia. Bez jasnej dokumentacji istnieje większe ryzyko niewłaściwego użycia kluczy.
Twoja polityka musi przypisywać konkretne role z jasno określonymi obowiązkami. Na przykład:, Oficerowie kryptograficzni może obsługiwać zadania takie jak generowanie kluczy i tworzenie kopii zapasowych, podczas gdy Audytorzy bezpieczeństwa Skoncentruj się na zapewnieniu zgodności. Ten jasny podział eliminuje niejednoznaczności i zapewnia rozliczalność. Prowadź aktualny spis każdego klucza, szczegółowo określając datę jego utworzenia, algorytm szyfrowania (np. 3072-bitowy RSA), zatwierdzone zastosowania i właściciela.
Użyj kombinacji zasad opartych na zasobach i tożsamościach, aby kontrolować dostęp. Zasady oparte na zasobach wiążą uprawnienia z określonymi kluczami, podczas gdy zasady oparte na tożsamościach regulują działania użytkowników i ról. Aby wzmocnić podejście "domyślnie odmów", określ dokładne numery ARN i ogranicz wrażliwe uprawnienia. Na przykład, ogranicz kms:UsunięcieKluczaHarmonogramu Uprawnienia dla zaufanych użytkowników zapewniają minimalny okres oczekiwania na usunięcie klucza. AWS KMS wymusza domyślny okres oczekiwania wynoszący 7 dni (z możliwością przedłużenia do 30 dni) przed trwałym usunięciem klucza, zmniejszając ryzyko przypadkowej utraty danych.
"Żaden podmiot zarządzający AWS, w tym użytkownik główny konta lub twórca klucza, nie ma żadnych uprawnień do klucza KMS, chyba że zostały one wyraźnie przyznane i nie zostały wyraźnie zabronione w polityce klucza, polityce IAM lub udzieleniu zezwolenia". – AWS Prescriptive Guidance
Rozdzielenie kluczowych obowiązków zarządczych
Po ustaleniu solidnych zasad dotyczących kluczy, kolejnym krokiem jest zapewnienie podziału obowiązków w celu zminimalizowania ryzyka. Oddzielając administrowanie kluczami od operacji kryptograficznych, zmniejszasz prawdopodobieństwo, że pojedyncza osoba naruszy bezpieczeństwo klucza. Na przykład osoba zarządzająca kluczem nigdy nie powinna mieć dostępu do chronionych przez niego danych. Taki podział nie tylko zmniejsza ryzyko oszustwa lub błędów, ale także zapobiega eskalacji uprawnień.
Jasno zdefiniuj role takie jak: Kluczowi administratorzy, którzy nadzorują kluczowe cykle życia, tworzenie i rotację oraz Kluczowi użytkownicy, którzy zajmują się szyfrowaniem, deszyfrowaniem i podpisywaniem. Unikaj przypisywania szerokich ról, takich jak "Właściciel" czy "Edytor", które łączą zadania administracyjne i operacyjne. Zamiast tego trzymaj się wąsko zdefiniowanych ról, które kierują się zasadą najmniejszych uprawnień.
W przypadku operacji o wysokim ryzyku należy wdrożyć techniki autoryzacji wielostronnej, takie jak Shamir's Secret Sharing, aby zagwarantować, że żadna osoba nie zdobędzie klucza. Wymagaj uwierzytelniania wieloskładnikowego (MFA) w przypadku działań o charakterze wrażliwym oraz rozdzielaj hasła i urządzenia MFA między wiele osób, aby jeszcze bardziej zwiększyć bezpieczeństwo.
Staram się traktować hasła jak “pierwsze drzwi” do kluczy szyfrujących: jeśli te drzwi są słabe, każda kolejna warstwa zabezpieczeń staje się jedynie ozdobą. Dlatego trzymam się zasady prostoty i ścisłości: jedno konto = jedno unikalne, długie hasło, bez możliwości ponownego użycia i bez “drobnych zmian” w stylu Hasło123! → Hasło124!. Nie przechowuję tych haseł w notatkach ani nie wysyłam ich na czatach; zamiast tego polegam na… menedżer haseł i włączam uwierzytelnianie wieloskładnikowe wszędzie tam, gdzie jest ono dostępne. A kiedy dostęp do kluczowych systemów musi być współdzielony, unikam “jednego wspólnego hasła dla wszystkich” i naciskam na oddzielne konta i uprawnienia oparte na rolach, ponieważ wtedy jest jaśniejsze, kto co zrobił, i o wiele łatwiej jest szybko cofnąć dostęp, jeśli coś pójdzie nie tak.
Wyciek danych RSA z 2011 roku stanowi przestrogę. W tamtym incydencie niedostateczne rozdzielenie obowiązków związanych z zarządzaniem kluczami umożliwiło atakującym klonowanie tokenów uwierzytelniania dwuskładnikowego, ilustrując zagrożenia wynikające z niedostatecznego podziału ról.
Automatyzacja monitorowania to kolejny kluczowy krok. Użyj narzędzi do wykrywania i sygnalizowania wszelkich nakładek uprawnień, które mogłyby wskazywać na naruszenie zasady rozdziału obowiązków. Analiza kont usług może również identyfikować konta nieużywane przez 90 dni lub dłużej, sygnalizując konieczność ich wyłączenia lub usunięcia w celu ograniczenia zbędnego dostępu i liczby aktywnych kluczy.
Wykorzystanie sprzętowych modułów bezpieczeństwa (HSM) do ochrony kluczy
Zrozumienie modułów bezpieczeństwa sprzętowego
Sprzętowy moduł bezpieczeństwa (HSM) to specjalistyczne urządzenie zaprojektowane do ochrony kluczy szyfrujących w bezpiecznym, odpornym na manipulację środowisku. W przeciwieństwie do rozwiązań programowych, HSM-y opierają się na dedykowanych układach kryptoprocesorowych umieszczonych w obudowie zabezpieczającej przed manipulacją. Taka konfiguracja gwarantuje, klucze szyfrujące są generowane i przechowywane wyłącznie w obrębie granic sprzętowych, nigdy nie pozostawiając ich w postaci jawnego tekstu.
Zaawansowane moduły HSM zawierają mechanizmy reagujące na manipulację, które mogą natychmiast wyzerować (trwale usunąć) poufny materiał klucza w przypadku wykrycia fizycznego naruszenia. Większość modułów HSM spełnia FIPS 140-2 lub 140-3 Poziom 3 standardy certyfikacji, oferujące izolację opartą na sprzęcie, znacznie skuteczniejszą od metod opartych wyłącznie na oprogramowaniu.
Obecnie dostawcy usług chmurowych upraszczają dostęp do tej technologii dzięki zarządzanym modułom HSM. Usługi te zapewniają bezpieczeństwo sprzętowe zgodne ze standardem FIPS bez konieczności stosowania urządzeń fizycznych. Zarządzane moduły HSM zazwyczaj zapewniają Dostępność 99.99% poprzez replikację danych w wielu regionach. Dostęp jest podzielony na dwie płaszczyzny: Płaszczyzna sterowania, który obsługuje zarządzanie zasobami (np. tworzenie, usuwanie, konfigurowanie) i Płaszczyzna danych, który zarządza operacjami kryptograficznymi, takimi jak szyfrowanie, deszyfrowanie i podpisywanie. To rozdzielenie zapewnia oddzielenie zadań administracyjnych od bezpośredniego dostępu do poufnych kluczy.
Integrując sprzętowe moduły bezpieczeństwa (HSM) ze swoimi systemami, możesz wdrożyć silniejsze mechanizmy kontroli dostępu i skutecznie zabezpieczyć kluczowe operacje.
Integracja modułów HSM z systemami
Integracja modułów HSM z infrastrukturą zwiększa bezpieczeństwo kluczy, utrzymując wrażliwe dane w chronionych granicach sprzętowych. Pierwszym krokiem jest skonfigurowanie solidnej kontroli dostępu zarówno dla płaszczyzny sterowania, jak i płaszczyzny danych. Używaj zarządzanych tożsamości dla aplikacji do uwierzytelniania w module HSM, eliminując potrzebę przechowywania danych uwierzytelniających w kodzie lub plikach konfiguracyjnych. Ostrożnie przypisuj role – role na poziomie chmury, takie jak "Współtwórca Key Vault", zarządzają samym modułem HSM, podczas gdy role lokalne w module HSM, takie jak "Oficer ds. Kryptografii" lub "Użytkownik ds. Kryptografii", zajmują się zadaniami kryptograficznymi. Ogranicz uprawnienia do określonych kluczy (np., /klawiatura/) zamiast udzielać dostępu do całego modułu HSM.
Dla dodatkowego bezpieczeństwa, należy ustanowić kworum domeny bezpieczeństwa, używając co najmniej trzech par kluczy RSA, z których każda jest zarządzana przez innego administratora. Taka konfiguracja gwarantuje, że żadna osoba nie będzie w stanie w pełni odzyskać ani naruszyć bezpieczeństwa modułu HSM. Klucze odzyskiwania należy przechowywać na zaszyfrowanych, offline'owych dyskach USB w oddzielnych sejfach. Należy włączyć funkcje takie jak miękkie usuwanie (z okresem przechowywania od 7 do 90 dni) i ochrona przed czyszczeniem, aby zabezpieczyć się przed przypadkowym lub złośliwym usunięciem kluczy.
Aby zabezpieczyć komunikację sieciową, wyłącz publiczny dostęp do internetu i kieruj cały ruch HSM przez prywatne punkty końcowe. W środowiskach o wysokim stopniu regulacji rozważ podejście "Hold Your Own Key" (HYOK). Ten model przechowuje klucze w zewnętrznym module HSM, nigdy nie udostępniając ich infrastrukturze dostawcy chmury. Wykorzystuje również podwójne szyfrowanie: dane są szyfrowane najpierw przez dostawcę chmury, a następnie ponownie przez zewnętrzny moduł HSM, co zapewnia, że żadna ze stron nie ma niezależnego dostępu do tekstu jawnego.
Zwiększ bezpieczeństwo, korzystając z dostępu Just-in-Time za pośrednictwem funkcji Privileged Identity Management, która przyznaje tymczasowe uprawnienia administracyjne tylko wtedy, gdy jest to potrzebne. Oznacz klucze jako "nieeksportowalne", aby zapewnić ich bezpieczeństwo w granicach sprzętowych, i wdróż zautomatyzowane harmonogramy rotacji kluczy, aby zminimalizować ryzyko naruszenia bezpieczeństwa w dłuższej perspektywie.
Monitorowanie, audyt i rejestrowanie dostępu do kluczy
Po wdrożeniu skutecznych praktyk zarządzania kluczami i bezpieczeństwa sprzętu, konieczne jest monitorowanie i rejestrowanie dostępu, aby wykryć potencjalne naruszenia na wczesnym etapie.
Konfigurowanie monitorowania dostępu
Śledzenie dostępu do kluczy jest kluczowe dla wykrycia nieautoryzowanego użycia, zanim stanie się ono problemem. Zacznij od rozróżnienia Dzienniki aktywności administratora (które rejestrują takie działania, jak tworzenie kluczy lub aktualizowanie zasad) i Dzienniki dostępu do danych (które śledzą operacje kryptograficzne, takie jak szyfrowanie i deszyfrowanie). Chociaż dzienniki dostępu do danych są często domyślnie wyłączone ze względu na ogromną liczbę generowanych przez nie danych, włączenie ich dla najbardziej wrażliwych kluczy to mądre posunięcie.
Ustal punkt odniesienia typowego wykorzystania zarówno danych, jak i działań na płaszczyźnie sterowania. Ułatwia to wykrywanie nietypowych zachowań, takich jak gwałtowny wzrost liczby żądań odszyfrowania o nietypowej porze lub dostęp administratora do kluczy, których nigdy wcześniej nie używał. Wysyłaj dzienniki audytu do zautomatyzowanych narzędzi monitorujących, takich jak Alarmy CloudWatch aby wywołać alerty dotyczące zdarzeń wysokiego ryzyka, takich jak: ScheduleKeyDeletion, Wyłącz klucz, lub nieautoryzowanych zmian polityki.
Skorzystaj z par klucz-wartość kontekstu szyfrowania, które są widoczne w postaci zwykłego tekstu w logach, aby kategoryzować działania bez ujawniania poufnych danych. Zwróć szczególną uwagę na zmiany tagów, ponieważ… TagResource lub UntagResource Działania mogą eskalować uprawnienia. Należy pamiętać, że zmiany tagów lub aliasów mogą wpłynąć na uprawnienia klucza KMS dopiero po 5 minutach, dlatego konfiguracja monitorowania powinna uwzględniać to opóźnienie.
Skuteczne monitorowanie dostępu w naturalny sposób przyczynia się do tworzenia szczegółowych ścieżek audytu, zapewniających pełną przejrzystość.
Tworzenie śladów audytu i dzienników
Aby uzupełnić monitorowanie, upewnij się, że posiadasz kompleksowy system rejestrowania, który pozwoli Ci stworzyć bezpieczny ślad audytu. Takie podejście pomaga zachować rozliczalność i przygotowuje Cię do dochodzeń kryminalistycznych. Używaj co najmniej dwóch rodzajów narzędzi audytowych, aby zapewnić redundancję. Narzędzia takie jak Skarbiec HashiCorp mają na celu blokowanie żądań API, jeśli nie mogą one zalogować się do co najmniej jednego urządzenia, zapobiegając w ten sposób nieśledzonemu dostępowi.
Przekazuj logi do systemu zdalnego, aby chronić je przed manipulacją i zapewnić ich dostępność na potrzeby audytów zgodności. Dla dodatkowego bezpieczeństwa używaj skrótów z kluczem (np. HMAC-SHA256), aby chronić wrażliwe dane logów, a jednocześnie zapewnić ich audyt. Skonfiguruj alerty dotyczące zdarzeń krytycznych, takich jak użycie tokena głównego, zmiany w konfiguracjach audytu lub gwałtowny wzrost liczby błędów "odmowa dostępu". Nie zapomnij o wdrożeniu rotacji logów (np. za pomocą… logrotate) i skonfiguruj sygnały HUP, aby zapewnić nieprzerwane rejestrowanie.
Centralizuj i agreguj logi ze wszystkich projektów lub kont w jednym repozytorium, aby zapewnić przejrzystość w całej organizacji. To nie tylko upraszcza nadzór, ale także wspiera zgodność ze standardami takimi jak PCI DSS, FedRAMP i HIPAA. Należy jednak pamiętać, że włączenie logów dostępu do danych może zwiększyć koszty ze względu na większą objętość danych.
Praktyki rotacji i odwoływania kluczy
Klucze szyfrujące nie są wieczne. Regularna rotacja i terminowe unieważnianie są niezbędne, aby zapobiec zagrożeniu poufnych danych przez nieaktualne lub zagrożone klucze.
Kiedy i dlaczego należy wymieniać klucze
Rotacja kluczy szyfrujących pomaga ograniczyć szkody, jakie może wyrządzić pojedynczy zhakowany klucz. Zamiast jednego klucza chroniącego dane przez lata, rotacja zapewnia, że każdy klucz jest ważny tylko przez określony czas. Na przykład, PCI DSS nakazuje coroczną rotację kluczy co najmniej raz w roku, ale w przypadku danych wrażliwych, takich jak dane posiadacza karty, rotacja kluczy co kwartał jest bezpieczniejszym rozwiązaniem. W przypadku kluczy do kont usługowych eksperci zalecają ich rotację co najmniej co 90 dni, aby zminimalizować ryzyko wycieku danych uwierzytelniających.
Częstotliwość rotacji powinna zależeć od wrażliwości danych i częstotliwości używania klucza. Na przykład NIST zaleca rotację kluczy AES-256-GCM, zanim liczba szyfrowań osiągnie około 4,3 miliarda. Podobnie, Azure Key Vault sugeruje rotację kluczy szyfrujących co najmniej co dwa lata. Klucze często używane są narażone na większe ryzyko kryptoanalityczne, dlatego śledzenie liczby szyfrowań za pomocą telemetrii może pomóc w ustaleniu terminu rotacji, zamiast polegać wyłącznie na harmonogramie kalendarzowym.
Aby usprawnić ten proces i uniknąć błędów, narzędzia automatyzacji, takie jak HashiCorp Vault lub Cloud KMS, mogą obsługiwać rotację kluczy za Ciebie. Narzędzia te wykorzystują wersjonowanie kluczy, gdzie nowe dane są szyfrowane najnowszym kluczem, a starsze klucze deszyfrują dane historyczne. Pozwala to na stopniowy, "leniwy" proces ponownego szyfrowania, aktualizując dane w miarę uzyskiwania do nich dostępu.
Ale sama rotacja nie zawsze wystarczy. W przypadku naruszenia, kolejnym krytycznym krokiem staje się unieważnienie klucza.
Cofanie kluczy w celu zmniejszenia ryzyka
Cofnięcie klucza to szybka reakcja w przypadku jego naruszenia, odejścia pracownika z uprawnieniami lub wystąpienia innego zdarzenia zagrażającego bezpieczeństwu. Czas ma kluczowe znaczenie – cofnięcie powinno nastąpić w ciągu 24 godzin od zidentyfikowania problemu.
Oto, jak to działa: Najpierw zidentyfikuj zagrożony klucz i wygeneruj bezpieczny zamiennik. Wdróż nowy klucz we wszystkich systemach, a następnie wyłącz stary. Nie usuwaj go jednak od razu – ten okres karencji pozwala monitorować ewentualne błędy lub zależności nadal powiązane z wyłączonym kluczem. Po upewnieniu się, że żaden krytyczny system nie został naruszony, zaktualizuj konfiguracje, ponownie zaszyfruj niezbędne dane i trwale usuń stary klucz.
"Brak szybkiego odwołania zagrożonych kluczy umożliwia dalsze nieautoryzowane odszyfrowywanie. Niewłaściwe praktyki zarządzania kluczami sprawiają, że szyfrowanie staje się bezużyteczne, a dane pozostają nieujawnione". – Zespół Wsparcia SSL, SSL.com
Jaskrawym przykładem konsekwencji złego zarządzania kluczami jest naruszenie bezpieczeństwa RSA w 2011 roku. Atakujący ukradli kryptograficzne wartości "seed" dla milionów tokenów SecurID, ponieważ RSA nie zabezpieczyła bazy danych „seed” i nie wdrożyła odpowiednich mechanizmów kontroli dostępu. To naruszenie bezpieczeństwa podkreśla wagę szybkich i skutecznych praktyk zarządzania kluczami w celu ochrony poufnych danych.
Wniosek
Silna kontrola dostępu do kluczy jest niezbędna do ochrony wrażliwych danych. Stosując zasadę minimalnych uprawnień, rozdzielając obowiązki i wykorzystując zabezpieczenia sprzętowe, takie jak moduły HSM z walidacją FIPS 140-2 poziomu 3, tworzysz solidne podstawy do bezpiecznego zarządzania kluczami. Strategie te są kluczowe dla zapobiegania zarówno przypadkowemu ujawnieniu danych, jak i celowym naruszeniom.
"Żaden podmiot zarządzający AWS, w tym użytkownik główny konta lub twórca klucza, nie ma żadnych uprawnień do klucza KMS, chyba że zostały one wyraźnie przyznane i nie zostały wyraźnie zabronione w polityce klucza, polityce IAM lub udzieleniu zezwolenia". – AWS Prescriptive Guidance
Dodatkowe środki, takie jak wymuszone okresy oczekiwania i uwierzytelnianie wieloskładnikowe, zapewniają dodatkową ochronę. W szczególności uwierzytelnianie wieloskładnikowe dodaje dodatkową warstwę bezpieczeństwa, ograniczając nieautoryzowane zmiany kluczy. Automatyczna rotacja kluczy, zazwyczaj ustawiona na 90 dni, również minimalizuje ryzyko, zmniejszając potencjalne szkody, jakie może spowodować złamanie klucza.
Skuteczne zarządzanie kluczami wymaga stałej uwagi. Wraz z rozwojem organizacji, rotacją personelu i pojawianiem się nowych zagrożeń, kontrola dostępu musi ewoluować. Regularne audyty są kluczowe dla identyfikacji nadmiernie uprzywilejowanych ról, a monitorowanie w czasie rzeczywistym jest kluczowe dla wykrywania nietypowych działań związanych z dostępem, zanim staną się one zagrożeniem. Funkcje takie jak automatyczne provisionowanie, alerty w czasie rzeczywistym i kontekst szyfrowania współpracują ze sobą, aby zapewnić bezpieczeństwo kluczy przez cały cykl ich życia.
Często zadawane pytania
Jaki jest najbezpieczniejszy sposób podziału dostępu administratora klucza i użytkownika klucza?
Aby zapewnić bezpieczeństwo, najlepiej postępować zgodnie z zasada rozdziału obowiązków. Oznacza to podział obowiązków, tak aby żadna osoba nie mogła zajmować się jednocześnie zadaniami administracyjnymi i operacyjnymi. Na przykład, wyznacz Kluczowi administratorzy nadzorować tworzenie kluczy i zarządzanie polityką, podczas gdy Kluczowi użytkownicy Skoncentruj się na zadaniach kryptograficznych, takich jak szyfrowanie i deszyfrowanie. Wdrażaj kontrola dostępu oparta na rolach (RBAC) wraz ze szczegółowymi zasadami IAM, aby egzekwować te granice. Dodatkowo, prowadź kompleksowe dzienniki audytu, aby śledzić działania i szybko identyfikować wszelkie nieautoryzowane działania.
Kiedy powinienem użyć modułu HSM zamiast magazynu kluczy programowych?
Moduł bezpieczeństwa sprzętowego (HSM) to rozwiązanie, po które warto sięgnąć, gdy izolacja oparta na sprzęcie i odporność na manipulacje są niepodważalne w ochronie wysoce wrażliwych kluczy kryptograficznych. Moduły HSM sprawdzają się w sytuacjach, w których spełnienie rygorystycznych standardów zgodności jest kluczowe lub gdy ryzyko naruszeń i luk w zabezpieczeniach oprogramowania musi zostać zminimalizowane.
W przeciwieństwie do oprogramowania do przechowywania kluczy, moduły HSM zapewniają dodatkową warstwę bezpieczeństwa, co czyni je preferowanym wyborem w środowiskach wymagających najwyższego poziomu ochrony.
Jak mogę rotować klucze, nie zakłócając działania aplikacji ani nie tracąc dostępu do danych?
Aby przełączać klucze szyfrujące bez przerywania działania aplikacji lub utraty dostępu do danych, wykonaj następujące czynności:
- Zaplanuj i zaplanuj rotacje:Skonfiguruj zautomatyzowane systemy lub zaplanuj generowanie kluczy w razie potrzeby, aby utworzyć nowe klucze szyfrujące.
- Aktualizuj aplikacje i dane:Przejście na nowe klucze krok po kroku, przy czym stare klucze pozostają tymczasowo aktywne w celu zachowania kompatybilności.
- Monitoruj i weryfikuj:Przeprowadź dokładny test, aby upewnić się, że aplikacje działają płynnie z zaktualizowanymi kluczami.
Metoda ta pomaga zachować bezpieczeństwo i uniknąć zakłóceń.