Uwierzytelniający — Authenticator

Authenticator to środek stosowany w celu potwierdzenia tożsamości użytkownika, czyli do wykonywania uwierzytelniania cyfrowego. Osoba uwierzytelnia się w systemie komputerowym lub aplikacji, wykazując, że posiada i kontroluje osobę uwierzytelniającą. W najprostszym przypadku uwierzytelniaczem jest wspólne hasło .

Używając terminologii NIST Digital Identity Guidelines, strona, która ma zostać uwierzytelniona, nazywana jest stroną roszczącą, a strona weryfikująca tożsamość strony roszczącej to weryfikator . Gdy strona wnosząca roszczenie pomyślnie wykaże weryfikatorowi posiadanie i kontrolę nad co najmniej jednym uwierzytelniaczem za pomocą ustalonego protokołu uwierzytelniania, weryfikator jest w stanie wywnioskować tożsamość strony wnoszącej roszczenie.

Klasyfikacja

Uwierzytelniacze można scharakteryzować w kategoriach tajemnic, czynników i form fizycznych.

Sekrety uwierzytelniania

Każdy uwierzytelniający jest powiązany z co najmniej jednym sekretem, którego wnioskodawca używa, aby zademonstrować posiadanie i kontrolę nad uwierzytelniającym. Ponieważ osoba atakująca może wykorzystać ten klucz tajny do podszywania się pod użytkownika, tajny klucz uwierzytelniający musi być chroniony przed kradzieżą lub utratą.

Rodzaj tajemnicy jest ważną cechą uwierzytelniającego. Istnieją trzy podstawowe typy tajnego klucza uwierzytelniającego: klucz tajny zapamiętany i dwa typy kluczy kryptograficznych: klucz symetryczny lub klucz prywatny.

Zapamiętany sekret

Zapamiętany sekret przeznaczony jest do zapamiętania przez użytkownika. Znanym przykładem zapamiętanego tajemnicy jest wspólne hasło , zwany także hasło, a hasło , lub osobisty numer identyfikacyjny (PIN).

Sekret uwierzytelniający znany zarówno stronie wnoszącej roszczenie, jak i weryfikatorowi jest nazywany wspólnym kluczem tajnym . Na przykład zapamiętany sekret może być udostępniany lub nie. Klucz symetryczny jest wspólny z definicji. Klucz prywatny nie jest udostępniany.

Ważnym rodzajem sekretu, który jest zapamiętywany i udostępniany, jest hasło. W szczególnym przypadku hasła, to uwierzytelnienie jest tajemnicą.

Klucz kryptograficzny

Uwierzytelniacz kryptograficzny to taki, który używa klucza kryptograficznego . W zależności od materiału klucza, uwierzytelnianie kryptograficzne może używać kryptografii klucza symetrycznego lub kryptografii klucza publicznego . Oba unikają zapamiętanych sekretów, a w przypadku kryptografii z kluczem publicznym nie ma również wspólnych sekretów , co jest ważnym rozróżnieniem.

Przykłady uwierzytelniania kryptograficznego obejmują uwierzytelnianie OATH i uwierzytelnianie FIDO. Tytułem kontrprzykładu, uwierzytelnianie hasła nie jest uwierzytelniaczem kryptograficznym. Zobacz sekcję # Przykłady, aby uzyskać szczegółowe informacje.

Klucz symetryczny

Klucz symetryczny to wspólny klucz tajny używany do wykonywania kryptografii z kluczem symetrycznym. Powód przechowuje swoją kopię współdzielonego klucza w dedykowanym uwierzytelniaczu sprzętowym lub uwierzytelniającym opartym na oprogramowaniu zaimplementowanym na smartfonie. Weryfikator przechowuje kopię klucza symetrycznego.

Para kluczy publiczno-prywatnych

Para kluczy publiczny-prywatny służy do wykonywania kryptografii klucza publicznego. Klucz publiczny jest znany (i zaufany) weryfikatorowi, podczas gdy odpowiadający mu klucz prywatny jest bezpiecznie powiązany z uwierzytelniającym. W przypadku dedykowanego uwierzytelniania sprzętowego klucz prywatny nigdy nie opuszcza granic uwierzytelniania.

