TsgcWSAPIServer_WebAuthn

Wyłącznie OpenSSL 3.

Wprowadzenie

Komponent TsgcWSAPIServer_WebAuthn zapewnia proste, lecz wydajne rozwiązanie do implementacji serwera Relying Party WebAuthn, umożliwiając uwierzytelnianie bez hasła w aplikacji internetowej. Aplikacja WebAuthn składa się z serwera WebAuthn obsługującego rejestrację i uwierzytelnianie po stronie serwera oraz aplikacji klienckiej, która zazwyczaj jest aplikacją JavaScript.

 

WebAuthn wymaga stosowania bezpiecznych połączeń (SSL/TLS), dlatego biblioteki OpenSSL muszą zostać wdrożone i skonfigurowane na serwerze.

 

Obsługiwane jest wyłącznie API OpenSSL w wersji 3.0.0 lub nowszej, starsze wersje OpenSSL mogą nie działać.

 

Konfiguracja

 

Komponent TsgcWSAPIServer_WebAuthn musi być dołączony do serwera HTTP, TsgcWebSocketHTTP_Server lub TsgcWebSocketServer_HTTPAPI, za pomocą właściwości Server. Możliwa jest konfiguracja punktów końcowych serwera obsługujących opcje rejestracji i uwierzytelniania oraz opcje WebAuthn, takich jak obsługiwane algorytmy, źródła i inne.

 

Opcje punktów końcowych

W tym miejscu można skonfigurować punkty końcowe serwera, które będą obsługiwać żądania HTTP/JavaScript w celu użycia WebAuthn jako uwierzytelniacza. Komponent jest już skonfigurowany z domyślnymi punktami końcowymi, ale można je wszystkie zmienić według własnych potrzeb.

 

 

Przykład: jeśli serwer nasłuchuje pod domeną www.test.com, żądanie opcji uwierzytelniania domyślnie będzie kierowane na adres http://www.test.com/sgcWebAuthn/Authentication/Options

 

Opcje WebAuthn

W tej właściwości można skonfigurować główne opcje komponentu serwera WebAuthn.

 

 

WebAuthn używa źródeł (origins) do wymuszania ograniczeń zasady tego samego źródła, co jest niezbędne do zapobiegania phishingowi i atakom cross-site. Podczas procesów rejestracji i uwierzytelniania WebAuthn źródło jest ściśle weryfikowane przez przeglądarkę i uwierzytelniacz.

 

 

 

W WebAuthn parametr crossOrigin to wartość logiczna wskazująca, czy operacja WebAuthn jest wykonywana z kontekstu cross-origin, na przykład z elementu iframe osadzonego z innego źródła niż kontekst przeglądania najwyższego poziomu.

Ten parametr został wprowadzony, aby pomóc przeglądarkom i urządzeniom uwierzytelniającym bezpiecznie obsługiwać żądania uwierzytelniania w środowiskach osadzonych, co jest częstym scenariuszem w nowoczesnych aplikacjach internetowych.

 

 

WebAuthn obsługuje wiele algorytmów kryptograficznych do generowania i weryfikacji poświadczeń klucza publicznego. Algorytmy te są stosowane podczas rejestracji poświadczeń (za pomocą navigator.credentials.create()) i uwierzytelniania (za pomocą navigator.credentials.get()), zapewniając bezpieczne podpisywanie i walidację wyzwań przy użyciu asymetrycznych par kluczy. Serwer jest domyślnie skonfigurowany z algorytmami ES256 i RS256, które są najczęściej stosowane. W dowolnym momencie można zmienić obsługiwane algorytmy za pomocą właściwości Algorithms. Obsługiwane są następujące algorytmy:

 

 

W WebAuthn atestacja jest opcjonalnym mechanizmem umożliwiającym uwierzytelniaczowi (np. urządzeniu lub kluczowi bezpieczeństwa) dostarczenie informacji o producencie, modelu i charakterystykach bezpieczeństwa podczas tworzenia poświadczeń. Informacje te pomagają Relying Party (RP) zdecydować, czy ufać uwierzytelniaczowi.

 

Różne formaty atestacji definiują sposób strukturyzowania i weryfikowania tych danych. Trzy najczęściej stosowane formaty to android-key, packed oraz inne, takie jak fido-u2f, apple lub none. Domyślnie wszystkie formaty atestacji są włączone. Poniżej znajduje się lista obsługiwanych formatów atestacji:

 

 

 

 

 

 

 

W API WebAuthn pole AllowCredentials jest polem opcjonalnym używanym podczas procesu uwierzytelniania (przez navigator.credentials.get()). Określa listę identyfikatorów poświadczeń, które są uprawnione do uwierzytelnienia użytkownika dla konkretnej jednostki zależnej (RP). Mechanizm ten umożliwia RP kontrolowanie, które poświadczenia są uznawane za prawidłowe przy próbie logowania. Właściwość credentials zawiera następujące pola:

 

 

 

 

Protokół WebAuthn

 

 

 

 

 

Dokumentacja