Token oprogramowania
Token programowy (tzw. soft token ) to element zabezpieczenia uwierzytelniania dwuskładnikowego , za pomocą którego można autoryzować korzystanie z usług komputerowych. Tokeny oprogramowania są przechowywane na urządzeniu elektronicznym ogólnego przeznaczenia, takim jak komputer stacjonarny , laptop , PDA lub telefon komórkowy i mogą być duplikowane. (Porównaj tokeny sprzętowe , w przypadku których dane uwierzytelniające są przechowywane na dedykowanym urządzeniu sprzętowym i dlatego nie można ich powielić — brak fizycznej inwazji na urządzenie)
Ponieważ tokeny programowe są czymś, czego fizycznie się nie posiada, są one narażone na wyjątkowe zagrożenia oparte na powielaniu bazowego materiału kryptograficznego — na przykład wirusy komputerowe i ataki programowe . Zarówno tokeny sprzętowe, jak i programowe są podatne na ataki typu „man-in-the-middle” oparte na botach lub proste ataki typu phishing , w których wymagane jest podanie jednorazowego hasła dostarczonego przez token, a następnie terminowe dostarczenie do prawdziwej witryny. . Tokeny programowe mają zalety: nie ma fizycznego tokena do przenoszenia, nie zawierają baterie , które się wyczerpią, i są tańsze niż tokeny sprzętowe.
Architektura bezpieczeństwa
Istnieją dwie podstawowe architektury tokenów programowych: kryptografia z kluczem współdzielonym i kluczem publicznym .
W przypadku wspólnego klucza administrator zazwyczaj generuje plik konfiguracyjny dla każdego użytkownika końcowego. Plik będzie zawierał nazwę użytkownika, osobisty numer identyfikacyjny i tajny plik . Ten plik konfiguracyjny jest przekazywany użytkownikowi.
Wspólna tajna architektura jest potencjalnie podatna na ataki w wielu obszarach. Plik konfiguracyjny może zostać naruszony, jeśli zostanie skradziony, a token zostanie skopiowany. Dzięki tokenom programowym opartym na czasie możliwe jest pożyczenie PDA lub laptopa danej osoby, przestawienie zegara do przodu i wygenerowanie kodów, które będą ważne w przyszłości. Każdy token programowy, który wykorzystuje wspólne klucze tajne i przechowuje kod PIN wraz z kluczem współdzielonym w kliencie oprogramowania, może zostać skradziony i poddany atakom w trybie offline. Dzielone tajne tokeny mogą być trudne do dystrybucji, ponieważ każdy token jest zasadniczo innym oprogramowaniem. Każdy użytkownik musi otrzymać kopię klucza tajnego, co może powodować ograniczenia czasowe.
Niektóre nowsze tokeny oprogramowania opierają się na kryptografii klucza publicznego lub kryptografii asymetrycznej. Ta architektura eliminuje niektóre tradycyjne słabości tokenów programowych, ale nie wpływa na ich podstawową słabość (zdolność do powielania). Kod PIN może być przechowywany na zdalnym serwerze uwierzytelniającym zamiast z klientem tokena, aby skradziony token oprogramowania nie był dobry, chyba że znany jest również kod PIN. Jednak w przypadku infekcji wirusowej materiał kryptograficzny może zostać zduplikowany, a następnie przechwycony PIN (za pomocą keyloggera lub podobnego) przy następnym uwierzytelnieniu użytkownika. Jeśli podejmowane są próby odgadnięcia PIN-u, może on zostać wykryty i zalogowany na serwerze uwierzytelniającym, co może wyłączyć token. Korzystanie z kryptografii asymetrycznej upraszcza również implementację, ponieważ klient tokena może generować własną parę kluczy i wymieniać klucze publiczne z serwerem.
Zobacz też
- Uwierzytelnianie
- Uwierzytelnianie elektroniczne
- Google Authenticator
- Uwierzytelnianie wieloskładnikowe
- Token bezpieczeństwa