Zalecenia dotyczące szyfrowania danych

Dotyczy zaleceń dotyczących listy kontrolnej zabezpieczeń platformy Well-Architected Framework:

SE:07 Szyfruj dane przy użyciu nowoczesnych metod standardowych w branży, aby chronić poufność i integralność. Dopasowanie zakresu szyfrowania do klasyfikacji danych; Określanie priorytetów metod szyfrowania platformy natywnej.

Jeśli dane nie są chronione, można je złośliwie zmodyfikować, co prowadzi do utraty integralności i poufności.

W tym przewodniku opisano zalecenia dotyczące szyfrowania i ochrony danych. Szyfrowanie to proces używania algorytmów kryptograficznych, aby dane są nieczytelne i blokowane za pomocą klucza. W stanie zaszyfrowanym nie można odszyfrować danych. Można go odszyfrować tylko przy użyciu klucza sparowanego z kluczem szyfrowania.

Definicje

Terminologia Definicja
Certyfikaty Pliki cyfrowe, które przechowują klucze publiczne na potrzeby szyfrowania lub odszyfrowywania.
Zestaw szyfrowania Zestaw algorytmów używanych do szyfrowania i odszyfrowywania informacji w celu zabezpieczenia połączenia sieciowego za pośrednictwem protokołu Transport Layer Security (TLS).
Poufne przetwarzanie Poufne przetwarzanie to ochrona danych używanych przez wykonywanie obliczeń w środowisku zaufanym wykonywania opartym na sprzęcie.
Odszyfrowywanie Proces, w którym zaszyfrowane dane są odblokowywane za pomocą tajnego kodu.
Podwójne szyfrowanie Proces szyfrowania danych przy użyciu co najmniej dwóch niezależnych warstw szyfrowania.
Szyfrowanie Proces, za pomocą którego dane są nieczytelne i zablokowane za pomocą tajnego kodu.
Mieszania Proces przekształcania danych na tekst lub liczby z zamiarem ukrycia informacji.
Klucze Tajny kod używany do blokowania lub odblokowywania zaszyfrowanych danych.
Podpis Zaszyfrowana sygnatura uwierzytelniania na danych.
Podpisywanie Proces weryfikowania autentyczności danych przy użyciu podpisu.
X.509 Standard definiujący format certyfikatów kluczy publicznych.

Kluczowe strategie projektowania

Mandaty organizacyjne lub wymagania prawne mogą wymuszać mechanizmy szyfrowania. Na przykład może istnieć wymóg, że dane muszą pozostać tylko w wybranym regionie, a kopie danych są przechowywane w tym regionie.

Te wymagania są często podstawowym minimum. Dążyć do wyższego poziomu ochrony. Odpowiadasz za zapobieganie wyciekom poufności i manipulowaniu poufnymi danymi, niezależnie od tego, czy są to dane użytkowników zewnętrznych, czy dane pracowników.

Scenariusze szyfrowania

Mechanizmy szyfrowania prawdopodobnie muszą zabezpieczyć dane w trzech etapach:

  • Dane magazynowane to wszystkie informacje przechowywane w obiektach magazynu.

    Przykładem zabezpieczania danych magazynowanych jest użycie funkcji BitLocker do szyfrowania danych zapisanych w magazynie na dysku.

  • Dane przesyłane to informacje przesyłane między składnikami, lokalizacjami lub programami.

    Przykładem zabezpieczania danych przesyłanych jest szyfrowanie danych przy użyciu protokołu TLS, dzięki czemu pakiety przenoszące się za pośrednictwem sieci publicznych i prywatnych są bezpieczne.

  • Dane używane to dane, nad którymi aktywnie pracuje się w pamięci.

    Przykładem zabezpieczania danych w użyciu jest szyfrowanie za pomocą poufnego przetwarzania w celu ochrony danych podczas ich przetwarzania.

Poprzednie wybory nie wykluczają się wzajemnie. Są one często używane razem w kontekście całego rozwiązania. Jeden etap może działać jako kontrola wyrównywająca. Na przykład może być konieczne odizolowanie danych, aby zapobiec manipulacji podczas odczytywania danych z pamięci.

Zakres szyfrowania

