Share via


WebAuthn API-k jelszó nélküli hitelesítéshez Windows rendszeren

A jelszavak sebezhetővé tehetik az ügyfeleket az adatszivárgásokkal és a rosszindulatú felhasználók által elkövetett biztonsági támadásokkal szemben.

Microsoft már régóta a jelszó nélküli hitelesítés támogatója, és bevezette a W3C/Fast IDentity Online 2 (FIDO2) Win32 WebAuthn platform API-kat Windows 10-ben (1903-es verzió).

Windows 11 22H2-es verziójától kezdve a WebAuthn API-k támogatják az ECC-algoritmusokat.

Mit jelent ez?

A WebAuthn API-k használatával a fejlesztői partnerek és a fejlesztői közösség Windows Hello vagy FIDO2 biztonsági kulcsokkal implementálhatja a jelszó nélküli többtényezős hitelesítést az alkalmazásaikhoz a Windows-eszközökön.

Ezeknek az alkalmazásoknak vagy webhelyeknek a felhasználói bármilyen böngészőt használhatnak, amely támogatja a WebAuthn API-kat a jelszó nélküli hitelesítéshez. A felhasználók ismerős és konzisztens felhasználói élményben lesznek része a Windowsban, függetlenül attól, hogy melyik böngészőt használják.

A fejlesztőknek a WebAuthn API-kat kell használniuk a FIDO2 hitelesítési kulcsok egységes támogatásához a felhasználók számára. Emellett a fejlesztők a FIDO2-specifikációk szerint elérhető összes átvitelt (USB, NFC és BLE) használhatják, elkerülve ezzel az interakciót és a felügyeleti többletterhelést.

Megjegyzés

Ha ezek az API-k használatban vannak, Windows 10 böngészők vagy alkalmazások nem rendelkeznek közvetlen hozzáféréssel a FIDO2-átvitelekhez a FIDO-hoz kapcsolódó üzenetkezeléshez.

A nagy kép

A Client to Authenticator Protocol 2 (CTAP2) és a WebAuthn egy absztrakciós réteget határoz meg, amely létrehoz egy ökoszisztémát az erősen hitelesített hitelesítő adatokhoz. Ebben az ökoszisztémában minden olyan együttműködési ügyfél (például natív alkalmazás vagy böngésző), amely egy adott ügyféleszközön fut, szabványosított módszert használ az együttműködésre alkalmas hitelesítőkkel való interakcióhoz. Az interoperábilis hitelesítők közé tartoznak az ügyféleszközbe beépített hitelesítők (platformhitelesítők), valamint az ügyféleszközhöz USB-, BLE- vagy NFC-kapcsolatokkal (roaming authenticators) csatlakozó hitelesítők.

A hitelesítési folyamat akkor indul el, amikor a felhasználó egy adott felhasználói kézmozdulatot tesz, amely a művelethez való hozzájárulást jelzi. Az ügyfél kérésére a hitelesítő biztonságosan hoz létre erős titkosítási kulcsokat, és helyileg tárolja őket.

Az ügyfélspecifikus kulcsok létrehozása után az ügyfelek igazolásokat kérhetnek a regisztrációhoz és a hitelesítéshez. A titkos kulcs által használt aláírás típusa a végrehajtott felhasználói kézmozdulatot tükrözi.

Az alábbi ábra bemutatja, hogyan működik együtt a CTAP és a WebAuthn. A világoskék pontozott nyilak olyan interakciókat jelölnek, amelyek a platform API-k konkrét megvalósításától függenek.

Az ábra bemutatja, hogyan működik együtt a WebAuthn API a függő entitásokkal és a CTAPI2 API-val.

A jelszó nélküli hitelesítésben részt vevő összetevők kapcsolatai

