Jak łatwo jest zhakować źle zaprojektowany system kart studenckich

dodał 24 lutego 2015 o 11:05 w kategorii Wpadki  z tagami:
Jak łatwo jest zhakować źle zaprojektowany system kart studenckich

Wiele uczelni na całym świecie wydaje studentom elektroniczne karty pełniące rolę legitymacji, indeksu, klucza, karty bibliotecznej czy bankomatowej. Projektując taki system warto jednak zdawać sobie sprawę z podstawowych zagrożeń z nim związanych.

Na jednym z amerykańskich uniwersytetów studenci udowodnili, że wprowadzone na nim mechanizmy uwierzytelnienia użytkownika w oparciu o karty identyfikacyjne są jednym wielkim żartem. Prześledźmy ich odkrycia.

Projekt na koniec semestru

Studenci Uniwersytetu Stanowego Oklahomy, którzy wybrali przedmiot „Bezpieczeństwo”, mieli za zadanie odnaleźć lukę bezpieczeństwa i opracować plan jej wykorzystania. Nikt nie spodziewał się pewnie, że w efekcie cały system kart studenckich będzie nadawał się tylko do wymiany.

Uniwersytet wydaje każdemu studentowi zindywidualizowaną kartę studenta. Karta ta działa jako:

  • legitymacja studencka,
  • karta dostępowa do budynków uniwersyteckich,
  • karta biblioteczna,
  • karta płatnicza na stołówce,
  • nośnik biletów na imprezy studenckie.
Wygląda karty studenckiej

Wygląda karty studenckiej

Studenci zaczęli od analizy 16-cyfrowego numeru karty. Szybko ustalili, że pierwsze 8 cyfr jest stałych (nie licząc wariantu wydawanego we współpracy z lokalnym bankiem). Na podstawie analizy ponad 100 numerów doszli też do wniosku, że kolejne 8 cyfr rozbić należy na dwie grupy – 2 cyfry i 6 cyfr. Pierwsze 2 cyfry mogły mieć tylko 3 warianty: 05, 06 i 11. Pozostałe 6 cyfr wyglądało losowo. Oznaczało to, że faktycznie wszystkich możliwych numerów kart jest maksymalnie 3 miliony.

Kolejnym krokiem był zakup czytnika kart magnetycznych za 25 dolarów. Dzięki temu studenci poznali zapis na karcie. Przykładowy wyglądał tak:

%B6038380006514029^SNELLING/SAMUEL R^491212000000000000?;
6038380006514029=49121200000000000000?

Dane zawierały identyfikator karty (zapisany na obu ścieżkach, zgodny z zapisanym na niej numerem), imię i nazwisko, datę ważności (taką samą dla wszystkich kart, grudzień 2049) oraz numer kontrolny, wynoszący na każdej karcie 0.

A co jeżeli zmienimy nazwisko?

Karty różniły się zatem jedynie numerem seryjnym i danymi osobowymi posiadacza i nie zawierały żadnego mechanizmu weryfikacji integralności danych w rodzaju sumy kontrolnej. W kolejnym kroku studenci udali się do lokalnej firmy, w której skorzystali z urządzenia do zapisu kart magnetycznych (popularny model MSRC206) i sporządzili kopię karty jednego z nich na czystym nośniku, zmieniając jedynie nazwisko i imię (na Pete Pistol, jak na przykładowej karcie).

Eksperymenty z tak przygotowaną kartą okazały się bardzo ciekawe. Karta, z której klonowano dane, była świeżo wydana i przy wypożyczeniu tabletu w bibliotece okazało się, że system nie zna jeszcze jej numeru. Pracownik biblioteki w ogóle się tym nie przejął i zaakceptował tłumaczenie, że karta jest nowa i może jeszcze nie znajdować się w bazie bibliotecznego komputera, najwyraźniej aktualizowanej raz na jakiś czas.

Z kolei na stołówce płatność sklonowaną kartą przebiegła bez problemu a rachunek został przypisany do numeru karty, z pominięciem jakiejkolwiek weryfikacji imienia i nazwiska na niej zapisanego.

Skąd jednak brać ważne numery kart?

Skoro podmiana numeru na karcie najwyraźniej nie wzbudzi żadnych alarmów, wystarczy pewnie znaleźć numer aktywnej karty. Jak jednak wybrać z 3 milionów możliwości? Studenci nie posunęli się dalej w swoich eksperymentach ze względów etycznych, jednak wskazali na ciekawe rozwiązanie. Otóż witryna uniwersytetu z nieznanych powodów umożliwiała weryfikację poprawności numeru karty przez interfejs WWW.

Strona weryfikacji numerów kart

Strona weryfikacji numerów kart

Serwis był taki miły, że oprócz odpowiedzi numer poprawny/niepoprawny informował także o statusie karty (aktywna/nieaktywna, studencka/pracownicza). Kilka linijek kodu i zestaw serwerów proxy mogły bez problemu w ciągu paru godzin zebrać kompletną bazę wszystkich aktywnych numerów kart.

Reakcja uniwersytetu

Studenci w swoim raporcie zarekomendowali całkowitą wymianę systemu kart na posiadający lepsze zabezpieczenia. Uniwersytet zdecydował się na wyłączenie serwisu służącego do weryfikacji poprawności numeru kart a pozostałe rekomendacje zignorował i do tej pory używa kart, w których zmiana ID wystarczy do dokonania istotnych nadużyć. Mamy zatem do czynienia z klasycznym przypadkiem akceptacji ryzyka – choć nie wiemy, czy była to decyzja do końca świadoma. Studentom gratulujemy odkrycia a uniwersytetowi życzymy uczciwych studentów.