Czynniki i formularze uwierzytelniające

Narzędzie uwierzytelniające to coś unikalnego lub charakterystycznego dla użytkownika ( coś, co użytkownik posiada ), aktywowane przez kod PIN ( coś, co znamy ) lub biometryczne („coś, co jest unikalne dla niego”). Uwierzytelniacz, który zapewnia tylko jeden z tych czynników, nazywany jest uwierzytelnianiem jednoskładnikowym, podczas gdy uwierzytelnianie wieloskładnikowe zawiera dwa lub więcej czynników. Uwierzytelnianie wieloskładnikowe to jeden ze sposobów uzyskania uwierzytelniania wieloskładnikowego . Kombinacja dwóch lub więcej jednoskładnikowych uwierzytelniania nie jest uwierzytelnianiem wieloskładnikowym, ale może być odpowiednia w pewnych warunkach.

Uwierzytelniający mogą przybierać różne formy fizyczne (z wyjątkiem zapamiętanego sekretu, który jest niematerialny). Można na przykład trzymać w ręku uwierzytelniacz lub nosić go na twarzy, nadgarstku lub palcu.

Wygodnie jest opisać wystawcę uwierzytelnienia pod kątem jego komponentów sprzętowych i programowych. Uwierzytelniacz jest oparty na sprzęcie lub oprogramowaniu, w zależności od tego, czy sekret jest przechowywany odpowiednio w sprzęcie czy w oprogramowaniu.

Ważnym typem uwierzytelnienia sprzętowego nazywa klucza zabezpieczeń, zwany również znak bezpieczeństwa (nie mylić z tokenów dostępowych , tokeny sesji lub innych rodzajów tokenów zabezpieczeń). Klucz bezpieczeństwa przechowuje swój klucz tajny na sprzęcie, co uniemożliwia jego eksport. Klucz bezpieczeństwa jest również odporny na złośliwe oprogramowanie, ponieważ sekret w żadnym momencie nie jest dostępny dla oprogramowania uruchomionego na komputerze hosta.

Autoryzator oparty na oprogramowaniu (czasami nazywany tokenem programowym ) może być zaimplementowany na urządzeniu elektronicznym ogólnego przeznaczenia, takim jak laptop , tablet lub smartfon . Na przykład program uwierzytelniający zaimplementowany jako aplikacja mobilna na smartfonie powoda jest rodzajem uwierzytelniacza opartego na telefonie. Aby uniemożliwić dostęp do klucza tajnego, autoryzator oparty na oprogramowaniu może użyć zaufanego środowiska wykonawczego procesora lub modułu Trusted Platform Module (TPM) na urządzeniu klienckim.

Program uwierzytelniający platformy jest wbudowany w konkretną platformę urządzenia klienckiego, co oznacza, że ​​jest zaimplementowany na urządzeniu. W przeciwieństwie do tego, uwierzytelnianie mobilne to międzyplatformowe uwierzytelnianie, które jest implementowane poza urządzeniem. Uwierzytelniacz mobilny łączy się z platformą urządzenia za pośrednictwem protokołu transportowego, takiego jak USB .

Przykłady

Poniższe sekcje opisują wąskie klasy elementów uwierzytelniających. Aby uzyskać bardziej kompleksową klasyfikację, zobacz Wytyczne dotyczące tożsamości cyfrowej NIST.

Uwierzytelniacze jednoskładnikowe

Aby skorzystać z narzędzia uwierzytelniającego, strona wnosząca roszczenie musi wyraźnie wskazać zamiar uwierzytelnienia. Na przykład każdy z poniższych gestów jest wystarczający do ustalenia zamiaru:

  • Powód wpisuje hasło w polu hasła lub
  • Powód kładzie palec na czytniku linii papilarnych lub
  • Powód naciska przycisk, aby wyrazić zgodę

Ten ostatni nazywa się testem obecności użytkownika (TUP). Aby aktywować uwierzytelnianie jednoskładnikowe ( coś, co ma ), strona roszcząca może być poproszona o wykonanie TUP, co pozwala uniknąć niezamierzonej operacji uwierzytelnienia.

Hasło