Klasyfikowanie danych według ich przeznaczenia i poziomu poufności w celu określenia, jakie dane mają być szyfrowane. W przypadku danych, które powinny być szyfrowane, określ wymagany poziom ochrony. Czy potrzebujesz kompleksowego szyfrowania TLS dla wszystkich danych przesyłanych? Które funkcje platformy Azure mogą spełniać twoje wymagania w przypadku danych magazynowanych? Czy musisz dwukrotnie zaszyfrować dane w każdym punkcie magazynu? Jak zaimplementować ochronę informacji?

Ważne jest, aby zrównoważyć decyzje dotyczące szyfrowania, ponieważ istnieją znaczące kompromisy.

Kompromis: każdy przeskok szyfrowania może powodować opóźnienie wydajności. Złożoność operacyjna może wystąpić w odniesieniu do rozwiązywania problemów i możliwości obserwacji. Odzyskiwanie może być wyzwaniem.

Określ zakres tych kompromisów. Przewidywanie kompromisów dotyczących danych sklasyfikowanych jako poufnych. Wymagania mogą nawet określać kompromisy, na przykład jeśli określony typ danych musi być zaszyfrowany i przechowywany w określonych progach.

Istnieją przypadki, gdy szyfrowanie nie jest możliwe z powodu ograniczeń technicznych, inwestycji lub innych powodów. Upewnij się, że te przyczyny są jasne, prawidłowe i udokumentowane.

Silne mechanizmy szyfrowania nie powinny być jedyną formą obrony. Implementowanie procesów zapobiegania kradzieży danych, odpowiednich metod testowania i wykrywania anomalii.

Aby uzyskać informacje o klasyfikacji, zobacz Zalecenia dotyczące klasyfikacji danych.

Natywne mechanizmy szyfrowania

Większość usług platformy Azure zapewnia podstawowy poziom szyfrowania. Zapoznaj się z opcjami szyfrowania udostępnianymi przez platformę.

Zdecydowanie zaleca się, aby nie wyłączać możliwości platformy do tworzenia własnych funkcji. Funkcje szyfrowania platformy używają nowoczesnych standardów branżowych, są opracowywane przez ekspertów i są wysoce testowane.

W rzadkich przypadkach, jeśli konieczne jest zastąpienie szyfrowania dostarczonego przez platformę, należy ocenić zalety i wady i użyć standardowych algorytmów kryptograficznych.

Deweloperzy powinni używać interfejsów API kryptografii wbudowanych w system operacyjny, a nie bibliotek kryptograficznych nieplatformowych. W przypadku platformy .NET postępuj zgodnie z modelem kryptografii platformy .NET.

Klucze szyfrowania

Domyślnie usługi platformy Azure używają kluczy szyfrowania zarządzanych przez firmę Microsoft do szyfrowania i odszyfrowywania danych. Platforma Azure jest odpowiedzialna za zarządzanie kluczami.

Możesz wybrać klucze zarządzane przez klienta. Platforma Azure nadal używa kluczy, ale odpowiadasz za operacje kluczy. W razie konieczności możesz zmienić klucze. Odszyfrowywanie jest atrakcyjnym powodem używania kluczy zarządzanych przez klienta.

Należy sparować silne szyfrowanie z silnym odszyfrowywaniem. Z punktu widzenia zabezpieczeń ochrona klucza odszyfrowywania jest ważna, ponieważ rotacja jest typowym sposobem kontrolowania promienia wybuchu, jeśli klucz zostanie naruszony. Monitorowanie dostępu w celu wykrywania nietypowego dostępu i działań.

Przechowuj klucze oddzielone od zaszyfrowanych danych. To oddzielenie pomaga zagwarantować, że naruszenie zabezpieczeń jednej jednostki nie ma wpływu na drugą. Jeśli używasz kluczy zarządzanych przez klienta, przechowuj je w magazynie kluczy. Przechowywanie wysoce poufnych danych w zarządzanym module zabezpieczeń sprzętu (HSM).

Oba magazyny są chronione przy użyciu dostępu opartego na tożsamościach. Ta funkcja umożliwia odmowę dostępu nawet do platformy.

Standardowe algorytmy szyfrowania

Używaj algorytmów kryptograficznych, które są dobrze ustalone i zgodne ze standardami branżowymi , zamiast tworzyć niestandardowe implementacje.

