MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Szyfrowanie baz danych:dlaczego i gdzie potrzebne jest szyfrowanie danych

Szyfrowanie bazy danych zapewnia większe bezpieczeństwo danych przechowywanych i przesyłanych. Wiele organizacji zaczęło poważnie traktować szyfrowanie danych w związku z ostatnimi przypadkami naruszenia bezpieczeństwa. W większości przypadków serwery baz danych są częstym celem atakujących, ponieważ zawierają najcenniejszy zasób dla większości organizacji. Gdy intruz uzyska dostęp do cennych danych z twojego serwera, prawdopodobnie ukradnie z niego dane. Następnie wykorzystują dane do okupu, wykorzystywania danych lub innych korzyści finansowych od organizacji, którą zaatakowali.

W tym blogu omawiamy, dlaczego szyfrowanie bazy danych jest ważne i jak szyfrowanie danych odgrywa znaczącą rolę w zabezpieczaniu bazy danych.

Po co mi szyfrowanie bazy danych?

Szyfrowanie bazy danych to proces konwersji danych w bazie danych na „tekst zaszyfrowany” (tekst nieczytelny) przy użyciu algorytmu. Aby odszyfrować tekst, musisz użyć klucza wygenerowanego z algorytmu. Proces szyfrowania bazy danych jest wysoce zalecany, szczególnie dla firm zajmujących się finansami, opieką zdrowotną lub e-commerce. Ostatnio szerzyły się cyberataki, kradzieże danych lub naruszenia bezpieczeństwa danych; w związku z tym rośnie zaniepokojenie danymi prywatnymi. Ludzie są bardzo świadomi prywatności i bezpieczeństwa danych i chcą, aby ich dane były chronione i wykorzystywane tylko wtedy, gdy jest to wymagane. Oto kilka dobrych korzyści z posiadania szyfrowania bazy danych:

Unikaj ataków na zabezpieczenia

Ataki na zabezpieczenia są nieuniknione, ale dzięki lepszym zabezpieczeniom i metodom szyfrowania danych intruzi mogą nie analizować ani odszyfrowywać danych w celu dalszego zrozumienia danych w przypadku naruszenia bezpieczeństwa danych. Załóżmy, że podczas tworzenia kopii zapasowej lub przesyłania między serwerami ma miejsce atak typu Man-in-the-middle (MITM) lub podsłuchiwanie. Jeśli jest to nieszyfrowany transfer danych, jest to zdecydowanie korzystne dla atakujących; nie jest to sytuacja, którą chcesz mieć w swoim środowisku!

Jeśli masz zaszyfrowaną bazę danych, atakujący musi znaleźć sposób na odszyfrowanie zaszyfrowanych danych. To, jak daleko mogą się posunąć, zależy od złożoności szyfrów i algorytmów zastosowanych do generowania zaszyfrowanych danych. Ponadto atakujący dołożą wszelkich starań, aby uzyskać dostęp do kluczy szyfrowania, co doprowadzi ich do otwarcia skarbca lub odszyfrowania zaszyfrowanych danych, podobnie jak w przypadku wydobywania złota; w końcu dane są obecnie nowym złotem. Aby uniknąć tego rodzaju prób naruszenia danych, ważne jest zabezpieczenie infrastruktury na wszystkie sposoby, w tym ograniczenie dostępu do serwerów tam, gdzie to możliwe.

Zgodność z przepisami bezpieczeństwa

W przypadku przepisów dotyczących bezpieczeństwa, takich jak PCI-DSS, szyfrowanie jest jednym z najważniejszych wymagań. Jest to wymóg obowiązkowy. Na przykład wszystkie dane posiadacza karty muszą być zaszyfrowane przy użyciu algorytmów akceptowanych w branży (np. AES-256, RSA 2048), obcięte, tokenizowane lub zaszyfrowane (zatwierdzone algorytmy skrótu określone w FIPS 180-4:SHA-1, SHA-224, SHA-256, SHA-384 SHA-512, SHA-512/224 i SHA-512/256). Chociaż nie jest to jedyna rzecz, którą należy uwzględnić w przypadku zaszyfrowanych danych, PCI-DSS wymaga również pokrycia procesu zarządzania kluczami szyfrowania PCI-DSS.

Ochrona poufnych danych