Hasło jest tajemnicą, że ma być zapamiętany przez powoda i wspólnie z weryfikatora. Uwierzytelnianie hasła to proces, w którym strona wnosząca roszczenie demonstruje znajomość hasła, przesyłając je przez sieć do weryfikatora. Jeśli przesłane hasło zgadza się z wcześniej udostępnionym hasłem, uwierzytelnianie użytkownika jest pomyślne.

PRZYSIĘGA OTP

Hasła jednorazowe (OTP) są używane od lat 80. XX wieku. W 2004 roku na dorocznej konferencji RSA ogłoszono architekturę referencyjną otwartego uwierzytelniania dla bezpiecznego generowania OTP . Inicjatywa dla Open Authentication (OATH) rozpoczęła się rok później. Z tej pracy wyrosły dwa standardy IETF, algorytm hasła jednorazowego opartego na HMAC (HOTP) i algorytm hasła jednorazowego opartego na czasie (TOTP) określony odpowiednio w RFC 4226 i RFC 6238. Przez OATH OTP rozumiemy HOTP lub TOTP. OATH poświadcza zgodność ze standardami HOTP i TOTP.

Tradycyjne hasło ( coś, co się zna ) jest często łączone z jednorazowym hasłem ( coś, co się posiada ), aby zapewnić dwuskładnikowe uwierzytelnianie. Zarówno hasło, jak i hasło jednorazowe są przesyłane przez sieć do weryfikatora. Jeśli hasło zgadza się z wcześniej udostępnionym sekretem, a weryfikator może potwierdzić wartość OTP, uwierzytelnianie użytkownika jest pomyślne.

Hasła jednorazowe są generowane na żądanie przez dedykowany program uwierzytelniający OATH OTP, który zawiera tajny klucz, który został wcześniej udostępniony weryfikatorowi. Korzystając z narzędzia uwierzytelniającego, strona wnosząca roszczenie generuje OTP przy użyciu metody kryptograficznej. Weryfikator generuje również OTP przy użyciu tej samej metody kryptograficznej. Jeśli dwie wartości OTP są zgodne, weryfikator może stwierdzić, że strona wnosząca roszczenie posiada wspólny klucz tajny.

Dobrze znanym przykładem uwierzytelniania OATH jest Google Authenticator typu open source , uwierzytelnianie oparte na telefonie, które implementuje zarówno HOTP, jak i TOTP.

Mobilne Push

Aplikacja uwierzytelniająca Mobile Push to zasadniczo natywna aplikacja działająca na telefonie komórkowym strony wnoszącej roszczenie. Aplikacja wykorzystuje kryptografię klucza publicznego do reagowania na powiadomienia push. Innymi słowy, mobilny program uwierzytelniający push to jednoskładnikowy program uwierzytelniający oprogramowanie kryptograficzne. Uwierzytelniacz Mobile Push ( coś, co się posiada ) jest zwykle łączony z hasłem ( coś, co znamy ), aby zapewnić uwierzytelnianie dwuskładnikowe. W przeciwieństwie do haseł jednorazowych, mobile push nie wymaga wspólnego sekretu poza hasłem.

Gdy strona wnosząca roszczenie uwierzytelni się za pomocą hasła, weryfikator wysyła żądanie uwierzytelnienia pozapasmowego do zaufanej firmy zewnętrznej, która zarządza infrastrukturą kluczy publicznych w imieniu weryfikatora. Zaufana osoba trzecia wysyła powiadomienie push na telefon komórkowy strony wnoszącej roszczenie. Powód demonstruje posiadanie i kontrolę nad stroną uwierzytelniającą, naciskając przycisk w interfejsie użytkownika, po czym strona uwierzytelniająca odpowiada podpisem cyfrowym. Zaufana strona trzecia weryfikuje podpis na asercji i zwraca odpowiedź uwierzytelniającą do weryfikatora.

Zastrzeżony protokół uwierzytelniania mobilnego push działa na dodatkowym kanale pozapasmowym, co zapewnia elastyczne opcje wdrażania. Ponieważ protokół wymaga otwartej ścieżki sieciowej do telefonu komórkowego powoda, jeśli taka ścieżka nie jest dostępna (np. z powodu problemów z siecią), proces uwierzytelniania nie może być kontynuowany.

