stats

Jak podsłuchiwać klawiatury iPhone'em

Fotografia klawiatury

Inteligentne telefony komórkowe wyposażone są w różnego rodzaju sensory, które pozwalają im lepiej „rozumieć” otoczenie. Czujniki siły światła, odbiorniki GPS, kompasy czy akcelerometry nie robią już na nikim większego wrażenia. Dzięki tym ostatnim aplikacje mogą zbadać orientację telefonu w przestrzeni, korzystając z ziemskiego przyciągania. Okazuje się, że to nie jedyna użyteczna funkcja tych sensorów – można ich używać również do badania drgań, które są wynikiem wpisywania znaków na znajdującej się na biurku klawiaturze.

Grupa badaczy – Philip Marquardt z Laboratorium Lincolna w MIT, a także Arunabh Verma, Henry CarterPatrick Traynor z Instytutu Technologicznego Georgii – przeprowadziła ciekawą serię eksperymentów, które polegały na użyciu smartfonów do odczytywania znaków wprowadzanych na znajdujących się nieopodal klawiaturach.

Emanacje

Klawiatura komputera biurkowego to urządzenie mechaniczno-elektryczne, które wyposażone jest w matrycę obwodów, zamykanych przez wciskanie klawiszy. Współczesne urządzenia do wprowadzania tekstu komunikują się zwykle z komputerem przez interfejs USB, wyposażone są więc w odpowiedni kontroler. Starsze, rzadziej spotykane modele, korzystają ze standardów PS/2 czy nawet portu transmisji szeregowej.

Można zauważyć, że w procesie wprowadzania danych biorą udział następujące elementy:

  • elektromechaniczne przyciski – zazwyczaj przewodząca guma przytwierdzona do każdego klawisza, zwierająca ścieżki umieszczonego pod nią obwodu drukowanego;

  • elektroniczny mechanizm odczytu pozycji konkretnego klawisza i jej zmiany w cyfrowy kod;

  • elektroniczny mechanizm przesyłania z użyciem interfejsu USB informacji o kodach wciskanych klawiszy.

Każdy z powyższych podczas pracy wzbudza w otoczeniu pewne zakłócenia:

  • wciskanie klawiszy wytwarza dźwięki, które można odebrać używając mikrofonu (w paśmie do 44,1 KHz);

  • wciskanie klawiszy generuje mechaniczne wibracje podłoża, które można odebrać używając akcelerometru (w paśmie do 100 Hz);

  • przetwarzanie sygnałów cyfrowych generuje zakłócenia elektromagnetyczne, które można mierzyć korzystając ze specjalistycznego sprzętu (w paśmie do 2,5 GHz).

Wbudowane w nowoczesne telefony sensory nie pozwolą w prosty sposób zmierzyć zakłóceń elektromagnetycznych, z kolei sam mikrofon może okazać się mało precyzyjnym instrumentem, aby rozróżniać wciskane klawisze, szczególnie w głośnym otoczeniu.

Wspomniane ataki wymagają też fizycznego, niepostrzeżonego dostępu do otoczenia, w którym znajduje się klawiatura. Jednak od czego jest akcelerometr, czyli sensor powszechnie wykorzystywany do automatycznego obracania obrazu wyświetlanego na ekranie podczas zmian pozycji urządzenia. Mają go niemal wszystkie nowe smartfony, a kwestię dostępu potencjalny napastnik jest w stanie rozwiązać przełamując zabezpieczenia konkretnego urządzenia przenośnego (należącego do osoby pracującej przy komputerze biurkowym).

Istnieją oczywiście znacznie bardziej precyzyjne metody podsłuchu, np. wykorzystanie drgań wiązki laserowej odbitej od biurka bądź innej płaskiej powierzchni znajdującej się blisko komputera. Można w ten sposób przechwytywać nie tylko wibracje spowodowane wciskanymi klawiszami, ale też podsłuchiwać dźwięki otoczenia (włączając w to akustykę poszczególnych klawiszy). Problemem jest jednak skalowalność i koszt tego typu ataków. Aby ich dokonać, trzeba umieścić sprzęt w okolicy konkretnej, inwigilowanej osoby.

Badanie

Do przeprowadzenia eksperymentalnego ataku badacze użyli telefonów iPhone 3GS i iPhone 4. Ten pierwszy został niemal natychmiast wykluczony z dalszych prac ze względu na jakość informacji napływających z sensora. Spójrzmy na odwzorowanie drgań w czasie raportowane przez obydwa urządzenia:

Patrick Traynor
Grafika przedstawiająca różnice w precyzji akcelerometrów w smartfonach iPhone 3GS i iPhone 4

Różnice w precyzji akcelerometrów między telefonami iPhone 3GS (wyżej) i iPhone 4 (niżej)