Egy kombinált WebAuthn/CTAP2 tánc tartalmazza a következő szereplőgárda:

  • Ügyféleszköz. Az ügyféleszköz az a hardver, amely egy adott erős hitelesítést futtat. A laptopok és a telefonok ügyféleszközökre mutatnak be példákat.

  • Függő entitások és ügyfelek. A függő entitások olyan webes vagy natív alkalmazások, amelyek erős hitelesítő adatokat használnak. A függő entitások ügyféleszközökön futnak.

    • Függő entitásként a natív alkalmazások WebAuthn-ügyfélként is működhetnek közvetlen WebAuthn-hívások kezdeményezéséhez.

    • Függő entitásként a webalkalmazások nem tudnak közvetlenül kommunikálni a WebAuthn API-val. A függő entitásnak a böngészőn keresztül kell közvetítőként kezelnie az ügyletet.

    Megjegyzés

    Az előző ábrán nem látható az egyszeri Sign-On (SSO) hitelesítés. Ügyeljen arra, hogy ne keverje össze a FIDO függő entitásokat az összevont függő entitásokkal.

  • WebAuthn API. A WebAuthn API lehetővé teszi, hogy az ügyfelek kéréseket intézhessenek a hitelesítőkhöz. Az ügyfél kérheti a hitelesítőt, hogy hozzon létre egy kulcsot, adjon meg egy helyességi feltételt a kulcsról, jelentse a képességeket, kezelje a PIN-kódot stb.

  • CTAP2 platform/gazdagép. A platform (más néven a CTAP2 specifikációban a gazdagép) az ügyféleszköz azon része, amely egyeztet a hitelesítőkkel. A platform felelős a kérés eredetének biztonságos jelentéséért és a CTAP2 Concise Binary Object Representation (CBOR) API-k meghívásáért. Ha a platform nem CTAP2-tudatos, az ügyfelek maguk vállalják a nagyobb terhet. Ebben az esetben az előző ábrán látható összetevők és interakciók eltérhetnek.

  • Platformhitelesítő. A platformhitelesítő általában egy ügyféleszközön található. A platformhitelesítők közé tartozik például az ujjlenyomat-felismerési technológia, amely egy beépített okostelefon-kamerát használó laptop ujjlenyomat-olvasót és arcfelismerési technológiát használ. A platformfüggetlen átviteli protokollok, például az USB, az NFC vagy a BLE nem tudnak hozzáférni a platformhitelesítőkhöz.

  • Roaming authenticator. A roaminghitelesítők több ügyféleszközhöz is csatlakozhatnak. Az ügyféleszközöknek támogatott átviteli protokollt kell használniuk az interakciók egyeztetéséhez. A roaminghitelesítők közé tartoznak például az USB biztonsági kulcsok, a BLE-kompatibilis okostelefon-alkalmazások és az NFC-kompatibilis közelségi kártyák. A roaminghitelesítők támogatják a CTAP1, CTAP2 vagy mindkét protokollt.

Számos függő entitás és ügyfél több hitelesítővel is kommunikálhat egyetlen ügyféleszközön. A felhasználók több böngészőt is telepíthetnek, amelyek támogatják a WebAuthn szolgáltatást, és egyidejűleg hozzáférhetnek egy beépített ujjlenyomat-olvasóhoz, egy csatlakoztatott biztonsági kulcshoz és egy BLE-kompatibilis mobilalkalmazáshoz.

Interoperabilitás

A WebAuthn és a CTAP2 előtt U2F és CTAP1 volt. Az U2F a FIDO Alliance univerzális második tényezős specifikációja. A CTAP1-et beszélő és U2F hitelesítő adatokat kezelő számos hitelesítő adat létezik. A WebAuthn úgy lett kialakítva, hogy együttműködjön a CTAP1 Authenticators szolgáltatással. A WebAuthnt használó függő entitások továbbra is használhatják az U2F hitelesítő adatait, ha a függő entitás nem igényel fiDO2-csak funkciókat.

A FIDO2 hitelesítők már implementálva vannak, és a WebAuthn függő entitásai a következő választható funkciókat igényelhetik:

A következő lehetőségek hasznosak lehetnek a jövőben, de a vadonban még nem voltak megfigyelhetők:

  • Tranzakciós jóváhagyás
  • Felhasználó-ellenőrzési index (a kiszolgálók meg tudják állapítani, hogy a helyileg tárolt biometrikus adatok módosultak-e az idő múlásával)
  • Felhasználó-ellenőrzési módszer (a hitelesítő a pontos módszert adja vissza)
  • Biometrikus teljesítménykorlátok (a függő entitás megadhat elfogadható hamis elfogadási és hamis elutasítási arányokat)

