Uwierzytelnianie.pdf

(242 KB) Pobierz
BSI
Bezpieczeństwo - Uwierzytelnianie
Uwierzytelnianie
Główne zagadnienia wykładu
Słowo autentyczny ( authentic ) oznacza wg słownika Webstera być rzeczywiście i dokładnie tym, czym się twier-
dzi, że się jest . Uwierzytelnianie ( authentication ) jest procesem stwierdzania autentyczności, czyli wiarygodności, weryfi-
kacji tożsamości użytkownika.
Użytkownicy mogą być uwierzytelniani na podstawie jednej lub kilku informacji pochodzących z następujących zbiorów:
1. Tego, co użytkownik wie . Tajny tekst np. hasło znane tylko użytkownikowi i systemowi. W procesie rejestracji jest
ono wprowadzane przez użytkownika i sprawdzane przez system.
2. Tego, co użytkownik posiada . Klucz, plakietka, karta pomagające w weryfikacji użytkownika. W metodzie hasło-
odzew ( challenge-response ) użytkownik dysponuje kartą wyświetlającą identyfikator liczbowy. Można stosować rów-
nież metodę haseł jednokrotnych.
Użytkownik
Karta
Generowanie
hasła
Weryfikacja metodą
hasło - odzew
System
docelowy
3. Tego, kim użytkownik jest . Cechy fizyczne (odciski palców, odciski dłoni, wzorzec siatkówki) lub behawioralne
(wzorzec głosu, podpis), które można zapamiętać i porównać. Weryfikacja polega na ponownym zbadaniu użytkow-
nika i porównaniu wyników badań z zapamiętanymi w systemie. Ta metoda umożliwia również ewentualną identyfi-
kację włamywacza. W przypadku metod behawioralnych istnieje możliwość odrzucenia prawidłowego użytkownika
( błąd ujemny ) i pozytywnej identyfikacji niewłaściwej osoby ( błąd dodatni ). W chwili obecnej techniki tego typu są
zwykle stosowane jako dodatkowe (obok hasła). Dwustopniowa weryfikacja zwiększa bezpieczeństwo.
Hasła mogą zostać ukradzione z bazy haseł lub przechwycone podczas przesyłania poprzez sieć. Do odgadnięcia hasła
może być wykorzystywana metoda słownikowego łamania brutalnego. Polega ona na sprawdzeniu każdego słowa w
słowniku, czy nie jest hasłem. Wyniki eksperymentu mających na celu analizę słabości haseł pokazują jak łatwo odgad-
nąć hasło dysponując informacją o użytkowniku. Wynika z tego, że hasła powinny być trudne do odgadnięcia i ukradzenia
Techniki ochrony haseł można podzielić następująco:
Komunikaty systemowe : wyświetlany jest komunikat przed i po rejestracji użytkownika określający dane
systemu. Komunikaty takie mogą dostarczyć intruzowi pewnych wskazówek i dlatego powinny zostać wyłą-
czone lub ograniczone.
Wprowadzanie hasła : hasła nie powinny być widoczne w momencie wprowadzania.
Ograniczanie ilości prób rejestracji : po osiągnięciu limitu nieudanych logowań konto użytkownika powinno
zostać zablokowane (uniemożliwienie dalszych prób). Odblokowanie możliwe po weryfikacji przez admini-
stratora przy pomocy innej metody niż hasło. Uniemożliwia to stosowanie metody brutalnego łamania haseł.
Informacja o nieudanych logowaniach powinna być zachowywana.
Starzenie się haseł : hasło powinno mieć określony czas życia, po którym musi zostać zmienione. Możliwa
może być również zmiana hasła przed upływem ważności (w pewnych granicach). Wykorzystane hasła po-
winny być pamiętane ( w określonym zakresie). Administrator, w przypadku zagrożenia, powinien mieć możli-
wość natychmiastowej zmiany hasła.
Systemy z dwoma hasłami : Drugie hasło jest zwykle wykorzystywane podczas próby dostępu do szczegól-
nie chronionych zasobów.
Opracował: Zbigniew Suski
1
Nadzorowanie haseł (wybór, pielęgnacja)
88651857.004.png
Bezpieczeństwo - Uwierzytelnianie
Minimalna długość hasła : Krótkie hasła są łatwiejsze do odgadnięcia. Wymaga się aby miały co najmniej 6
lub 8 znaków i występowały w nich określone kombinacje grup znaków.
Blokowanie konta użytkownika : blokować należy konta nie używane. Usuwanie blokady po weryfikacji przez
administratora.
Ochrona hasła administratora : Ze względu na znacznie większe uprawnienia, w porównaniu do innych użyt-
kowników, jest częściej atakowane i powinno być lepiej chronione. Można wymagać aby było ciągiem znaków
heksadecymalnych. Nie powinno być przesyłane przez sieć i powinno być często zmieniane.
Generowanie hasła przez system : niektóre systemu oferują użytkownikowi kilka haseł do wyboru. Są to
zwykle hasła trudne do zapamiętania, co powoduje że użytkownicy je zapisują. Hasła generowane powinny
być łatwe do wymówienia.
Sprawdzanie bierne . Realizowane jest po wprowadzeniu haseł do użytku za pomocą programu uruchamia-
nego w ustalonych odstępach czasu. Program taki ( cracker ) porównuje istniejące hasła z listą haseł łatwych
do odgadnięcia. Hasła łatwe są unieważniane a informacja o tym powinna zostać przesłana do użytkownika.
Przykładem jest program CRACK. Metoda bierna wymaga zużycia znacznych zasobów. Ponadto łatwe hasła
funkcjonują w systemie do momentu ich wykrycia stwarzając potencjalne niebezpieczeństwo.
Sprawdzanie aktywne . Podczas zmiany hasła przez użytkownika, podane przez niego nowe hasło jest wery-
fikowane zgodnie z wbudowanym algorytmem. Hasło zbyt łatwe jest odrzucane a użytkownik jest proszony o
podanie nowego. W tego typu algorytmie istotne jest zapewnienie równowagi pomiędzy użytecznością i bez-
pieczeństwem. Zbyt restrykcyjny algorytm będzie powodował niezadowolenie użytkowników. Zbyt liberalny al-
gorytm obniży bezpieczeństwo systemu.
Bezpieczne przechowywanie haseł
Hasła są najczęściej przechowywane w postaci zaszyfrowanej. Do przechowywania haseł wiele systemów
używa jednokierunkowej funkcji skrótu. Zapamiętywany jest wyliczony skrót. Oznacza to, że oryginalnego ha-
sła nie można uzyskać z jego postaci zaszyfrowanej. Sprawdzenie polega na wyliczeniu skrótu hasła podane-
go przez użytkownika podczas logowania i jego porównaniu ze skrótem przechowywanym w systemie. Tego
typu mechanizm wykorzystywany jest w UNIXie
Hasła jednorazowe
1 Identyfikator
użytkownika
5 Haslo
jednorazowe
Użytkownik
Stacja
robocza
Karta z haslami
jednokrotnego
użytku
Uwierzytelnianie za
pomocą kart z haslami
jednorazowymi
Serwer
Metoda haseł jednorazowych ( one-time passwords ) polega na jednorazowym wykorzystaniu wygenerowanego hasła.
Wobec tego kradzież hasła nie stanowi zagrożenia. Najczęściej są to liczby wygenerowane na stacji klienckiej i weryfiko-
wane na serwerze. Mogą one być również generowane na specjalnym serwerze. Można również wyposażyć użytkownika
w specjalną kartę. Przy pomocy klawiatury wprowadza on swój PIN. Procesor karty wylicza liczbę, która zostanie wyświe-
tlona a następnie wprowadzona przez użytkownika jako hasło. Serwer na podstawie podanego identyfikatora użytkowni-
ka potrafi wygenerować taki sam kod i dzięki temu zweryfikować użytkownika.
Procedury uwierzytelniania dwustronnego
Zakładamy, że użytkownik potrzebuje usług serwera. W procesie uwierzytelnienia dwustronnego ( two-party authenti-
cation ) uczestniczy klient i serwer.
Opracował: Zbigniew Suski
2
Zabezpieczanie przed odgadnięciem poprzez odrzucanie zbyt łatwych haseł – sprawdzanie haseł
88651857.005.png 88651857.006.png 88651857.007.png
Bezpieczeństwo - Uwierzytelnianie
1 Klient jest uwierzytelniony
wobec serwera
Klient
2 Serwer jest uwierzytelniony
wobec klienta
IBM Compatible
Serwer
1: Uwierzytelnienie jednokierunkowe
1, 2: Uwierzytelnienie dwukierunkowe
Uwierzytelnienie
dwustronne
Uwierzytelnienie jednokierunkowe polega na sprawdzeniu tożsamości użytkownika. Nie jest sprawdzana tożsa-
mość serwera. Polega na wysłaniu przez użytkownika żądania rejestracji, identyfikatora i hasła.
Uwierzytelnienie dwukierunkowe wymaga dodatkowo potwierdzenia tożsamości serwera, czyli musi on podać
swoje hasło. W sieci rozbudowanej, liczącej kilkudziesięciu użytkownik uwierzytelnienie dwukierunkowe będzie wy-
magało utrzymywania dużej ilości haseł na każdym węźle. Listy te muszą być skoordynowane. Stwarza to duże pro-
blemy pielęgnacyjne.
Procedury uwierzytelniania z udziałem strony trzeciej
Występująca zaufana strona trzecia (trusted third-party ) poświadcza tożsamość klienta i serwera. Jest nazywana
serwerem bezpieczeństwa ( security serwer ). Jego zadaniem jest przechowywanie haseł wykorzystywanych podczas
weryfikacji użytkowników i serwerów. Jest to jedyne miejsce przechowywania haseł .
Wymagania:
Hasła nie powinny być przesyłane poprzez sieć.
Hasła nie powinny być przechowywane na stacji klienckiej.
Zarejestrowany użytkownik powinien otrzymać tymczasowy klucz tajny. Jest on wykorzystywany przez klienta przy
wszystkich dostępach.
System powinien pozwalać na bezpieczne przesyłanie kluczy szyfrowania pomiędzy klientami i serwerami.
Przykładem uwierzytelniania z udziałem strony trzeciej jest system Kerberos.
Uwierzytelnianie w standardzie X.509
Zalecenia X.509 komitetu CCITT przedstawiają model usług uwierzytelniających wykorzystujący metodę klucza
publicznego. Określają schemat sprawdzania tożsamości uzytkowników w systemach opartych na standardzie X.500.
X.500 definiuje standard usług katalogowych ( directory services ). Standard X.509 przewiduje przechowywanie informacji
o użytkownikach wg standardu X.500.
Uwierzytelnianie dokonywane jest za pomocą certyfikatów. Certyfikat jest wydawany przez urząd poświadczania
certyfikatów CA ( Certificate Authority ). Wykorzystywana jest metoda szyfrowania z kluczem publicznym i podpis cyfro-
wy. Zalecany jest algorytm RSA. Struktura certyfikatu:
Numer seryjny – numer przydzielony certyfikatowi przez CA. Unikalny w obrębie funkcjonowania CA.
Identyfikator algorytmu – określa algorytm użyty do podpisania certyfikatu i jego parametry
Identyfikator wystawcy – nazwa CA, który wydał i podpisał certyfikat
Okres ważności – data początku i końca ważności certyfikatu
Użytkownik certyfikatu – określa użytkownika
Informacja o kluczu publicznym – klucz publiczny użytkownika oraz identyfikator algorytmu, który będzie ten klucz
wykorzystywał.
Podpis cyfrowy – uwierzytelnia pochodzenie certyfikatu.
Certyfikat jest przechowywany w katalogu X.500. Każdy użytkownik ma do niego dostęp i może dzięki temu otrzymać
klucz publiczny innego użytkownika. Certyfikat może być unieważniony przed upływem ważności jeżeli:
Istniejepodejrzenie,że klucz prywatny CA lub użytkownika został ujawniony,
Użytkownik przestał podlegać danemu CA.
Opracował: Zbigniew Suski
3
Zapewnienie dwustronnego uwierzytelnienia dwukierunkowego. Zadaniem trzeciej strony jest przechowywanie i pie-
lęgnacja haseł.
Numer wersji – numer wersji formatu certyfikatu
88651857.001.png
Bezpieczeństwo - Uwierzytelnianie
Certyfikaty X.509 są wykorzystywane w PEM ( Privacy Enhanced Mail ), PGP ( Pretty Good Privacy ), SSL ( Secure Socket
Layer ), S-HTTP ( Secure HyperText Transfer Protocol ).
Uwierzytelnianie jednokierunkowe – informacja jest przesyłana od jednego użytkownika do drugiego. Przesyłana
wiadomość zawiera:
Nazwę nadawcy.
Nazwę odbiorcy.
Znaczniki czasu określające czas utworzenia i ważności wiadomości.
Liczbę losową wygenerowaną przez nadawcę. Jest ona ważna do wygaśnięcia ważności i jest przechowywana przez
odbiorcę. Każda inna wiadomość zawierająca tą liczbę zostanie odrzucona.
Podpiscyfrowynadawcy.
Można również umieścić inne informacje podpisane przez nadawcę.
Uwierzytelnianie dwukierunkowe – dodatkowo odbiorca uwierzytelnia się wobec nadawcy. Wysyła podobne infor-
macje jak wymienione wyżej. Wysyła również odebraną liczbę losową, liczbę wygenerowaną przez siebie oraz
znaczniki czasu. Można również umieścić inne informacje i je podpisać.
Uwierzytelnianie trzykierunkowe – dodatkowo od nadawcy do odbiorcy przesyłana jest jeszcze wiadomość końco-
wa. Zawiera ona podpisaną kopię liczby losowej wygenerowanej przez odbiorcę. Nie jest wymagany znacznik czasu.
Zamiast niego przesyłane są zwrotnie podpisane liczby losowe.
System Kerberos
System Kerberos powstał w czasie realizacji projektu Athena na uniwersytecie MIT. Projekt miał na celu integra-
cję komputerów uniwersyteckich.
System weryfikacji autentyczności jest oparty na znajomości haseł zapisanych w serwerze Kerberosa . W proce-
sie uwierzytelniania wykorzystuje się tajny dzielony klucz ( shared secret ), który pozwala na identyfikację użytkowników
bez eksponowania informacji narażających bezpieczeństwo sieci. W systemie uwierzytelniania wyróżnić można cztery
komponenty.
KERBEROS
Serwer uwierzytelniający
KLIENT
3 Bilet do uslugi przyznawania biletów
5 Bilet do uslugi
Serwer przyznawania biletów
Serwer aplikacji
Pierwszy poziom to klient czyli użytkownik lub aplikacja reprezentująca użytkownika. Jest to miejsce, z którego
użytkownik prowadzi pracę, wprowadza identyfikator i hasło.
Drugim poziom to serwer uwierzytelniający ( authentication server ) służący do przechowywania haseł i spraw-
dzania tożsamości użytkownika. W czasie wymiany informacji z klientem dostarcza on klientowi bilet uprawniający do
korzystania z usługi przyznawania biletów ( ticket-granting ticket ).
Poziom trzeci to serwer przepustek lub serwer przyznawania biletów ( ticket-granting server ), który dostarcza
klientowi bilet uprawniający do skorzystania z serwera aplikacji.
Poziom czwarty to serwer aplikacji ( application server ) czyli zasób, który chce się upewnić, że dany klient jest
poprawny. Dostarcza klientowi żądanej przez niego usługi.
Konto w bazie zawiera dane dotyczące tożsamości oraz klucze główne (np. hasła) wszystkich klientów i serwe-
rów z danego obszaru. Ponadto klucz główny serwera sieciowego służy do szyfrowania wszystkich kluczy głównych
klientów udaremniając nieautoryzowany dostęp do serwera. Hasła są szyfrowane konwencjonalnym algorytmem DES
(mogą być odszyfrowane).
Opracował: Zbigniew Suski
4
Procedury uwierzytelniania X.509
88651857.002.png
Bezpieczeństwo - Uwierzytelnianie
Poważną wadą systemu jest jego dostęp do zaszyfrowanych haseł użytkowników, gdyż nie używana jest metoda
klucza publicznego. Powoduje to, że zawarte są w nim dane krytyczne dla bezpieczeństwa i powinien być on chroniony w
sposób szczególny.
Serwer Kerberosa jest bezstanowy. Odpowiada po prostu na żądania użytkowników i wydaje przepustki (żetony,
bilety). Ułatwia to tworzenie replikowanych serwerów zapasowych. Funkcjonowanie systemu z punktu widzenia użytkow-
nika niczym nie różni się od systemu tradycyjnego.
Obecnie (1997) na rynku funkcjonują dwie wersje systemu (4 i 5). Kerberos 4 jest bardziej sprawny niż 5 ale bardziej
ograniczony. Może współpracować tylko z sieciami TCP/IP. W Kerberosie 5 usunięto drobne usterki w protokole i jest on
bardziej odporny na ataki poprzez sieć. Może współpracować z różnymi rodzajami sieci. Może wykorzystywać również
inne systemy kryptograficzne niż DES (np. potrójny DES). Zaimplementowano w nim ponadto szereg interesujących
funkcji jak:
delegowanie autoryzacji,
długie czasy przeterminowania,
przepustki odnawialne,
przepustki zaplanowane na przyszłość.
Kerberos
- wymiana informacji między klientem (C1) i serwerem uwierzytelniającym (AS)
C1>AS: C1, TGS, T 2
Klient C1 wysyła niezaszyfrowany komunikat do AS prosząc o bilet ( ticket ) na komunikację z serwerem TGS. Komunikat
zawiera identyfikator klienta (C1), identyfikator serwera przyznającego bilety i znacznik czasowy umożliwiający synchro-
nizację zegarów C1 i AS.
AS>C1: {TGS, K C1,TGS , T 2 , L 2 , { TGT C1,TGS } K AS,TGS } K C1
AS odsyła do C1 komunikat zaszyfrowany kluczem wytworzonym na podstawi hasła klienta C1. Komunikat ten zawiera
identyfikator serwera przyznającego bilety (TGS), klucz sesyjny (klucz znany klientowi C1 i TGS), znacznik czasu ( T 2 ),
okres ważności biletu ( L 2 ).
Druga część komunikatu zawiera przepustkę udzielającą przepustki (Ticket Granting Ticket - TGT ) zaszyfro-
waną kluczem wspólnym AS i TGS. TGT nie jest odszyfrowywana przez klienta C1. Będzie wykorzystywana do otrzymy-
wania zezwolenia uzyskania określonych usług wewnątrz obszaru odpowiedzialności Kerberosa. TGT eliminuje potrzebę
ponawiania procesu identyfikacji przy każdej następnej prośbie.
TGT zawiera: identyfikator i adres klienta, identyfikator serwera TGS, klucz sesyjny ( K C1,TGS ), znacznik czasu
( T 2 ), okres ważności biletu ( L 2 ).
Klucze wykorzystywane przy szyfrowaniu mają długość 56 bitów i są uzyskiwane na podstawie hasła określonej jednost-
ki.
Kerberos - wymiana informacji między klientem (C1) i serwerem przepustek (TGS)
Po otrzymaniu przepustki udzielającej przepustki (TGT) użytkownik może wykonywać operacje wymagające
uwierzytelnienia (np. dostęp do pliku). Kiedy użytkownik po raz pierwszy próbuje uzyskać dostęp do serwera aplikacji
(S1) zabezpieczonego przez Kerberos , oprogramowanie jego stacji komunikuje się z serwerem przepustek (TGS) i prosi
o przepustkę do serwera aplikacji.
C1>TGS: {S1, C1, T 3 } K C1,TGS ,
{ TGT C1,TGS } K AS,TGS
Prośba jest zakodowana kluczem sesyjnym ( K C1,TGS ) otrzymanym poprzednio od AS. Zawiera nazwę serwera S1 i
poświadczenie ( authentikator ) klienta (nazwę i adres klienta oraz znacznik czasu). Poświadczenie ma bardzo krótki okras
ważności i nie może być wykorzystywane wielokrotnie. Klient przedstawia również TGT zakodowany kluczem wspólnym
AS i TGS. Zawarty w TGT klucz sesyjny umożliwia rozszyfrowanie prośby.
TGS w odpowiedzi tworzy klucz sesyjny, którym będą się posługiwały C1 i S1 ( K C1,S1 ). Tworzy też specjalną przepust-
kę ( B C1,S1 ) uprawniającą do dostępu do serwera S1 i wysyła komunikat do klienta C1.
TGS>C1:
{ C1,S1 , S1, T 4 , {B C1,S1 }K S1,TGS }K C1,TGS
Opracował: Zbigniew Suski
5
88651857.003.png
Zgłoś jeśli naruszono regulamin