Jak zabezpieczyć swoje urządzenie przed wykradaniem danych?

Urządzenia elektroniczne codziennego użytku, w tym IoT, coraz częściej są wykorzystywane do przechowywania wrażliwych danych. Wśród nich znajdują się informacje osobiste, dotyczące na przykład stanu zdrowia, ale też numery kart kredytowych czy dokumenty objęte NDA. To wszystko sprawia, że bezpieczeństwo jest obecnie jednym z najważniejszych zagadnień podczas tworzenia elektroniki. Czy można uchronić się przed niekontrolowanym wyciekiem danych? W jaki sposób?

Szyfrowanie.

Ma na celu takie przekształcenie danych jawnych, by nie było możliwe ich odczytanie przez osoby postronne. Polega na zastosowaniu odpowiednich algorytmów matematycznych, które dzięki wykorzystaniu kluczy szyfrujących o odpowiedniej długości są w stanie utajnić informację. Chyba najbardziej znanym zastosowaniem tego rozwiązania jest Enigma. Stosowała ona kryptografię symetryczną. Oznacza to, że nadawca i odbiorca informacji wykorzystywali wspólny, tajny klucz. Obecnie bardzo popularna jest nieco inna metoda kryptografii, zwana asymetryczną. Wykorzystuje ona funkcje jednokierunkowe, czyli takie, dla których bardzo trudne jest przeprowadzenie operacji odwrotnej. Klucz szyfrujący jest tutaj publiczny, każdy może go podejrzeć i wykorzystać do utajnienia informacji. Aby jednak odczytać tak przekształcone dane, niezbędne jest wykorzystanie osobnego klucza prywatnego znanego tylko odbiorcy. Nie jest on nigdzie przesyłany, zatem nie da się go podsłuchać. Znacząco zwiększa to bezpieczeństwo informacji, ponieważ jedynym sposobem na ich odczyt jest przechwycenie utajnionych pakietów i próba samodzielnego złamania algorytmu Taki rodzaj szyfrowania pochłania bardzo dużo zasobów. Z tego powodu najczęściej wykorzystywany jest do zabezpieczania kluczy szyfrów symetrycznych. Operację taką nazywamy kryptografią hybrydową. Przykładami algorytmów szyfrujących są RSA i AES.

Hashowanie.

Wykorzystuje funkcje skrótu, czyli przypisuje każdemu dowolnie dużemu zbiorowi danych unikalną sygnaturę o stałej długości. Dzięki temu możliwe jest na przykład porównanie przekopiowanych danych z oryginałem lub weryfikacja autentyczności. W kontekście cyberbezpieczeństwa hashowanie wykorzystuje się między innymi przy elektronicznym podpisywaniu dokumentów i certyfikatów. Jest to skutek tego, że funkcje skrótu są nieodwracalne i deterministyczne. Innymi słowy, ten sam zestaw danych przepuszczony przez konkretny algorytm zawsze da ten sam wynik, ale znając hash nie jest możliwe odgadnięcie danych wejściowych. Co za tym idzie, zamiast przesyłać informacje narażając się na ich wyciek, możemy przekazać skrót – a algorytm po drugiej stronie na tej podstawie będzie w stanie określić zgodność otrzymanych danych z wzorcem. Ze względu na sprowadzanie dowolnie dużego zestawu informacji do ciągu znaków o ustalonej długości możliwe jest jednak wystąpienie kolizji. Nazywamy tak sytuację, w której dwa różne argumenty wyjściowe dają ten sam skrót. Przykładem może być konflikt algorytmu, który dla różnych haseł, np. "admin123", "68NbvZ!aa", wygenerowałby identyczny hash. Matematycznie niemożliwe jest stworzenie bezkolizyjnej funkcji skrótu, aczkolwiek stosując odpowiednio długie hashe można ograniczyć prawdopodobieństwo wystąpienia niepożądanego zjawiska do minimum. Jednymi z najpopularniejszych algorytmów funkcji skrótu są SHA-2 oraz MD5.

Kryptoprocesory.

Szyfrowanie może być realizowane przez software. W takiej sytuacji wykorzystywane są ogólnodostępne zasoby urządzenia, na którym uruchomiony jest algorytm. Bezpieczniejszym rozwiązaniem jest wykorzystanie dedykowanych układów, kryptoprocesorów. Dane podane na ich wejściu przechodzą przez układ i opuszczają go w formie szyfrogramu lub hashu. Kryptoprocesory są odporne na złamanie. Jakkolwiek klucze szyfrujące przechowywane są w odpowiednich komórkach pamięci zazwyczaj w formie jawnej, nie jest możliwe ich podejrzenie. Wynika to zarówno z odpowiednio niskiego procesu technologicznego utrudniającego poznanie wartości na poszczególnych bramkach, jak i z zabezpieczeń fizycznych. Produkowane są na przykład kryptoprocesory zawierające materiały, które przy próbie prześwietlenia układu promieniami Roentgena niszczą przestrzeń, w której zapisane są klucze. Jednymi z najpopularniejszych zastosowań kryptoprocesorów są układy TPM w komputerach osobistych oraz chipy Secure Enclave montowane w sprzęcie Apple.

Uwierzytelnianie.

Jest to proces mający na celu potwierdzenie, że strona biorąca udział w wymianie danych jest tym, za kogo się podaje. Można to przyrównać do okazywania dowodu osobistego podczas wizyty w banku. Uwierzytelnianie następuje po identyfikacji, czyli podaniu zadeklarowanej tożsamości. Prostą implementacją tego mechanizmu jest żądanie hasła. Bardziej skomplikowane rozwiązania wykorzystują dane z zewnątrz, by zminimalizować ryzyko podszycia się pod podmiot uprawniony do uzyskania dostępu do informacji. Przykładem jest tu weryfikacja dwuskładnikowa (2FA). Poza podaniem tożsamości (loginu) i hasła wymaga ona wprowadzenia tokenu, czyli jednorazowego kodu wyświetlanego na innym, zalogowanym urządzeniu, albo wysyłanego w formie wiadomości SMS/e-mail. Przy wykorzystaniu kryptoprocesorów możliwe jest bezpieczne uwierzytelnianie biometryczne. Polega ono na tym, że dedykowany układ zawiera informacje o naszych liniach papilarnych, skanach tęczówek, trójwymiarowych modelach twarzy. Gdy spojrzymy na odpowiednie urządzenie lub przyłożymy doń palec, wykonywany jest skan i wyniki porównywane są z tymi zapisanymi w urządzeniu. Wszystko odbywa się lokalnie, wysyłana na zewnątrz jest jedynie informacja o zgodności (lub jej braku), co utrudnia przeprowadzenie ataków.

Czy to wystarczy, by zapewnić stuprocentowe bezpieczeństwo danych?

Nie. Mechanizmy szyfrowania czy dedykowane układy mogą zmniejszyć ryzyko wycieku danych, ale łańcuch zabezpieczeń jest tak silny, jak jego najsłabsze ogniwo. Niestety, tym ogniwem jest użytkownik. Zazwyczaj to on przez swoją nieodpowiedzialność staje się ofiarą cyberataku opartego na socjotechnice. Przykładem takiego działania jest phishing, czyli wyłudzanie danych poprzez podszywanie się pod jakąś zaufaną instytucję, jak strona internetowa banku.

Jak pomagamy klientom w tworzeniu bezpiecznych urządzeń?

W trakcie planowania i budowania prototypu, uzyskujemy od klienta informacje, jakie dane wrażliwe zamierza przechowywać w swoim urządzeniu. Na tej podstawie ustalamy, jaki rodzaj zabezpieczeń dodamy do urządzenia czy programu. Mamy wiedzę w zakresie zabezpieczeń software’owych, jak i fizycznych - możemy zaproponować do prototypu urządzenia np. wyspecjalizowane układy kryptograficzne czy pamięci z dodatkowym blokiem szyfrowania. Co więcej, uświadamiamy naszych klientów, jak chronić się przed atakami socjotechnicznymi.