FIDO U2F

FIDO Uniwersalny 2-ci Factor (U2F) uwierzytelniający ( coś, co trzeba ) jest pojedynczym czynnikiem Authenticator kryptograficzny, który ma być używany w połączeniu ze zwykłym hasłem internetowej. Ponieważ uwierzytelnianie opiera się na kryptografii klucza publicznego, U2F nie wymaga dodatkowego wspólnego klucza tajnego poza hasłem.

Aby uzyskać dostęp do wystawcy uwierzytelnienia U2F, strona roszcząca musi przeprowadzić test obecności użytkownika (TUP), który pomaga zapobiegać nieautoryzowanemu dostępowi do funkcji wystawcy uwierzytelnienia. W praktyce TUP składa się z prostego naciśnięcia przycisku.

Uwierzytelniacz U2F współpracuje z zgodnym z nią internetowym klientem użytkownika, który implementuje interfejs API JavaScript U2F. Uwierzytelniający U2F koniecznie implementuje protokół CTAP1/U2F, jeden z dwóch protokołów określonych w FIDO Client to Authenticator Protocol .

W przeciwieństwie do uwierzytelniania mobilnego push, protokół uwierzytelniania U2F działa całkowicie w kanale przednim. Wymagane są dwie podróże w obie strony. Pierwsza podróż w obie strony to zwykłe uwierzytelnianie hasłem. Po uwierzytelnieniu strony wnoszącej roszczenie za pomocą hasła weryfikator wysyła wyzwanie do zgodnej przeglądarki, która komunikuje się z wystawcą uwierzytelniającą U2F za pośrednictwem niestandardowego interfejsu API JavaScript. Gdy strona wnosząca roszczenie wykona TUP, osoba uwierzytelniająca podpisuje wyzwanie i zwraca podpisane potwierdzenie do weryfikatora za pośrednictwem przeglądarki.

Uwierzytelniacze wieloskładnikowe

Aby użyć uwierzytelniania wieloskładnikowego, strona wnosząca roszczenie przeprowadza pełną weryfikację użytkownika. Uwierzytelniacz wieloskładnikowy ( coś, co się posiada ) jest aktywowany za pomocą kodu PIN ( coś, co znamy ) lub danych biometrycznych ( coś, co jest unikalne dla nas samych”; np. rozpoznawanie odcisków palców, twarzy lub głosu ) lub inną techniką weryfikacji. ,

karta bankomatowa

Aby wypłacić gotówkę z bankomatu (bankomatu), klient banku wkłada kartę bankomatową do bankomatu i wpisuje osobisty numer identyfikacyjny (PIN). Wprowadzony kod PIN jest porównywany z kodem PIN zapisanym na chipie karty. Jeśli te dwa elementy są zgodne, wypłata z bankomatu może być kontynuowana.

Należy zauważyć, że wypłata z bankomatu obejmuje zapamiętany sekret (tj. PIN), ale prawdziwa wartość sekretu nie jest z góry znana bankomatowi. Maszyna na ślepo przekazuje wprowadzony kod PIN do karty, która porównuje dane wprowadzone przez klienta z tajnym kodem PIN zapisanym na chipie karty. Jeśli te dwa elementy są zgodne, karta zgłosi sukces do bankomatu, a transakcja będzie kontynuowana.

Karta bankomatowa to przykład wieloskładnikowego uwierzytelniania. Sama karta jest czymś, co się ma, podczas gdy kod PIN przechowywany na chipie karty jest prawdopodobnie czymś, co znamy . Przedstawienie karty w bankomacie i wykazanie znajomości kodu PIN jest rodzajem uwierzytelniania wieloskładnikowego.

Bezpieczna powłoka

Secure Shell (SSH) to protokół klient-serwer, który wykorzystuje kryptografię klucza publicznego do utworzenia bezpiecznego kanału w sieci. W przeciwieństwie do tradycyjnego hasła, klucz SSH jest uwierzytelniaczem kryptograficznym. Podstawowym sekretem uwierzytelniającym jest klucz prywatny SSH, który jest używany przez klienta do cyfrowego podpisywania wiadomości. Odpowiedni klucz publiczny jest używany przez serwer do weryfikacji podpisu wiadomości, co potwierdza, że ​​powód posiada i kontroluje klucz prywatny.

