Zapraszam Cię do wspólnego zgłębienia tematu kryptografii w chmurze, jej różnorodnych form oraz sposobu, w jaki wdraża ją Google Cloud.
Przetwarzanie w chmurze, będące podzbiorem IaaS, dawno przestało być jedynie modnym hasłem. Stało się ono dominującą siłą, z której korzystają osoby prywatne, firmy i instytucje rządowe, aby uprościć złożoności związane z lokalną infrastrukturą technologiczną.
Chmura obliczeniowa to kwintesencja wygody, oszczędności i możliwości skalowania.
Mówiąc najprościej, przetwarzanie w chmurze polega na zdalnym wykorzystywaniu zasobów obliczeniowych, takich jak pamięć masowa, RAM czy moc obliczeniowa procesora, za pośrednictwem internetu, bez konieczności fizycznego posiadania tych zasobów.
Przykładem z życia codziennego może być Dysk Google czy Poczta Yahoo. Ufamy tym firmom, powierzając im nasze dane – czasami poufne informacje osobiste lub biznesowe.
Przeciętny użytkownik na ogół nie zastanawia się nad kwestiami prywatności i bezpieczeństwa związanymi z przetwarzaniem w chmurze. Jednak każdy, kto ma choćby podstawową wiedzę o historii inwigilacji czy współczesnych, wyrafinowanych cyberatakach, powinien zachować czujność lub przynajmniej zapoznać się z aktualną sytuacją.
Czym jest kryptografia w chmurze?
Kryptografia w chmurze odpowiada na ten brak pewności, szyfrując dane przechowywane w chmurze, aby uniemożliwić nieautoryzowany dostęp do nich.
Szyfrowanie to proces wykorzystujący szyfr (algorytm) do przekształcenia standardowych danych w formę zaszyfrowaną. W takim przypadku, nawet jeśli dane zostaną ujawnione, osoba niepowołana nie będzie w stanie odczytać ich zawartości.
Istnieją różne rodzaje szyfrowania, dostosowane do konkretnych zastosowań. Z tego powodu kluczowe jest, aby do ochrony danych w chmurze stosować szyfry o wysokiej jakości.
Na przykład, czy rozumiesz poniższy tekst:
Iggmhnctg rtqfwegu jkij-swcnkva vgejpqnqia & hkpcpeg ctvkengu, ocmgu vqqnu, cpf CRKu vq jgnr dwukpguugu cpf rgqrng itqy.
Prawdopodobnie nie!
Dla ludzkiego umysłu to może być zagadka, ale wystarczy użyć dowolnego dekodera Cezara, a tekst zostanie rozszyfrowany w kilka sekund:
Nawet osoba zaznajomiona z szyfrem Cezara szybko zauważy, że każda litera w zaszyfrowanym tekście została przesunięta o dwie pozycje w alfabecie względem swojej odpowiedniczki w tekście jawnym.
Dlatego tak ważne jest stosowanie silnych algorytmów szyfrowania, takich jak AES-256.
Jak działa kryptografia w chmurze?
Z poprzednich akapitów mogłeś odnieść wrażenie, że samodzielnie wybierasz szyfr do zaszyfrowania swoich danych.
Teoretycznie tak to może działać. Jednak zazwyczaj dostawca usług chmurowych oferuje wbudowane szyfrowanie lub możesz korzystać z usług szyfrowania oferowanych przez firmę zewnętrzną.
Rozdzielmy więc to na dwie kategorie i przyjrzyjmy się implementacji.
#1. Szyfrowanie na platformie chmurowej
Jest to najbardziej uproszczona metoda, gdzie renomowany dostawca usług chmurowych bierze na siebie zadanie szyfrowania.
Idealnie sprawdza się w przypadku:
Dane w stanie spoczynku
W tym przypadku dane są szyfrowane przed zapisaniem ich w kontenerach pamięci lub w późniejszym czasie.
Ponieważ kryptografia w chmurze to wciąż nowatorskie podejście, nie ma jednego, z góry ustalonego sposobu jej działania. Powstaje wiele publikacji naukowych, w których badane są różne metody, ale najważniejsze jest ich praktyczne zastosowanie w codziennym życiu.
Jak więc czołowa firma oferująca infrastrukturę chmurową, taka jak Google Cloud, zabezpiecza dane w stanie spoczynku?
Zgodnie z informacjami Google, dane są dzielone na mniejsze bloki o wielkości kilku gigabajtów, a następnie rozpraszane w kontenerach pamięci na różnych komputerach. Jeden kontener może zawierać dane od różnych użytkowników lub od jednego użytkownika.
Co istotne, każdy blok jest szyfrowany indywidualnie, nawet jeśli znajdują się w tym samym kontenerze i należą do tego samego użytkownika. Oznacza to, że jeśli klucz szyfrujący powiązany z jednym blokiem zostanie naruszony, pozostałe pliki pozostaną bezpieczne.
Źródło: Google Cloud
Dodatkowo, klucz szyfrujący jest zmieniany przy każdej aktualizacji danych.
Dane na tym poziomie przechowywania są szyfrowane przy użyciu AES-256, z wyjątkiem niektórych dysków trwałych, które zostały utworzone przed 2015 rokiem, gdzie stosuje się szyfrowanie AES-128-bitowe.
Jest to więc pierwsza warstwa szyfrowania – na poziomie pojedynczego bloku danych.
Następnie dyski twarde (HDD) lub dyski półprzewodnikowe (SSD) przechowujące te bloki danych są szyfrowane za pomocą kolejnej warstwy szyfrowania AES-256-bitowego. W przypadku niektórych starszych dysków HDD nadal stosuje się AES-128. Należy podkreślić, że klucze szyfrowania na poziomie urządzenia różnią się od tych na poziomie pamięci masowej.
Teraz wszystkie te klucze szyfrowania danych (DEK) są dalej szyfrowane przy użyciu kluczy szyfrowania kluczy (KEK), którymi centralnie zarządza usługa zarządzania kluczami Google (KMS). Wszystkie KEK wykorzystują szyfrowanie AES-256/AES-128-bitowe i co najmniej jeden KEK jest powiązany z każdą usługą w chmurze Google.
Klucze KEK są rotowane co najmniej raz na 90 dni za pomocą wspólnej biblioteki kryptograficznej Google.
Każdy klucz KEK jest archiwizowany, a każda próba jego użycia jest monitorowana. Dostęp do nich ma tylko uprawniony personel.
Następnie wszystkie klucze KEK są ponownie szyfrowane za pomocą 256-bitowego szyfrowania AES, co tworzy główny klucz KMS przechowywany w odrębnym systemie zarządzania kluczami, zwanym Root KMS, gdzie przechowywane są nieliczne klucze tego typu.
Root KMS jest zarządzany na dedykowanych maszynach w każdym centrum danych Google Cloud.
Z kolei ten Root KMS jest szyfrowany za pomocą AES-256, co daje pojedynczy, główny klucz KMS przechowywany w infrastrukturze peer-to-peer.
Każde wystąpienie Root KMS działa na głównym dystrybutorze kluczy KMS, który przechowuje klucz w pamięci RAM.
Nowe instancje głównego dystrybutora kluczy KMS są zatwierdzane przez już uruchomione instancje, aby zapobiec oszustwom.
Dodatkowo, aby poradzić sobie z sytuacją, gdy wszystkie instancje dystrybutora muszą zostać uruchomione jednocześnie, kopia zapasowa głównego klucza KMS jest tworzona w dwóch fizycznych lokalizacjach.
Dostęp do tych ściśle chronionych miejsc ma tylko mniej niż 20 pracowników Google.
W ten sposób Google stosuje kryptografię w chmurze w przypadku danych w stanie spoczynku.
Jeśli chcesz wziąć sprawy w swoje ręce, możesz samodzielnie zarządzać kluczami. Alternatywnie, można dodać kolejną warstwę szyfrowania i również samemu zarządzać kluczami. Pamiętaj jednak, że utrata tych kluczy oznacza również zablokowanie dostępu do własnego projektu internetowego.
Nie powinniśmy jednak oczekiwać takiego poziomu szczegółowości od wszystkich innych dostawców chmury. Ponieważ Google pobiera opłatę za swoje usługi, możesz rozważyć skorzystanie z usług innego dostawcy, który będzie tańszy, a jednocześnie dostosowany do twojego indywidualnego modelu zagrożeń.
Dane w trakcie przesyłania
Chodzi o sytuację, gdy dane przemieszczają się w obrębie centrum danych dostawcy chmury lub poza jego granice, na przykład podczas przesyłania z twojego komputera.
Ponownie, nie ma jednego, uniwersalnego sposobu ochrony danych podczas przesyłania, więc przeanalizujmy podejście Google Cloud.
W oficjalnym dokumencie szyfrowanie w trakcie przesyłania opisano trzy metody zabezpieczania danych w ruchu: uwierzytelnianie, szyfrowanie i sprawdzanie integralności.
W swoim centrum danych Google zabezpiecza przesyłane dane poprzez uwierzytelnianie punktów końcowych i weryfikację integralności, a także opcjonalne szyfrowanie.
Chociaż użytkownik może wybrać dodatkowe środki, Google zapewnia najwyższy poziom bezpieczeństwa w swoich obiektach, dzięki niezwykle monitorowanemu dostępowi przyznanemu tylko nielicznym pracownikom.
Oprócz ograniczeń fizycznych, Google stosuje różne podejścia w kwestii bezpieczeństwa dla własnych usług chmurowych (takich jak Dysk Google) oraz dla aplikacji klientów hostowanych w ich chmurze (np. witryny internetowe działające na silniku obliczeniowym).
W pierwszym przypadku cały ruch jest najpierw kierowany do punktu kontrolnego znanego jako Google Front End (GFE), przy użyciu protokołu Transport Layer Security (TLS). Następnie ruch jest poddawany łagodzeniu ataków DDoS, równoważeniu obciążenia na serwerach i ostatecznie kierowany do właściwej usługi Google Cloud.
W drugim przypadku odpowiedzialność za bezpieczeństwo danych w tranzycie spada głównie na właściciela infrastruktury, chyba że do przesyłania danych wykorzystuje on inną usługę Google (taką jak Cloud VPN).
Ogólnie rzecz biorąc, protokół TLS jest stosowany w celu zapewnienia, że dane nie zostaną naruszone podczas przesyłania. Jest to ten sam protokół, który jest używany domyślnie podczas łączenia się z dowolną stroną internetową za pomocą protokołu HTTPS, co symbolizuje ikona kłódki na pasku adresu URL.
Chociaż jest on powszechnie stosowany we wszystkich przeglądarkach internetowych, można go również wykorzystać w innych aplikacjach, takich jak poczta e-mail, połączenia audio/wideo, komunikatory itp.
Jednak dla najwyższych standardów szyfrowania istnieją wirtualne sieci prywatne, które ponownie zapewniają wiele warstw bezpieczeństwa dzięki zaawansowanym szyfrom, takim jak AES-256.
Jednak samodzielne wdrożenie kryptografii w chmurze jest trudne, co prowadzi nas do…
#2. Szyfrowanie jako usługa
W tym przypadku domyślne protokoły bezpieczeństwa na Twojej platformie chmurowej są słabe lub nie ma ich wcale w określonych przypadkach użycia.
Oczywiście jednym z najlepszych rozwiązań jest samodzielne nadzorowanie wszystkiego i zapewnienie bezpieczeństwa danych klasy korporacyjnej. Łatwiej to jednak powiedzieć, niż zrobić, a w rezultacie znika bezproblemowe podejście, które jest jednym z powodów, dla których ktoś wybiera przetwarzanie w chmurze.
Dlatego możemy skorzystać z szyfrowania jako usługi (EAAS), np. CloudHesive. Tak samo jak w przypadku korzystania z chmury obliczeniowej, tym razem „wypożyczamy” szyfrowanie, a nie procesor, pamięć RAM, pamięć masową itd.
W zależności od dostawcy EAAS, możesz korzystać z szyfrowania danych w stanie spoczynku i w trakcie przesyłania.
Zalety i wady kryptografii w chmurze
Najbardziej oczywistą zaletą jest bezpieczeństwo. Kryptografia w chmurze zapewnia, że dane użytkowników pozostają z dala od cyberprzestępców.
Chociaż kryptografia w chmurze nie powstrzyma każdego włamania, chodzi o podjęcie działań i odpowiednie uzasadnienie w przypadku niepowodzenia.
Jeśli chodzi o wady, pierwszą z nich jest koszt i czas potrzebny na aktualizację istniejącej infrastruktury bezpieczeństwa. Ponadto, niewiele pomoże, jeśli utracisz dostęp do kluczy szyfrujących podczas samodzielnego zarządzania nimi.
Ponieważ jest to wciąż rozwijająca się technologia, znalezienie sprawdzonej usługi EAAS również nie jest łatwe.
Podsumowując, najlepszym rozwiązaniem jest skorzystanie z usług renomowanego dostawcy usług chmurowych i zaufanie wbudowanym mechanizmom kryptograficznym.
Podsumowanie
Mamy nadzieję, że ten artykuł pomógł Ci zrozumieć, czym jest kryptografia w chmurze. W skrócie, chodzi o bezpieczeństwo danych związanych z chmurą, również w przypadku, gdy dane są przesyłane na zewnątrz.
Większość czołowych firm oferujących infrastrukturę chmurową, takich jak Google Cloud, Amazon Web Services itp., ma odpowiednie zabezpieczenia dla większości przypadków użycia. Mimo to warto zapoznać się z technicznym żargonem przed udostępnieniem komukolwiek aplikacji o krytycznym znaczeniu.
PS: Sprawdź rozwiązania optymalizacji kosztów w chmurze dla AWS, Google Cloud, Azure itp.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.