Wartym odnotowania faktem jest również to, że żaden z obecnie produkowanych smartfonów nie ma należytego zarządzania dostępem do akcelerometru [luty 2011 – przyp. red.]. Najprawdopodobniej inżynierowie uznali, że sensora tego nie można użyć w niecnych celach, więc każdy program może z niego skorzystać w dowolnej chwili. Potencjalnemu intruzowi nieco ułatwia to zadanie, ponieważ może on skłonić użytkownika do zainstalowania trojana, czyli aplikacji, która poza właściwą funkcją, będzie również odczytywała i rejestrowała aktywność czujnika.

Pracujący nad atakiem badacze próbowali na początku zastosować prostą sieć neuronową, którą „nauczyli” korelowania drgań z konkretnymi wciskanymi klawiszami. Niestety odsetek późniejszych odczytów zakończonych powodzeniem (odgadnięciem wciskanego klawisza) nie był wysoki i wynosił 25,89%. Zastosowano więc bardziej skomplikowaną, specyficzną dla problemu metodę.

Modelowanie wciśnięć

Ważną obserwacją, która pomogła określić właściwy sposób wykrywania wciskanych klawiszy, było to, że kolejno wprowadzane znaki różnią się wzajemną odległością, a poza tym mogą być wprowadzane palcami lewej lub prawej dłoni. Oznacza to, że do scharakteryzowania wciśnięć przycisku klawiatury, można użyć następujących informacji:

  • orientacji poziomej (bliżej strony lewej lub prawej),
  • odległości od poprzedniego klawisza.

Dla każdego znanego słowa ze słownika stworzono więc odpowiedni profil, który określa następujące po sobie zdarzenia prowadzące do jego wprowadzenia na klawiaturze. Każde takie zdarzenie jest w istocie relacją między dwoma kolejnymi wciśnięciami (PiPj):

relacja(Pi; Pj) = orientacja(Pi) || orientacja(Pj) || odległość(Pi; Pj)

Operator || w powyższym zapisie oznacza konkatenację. Warto zaznaczyć, że wspomniany wcześniej słownik nie musi być koniecznie słownikiem języka naturalnego, lecz np. zbiorem możliwych kombinacji liter dla słów o zadanych długościach. Nic nie stoi jednak na przeszkodzie, aby potem doprecyzować uzyskane wyniki, korzystając z niewielkiego słownika, np. języka polskiego.

Uczenie

Aby atak się powiódł, system przetwarzania danych pochodzących z akcelerometru musi zostać „nauczony”, w jaki sposób kojarzyć zestawy relacji z rzeczywiście wprowadzanymi informacjami. W fazie tej musi zostać więc określone, gdzie przebiega linia podziału klawiatury na część lewą i prawą. Należy także przygotować słownik zawierający spodziewane wyrazy i odpowiadające im profile.

Podczas wprowadzania danych testowych na klawiaturze, każde wciśnięcie klawisza sprawia, że akcelerometr dostarcza trójwymiarowej informacji sejsmicznej: położenia na osi x, położenia na osi y i położenia na osi z. Każdy klawisz wciskany jest około 150 razy, co dla pełnego alfabetu daje około 4 000 różnych zdarzeń. Jednak nie mamy tu do czynienia z zapisywaniem danych pochodzących bezpośrednio z sensora, lecz przeliczonych na trzy sposoby: bazującym na czasie, bazującym na częstotliwości i bazującym na od wrotnej transformacie Fouriera widma sygnału wyrażonego w skali logarytmicznej. To jednak uproszczony podział – w istocie każda porcja danych z akcelerometru, aby stała się cechą wyróżniającą wciskany klawisz, jest przekształcana do następującego zestawu:

  • średnia kwadratowa,
  • współczynnik skośności,
  • średnia,
  • kurtoza;
  • szybka transformata Fouriera (FFT),
  • współczynniki cepstralne w melowej skali częstotliwości (MFCCs),
  • odchylenie,
  • minimum,
  • maksimum,
  • energia.

Po tej operacji powstaje baza cech, zawierająca 150 zestawów powyższych parametrów dla każdego klawisza.

Kolejnym krokiem jest uruchomienie programu treningowego. Każde słowo z utworzonego wcześniej słownika, wraz z odpowiadającymi mu parami tworzącymi zdarzenia, jest poddawane procesowi kojarzenia z cechami reprezentującymi klawisze (pod uwagę brane jest 100 losowo wybranych cech dla każdego klawisza z każdej pary). Dane te podawane są na wejście dwóch sieci neuronowych – pierwszej, która potrafi rozróżniać dystans względem linii podziału klawiatury (lewo lub prawo), oraz drugiej, która jest czuła na odległości między następującymi po sobie klawiszami (bliżej lub dalej).