Aby uniknąć kradzieży, prywatny klucz SSH ( coś, co ktoś ma ) może być zaszyfrowany za pomocą hasła ( coś, co się zna ). Aby zainicjować proces uwierzytelniania dwuskładnikowego, strona roszcząca podaje hasło do systemu klienta.

Podobnie jak hasło, hasło SSH jest zapamiętanym sekretem, ale na tym kończy się podobieństwo. Podczas gdy hasło jest wspólnym sekretem, który jest przesyłany przez sieć, hasło SSH nie jest udostępniane, a ponadto użycie hasła jest ściśle ograniczone do systemu klienta. Uwierzytelnianie przez SSH jest przykładem uwierzytelniania bezhasłowego, ponieważ pozwala uniknąć przesyłania współdzielonego sekretu w sieci. W rzeczywistości uwierzytelnianie SSH w ogóle nie wymaga wspólnego tajnego klucza.

FIDO2

Standard protokołu FIDO U2F stał się punktem wyjścia dla projektu FIDO2 , wspólnego przedsięwzięcia World Wide Web Consortium (W3C) i FIDO Alliance. Wyniki projektu obejmują standard W3C Web Authentication ( WebAuthn ) oraz FIDO Client to Authenticator Protocol (CTAP). Razem WebAuthn i CTAP zapewniają silne rozwiązanie do uwierzytelniania w sieci.

Uwierzytelniacz FIDO2, zwany także uwierzytelniaczem WebAuthn, wykorzystuje kryptografię klucza publicznego do współpracy z klientem WebAuthn, czyli zgodnym klientem sieci Web , który implementuje interfejs API WebAuthn JavaScript . Uwierzytelniacz może być uwierzytelniaczem platformy, uwierzytelniającym roaming lub pewną kombinacją tych dwóch. Na przykład, FIDO2 uwierzytelniający, który implementuje protokół CTAP2 jest Authenticator roamingu, które komunikuje się z klientem WebAuthn za pośrednictwem jednego lub więcej z następujących środków transportu: USB , komunikacji bliskiego pola (NFC) lub Bluetooth Low Energy (BLE). Konkretne przykłady uwierzytelniaczy platformy FIDO2 obejmują Windows Hello i system operacyjny Android .

Uwierzytelniacz FIDO2 może być używany w trybie jednoczynnikowym lub wieloczynnikowym. W trybie jednoczynnikowym uwierzytelnianie jest aktywowane przez prosty test obecności użytkownika (np. naciśnięcie przycisku). W trybie wieloskładnikowym, uwierzytelnianie ( coś, co ktoś ma ) jest aktywowane przez kod PIN ( coś, co znasz ) lub biometrię ("coś, co jest unikalne dla ciebie").

Kod bezpieczeństwa

Przede wszystkim silne uwierzytelnianie zaczyna się od uwierzytelniania wieloskładnikowego . Najlepszą rzeczą, jaką można zrobić, aby chronić osobiste konto online, jest włączenie uwierzytelniania wieloskładnikowego. Istnieją dwa sposoby uzyskania uwierzytelniania wieloskładnikowego:

  1. Użyj uwierzytelniania wieloskładnikowego
  2. Użyj kombinacji dwóch lub więcej jednoskładnikowych uwierzytelniania

W praktyce powszechnym podejściem jest połączenie narzędzia uwierzytelniającego hasła ( coś, co się zna ) z innym uwierzytelniaczem ( coś, co się posiada ), takim jak uwierzytelnianie kryptograficzne.

Ogólnie rzecz biorąc, uwierzytelnianie kryptograficzne jest preferowane w porównaniu z uwierzytelnianiem, które nie wykorzystuje metod kryptograficznych. Wszystko inne jest równe, uwierzytelniający kryptograficzny, który używa kryptografii klucza publicznego jest lepszy niż ten, który używa kryptografii klucza symetrycznego, ponieważ ten ostatni wymaga kluczy współdzielonych (które mogą zostać skradzione lub niewłaściwie użyte).