Standardy branżowe algorytmów wymagają, aby schematy szyfrowania miały określony poziom entropii. Źródła entropii są wstrzykiwane podczas szyfrowania. Entropia sprawia, że algorytm jest silny i utrudnia atakującemu wyodrębnienie informacji. Określ dopuszczalne progi entropii. Procedury szyfrowania intensywnie korzystają z procesora. Znajdź właściwą równowagę, aby zmaksymalizować cykle obliczeniowe wydane na szyfrowanie względem ogólnych celów wydajności żądania obliczeniowego.

Kompromis: jeśli wybierzesz algorytm, który jest wysoce złożony lub wprowadza więcej niż rozsądną ilość entropii, obniża wydajność systemu.

Skróty i sumy kontrolne

Zazwyczaj tworzenie skrótów jest techniką wykrywania błędów. Można również użyć tworzenia skrótów dla zabezpieczeń, ponieważ wykrywa zmiany danych, które mogą być spowodowane manipulacją. Funkcje skrótu są oparte na kryptografii, ale nie używają kluczy. Funkcje skrótu używają algorytmów do tworzenia sum kontrolnych. Sumy kontrolne mogą porównywać dane, aby zweryfikować jego integralność.

Aplikacje powinny używać rodziny algorytmów wyznaczania wartości skrótu SHA-2, takich jak SHA-256, SHA-384 lub SHA-512.

Dane magazynowane

Klasyfikowanie i ochrona obiektów magazynu informacji zgodnie z wymaganiami dotyczącymi zgodności wewnętrznej i zewnętrznej. Zapoznaj się z następującymi zaleceniami:

  • Szyfruj dane przy użyciu opcji natywnych dostępnych dla usług magazynu, magazynów danych i innych zasobów, które są używane do utrwalania danych. Szyfruj te dane, nawet jeśli dane są przechowywane w tych usługach magazynu lub zasobach tylko tymczasowo. Zaszyfruj również dane kopii zapasowej, aby zachować ten sam poziom zabezpieczeń co oryginalne źródło.

    Aby uzyskać więcej informacji, zobacz Ochrona danych magazynowanych.

  • Użyj podwójnego szyfrowania. Jeśli wymagania biznesowe wymagają większej pewności, możesz wykonać podwójne szyfrowanie. Szyfruj dane w co najmniej dwóch warstwach przy użyciu niezależnych kluczy zarządzanych przez klienta. Przechowywanie danych w zarządzanym module HSM. Aby odczytać dane, musisz mieć dostęp do obu kluczy. Jeśli jeden klucz zostanie naruszony, drugi klucz nadal chroni dane. Ta technika ma na celu zwiększenie kosztów osoby atakującej.

    Możesz również użyć szyfrowania dostarczonego przez platformę, aby dwukrotnie zaszyfrować dane. Szyfrowanie zapewniane przez platformę chroni nośnik magazynu na poziomie infrastruktury i stosuje inną warstwę szyfrowania na poziomie danych. Na przykład usługa brokera komunikatów ma szyfrowanie udostępniane przez platformę za pośrednictwem kluczy zarządzanych przez firmę Microsoft, które chroni potok komunikatów. Ta metoda umożliwia szyfrowanie komunikatów za pomocą kluczy zarządzanych przez klienta.

    Użyj więcej niż jednego klucza szyfrowania. Użyj klucza szyfrowania klucza (KEK), aby chronić klucz szyfrowania danych (DEK).

  • Kontrola dostępu oparta na tożsamościach służy do kontrolowania dostępu do danych. Dodaj zapory sieciowe, aby zapewnić dodatkową warstwę zabezpieczeń, która blokuje nieoczekiwany i niebezpieczny dostęp.

    Aby uzyskać więcej informacji, zobacz Zalecenia dotyczące zarządzania tożsamościami i dostępem.

  • Przechowywanie kluczy w zarządzanym module HSM z kontrolą dostępu z najniższymi uprawnieniami. Oddziel dane od kluczy do danych.

  • Przechowuj ograniczoną ilość danych , aby szyfrować tylko to, co jest konieczne. Dane nie powinny żyć dłużej niż cykl szyfrowania. Gdy dane nie są już potrzebne, usuń zaszyfrowane dane bez cykli odszyfrowywania wydatków.