Atak

Przeprowadzenie ataku polega na zebraniu danych, wyodrębnieniu cech, klasyfikowaniu wciśnięć i odgadywaniu słów. Pierwszy etap odbywa się z wykorzystaniem śledzącego kodu umieszczonego w telefonie potencjalnej ofiary, natomiast kolejne już na komputerze napastnika.

Patrick Traynor
Grafika przedstawiająca klawiaturę i smartfona

Zestaw użyty podczas eksperymentalnego ataku – iPhone 4 i klawiatura Apple’a

Gdy informacje zebrane z akcelerometru znajdą się w systemie intruza, uruchamia on proces wyodrębniania cech. Polega to na wykonaniu analogicznej operacji, co w przypadku etapu uczenia. Dane numeryczne sensora przekształcane są do postaci cech, a te do dwóch zestawów danych – pierwszego związanego z dystansem względem linii podziału, a drugiego związanego z odległościami między kolejno wciskanymi klawiszami.

Stworzone zestawy wędrują na wejście przygotowanych wcześniej sieci neuronowych i rozpoczyna się etap klasyfikowania wciśnięć. W efekcie powstają prognozy dotyczące prawdopodobnych profili słownych.

Pozostaje tylko odgadnąć słowa. Odbywa się to przez porównanie prawdopodobnych profili z wyrazami umieszczonymi w słowniku, a następnie nadawanie każdemu kandydatowi pewnej liczby punktów, która zależy od prawdopodobieństwa pojawienia się wyrazu o podanej długości. Wygrywają te, które zdobędą najwięcej punktów.

W eksperymentalnym oprogramowaniu badacze pozostawiali kilka wysoko punktowanych słów w odgadywanym tekście, tzn. w rezultatach zamiast danego wyrazu pojawiał się proponowany ich zestaw. Algorytm odgadujący można jednak ulepszać, np. dostosowywać jego parametry w zależności od konkretnego języka naturalnego, albo też punktować słowa w zależności od kontekstu.

W przypadku języków fleksyjnych, do których zaliczają się np. języki słowiańskie (a w tym i język polski), proces odgadywania może być usprawniony, ponieważ posługując się odpowiednim słownikiem jesteśmy w stanie wykrywać główne morfemy wyrazów, a następnie przedrostki i przyrostki. Dzięki temu oprogramowanie będzie w stanie punktować w pewnym zakresie poprawność składniową zgodnie z regułami danego języka.

Zagrożenie

W rezultacie przeprowadzonych eksperymentów odkrywcy nowego wektora ataków zauważyli, że ich zestaw cechowała trafność na poziomie nieco niższym, niż w przypadku użycia mikrofonów badających różnice w odgłosach wciskanych klawiszy (56% w stosunku do 72% dla 50 najczęstszych słów). Warto jednak zauważyć, że tego rodzaju system podsłuchowy znacznie lepiej radzi sobie z dłuższymi i rzadko występującymi wyrazami, osiągając niemal stuprocentową trafność (dla zbioru 500 najczęściej występujących słów).

Zauważmy, że 56% skuteczność nie jest wcale wartością małą, jeżeli weźmiemy pod uwagę fakt, że oprogramowanie dopasowujące słowa do profili jest w stanie proponować również całe ich zestawy w miejsce wyrazów, których nie może automatycznie odgadnąć. Oznacza to, że rzeczywista trafność rozpoznawania przechwyconych informacji może sięgać 80% i więcej.

Ochrona

Pierwszą linią obrony przed tego typu atakami jest oczywiście należyte dbanie o bezpieczeństwo inteligentnego telefonu, to znaczy niedopuszczanie do instalacji aplikacji z nieznanych źródeł i okresowe sprawdzanie zawartości smartfona oprogramowaniem antywirusowym.

Warto również wiedzieć, że akcelerometr jest sensorem wrażliwym na wszelkie dodatkowe zakłócenia, np. wibracje powierzchni, na której się znajduje. Ciężko jednak wyobrazić sobie sytuację, w której celem ochrony przed podsłuchiwaniem klawiatury, użytkownik zacznie wprawiać w ruch biurko, przy którym siedzi.

Innym środkiem ochronnym jest umieszczanie telefonu w innym miejscu, niż bezpośrednio na biurku (np. na szufladzie lub szafce), a gdy nie jest to możliwe, oddalanie go od klawiatury. W przypadku odległości większej niż 30 centymetrów dane z sensora zaczynają być mało użyteczne, a przy jednym metrze nie można już odczytać praktycznie żadnych.

Zobacz także

Jesteś w sekcji .
Tematyka:

Taksonomie: