Jest kilkanaście aspektów, które brałbym pod uwagę w swoich poszukiwaniach.
1. Możliwość odinstalowania każdej aplikacji
Dobry system powinien pozwalać na usunięcie (nie tylko zablokowanie) każdej aplikacji użytkowej, włącznie z aplikacjami systemowymi. Dzięki temu użytkownik mógłby się pozbyć bloatware’u dodawanego przez niektórych operatorów telekomunikacyjnych. Przykładowo w Androidzie powinno móc dać się usunąć:
• wszystkie narzędzia Google’a,
• wszystkie narzędzia dodawane przez producenta, gdy są niepotrzebne (np. Huawei Health…)
• mechanizm pobierania danych w różnych telefonach,
• narzędzia dostarczania reklam,
• bloatware operatora.
Dodatkowo powinno dać się zastąpić je aplikacjami innego producenta. Z moich doświadczeń z rootowanymi telefonami, usunięcie bloatware’u wydłużało czas działania telefonu na jednym ładowaniu o 1 do 2 dni.
Najbliżej: Android po operacji root.
2. Obsługa różnych APN
Najbliżej mi do modelu bezpieczeństwa obecnego w Nokiach z systemem Symbian. Tam dostęp do Internetu był przywilejem, a nie regułą. System powinien obsługiwać różne APN, dzięki czemu można by było zablokować transmisję danych za granicą (kto był poza UE, ten wie o jakich kosztach mówimy) ale zostawić możliwość wysyłania i odbierania MMS (też kosztuje, ale nie aż tak wiele). Dodatkowo te uprawnienia można byłoby wybierać per aplikacja, interfejs i APN. Wtedy można byłoby pozwolić na dostęp tekstowego komunikatora przez GPRS, pozwolić na wysyłanie MMS-ów, blokując dostęp do GPRS innym aplikacjom dla APN Internet. Obecnie żaden z systemów nie oferuje takiej możliwości – a to było w Symbianie i działało bardzo dobrze!
Najbliżej: brak.
3. Pełna komunikacja Bluetooth
Oprócz komunikacji z zestawem słuchawkowym, głośnomówiącym i głośnikami, interfejs Bluetooth powinien obsługiwać transmisję danych. System powinien umożliwiać synchronizację kontaktów i zamapowanie lokalnej karty pamięci, by łatwo przekopiować dane bez łączenia kablem. Do tych celów powinno być otwarte API. Chociaż transfer nie będzie szybki, zaletą będzie jego prostota – wystarczy sparowanie urządzenia z komputerem. Aby utrudnić włamywaczom działanie, system powinien posiadać opcję okresowego włączania interfejsu BT, lub uzależnienia go od wykrytej przez system lokalizacji.
Najbliżej: Android.
4. Inteligentne zarządzanie profilami
Smartfony wykorzystujemy w różnych miejscach i wymagamy od nich różnego zachowania – niekiedy musimy telefon wyciszyć całkowicie, kiedy indziej wprost przeciwnie – potrzebujemy głośnego dźwięku dzwonka. System powinien posiadać przynajmniej trzy profile: normalny, głośny, wyciszony, które można będzie przypisać do lokalizacji lub włączać na żądanie. Każdy z tych profili musi dać się dostosować – inne dzwonki, inne powiadomienia. Nie jest to nic nowego, gdyż identyczne możliwości posiadały Nokie z Symbianem piętnaście lat temu. Po zainstalowaniu oprogramowania „Mini GPS”, właściwy profil można było stosować automatycznie, gdy tylko telefon znalazł się w zasięgu określonych stacji bazowych.
Najbliżej: brak (bo nie ma sensownie działających profili i presetów).
5. Odczytywanie wiadomości
Smartfony są wyposażone w syntetyzer głosu, szeroko wykorzystywany w różnych aplikacjach, włącznie z nawigacją, działające w pełni offline. Dlaczego nie ma wbudowanej opcji odczytywania treści wiadomości SMS i e-mail? Po polsku! Tak, jak potrafiła to Nokia E71.
Najbliżej: brak.
6. Dobrze działające wybieranie głosowe
Nie potrzebuję przewodnika ani rozpoznawania głosu z chmurą Google’a ani Apple, ani Microsoftu. Oczekuję od telefonu dobrego wybierania numerów telefonu po rozpoznawaniu mojego głosu. Bez połączenia z Internetem. Tak samo, jak potrafiła to zrobić Nokia z Symbianem.
Najbliżej: Android, ale tylko w języku angielskim i tylko cyfry.
7. Sklep z aplikacjami
Od sklepu oczekiwałbym bardzo dokładnej weryfikacji dostarczanego oprogramowania, by prawdopodobieństwo złapania złośliwej apki (lub takiej, która nie dba o prywatność i bezpieczeństwo – co w dłuższej perspektywie na jedno wychodzi) z oficjalnego store’u było bliskie zeru. Obecnie żaden z dostawców nie spełnia tego warunku. Być może wyjściem byłby obowiązek publikowania kodu źródłowego? Środowisko open source całkiem nieźle radzi sobie z tym problemem od 20 lat. Być może ściślejsze wymagania odnośnie do budowania aplikacji pomogłyby wyegzekwować bezpieczeństwo i prywatność użytkowników. Może za udowodnione nadużycie – wypad z baru?
Dodatkowo system powinien obsługiwać instalację aplikacji z innych źródeł, ale w taki sposób, by utrudnić socjotechnikę. Może przed instalacją apki trzeba było wykonać jakieś dodatkowe czynności (nie tylko odblokować repozytoria)? Być może trzeba byłoby taką apkę podpisać samemu?
Najbliżej: Apple oraz pojedyncze niezależne repozytoria aplikacji dla Androida.
8. Naprawdę skuteczne blokowanie reklam
Zarówno tych, które próbowaliby wprowadzić twórcy aplikacji, jak i tych, które w tej chwili są wstawiane przez system (Android). Wbudowany i dobrze konfigurowalny adblocker w przeglądarce, porównywalny lub lepszy od tego, który da się uruchomić w przeglądarce desktopowej.
Najbliżej: zmodyfikowany Android po operacji root i instalacji dodatkowego oprogramowania.
9. Uprawnienia aplikacji
Epoka, w której oprogramowanie zyskiwało pełny dostęp do urządzenia dawno jest za nami. Dobry system musi zapewnić ograniczenie uprawnień każdej aplikacji, włącznie z systemowymi. Mechanizm uprawnień w najnowszych Androidach wygląda już coraz lepiej, ale nadal nie spełnia jednego, podstawowego warunku – odmowa uprawnienia nie powinna powodować braku dostępu, ale podstawienie osobnej zawartości. Każda aplikacja domyślnie otrzymywałaby swój kontener na dane, z możliwością ewentualnej synchronizacji w jedną lub obie strony. Przy dostępie do mikrofonu, fałszywy mikrofon podstawiałby ciszę, kamera – czarny obraz, interfejsy sieciowe sygnalizowałyby brak dostępu via Wi-Fi, podsystem telefonu zgłaszałby brak sygnału sieci i losowy IMEI. Przy takim modelu bezpieczeństwa o wyciek danych o wiele trudniej.
Najbliżej: brak.
10. Firewall
Musi być i musi umożliwić selektywne odblokowanie dostępu dla wskazanych aplikacji, także systemowych. Domyślne uprawnienia oznaczają brak dostępu do Internetu. Odblokowalibyśmy przeglądarkę i kilka innych przydatnych aplikacji. Dostęp dla ważnych aplikacji (klawiatura!) byłby domyślnie zablokowany. Najbliżej tego modelu znajdują się niektóre telefony z Androidem (m.in. Huawei), podobny efekt udało mi się osiągnąć na Samsungach z zainstalowanym oprogramowaniem FAMOC, które potrafi podstawić reguły iptables. Niestety żaden z nich bez łamania zabezpieczeń nie potrafi poprawnie zablokować dostępu do aplikacji systemowych, a wśród nich znajduje się oprogramowanie, któremu absolutnie nie powinno się dawać uprawnień do wyjścia na świat. Minimalnie to wymaganie spełnia iOS, w którym domyślnie klawiatura nie może mieć dostępu do Internetu. Niestety nie posiada on żadnego firewalla, który użytkownik mógłby kontrolować.
Najbliżej: Android po operacji root z dodatkowym oprogramowaniem.
11. Separacja procesora baseband
Dzisiejsze telefony posiadają osobny procesor komunikacji radiowej (baseband), który posiada swój system operacyjny i dedykowane oprogramowanie. Procesor ten posiada jednak bardzo wysokie uprawnienia w obrębie docelowego systemu, włącznie z dostępem do pamięci.
Dobry system operacyjny powinien zapewnić całkowitą separację basebandu, aby uniemożliwić:
• wykorzystanie błędów lub celowo wprowadzanych tylnych drzwi (projekt Replicant udowodnił ponad wszelką wątpliwość istnienie backdoorów wprowadzonych przez Samsunga właśnie tą drogą).
• nieautoryzowaną podmianę oprogramowania baseband przez strony trzecie (obecnie jest to możliwe zarówno w iOS, jak i Androidzie za pomocą odpowiedniego oprogramowania po złamaniu zabezpieczeń systemowych).
Dobry system i sprzęt powinien zapewniać całkowitą separację, włącznie ze zmianą protokołu po drodze.
Najbliżej: brak
12. Blokada połączeń USB
Złącze USB w smartfonach najczęściej jest używane do ładowania, a zatem domyślnie powinno uniemożliwiać jakąkolwiek komunikację do czasu przełączenia trybu pracy na wymianę danych. Telefony z Androidem posiadają taką opcję, ale nie zawsze zabezpiecza ona przed przełamaniem zabezpieczeń poprzez eksploit w połączeniu USB. Podobne zabezpieczenia wprowadził Apple, uniemożliwiając łamanie zabezpieczeń przy zablokowanym telefonie.
Najbliżej: Apple.
13. Anonimowość zewnętrznych interfejsów
Po włączeniu, system powinien generować losowo adres sprzętowy karty sieciowej. Tak, jak to potrafi zrobić iOS. Nazwa maszyny podawana serwerowi DHCP również powinna być losowana, za każdym razem inna. Dla wskazanych usług (płatne hot-spoty), randomizację można byłoby wyłączyć.
Najbliżej: Apple.
14. Anonimowość systemu telefonu
System powinien posiadać narzędzia, które uniemożliwią profilowanie użytkownika na podstawie informacji o samym systemie. Jeśli do pracy wymagane są informacje o zapisanych kontach, system musi ograniczać dostęp do tych informacji wyłącznie do wskazanych aplikacji. Jeśli aplikacja utworzy konto, będzie ono dotyczyło tylko tej aplikacji. Obecnym systemom niewiele brakuje do tej funkcjonalności.
Najbliżej: brak.