Zarządzanie kluczami szyfrowania jest idealne do ochrony poufnych danych dzięki scentralizowanemu zarządzaniu kluczami i prostym interfejsom API do szyfrowania danych. Przykładami takiego zarządzania kluczami są Hashicorp Vault (open source) lub jeśli korzystasz z chmury publicznej (zamknięte źródło), najczęściej zarządzanie kluczami o zamkniętym źródle to Amazon Web Service (AWS) Key Management Service (KMS), Google Cloud KMS, Microsoft Azure Key Vault.

Co to jest szyfrowanie danych?

Szyfrowanie to jedna z najważniejszych funkcji bezpieczeństwa, która zapewnia maksymalne bezpieczeństwo danych. W zależności od danych, którymi się zajmujesz, nie zawsze jest to konieczne, ale powinieneś przynajmniej rozważyć to jako poprawę bezpieczeństwa w Twojej organizacji. W rzeczywistości zaleca się unikanie kradzieży danych lub nieautoryzowanego dostępu.

Szyfrowanie danych to proces kodowania danych. Jest to głównie funkcja dwukierunkowa, co oznacza, że ​​zaszyfrowane dane muszą zostać odszyfrowane przy użyciu prawidłowego klucza szyfrowania. Szyfrowanie jest jedną z takich technik kryptografii. Szyfrowanie to sposób na ukrycie informacji poprzez zmianę ich tak, aby wyglądały na dane losowe — metody szyfrowania mogą sprawić, że Twoje dane (na przykład wiadomości) będą poufne, ale jednocześnie do zapewnienia integralności i autentyczności wymagane są inne techniki i strategie wiadomości. Szyfrowanie jest bardziej operacją matematyczną.

W przypadku szyfrowania baz danych istnieją dwa podstawowe typy szyfrowania danych. Te typy szyfrowania to dane w spoczynku i dane w drodze. Zobaczmy, co mają na myśli.

Szyfrowanie danych w spoczynku

Dane przechowywane w systemie nazywane są danymi w spoczynku. Szyfrowanie tych danych polega na użyciu algorytmu do konwersji tekstu lub kodu, aby był nieczytelny. Aby odkodować zaszyfrowane dane, musisz mieć klucz szyfrowania.

Szyfrowanie całej bazy danych należy wykonywać ostrożnie, ponieważ może to mieć poważny wpływ na wydajność. Dlatego mądrze jest zaszyfrować tylko pojedyncze pola lub tabele. Szyfrowanie danych w spoczynku chroni dane przed fizyczną kradzieżą dysków twardych lub nieautoryzowanym dostępem do przechowywania plików. Szyfrowanie to jest również zgodne z przepisami dotyczącymi bezpieczeństwa danych, zwłaszcza jeśli w systemie plików znajdują się dane finansowe lub zdrowotne.

Szyfrowanie danych w spoczynku:gdzie ma zastosowanie?

Obejmuje to dane w spoczynku, takie jak dane bazy danych przechowywane w określonej lokalizacji. Na przykład katalog danych PostgreSQL, katalog danych MySQL/MariaDB lub lokalizacje przechowywania dbPath MongoDB. Powszechnym procesem zapewniania szyfrowania jest użycie przezroczystego szyfrowania danych (TDE). Koncepcja polega głównie na szyfrowaniu wszystkiego, co jest trwałe.

Poza tym kopie zapasowe baz danych są bardzo podatne na kradzież danych i nieautoryzowany dostęp. Są one fizycznie przechowywane w nieulotnej pamięci masowej. Chociaż te konfiguracje są narażone na odczyt w przypadku nieautoryzowanego dostępu lub kradzieży danych, szyfrowanie danych pomaga uniknąć niepożądanego dostępu. Oczywiście wiąże się to również z zabezpieczeniem kluczy szyfrowania gdzieś ukrytym i nie przechowywanym na tym samym serwerze. Szyfrując dane bazy danych przechowywane jako pliki binarne i kopie zapasowe, niezależnie od tego, czy jest to kopia logiczna, czy binarna, pamiętaj, że zaszyfrowane dane wpływają na wydajność i zwiększają rozmiar pliku.

Szyfrowanie danych podczas przesyłania

Dane przesyłane lub przemieszczane między transakcjami są określane jako dane w drodze. Dobrym przykładem tego typu danych są dane przemieszczające się między serwerem a klientem podczas przeglądania stron internetowych. Ponieważ jest zawsze w ruchu, musi być zaszyfrowany, aby uniknąć kradzieży lub zmiany danych, zanim dotrą do miejsca przeznaczenia.

