Bezpieczeństwo w PRIV#1: Architektura urządzenia

Bezpieczeństwo w PRIV#1: Architektura urządzenia

Jak wszyscy wiemy przez lata BlackBerry wydawało jedne z najlepiej zabezpieczonych telefonów na rynku, szczególnie w komplecie z oprogramowaniem dedykowanym przedsiębiorstwom lub w razie potrzeby, instytucjom rządowym. W związku z tym klienci czuli się zawsze najbezpieczniej z autorskim systemem operacyjnym kanadyjskiego producenta na pokładzie.

W dobie niesamowitej popularności aplikacji mobilnych, które w ogromnym stopniu uzupełniają możliwości smartfonów niestety jednak wybicie swojego systemu operacyjnego do prostych zadań nie należy i prawda jest taka, że nawet tacy giganci jak Samsung czy Microsoft nie do końca sprostali temu zadaniu i podczas gdy drugi jest w stanie inwestować ogromne pieniądze w rozwój Windows Phone, który wciąż pozostaje marginesem z ok.2% rynku, to Samsung po 4 latach z Badą porzucił dalszy rozwój tego OSu w 2013 roku.

BlackBerry 10 pomimo średnio udanego debiutu stał się świetnym systemem operacyjnym, z którego miliony użytkowników korzysta zarówno do celów służbowych, jak i prywatnych, ale niestety programiści z BlackBerry nie byli w stanie sprostać oczekiwaniom szerszej klienteli.

Nadeszła więc pora na wypróbowanie nowego gruntu. Nowego dla BlackBerry oczywiście, bo Android to już 7-letni, dojrzały system operacyjny opracowany przez Google po wykupieniu firmy Android Inc. w 2005 roku. Ze względu na otwartość i możliwości podobne do znanych z iOS platforma szybko została pokochana przez szersze grono producentów i odbiorców- dzięki temu Android jest także najbardziej narażonym na ataki systemem na świecie. Zainstalowany na 80% urządzeń na całym świecie stał się celem 98% ataków ze strony złośliwego oprogramowania. Nic więc dziwnego, że fani BlackBerry sceptycznie podchodzą do nowego telefonu napędzanego tak narażonym OSem.

Mimo wszystko firma z Waterloo nie byłaby sobą gdyby zaprezentowała urządzenie tak podatne na ataki, więc od dłuższego czasu pracowali nad "sposobem" na bezpiecznego Androida. Co w tym kierunku zrobili i jak to wygląda w praktyce? Na podstawie oficjalnych dokumentów od BlackBerry i własnego kontaktu z PRIV przygotuję trochę informacji, które mam nadzieję zaspokoją w pewnym stopniu ciekawość fanów marki, po czym każdy będzie mógł na własną rękę lepiej ocenić czy telefon od BlackBerry z nowym systemem operacyjnym spełni jego oczekiwania w kwestii bezpieczeństwa.

Priv-Development

#1: Architektura urządzenia

Dla wszystkich, którzy myślą, że PRIV to pierwszy kontakt BlackBerry z systemem operacyjnym od Google- tak nie jest. BlackBerry od czasów PlayBooka posiadało zespół programistów oddelegowany do pracy z Gingerbeardem, a potem Ice Cream Sandwich. Na tej podstawie przygotowali pierwszy Android Runtime na QNX, a przede wszystkim BES 10, czyli prawdziwe multiplatformowe rozwiązanie dla przedsiębiorstw.

Aby zabezpieczyć PRIVa BlackBerry sięgnęło po kilkanaście lat doświadczenia w tym temacie i zabrali się do wszystkiego od nowa- dopracowania każdej warstwy urządzenia, które w rezultacie przekłada się na warstwową ochronę danych użytkownika- nie tylko w kwestii oprogramowania, ale także sprzętowej.

Nowy smartfon będzie wpisywał się w filozofię firmy: "Hardware Root of Trust", czyli formę współpracy sprzętu z oprogramowaniem, którą Kanadyjczycy praktykują od dawna. Podczas rozruchu każdego telefonu BlackBerry system przechodzi przez długi i skomplikowany proces sprawdzania wszelkich fragmentów telefonu:

Zaczyna się to od sprawdzenia cyfrowego podpisu Boot ROMa i po zdaniu tego testu przechodzi do weryfikacji klucza systemu operacyjnego. Wtedy OS może potwierdzić skrót kryptograficzny bazowego systemu plików, a jeśli i to się powiedzie to bazowy system plików testuje jeszcze skróty wszystkich zainstalowanych aplikacji.

A to tylko pierwszy krok tej skomplikowanej procedury. Po sprawdzeniu hardware'u PRIV odpala Secure Boot, który ładuje Firmware (w komputerach jest to np. BIOS, UEFI), a potem przychodzi rozruch Android OS. Secure boot, czyli bezpieczny proces uruchamiania zapewnia, że tylko odpowiednio podpisany przez BlackBerry OS może być załadowany na PRIV i że nie został w żaden sposób naruszone. Każdy etap procesu uruchamiania sprawdza bezpieczeństwo, czy następny element nie został zmodyfikowany przed załadowaniem. Do tego BlackBerry wzmocniło jądro systemowe, a także od momentu wyjęcia z pudełka telefon posiada zaszyfrowaną całą pamięć wewnętrzną. Po przejściu wszystkich etapów dopiero ładują się normalne aplikacje, które także są sprawdzane jeszcze raz w kwestiach zgodności z ich zachowanym podpisem systemowym.

hardware

Jak wygląda weryfikacja bootloadera (programu rozruchowego)?

Etap Opis
Pierwszy bootloader Pierwotny bootloader jest częścią procesora i pozostaje informacją tylko do odczytu. Potwierdza on nakładkę bezpieczeństwa (BlackBerry Security Shim) za pomocą klucza, który wpisywany jest w procesie produkcyjnym (przy użyciu RSA-2048 z SHA-256). PRIV blokuje resztę nośników startowych do czasu załadowania nakładki bezpieczeństwa.
Nakładka bezpieczeństwa (BlackBerry security shim) Nakładka bezpiczeństwa BlackBerry znajduje się pomiędzy pierwszym i drugim bootloaderem i weryfikuje podpis kryptograficzny bootloadera drugiego rzędu (z pomocą ECC-521 i SHA-512) i zapobiega downgradeowi systemu.

Przechowywana jest w pierwotnej partycji rozruchowej pamięci eMMC i pozostaje tylko do odczytu.

Bootloader drugiego rzędu Bootloader drugiego rzędu jest częścią dostarczaną przez sprzedawcę, która składa się na obraz sprzętowy urządzenia, znajdując się w pamięci wewnętrznej procesora. Bootloader wtedy wczytuje się do pamięci CPU i dopiero wtedy jest wykonywany. Wtedy weryfikuje trzeciorzędowy bootloader i tzw. BlackBerry Secure Compound za pomocą RSA-2048 i SHA-256. Przechowywane są dwie podpisane kopie bootloadera drugiego rzędu:
  • Pierwszy obraz przechowywany jest w partycji użytkownika i wykorzystywany przy normalnym procesie uruchamiania (można na nim zapisać dane i zaktualizować)
  • Zapasowy obraz jest przechowywany w partycji rozruchowej i pozostaje chroniony przed zapisem.
Bootloader trzeciego rzędu Trzeci bootloader uruchamiany jest z zewnętrznego DDR zamiast wewnętrznego RAMu, więc nie jest ograniczony przez pamięć jak inne obrazy. Wywołuje i weryfikuje obraz rozruchu (ECC-521 i SHA-256).

Przechowywane są dwie kopie bootloadera trzeciego rzędu:

  • Pierwszy obraz przechowywany jest w partycji użytkownika i wykorzystywany przy normalnym procesie uruchamiania (można na nim zapisać dane i zaktualizować)
  • Zapasowy obraz jest przechowywany w partycji rozruchowej i pozostaje chroniony przed zapisem.
Boot image Rozruch obrazu to właściwe jądro systemowe zlokalizowane w partycji użytkownika pamięci eMMC. Zanim jednak zostanie wczytany obraz systemu dm-verity jeszcze raz sprawdza system plików z pomocą własnego klucza (RSA-2048 z SHA-256). Wtedy ładowany jest system operacyjny Android.

Więcej informacji o dm-verity:
https://source.android.com/devices/tech/security/ verifiedboot/index.html

Mam nadzieję, że proces powstania PRIVa i rozruchu systemu jest Wam już trochę bliższy. W następnym tekście zajmiemy się tematem samego systemu i tym co zrobiło BlackBerry aby nie skompromitować swojego kilkunastoletniego dorobku odpowiednio zabezpieczonych telefonów.

BBNews
Czytaj także
Polecane galerie