Mechanizm_hasel.pdf

(865 KB) Pobierz
273368590 UNPDF
Rozwiązania
Mechanizm haseł jednorazowych
haseł jednorazowych
Bartłomiej Bergier
Od wielu lat hasła są najpopularniejszą metodą uwierzytelniania użytkownika w systemach komputerowych.
Metoda ta, z punktu widzenia bezpieczeństwa nie jest pozbawiona wad. Najczęściej najsłabszym ogniwem
jest tutaj czynnik ludzki. Pozyskanie lub odgadnięcie hasła przez nieuprawnioną osobę pozwala niepowołanej
osobie na dostęp do zasobów. Aby zapobiec takim sytuacjom i znacząco zwiększyć bezpieczeństwo,
opracowano mechanizmy haseł jednorazowych. Jak sama nazwa wskazuje, hasło jednorazowe może być
wykorzystanie w procesie uwierzytelniania tylko jeden raz, po czym traci ważność. W artykule przedstawię
jak działają takie mechanizmy od środka oraz jak zaimplementować je w systemie GNU/Linux.
(wielokrotnego wykorzystania) posiadają
wiele wad. Często zdarza się, że przechowy-
wane w bazie danych hasła nie są szyfrowa-
ne, skąd mogą być z łatwością odczytane. Sprawę dodat-
kowo ułatwia czynnik ludzki, a więc skłonność ludzi do
posiadania słabych haseł (słownikowych) jak np. imiona
osób najbliższych.
Inna metodą pozyskania haseł jest podsłuchiwanie
sieci w momencie logowania się użytkownika do syste-
mu. Protokoły takie jak FTP, HTTP czy telnet przesy-
łają hasła w czystej postaci. Obecnie praktycznie wszę-
dzie, gdzie dba się o bezpieczeństwo wykorzystuje się
silne mechanizmy szyfrowania (protokoły TLS i SSL dla
usług webowych) oraz SSH (ang. Secure Shell ) jako za-
miennik usługi telnet. To uniemożliwia przechwycenie
haseł poprzez podsłuch. Jednak i te mechanizmy moż-
na obejść, wykorzystując np. bezpośrednie podsłuchiwa-
nie klawiatury poprzez złośliwie umieszczone w syste-
mie keyloggery, czy też bardziej przyziemne podgląda-
nie haseł przez ramię podczas wpisywania. Duże znacze-
nie ma tutaj czynnik ludzki. Inną często spotykaną prak-
tyką, szczególnie, gdy ktoś posiada wiele haseł do wielu
usług jest po prostu ich zapisywanie na kartkach gdzieś
w pobliżu miejsca pracy.
W systemie Linux standardowo hasła kont użyt-
kowników przechowywane są w pliku /etc/shadow . Są
one zaszyfrowane, a sam plik ma prawa roota. Jednak,
gdy wpadnie w niepowołane ręce można na nim spró-
bować wcześniej wspomnianych metod słownikowych
czy bruteforce (np. za pomocą narzędzia John The Rip-
per).
Zasada działania
mechanizmu haseł jednorazowych
Uwierzytelnianie za pomocą haseł jednorazowych opie-
ra się na autentykacji dwuczynnikowej (ang. two-factor
authentication ). Polega to na tym, iż do poprawnej au-
tentykacji wymagane są dwa elementy:
• to co użytkownik wie (jego sekretne hasło)
• to co użytkownik ma (może to być lista haseł jedno-
razowych na papierze, specjalne urządzenie lub pro-
gram zwane kalkulatorem)
62
styczeń 2010
Mechanizm
P omimo ciągłego postępu, klasyczne hasła
273368590.013.png 273368590.014.png 273368590.015.png 273368590.016.png
 
Rozwiązania
Mechanizm haseł jednorazowych
Na początku użytkownik musi ustalić sekret-
ne hasło, które pamięta. Hasło to zna również
serwer. W procesie autentykacji użytkownik
otrzymuje od serwera wyzwanie (ang. chal-
lenge ). Jest to określony rodzaj ciągu zna-
ków. Wprowadza go wraz ze swoim zapa-
miętanym sekretnym hasłem do kalkulato-
ra (urządzenia sprzętowego lub programu).
Kalkulator, stosując znane sobie algorytmy,
oblicza odpowiedź, którą użytkownik prze-
syła do serwera. Serwer zna sekretne hasło
użytkownika, więc oblicza spodziewaną od-
powiedź i porównuje z tą, którą wprowa-
dził użytkownik. Każdorazowo użytkownik
otrzymuje inne wyzwanie. Dzięki podejściu
dwuczynnikowej autentykacji wejście w po-
siadanie jednego z elementów na nic się nie
zda atakującemu.
ka jest tutaj wykorzystywane albo do aktywa-
cji tokenu, albo do permutowania hasła gene-
rowanego przez token. Wadą systemów syn-
chronicznych jest szybkie wyczerpywanie się
baterii sprzętowych tokenów, gdyż cały czas
muszą pozostać włączone jak również ryzy-
ko rozsynchronizowania się na skutek róż-
nych czynników zewnętrznych (np. pogody)
tokenu i serwera. Można to korygować po-
przez zwiększenie okna ważności hasła, jed-
nak kosztem bezpieczeństwa.
Innym atakiem, na jaki podatne są sys-
temy OTP jest atak Man-in-The-Middle . Jest
to atak polegający na podsłuchu i modyika-
cji wiadomości przesyłanych przez dwie stro-
ny, bez ich wiedzy, przez osobę trzecią (ata-
kującego). Atakujący przekierowuje ruch
przez swój komputer, co jest możliwe dzię-
ki słabości protokołów DNS czy ARP. Moż-
na się przed tym bronić łącząc jednorazowe
hasła z technologiami bezpiecznej warstwy
gniazdowej (szyfrowanie dzięki protokołom
SSL/TLS), mechanizmu klucza publicznego
czy bezpiecznej powłoki (SSH).
Jeszcze innym atakiem, wymyślonym
specjalnie w celu przechwytywania haseł jest
atak na ostatni znak (ang. LCA – Last Cha-
racter Attack ). Polega on na tym, że ataku-
jący podsłuchuje klawiaturę użytkownika do
momentu aż ten wpisze wszystkie znaki ha-
sła oprócz ostatniego. W tym momencie stara
się wykonać atak DoS na stację użytkownika,
uniemożliwiając mu ukończenie wprowadza-
nia hasła. Próbuje wtedy nawiązać wiele jed-
noczesnych połączeń i w każdej sesji wpro-
wadza znaną mu część hasła zakończoną in-
nym znakiem. Przedstawiona później imple-
Podatność na ataki
Niestety nie ma rzeczy doskonałych. Ha-
sła jednorazowe również podatne są na kil-
ka rodzajów ataków. Jednym z nich jest po
prostu atak polegający na kradzieży listy ha-
seł lub tokenów sprzętowych. By temu zapo-
biec stosuje się, jak już napisano wcześniej
dodatkowy sekret (hasło), które stanowi dru-
gi element konieczny do poprawnej autenty-
kacji. Nie zapominajmy jednak, że gdy ata-
kujący wejdzie w posiadanie listy haseł, mo-
że próbować zdobyć sekretne hasło użytkow-
nika, używając wcześniej opisanych technik
na zwykłe hasła.
Rodzaje systemów
haseł jednorazowych
Przedstawiony powyżej system haseł opie-
ra się o mechanizm wyzwania i odpowiedzi
(ang. challenge-response ). Systemy tego ty-
pu zwane są również asynchronicznymi.
W tego typu systemach odpowiedź na we-
zwanie generowana jest przy pomocy kalku-
latora. Kalkulatorem może być albo dedyko-
wane urządzenie (sprzętowy token), który
użytkownik zawsze przy sobie nosi lub też
odpowiednie oprogramowanie, instalowane
na komputerze użytkownika, w jego telefo-
nie komórkowym czy na pendrive'ie. Inny-
mi metodami generowania odpowiedzi, sto-
sowanymi szczególnie w bankach do prze-
prowadzania operacji są pregenerowane li-
sty haseł jednorazowych jak również hasła
dostarczane za pośrednictwem SMSów. Po-
lega to na tym, iż początkowo, po ustaleniu
sekretnego hasła, na jego podstawie specjal-
ny program generuje określoną ilość haseł
jednorazowych. Lista ta zostaje wydruko-
wana i użytkownik cały czas nosi ją przy so-
bie. Z każdą nową operacją czy też logowa-
niem do systemu jako wyzwanie użytkow-
nik otrzymuje numer hasła z listy haseł jed-
norazowych i wprowadza go wraz ze swoim
sekretnym hasłem. Tak się dzieje aż do wy-
czerpania zbioru haseł. Wtedy należy wyge-
nerować nową listę haseł.
Innym rodzajem systemów haseł jedno-
razowych są systemy oparte na synchroniza-
cji czasu serwera i użytkownika (ang. clock-
based ), zwane synchronicznymi. W tego ty-
pu rozwiązaniach serwer OTP synchronizu-
je token sprzętowy i zdalną maszynę, do któ-
rej użytkownik chce się zalogować. Nowe ha-
sło generowane jest przez token przeważnie
co 30-60 sekund. Sekretne hasło użytkowni-
Listing 1. Fragment wygenerowanej listy haseł jednorazowych
000 g6Jk bpJk 056 eO%D ZmhZ 112 dG6F PRO3 168 7KE6 x53Q 224 bk5+ 22xk
001 FC%8 MhZq 057 u3SR 84Vf 113 w%wy e9cA 169 rROf LD6c 225 v5Zg uMaQ
002 UeWE mDk% 058 noB7 mKCM 114 Cmxv vLE+ 170 t%mY TLkr 226 %Cz9 74er
003 wMsi rd:b 059 4Gi/ Vk:b 115 =s+v xquF 171 OuCJ EBjy 227 J9o7 UdMG
004 in3% mmGw 060 JZR3 96Pn 116 3H =L D =%r 172 Xr3s cbn+ 228 Gv5q Ofzv
005 SyV = eWgp 061 DkdH fDzI 117 8Vd7 tBPz 173 59U5 kBBI 229 %HW4 R2uJ
������������������������������
���������
����������������
���������
���������������������������
����
����������������
���������
���������������������������
�������
����������������
���������
���������������������������
���
�������������������������
Rysunek 1. Generowanie haseł algorytmem S/KEY
www.lpmagazine.org
63
273368590.001.png 273368590.002.png 273368590.003.png 273368590.004.png 273368590.005.png 273368590.006.png 273368590.007.png
 
Rozwiązania
Mechanizm haseł jednorazowych
mentacja OTPW chroni się przed tym tak, iż
w przypadku wykrycia równoczesnych sesji
prosi o wprowadzenie nie jednego lecz zlep-
ku trzech różnych haseł jednorazowych.
mając ziarno i odpowiednie oprogramowa-
nie, jest natomiast w stanie obliczyć hasło o
żądanym numerze (lub podać z listy już obli-
czone). Serwer nie prosi o podanie tego hasła,
które pamięta, lecz o poprzednie. Użytkow-
nik przesyła je, a serwer na podanych danych
wykonuje raz jeszcze funkcję skrótu, porów-
nując wynik z zapamiętanym sekretem. Jeśli
rezultaty są zgodne, serwer pozwala się zalo-
gować i zapamiętane rozwinięcie zostaje za-
stąpione przez wartość ostatnio podaną przez
użytkownika. Funkcją skrótu w przypad-
ku S/KEY jest MD4. Wewnętrznie S/KEY
używa liczb 64-bitowych, jednak dla wygo-
dy użytkownika każda liczba jest mapowana
na sześć angielskich słów (każde o długości
od 1 do 4 liter). Bezpieczeństwo systemu ba-
zuje na nieodwracalności funkcji haszującej.
Jednak jest ona podatna na opisywane ataki
man-in-the middle oraz wszelkie ataki oparte
na sytuacji wyścigu (ang. race condition ) ta-
kie jak LCA. Jeśli zostanie poznane sekretne
ziarno, cały system zostaje skompromitowa-
ny. Wadą algorytmu jest również to, że znając
dowolne hasło z listy, możemy wygenerować
na jego podstawie wszystkie poprzednie ha-
sła. System S/KEY dokładnie opisany jest w
dokumencie RFC 1760. Mechanizm genero-
wania haseł dla algorytmu S/KEY przedsta-
wia Rysunek 1.
Kontynuacją rozwiązań zastosowanych
w S/KEY jest implementacja o nazwie OPIE
( One Time Password In Everything ). Bazuje
ona na funkcji haszującej MD5. Dla systemu
Linux dostępna jest w formie modułów PAM.
Niestety, jako że również opiera się o algo-
rytm Leslie Lamporta, posiada wszystkie wa-
dy swojego poprzednika. System bazuje na
założeniach przedstawionych w dokumen-
cie RFC 2289. Strona projektu jest niestety
martwa, należy liczyć więc jedynie na pacz-
ki dla konkretnych dystrybucji. Jako, że du-
żo lepszą alternatywą z punktu widzenia wy-
gody użytkowania i bezpieczeństwa jest im-
plementacja OTPW, w artykule nie będzie-
my zajmować się integracją systemu OPIE
z usługami systemu GNU/Linux.
Implementacje
Jedną z pierwszych implementacji haseł jed-
norazowych dla systemów typu Unix był sys-
tem autentykacji S/KEY opracowany pod ko-
niec lat 80-tych przez irmę Bellcore. Korzy-
sta on z algorytmu Leslie Lamporta. Algo-
rytm ten bazuje na pseudolosowym ziarnie
i wielokrotnym wywoływaniu kryptograicz-
nej funkcji skrótu. Na początku sekretne ziar-
no jest dostarczane przez użytkownika lub
generowane przez komputer. Na ziarnie wy-
konywana jest określoną ilość razy funkcja
skrótu, tworząc pewną ilość haseł jednora-
zowych. Ziarno jest odrzucane, a użytkownik
otrzymuje listę haseł, wydrukowanych w od-
wrotnym kierunku niż były generowane. Na
serwerze jest przechowywane tylko pierwsze
hasło z listy haseł użytkownika. Użytkownik,
OTPW
Projekt OTPW, w przeciwieństwie do OPIE
nie bazuje na algorytmach określonych w do-
kumencie RFC 2289. Jest o wiele prostszym
systemem, a przy tym bardziej bezpiecznym.
Autorem projektu jest Markus Kuhn z Uni-
wersytetu Cambrigde.
Rysunek 2. Generowanie listy haseł jednorazowych z parametrem -p1
Zasada działania
OTPW bazuje na generowanej liście ha-
seł jednorazowych. Pierwszym etapem jest
utworzenie listy haseł jednorazowych za po-
mocą komendy otpw-gen . Program zapyta o
hasło, które będzie podstawą wygenerowania
listy haseł jednorazowych. Fragment listy ha-
seł jednorazowych przedstawia Listing 1.
Domyślnie hasła jednorazowe przed-
stawiane są w postaci ciągów wygenero-
wanych funkcją base64. Spacje są widoczne
tylko dla czytelności i nie należy ich wpro-
wadzać w procesie logowania. Dla wygody
użytkownika znaki, które można łatwo po-
mylić ze sobą są zastępowane innymi (0,1,l
przez :,=,%).
Przełącznik -p1 programu otpw-gen po-
zwala na wygenerowanie mniej bezpiecz-
nych, ale bardziej czytelnych haseł jedno-
razowych, gdzie każde jest sekwencją pię-
ciu angielskich słów czteroliterowych. Ha-
sła takie szybciej się wpisuje, jednak są bar-
dziej podatne na podglądanie, gdyż o wiele
łatwiej podejrzeć ciąg słów niż przypadko-
we znaki. Każde hasło jednorazowe posiada
unikalny numer porządkowy na liście. Pro-
64
styczeń 2010
273368590.008.png 273368590.009.png 273368590.010.png 273368590.011.png 273368590.012.png
 
Zgłoś jeśli naruszono regulamin