Udostępnij za pośrednictwem


Zalecenia dotyczące szyfrowania danych

Dotyczy rekomendacji listy kontrolnej dotyczącej zabezpieczeń dobrze zaprojektowanej struktury:

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 w celu nieczytelnego i blokowania danych 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

Warunki 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 w tekst lub liczby z zamiarem ukrywania informacji.
Klucze Kod tajny używany do blokowania lub odblokowywania zaszyfrowanych danych.
Podpis Zaszyfrowana sygnatura uwierzytelniania 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. Staraj się o wyższy poziom 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.

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.

Powyższe 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.

Określanie wymagań dotyczących szyfrowania

Klasyfikuj dane według celu i poziomu poufności, aby określić, 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 szyfrować 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 wprowadzać opóźnienie wydajności. Złożoność operacyjna może wystąpić w odniesieniu do rozwiązywania problemów i 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. Zaimplementuj procesy zapobiegania kradzieży danych, odpowiednie metody testowania i wykrywanie anomalii.

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

Korzystanie z natywnych mechanizmów 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 musisz zastąpić szyfrowanie dostarczone przez platformę, oceń zalety i wady i użyj standardowych algorytmów kryptograficznych w branży.

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

Wybieranie podejścia do kluczy 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 kluczowe. Masz elastyczność zmiany kluczy , gdy chcesz. 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 w przypadku naruszenia zabezpieczeń klucza. Monitorowanie dostępu w celu wykrywania nietypowego dostępu i działań.

Przechowuj klucze oddzielone od zaszyfrowanych danych. Takie oddzielenie pomaga zagwarantować, że naruszenie zabezpieczeń jednej jednostki nie ma wpływu na drugą. Jeśli używasz kluczy zarządzanych przez klienta, zapisz 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.

Używanie standardowych algorytmów szyfrowania

Używaj algorytmów kryptograficznych, które są dobrze ugruntowane 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 osobie atakującej wyodrębnienie informacji. Określanie tolerowanych progów 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: w przypadku wybrania algorytmu, który jest wysoce złożony lub wprowadza więcej niż rozsądną ilość entropii, obniża wydajność systemu.

Używanie skrótów i sum kontrolnych

Zazwyczaj funkcja tworzenia skrótów jest techniką wykrywania błędów. Można również użyć skrótu dla zabezpieczeń, ponieważ wykrywa zmiany danych, które mogą być spowodowane przez manipulowanie. 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.

Szyfrowanie danych magazynowanych

Klasyfikuj i chroń obiekty 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ć taki sam poziom zabezpieczeń jak 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 atakujących.

    Możesz również użyć szyfrowania dostarczonego przez platformę, aby podwoić szyfrowanie danych. 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 przy użyciu 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 umożliwia kontrolowanie 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.

  • Przechowuj klucze w zarządzanym module HSM , który ma kontrolę dostępu z najmniejszymi uprawnieniami. Oddziel dane od kluczy do danych.

  • Przechowuj ograniczoną ilość danych , aby szyfrować tylko to, co jest niezbędne. Dane nie powinny być aktywne dłużej niż cykl szyfrowania. Gdy dane nie są już potrzebne, usuń zaszyfrowane dane bez wydawania cykli odszyfrowywania.

Szyfrowanie danych podczas przesyłania

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

    Nie używaj wersji niższych 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), tak aby transport HTTPS był utrzymywany i nie spadał do protokołu HTTP podczas komunikacji. Ta zasada chroni przed atakami typu man-in-the-middle.

    Obsługa modułu 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ą, że wymiana jest zaszyfrowana i uwierzytelniona. Wybór szyfrowania zależy od wersji protokołu TLS używanej przez serwer. W przypadku niektórych usług, takich jak aplikacja systemu Azure Gateway, możesz wybrać wersję protokołu TLS i zestawy szyfrowania, które mają być obsługiwane. Zaimplementuj zestawy szyfrowania, które używają standardu AES (Advanced Encryption Standard) jako szyfru blokowego symetrycznego. AES-128, AES-192 i AES-256 są dopuszczalne.

  • Zarządzanie cyklem życia certyfikatów. Certyfikaty mają wstępnie określony okres życia. Nie przechowuj długoterminowych certyfikatów i nie pozwól im wygasać samodzielnie. Zaimplementuj proces odnawiający certyfikaty z akceptowalną częstotliwością. Proces odnawiania, który występuje w krótkich odstępach czasu, można zautomatyzować.

    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 ich wygaśnięciem. Sprawdzanie poprawności powinno uwzględniać listy CRL.

    Kompromis: Proces weryfikacji certyfikacji może być uciążliwy i zwykle obejmuje urząd 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ących 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 przy użyciu 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ójne 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.

Szyfrowanie danych w użyciu

W przypadku obciążeń o wysokim poziomie zabezpieczeń, segmentacji, izolacji i najniższych uprawnień zalecane są 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 hostami i innych składników. Szyfrowanie i odszyfrowywanie danych musi odbywać się tylko w tych granicach izolacji.

Bardziej rygorystyczne wymagania dotyczące zabezpieczeń lub przepisów mogą również wymagać sprzętowego, kryptograficznie podpisanego dowodu, że dane są szyfrowane podczas używania, można je uzyskać za pośrednictwem zaświadczania. 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 ich obliczeń. Aby uzyskać więcej informacji, zobacz Ułatwienia platformy Azure: Poufne obliczenia platformy Azure.

Należy wziąć pod uwagę koniec cyklu życia danych, które chronisz dane, często przechodzi przez wiele systemów w ich okresie istnienia, upewnij się, że wszystkie składniki rozwiązania mogą zapewnić wymagane poziomy ochrony, lub upewnij się, że strategia zarządzania danymi zapewnia odpowiednie segmentacje 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 module HSM usługi Key Vault.

Usługa 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ści musi być używana z zasadami dostępu usługi Key Vault.

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

Usługa Azure Key Vault w warstwie Premium i zarządzany moduł HSM dodatkowo rozszerza ofertę, uwzględniając funkcje poufnego przetwarzania i bezpieczne wydanie klucza, które obsługuje zasady, aby zapewnić, że klucz jest zawsze udostępniany obciążeniu, które może kryptograficznie udowodnić, że jest wykonywane w zaufanym środowisku wykonywania (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 usług Azure Blob Storage i 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 eksportować z portalu. Szyfrowanie i szyfrowanie po stronie serwera na hoście może chronić dane dopiero po ich wyeksportowaniu. Należy jednak chronić dane podczas procesu eksportowania. Za pomocą usługi Azure Disk Encryption możesz chronić i chronić dane 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.

  • Usługa SQL Database oferuje funkcję transparentnego szyfrowania danych używaną do szyfrowania pliku bazy danych na poziomie strony.

Ochrona danych podczas przesyłania

Za pomocą usługi 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 wewnętrznymi połączonymi zasobami.

Ochrona danych w użyciu

Określone usługi na platformie Azure oferują możliwość ochrony danych podczas obliczeń w ramach fizycznego procesora CPU i pamięci hosta przy użyciu poufnego przetwarzania na platformie Azure.

  • Poufne maszyny wirtualne 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 o wysokich wymaganiach dotyczących 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 i zarządzania nimi w środowisku TEE , co umożliwia klientom korzystanie z ochrony w użyciu. Oferty kontenerów są wbudowane poufne maszyny wirtualne i korzystają z tych samych zabezpieczeń.

  • 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 kodowane w celu korzystania z funkcji.

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

Zarządzanie wpisami tajnymi

Usługa Key Vault umożliwia bezpieczne przechowywanie i kontrolowanie dostępu do tokenów, haseł, certyfikatów, kluczy interfejsu API i innych wpisów tajnych. Użyj usługi 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ń