Dane przesyłane

  • Używaj bezpiecznych protokołów do komunikacji klient-serwer. Protokoły transportowe mają wbudowaną warstwę zabezpieczeń. Protokół TLS to branżowy standard wymiany danych między punktami końcowymi klienta i serwera.

    Nie używaj wersji starszych niż TLS 1.2. Migrowanie rozwiązań do obsługi protokołu TLS 1.2 i używanie tej wersji domyślnie. Wszystkie usługi platformy Azure obsługują protokół TLS 1.2 w publicznych punktach końcowych HTTPS.

    Ryzyko: Starsi klienci, którzy nie obsługują protokołu TLS 1.2, mogą nie działać prawidłowo, jeśli zgodność z poprzednimi wersjami nie jest obsługiwana.

    Cała komunikacja z witryną sieci Web powinna używać protokołu HTTPS, niezależnie od poufności przesyłanych danych. Podczas uzgadniania klient-serwer negocjuje użycie zasad PROTOKOŁU HTTP Strict Transport Security (HSTS), aby transport HTTPS był utrzymywany i nie porzucany do protokołu HTTP podczas komunikacji. Ta zasada chroni przed atakami typu man-in-the-middle.

    Obsługa hsTS dotyczy nowszych wersji. Możesz przerwać zgodność z poprzednimi wersjami ze starszymi przeglądarkami.

    Uwaga

    Protokoły można również szyfrować w celu ustanowienia bezpiecznych połączeń dla baz danych. Na przykład usługa Azure SQL Database obsługuje protokół strumienia danych tabelarycznych (TDS), który integruje uzgadnianie protokołu TLS.

    Zestaw szyfrowania to zestaw algorytmów używanych do standaryzacji uzgadniania między klientem a serwerem. Szyfry zapewniają szyfrowanie i uwierzytelnienie wymiany. Wybór szyfrów zależy od wersji protokołu TLS używanej przez serwer. W przypadku niektórych usług, takich jak Azure Application Gateway, możesz wybrać wersję protokołu TLS i zestawów szyfrowania, które mają być obsługiwane. Zaimplementuj zestawy szyfrowania, które używają standardu AES (Advanced Encryption Standard) jako szyfru bloków symetrycznych. AES-128, AES-192 i AES-256 są dopuszczalne.

  • Zarządzanie cyklem życia certyfikatów. Certyfikaty mają wstępnie określony okres istnienia. Nie przechowuj certyfikatów długotrwałych i nie zezwalaj na ich wygaśnięcie samodzielnie. Zaimplementuj proces odnawiający certyfikaty z akceptowalną częstotliwością. Możesz zautomatyzować proces odnawiania, które występują w krótkich odstępach czasu.

    Uwaga

    Jeśli używasz przypinania certyfikatów, zapoznaj się z ograniczeniami elastyczności i zarządzania certyfikatami.

    Przepływ pracy nie powinien zezwalać na akceptowanie nieprawidłowych certyfikatów w środowisku. Proces przypinania certyfikatu powinien weryfikować certyfikaty i wymuszać sprawdzanie poprawności. Należy monitorować dzienniki dostępu, aby upewnić się, że klucz podpisywania jest używany z odpowiednimi uprawnieniami.

    W przypadku naruszenia zabezpieczeń klucza certyfikat musi zostać natychmiast odwołany. Urząd certyfikacji (CA) udostępnia listę odwołania certyfikatów (CRL), która wskazuje certyfikaty, które zostały unieważnione przed wygaśnięciem. Sprawdzanie poprawności powinno uwzględniać listy CRL.

    Kompromis: Proces weryfikacji certyfikacji może być uciążliwy i zwykle wiąże się z urzędem certyfikacji. Określ dane, które należy zaszyfrować przy użyciu certyfikatów. W przypadku innych typów komunikacji określ, czy można zaimplementować zlokalizowane mechanizmy kontroli wyrównywujące w celu dodania zabezpieczeń.

    Jednym ze sposobów lokalizowania kontrolek jest wzajemne protokoły TLS (mTLS). Ustanawia zaufanie w obu kierunkach między klientem a serwerem. Zarówno klient, jak i serwer mają własne certyfikaty, a każdy certyfikat jest uwierzytelniany za pomocą pary kluczy publicznych lub prywatnych. W przypadku biblioteki mTLS nie zależysz od zewnętrznego urzędu certyfikacji. Kompromis jest dodatkową złożonością zarządzania dwoma certyfikatami.

  • W razie potrzeby podwójne szyfrowanie połączeń sieci VPN. Wykonaj podwójne szyfrowanie, aby dodać ochronę w głębi tunelu sieci VPN. W przypadku używania dwóch serwerów sieci VPN można ukryć adres IP między serwerami, a także ukryć adres IP między serwerem a miejscem docelowym. Podczas tego procesu dane przesyłane są również szyfrowane dwa razy.

    Kompromis: w porównaniu z konfiguracjami pojedynczej sieci VPN konfiguracje podwójnej sieci VPN są często droższe, a połączenia są często wolniejsze.

  • Implementowanie procesów rejestrowania i monitorowania. Śledź zasoby logowania dostępu, które przechowują informacje o klientach, takich jak źródłowy adres IP, port i protokół. Te informacje służą do wykrywania anomalii.

Dane w użyciu

W przypadku obciążeń o wysokim poziomie zabezpieczeń segmentacja, izolacja i najmniej tajne są zalecane wzorce projektowe.

W kontekście ochrony w użyciu granice sprzętu mogą wymagać szyfrowania danych, gdy są używane w fizycznym procesorze CPU i pamięci, aby zapewnić izolację maszyn wirtualnych, kodu zarządzania hostem i innych składników.

Szyfrowanie i odszyfrowywanie danych musi odbywać się tylko w granicach tych izolacji.

Bardziej rygorystyczne wymagania dotyczące zabezpieczeń lub przepisów mogą również wymagać sprzętowego, kryptograficznie podpisanego dowodu, że dane są szyfrowane, podczas gdy są używane, można je uzyskać za pośrednictwem zaświadczania.

Korzystanie z nowoczesnych środków bezpieczeństwa i prywatności jest typowym wymaganiem dla obciążeń regulacyjnych. Poufne przetwarzanie to jedna z takich technologii, która spełnia wymagania. Określone usługi na platformie Azure oferują możliwość ochrony danych podczas obliczania. Aby uzyskać więcej informacji, zobacz Ułatwienia platformy Azure: poufne obliczenia platformy Azure.

Należy wziąć pod uwagę końcowy cykl życia danych, które chronisz dane , często przechodzi przez wiele systemów w swoim okresie istnienia, dbając o to, aby wszystkie składniki rozwiązania mogły zapewnić wymagany poziom ochrony lub zapewnić, że strategia zarządzania danymi zapewnia odpowiednią segmentację lub maskowanie.

Ułatwienia platformy Azure

W poniższych sekcjach opisano usługi i funkcje platformy Azure, których można użyć do szyfrowania danych.

Klucze zarządzane przez klienta

Przechowywanie kluczy zarządzanych przez klienta w usłudze Azure Key Vault lub w zarządzanym Key Vault module HSM.

Key Vault traktuje klucze jak każdy inny wpis tajny. Kontrola dostępu oparta na rolach (RBAC) platformy Azure uzyskuje dostęp do kluczy za pośrednictwem modelu uprawnień. Ta kontrola oparta na tożsamościach musi być używana z zasadami dostępu Key Vault.

Aby uzyskać więcej informacji, zobacz Zapewnianie dostępu do kluczy Key Vault, certyfikatów i wpisów tajnych przy użyciu kontroli dostępu opartej na rolach.

Usługa Azure Key Vault Premium i zarządzany moduł HSM dodatkowo rozszerza ofertę dzięki możliwościom przetwarzania poufnego i bezpiecznej wersji klucza, która obsługuje zasady w celu zapewnienia, że klucz jest zawsze udostępniany do obciążenia, które może kryptograficznie udowodnić, że jest wykonywane wewnątrz zaufanego środowiska wykonawczego (TEE).