Idealną sytuacją do ochrony przesyłanych danych jest zaszyfrowanie danych przed ich przeniesieniem i odszyfrowanie po dotarciu do miejsca docelowego.

Szyfrowanie danych w drodze:gdzie to ma zastosowanie?

Jak określono powyżej, dotyczy to kanału komunikacji między klientem bazy danych a serwerem bazy danych. Weź pod uwagę serwer aplikacji i kanały serwera bazy danych, które zostały naruszone, a atakujący lub intruz podsłuchuje lub przeprowadza atak MITM. Atakujący może nasłuchiwać i przechwytywać dane przesyłane przez niezabezpieczony kanał. Można tego uniknąć, jeśli dane przesyłane przewodowo z klienta bazy danych i kanału komunikacyjnego serwera bazy danych są szyfrowane przy użyciu szyfrowania TLS/SSL.

Radzenie sobie z szyfrowaniem baz danych również wiąże się z wieloma wyzwaniami. Chociaż są zalety, zdarzają się przypadki, że jest to wada. Przyjrzyjmy się, co to jest.

Zalety szyfrowania danych

Oto lista powszechnych i rzeczywistych przypadków, w których szyfrowanie danych jest zaletą.

  • Zapewnia bezpieczeństwo dla wszystkich Twoich danych przez cały czas

  • Zawsze chroni prywatność i poufne informacje

  • Chroni Twoje dane na różnych urządzeniach

  • Zabezpiecz zgodność z przepisami prawa

  • Daje ci przewagę nad konkurencją

  • Obecność podstawowej technologii szyfrowania w celu ochrony danych może zwiększyć zaufanie

  • Zaszyfrowane dane zachowują integralność

Wady szyfrowania danych

Szyfrowanie danych nie oznacza sukcesu biznesowego. Nie daje Ci przewagi jako rozwijająca się, innowacyjna i zaawansowana technologia bez znajomości jej wyzwań i najlepszych praktyk w zakresie wdrażania i radzenia sobie z tym problemem. Prawdą jest powiedzenie, że „Wszystko, co się błyszczy, nie jest złotem”. Istnieją pewne wady, jeśli masz szyfrowanie danych, gdy nie rozumiesz jego głównego celu.

Szyfrowanie danych i kary za wydajność

Szyfrowanie obejmuje złożone i wyrafinowane operacje matematyczne w celu ukrycia znaczenia danych. W zależności od tego, jakie typy szyfrów lub algorytmów wybierzesz do haszowania lub deszyfrowania danych. Złożone i wyższe bity są, jeśli twoja baza danych jest zaprojektowana do obsługi mnóstwa żądań, to obciąży twoje zasoby, zwłaszcza procesor. Skonfigurowanie szyfrowania danych, takiego jak TLS podczas przesyłania lub korzystanie z RSA 2048 bitów, może być zbyt trudne, jeśli Twoja zdolność finansowa nie uwzględnia tego rodzaju konsekwencji. Zajmuje dużo zasobów i dodatkowo obciąża procesor systemu. Chociaż nowoczesne systemy komputerowe są potężne i przystępne cenowo, szczególnie w przypadku ofert chmury publicznej mogą być do zaakceptowania. Najpierw przygotuj ocenę i określ, jaki rodzaj szyfrowania wpłynie na wydajność w kontekście, w którym będziesz go używać. Ważne jest również, aby zrozumieć, że wydajność różnych rozwiązań szyfrowania jest różna. Co oznacza, że ​​potrzeba szybkości i bezpieczeństwa musi być dokładnie równoważona względem siebie.

Utrata kluczy szyfrowania danych

Powszechne staje się przechowywanie kluczy szyfrowania w bezpiecznym skarbcu, jak wspomniano wcześniej, takim jak Hashicorp Vault, AWS KMS i inne. Jednym z głównych problemów związanych z szyfrowaniem jest to, że jeśli ktoś zgubi klucz odszyfrowywania, oznacza to duże kłopoty. Można odnieść się, że jest to prawie to samo, co posiadanie hasła, ale jest ono traktowane jako globalny klucz do odszyfrowania wszystkich zaszyfrowanych danych. Nie, chyba że masz różne klucze szyfrowania dla każdego aspektu swojej bazy danych, może to oznaczać, że wiele haseł musi być zapamiętanych i musi być bezpiecznie przechowywanych.

Szyfrowanie danych wpływa na czas odzyskiwania