Znowu wszystko inne jest takie samo, uwierzytelnianie sprzętowe jest lepsze niż uwierzytelnianie programowe, ponieważ sekret uwierzytelniania jest prawdopodobnie lepiej chroniony sprzętowo. Ta preferencja jest odzwierciedlona w wymaganiach NIST przedstawionych w następnej sekcji.

Poziomy gwarancji uwierzytelnienia NIST

NIST definiuje trzy poziomy pewności w odniesieniu do osób uwierzytelniających. Najwyższy poziom uwierzytelniania uwierzytelniania (AAL3) wymaga uwierzytelniania wieloskładnikowego przy użyciu uwierzytelniania wieloskładnikowego lub odpowiedniej kombinacji uwierzytelniania jednoskładnikowego. W AAL3 co najmniej jeden z uwierzytelniających musi być kryptograficznym uwierzytelniaczem sprzętowym. Biorąc pod uwagę te podstawowe wymagania, możliwe kombinacje uwierzytelniania używane w AAL3 obejmują:

  1. Wieloskładnikowy sprzętowy uwierzytelniacz kryptograficzny
  2. Sprzętowy kryptograficzny jednoskładnikowy uwierzytelniacz używany w połączeniu z innym uwierzytelniaczem (takim jak uwierzytelnianie hasła)

Zobacz Wytyczne NIST Digital Identity Guidelines, aby uzyskać dalsze omówienie poziomów gwarancji uwierzytelnienia.

Ograniczone podmioty uwierzytelniające

Podobnie jak poziomy gwarancji uwierzytelniania, pojęcie ograniczonego uwierzytelniania jest koncepcją NIST. Termin ten odnosi się do osoby uwierzytelniającej z wykazaną niezdolnością do odparcia ataków, co stawia pod znakiem zapytania wiarygodność osoby uwierzytelniającej. Agencje federalne łagodzą stosowanie ograniczonego uwierzytelniania, oferując subskrybentom alternatywny, nieograniczony uwierzytelniania i opracowując plan migracji na wypadek, gdyby ograniczony uwierzytelniania został zabroniony w pewnym momencie w przyszłości.

Obecnie korzystanie z publicznej komutowanej sieci telefonicznej jest ograniczone przez NIST. W szczególności ograniczona jest transmisja pozapasmowych haseł jednorazowych (OTP) za pomocą nagranych wiadomości głosowych lub wiadomości SMS . Co więcej, jeśli agencja zdecyduje się korzystać z OTP opartych na głosie lub SMS-ach, musi zweryfikować, czy OTP jest przesyłany na telefon, a nie na adres IP, ponieważ konta Voice over IP (VoIP) nie są rutynowo chronione za pomocą wieloczynnikowego uwierzytelnianie.

Porównanie

Wygodne jest używanie haseł jako podstawy do porównań, ponieważ jest powszechnie rozumiane, jak używać hasła. W systemach komputerowych hasła były używane co najmniej od wczesnych lat sześćdziesiątych. Bardziej ogólnie, hasła były używane od czasów starożytnych.

W 2012 roku Bonneau i in. oceniła dwie dekady propozycji zastąpienia haseł poprzez systematyczne porównywanie haseł internetowych z 35 konkurencyjnymi schematami uwierzytelniania pod względem ich użyteczności, możliwości wdrażania i bezpieczeństwa. (Cytowany raport techniczny jest rozszerzoną wersją recenzowanego artykułu o tej samej nazwie.) Odkryli, że większość schematów radzi sobie lepiej niż hasła w zakresie bezpieczeństwa, podczas gdy każdy schemat radzi sobie gorzej niż hasła w zakresie wdrażania. Pod względem użyteczności niektóre schematy radzą sobie lepiej, a niektóre gorzej niż hasła.

Google wykorzystał ramy oceny Bonneau et al. porównywanie kluczy bezpieczeństwa z hasłami i hasłami jednorazowymi. Doszli do wniosku, że klucze bezpieczeństwa są bardziej użyteczne i możliwe do wdrożenia niż hasła jednorazowe i bezpieczniejsze niż hasła i hasła jednorazowe.

Zobacz też

Bibliografia