Ochrona danych magazynowanych
  • Usługa Azure Storage automatycznie szyfruje dane za pomocą szyfrów blokowych, gdy dane są utrwalane na koncie magazynu. W przypadku Azure Blob Storage i usługi Azure Queue Storage usługa Storage zapewnia również szyfrowanie po stronie klienta za pośrednictwem bibliotek.

    Aby uzyskać więcej informacji, zobacz Szyfrowanie magazynu.

  • Usługa Azure Virtual Machines zawiera pliki dysków, które służą jako woluminy magazynu wirtualnego. Możesz zaszyfrować pliki dysku wirtualnego, aby nie można było uzyskać dostępu do zawartości.

    Dyski zarządzane można wyeksportować z portalu. Szyfrowanie i szyfrowanie po stronie serwera na hoście może chronić dane tylko po wyeksportowaniu. Jednak podczas procesu eksportowania należy chronić dane. Usługa Azure Disk Encryption umożliwia ochronę i ochronę danych podczas procesu eksportowania.

    Platforma Azure oferuje kilka opcji szyfrowania dla dysków zarządzanych. Aby uzyskać więcej informacji, zobacz Omówienie opcji szyfrowania dysków zarządzanych.

  • SQL Database oferuje funkcję przezroczystego szyfrowania danych, która służy do szyfrowania pliku bazy danych na poziomie strony.

Ochrona danych w trakcie przesyłania

Za pomocą Key Vault można aprowizować i wdrażać publiczne i prywatne certyfikaty Secure Sockets Layer (SSL) lub TLS oraz zarządzać nimi. Certyfikaty można używać z platformą Azure i z wewnętrznymi połączonymi zasobami.

Ochrona danych w użyciu

Określone usługi na platformie Azure oferują możliwość ochrony danych, gdy są obliczane na podstawie fizycznego procesora CPU i pamięci hosta przy użyciu poufnego przetwarzania na platformie Azure.

  • Poufne Virtual Machines oferują całą maszynę wirtualną działającą wewnątrz środowiska TEE, pamięć i wykonywanie zawartości procesora CPU maszyny wirtualnej są szyfrowane, oferując proste podejście "lift & shift" do przenoszenia niezmodyfikowanych aplikacji z wysokimi wymaganiami dotyczącymi zabezpieczeń na platformę Azure. Każda poufne maszyny wirtualnej platformy Azure ma własny dedykowany wirtualny moduł TPM (Virtual Trust Platform Module). Szyfrowanie jest wykonywane podczas bezpiecznego rozruchu składników systemu operacyjnego.

  • Poufne węzły procesu roboczego usługi AKS, kontenery poufne w usłudze AKS lub kontenery poufne w usłudze Azure Container Instances (ACI) oferują możliwość uruchamiania kontenerów niezmodyfikowanych w środowisku TEE, co umożliwia klientom korzystanie z ochrony w użyciu. Oferty kontenerów są wbudowane w poufne Virtual Machines i korzystają z tych samych ochrony.

  • Rozwiązania enklawy aplikacji to specjalnie utworzone aplikacje korzystające z określonych rozszerzeń procesora CPU oferowanych przez jednostki SKU maszyn wirtualnych, które obsługują rozszerzenia Intel Software Guard (SGX), oferują one bardzo szczegółową zaufaną bazę obliczeniową (TCB), ale wymagają, aby aplikacje były specjalnie zakodowane w celu korzystania z funkcji.

  • Bezpieczne wydanie klucza można połączyć z tymi technologiami , aby zagwarantować, że zaszyfrowane dane są zawsze odszyfrowywane wewnątrz środowiska TEE, co potwierdza, że zapewnia wymagany poziom ochrony za pośrednictwem procesu znanego jako zaświadczanie.

Zarządzanie wpisami tajnymi

Za pomocą Key Vault można bezpiecznie przechowywać i kontrolować dostęp do tokenów, haseł, certyfikatów, kluczy interfejsu API i innych wpisów tajnych. Użyj Key Vault jako rozwiązania do zarządzania kluczami i certyfikatami. Jednostka SKU w warstwie Premium obsługuje moduły HSM.

Przykład

W poniższym przykładzie przedstawiono rozwiązania szyfrowania, których można użyć do zarządzania kluczami, certyfikatami i wpisami tajnymi.

Diagram przedstawiający rozwiązania szyfrowania do zarządzania kluczami, certyfikatami i wpisami tajnymi.

Lista kontrolna zabezpieczeń

Zapoznaj się z pełnym zestawem zaleceń.

Lista kontrolna zabezpieczeń