Jeśli Twoje dane w spoczynku, takie jak kopie zapasowe, są zaszyfrowane, w przypadku całkowitej awarii odzyskiwanie z użyciem własnej kopii zapasowej może podwoić lub potroić czas, a nawet znacznie więcej, w zależności od ustawienia typu algorytmu lub szyfrów. Zwiększa to presję, gdy potrzebujesz, aby klaster i aplikacja działały na czas, ale nie może z powodu odszyfrowania lub odszyfrowania danych zająć zbyt dużo czasu i zasobów systemowych.

Ograniczona ochrona przed atakami na poziomie aplikacji lub wewnętrznymi atakami

Oczywiście jest to zrozumiałe dzięki istocie szyfrowania. Ale to nie znaczy, że nie musisz już szyfrować tylko dlatego, że nie zapewnia to ochrony na poziomie aplikacji. Oczywiście jest to kolejna warstwa bezpieczeństwa, którą należy zastosować w warstwie aplikacji. Zdecydowanie, jeśli ktoś uzyska dostęp do użytkownika/hasła bazy danych, zwłaszcza z dostępem administracyjnym, to szyfrowanie tutaj nie pomaga. Atakujący może pobrać dane, uruchamiając serię zapytań SQL, które są oczywiście czytelne dla człowieka, chyba że istnieje pewien poziom logiki aplikacji, który szyfruje prawdziwe znaczenie danych. Z drugiej strony, to tylko dodaje dodatkowej pracy i złożoności ogólnej powiązanej technologii, której używasz. Jeśli masz duży zespół, który jest przypisany do każdej z tych warstw, jest to wielka zaleta, ponieważ zarządzanie złożonością może być poświęcone tylko każdej roli, na której mają się koncentrować.

Współpraca i zaufanie z partnerami posiadającymi klucze szyfrowania danych

Zdecydowanie warto tutaj rozważyć. Co się stanie, jeśli osoba równorzędna, która zna klucze i miejsce ich przechowywania, lub odszedł hasło do skarbca? Bardzo ważne jest wyznaczenie fizycznego dostępu do serwera, na którym przechowywane są klucze i hasła. Bardzo ważne jest wyznaczenie roli i ograniczenie dostępu do tych kluczy i haseł. Pomaga również, jeśli masz długą i złożoną kombinację haseł, która będzie trudna do zapamiętania, ale jednocześnie będzie łatwa do odzyskania w razie potrzeby. Chociaż brzmi to ironicznie, sekret musi pozostać święty.

Czy powinienem dbać o szyfrowanie danych?

Szyfrowanie danych jest pożądane i często obowiązkowe, jak wspomniano, w zależności od schematu procesu aplikacji oraz projektu i poziomu działalności, z którą się angażujesz.

Czy interesuje Cię szyfrowanie danych? Zdecydowanie tak. Pojawia się również z osobistą zależnością i celem biznesowym. Jednak w obecności danych wrażliwych, zwłaszcza gdy zbudowałeś już własną osobowość i możliwości finansowe w swojej organizacji i firmie, wszystkie dane mają bardzo wyższy poziom wrażliwości. Nie chcesz, aby ktoś wykradł Twoje dane i wiedział o wszystkich strategicznych i biznesowych rzeczach związanych z rozwojem Twojej firmy. Dane w tym przypadku muszą być zabezpieczone; w związku z tym szyfrowanie jest niezbędnym aspektem zabezpieczenia bazy danych i samych danych.

Wnioski

Ponieważ dane wrażliwe zawsze istnieją nawet w naszym codziennym życiu osobistym, ilość danych wrażliwych i cennych wzrasta równolegle w organizacji. Ważne jest, aby zrozumieć, że nie wszystkie dane wymagają szyfrowania. Zdecydowanie niektóre dane są udostępniane globalnie lub często zmieniane; tego typu dane nie muszą być szyfrowane. Zwróć uwagę na zalety i wady korzystania z szyfrowania w swojej bazie danych. Ustalenie, gdzie ma on zastosowanie i jak go stosować, pomaga osiągnąć bezpieczne środowisko bez wpływu na wydajność.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_ARRAY_APPEND() Objaśnienie

  2. Jak korzystać z mechanizmu przełączania awaryjnego MaxScale

  3. Serwer MariaDB 10.0.33 jest już dostępny

  4. Ciągi formatu daty MariaDB

  5. MariaDB CONNECTION_ID() Objaśnienie