Microsoft implementáció

A FIDO2 Microsoft végrehajtása évek óta folyamatban van. A szoftverek és szolgáltatások független módon, szabványnak megfelelő entitásokként vannak implementálva. A Windows 10, 1809-es verzió (2018. október) kiadásától az összes Microsoft összetevő a webauthn-jelölt legújabb kiadását használja. Ez egy stabil kiadás, amely várhatóan nem fog normatívan megváltozni a specifikáció végleges ratifikálása előtt. Mivel Microsoft a világon az elsők között helyezi üzembe a FIDO2-t, a népszerű, nem Microsoft összetevők bizonyos kombinációi még nem működnek együtt.

Íme egy hozzávetőleges elrendezés a Microsoft bitek helyére:

Az ábra bemutatja, hogyan működik együtt a WebAuthn API a Microsoft függő entitásokkal és a CTAPI2 API-val.

Microsoft WebAuthn és CATP2 API-k implementálása

  • WebAuthn függő entitás: Microsoft fiók. Ha nem ismeri az Microsoft-fiókot, ez az Xbox, az Outlook és sok más webhely bejelentkezési szolgáltatása. A bejelentkezési élmény ügyféloldali JavaScript használatával aktiválja Microsoft Edge-et a WebAuthn API-kkal való beszélgetéshez. Microsoft fiók megköveteli, hogy a hitelesítők a következő jellemzőkkel rendelkezzenek:

    • A kulcsok tárolása helyileg történik a hitelesítőn, nem pedig egy távoli kiszolgálón
    • Az offline forgatókönyvek működnek (A HMAC használatával engedélyezve)
    • A felhasználók több felhasználói fiók kulcsait is elhelyezhetik ugyanazon a hitelesítőn
    • Ha szükséges, a hitelesítők az ügyfél PIN-kódját használhatják a TPM feloldásához

    Fontos

    Mivel Microsoft-fiók olyan funkciókat és bővítményeket igényel, amelyek egyediek a FIDO2 CTAP2-hitelesítők számára, nem fogadja el a CTAP1 (U2F) hitelesítő adatokat.

  • WebAuthn-ügyfél: Microsoft Edge. Microsoft Edge képes kezelni a jelen cikkben ismertetett WebAuthn- és CTAP2-funkciók felhasználói felületét. Az AppID bővítményt is támogatja. Microsoft Edge képes a CTAP1 és a CTAP2 hitelesítők használatára. Ez az interakciós hatókör azt jelenti, hogy U2F és FIDO2 hitelesítő adatokat is képes létrehozni és használni. A Microsoft Edge azonban nem az U2F protokollt használja. Ezért a függő entitásoknak csak a WebAuthn specifikációt kell használniuk. Microsoft Edge androidos verziója nem támogatja a WebAuthn-t.

    Megjegyzés

    A WebAuthn és a CTAP Microsoft Edge-támogatásával kapcsolatos mérvadó információkért lásd: Örökölt Microsoft Edge fejlesztői dokumentáció.

  • Platform: Windows 10, Windows 11. Windows 10 és Windows 11 üzemeltetik a Win32 Platform WebAuthn API-kat.

  • Roaming Authenticators. Észreveheti, hogy nincs Microsoft roaminghitelesítő. Ennek az az oka, hogy már létezik egy erős, erős hitelesítésre szakosodott termék-ökoszisztéma, és minden ügyfélnek (akár vállalatoknak, akár magánszemélyeknek) különböző biztonsági, könnyű használati, elosztási és fiók-helyreállítási követelményekkel kell számolnia. A FIDO2 minősítésű hitelesítők egyre bővülő listájáról további információt a FIDO certified products (FIDO minősített termékek) című témakörben talál. A lista beépített hitelesítőket, roaminghitelesítőket és még minősített kialakítású chipgyártókat is tartalmaz.

Fejlesztői referenciák

A WebAuthn API-kat a Microsoft/webauthn GitHub-adattárban dokumentáljuk. A FIDO2 hitelesítők működésének megismeréséhez tekintse át az alábbi két specifikációt: