Mikä on uudelleenkäyttötunnuksen kierto ja miksi se on tärkeää?
Sukelletaan sisään ja puhutaan siitä, miksi uudelleenkäyttötunnuksen kierto on tehokas tapa suojata uudelleenkäyttötunnuksesi turvallisuus.
Mikä on uudelleenkäyttötunnus?
Uudelleenkäyttötunnus on erityinen tunnustyyppi, jota käytetään uuden käyttöoikeustunnuksen saamiseen, kun nykyinen käyttöoikeustunnus on vanhentunut. Tutustu aiempaan postaukseemme Ymmärrä tunnukset OIDC:ssä saadaksesi lisätietoja.
Esittelyssä mainitsimme myös, että Logto:ssa suojaamaan uudelleenkäyttötunnustasi, olemme oletuksena ottaneet käyttöön "uudelleenkäyttötunnuksen kierto" mekanismin.
Mutta mitä tarkalleen ottaen on "uudelleenkäyttötunnuksen kierto"? Miten se hyödyttää loppukäyttäjiämme? Sukelletaanpa sisään!
Mikä on uudelleenkäyttötunnuksen kierto?
Uudelleenkäyttötunnuksen kierto on mekanismi, joka mitätöi edellisen uudelleenkäyttötunnuksen ja antaa uuden, kun uudelleenkäyttötunnusta käytetään uuden käyttöoikeustunnuksen hankkimiseen. Tämä mekanismi varmistaa, että uudelleenkäyttötunnus uusitaan ennen sen vanhenemista.
Miksi tarvitsemme uudelleenkäyttötunnuksen kiertoa?
Uudelleenkäyttötunnuksilla on pitkä käyttöikä, yleensä viikkoja tai jopa kuukausia. Ja koska voimme hankkia uusia käyttöoikeustunnuksia uudelleenkäyttötunnuksella, uudelleenkäyttötunnuksesta tulee myös houkutteleva kohde hyökkääjille. Siksi OAuth 2.0 BCP:n mukaan valtuutuspalvelimen on toteutettava jokin seuraavista toimenpiteistä estääkseen tällaiset hyökkäykset.
- Lähettäjärajoitettujen uudelleenkäyttötunnusten myöntäminen: asiakas allekirjoittaa ja antaa allekirjoituksen (
Sec-Token-Binding
) uudelleenkäyttöpyynnön otsikossa, joten myönnetty uudelleenkäyttötunnus on kryptografisesti sidottu tiettyyn asiakasohjelmaan. Nykyään vain osa natiiveista asiakkaista on lähettäjärajoitettuja, ja useimmat nykyaikaiset SPA:t ja mobiilisovellukset ovat julkisia. - Uudelleenkäyttötunnuksen kierto: valtuutuspalvelin myöntää uuden uudelleenkäyttötunnuksen (tyypillisesti, kun vaihdetaan uuteen käyttöoikeustunnukseen) ja mitätöi edellisen. Tämä vähentää tunnuksen vuotamisen riskiä.
Parhaat käytännöt uudelleenkäyttötunnuksen kierron toteuttamiseen
Logto:ssa, kun käyttäjä on kirjautunut onnistuneesti sisään, Grant
-objekti luodaan ensin tietokantaan ja sen jälkeen myönnetyllä uudelleenkäyttötunnuksella on viite grantId
ja se osoittaa ensimmäistä Grant
-objektia.
Aina kun uudelleenkäyttötunnuksen kierto tapahtuu, edellinen uudelleenkäyttötunnus merkitään käytetyksi, ja Logto:n valtuutuspalvelin myöntää uuden uudelleenkäyttötunnuksen samalla grantId
:llä.
Oletetaan, että edellinen uudelleenkäyttötunnus vuotaa, niin joko oikeutettu asiakas tai hyökkääjä olisi käyttänyt sitä vaihtaakseen käyttöoikeustunnuksen. Ja riippumatta siitä, kuka niin teki, vuotanut uudelleenkäyttötunnus on jo kierrätetty ja merkitty käytetyksi. Joku heistä, joka käytti käytettyä uudelleenkäyttötunnusta toissijaisesti, ilmoittaa valtuutuspalvelimelle rikkomuksesta. Valtuutuspalvelin mitätöi kaikki saman grantId
:n sisältävät uudelleenkäyttötunnukset.
Yllä olevassa tapauksessa hälytyksen käynnistämisen jälkeen oikeutettu asiakas voi vain autentikoitua uudelleen kirjautumisprosessin kautta saadakseen uuden uudelleenkäyttötunnuksen. Hyökkääjä taas menettää järjestelmäsi hallinnan ja estetään ulkopuolelle.
Milloin uudelleenkäyttötunnuksen kierto tapahtuu?
Logto:ssa uudelleenkäyttötunnuksen kierron oletuskäyttäytyminen määrittää:
- Jos asiakas on lähettäjärajoitettu tai ei-julkinen (esim. palvelinpohjaiset web-sovellukset), niin uudelleenkäyttötunnuksen kierto tapahtuu, kun se saavuttaa 70 % kokonaisTTL:stä.
- Jos asiakas on julkinen asiakas (esim. yksisivuiset web-sovellukset), uudelleenkäyttötunnuksen kierto tapahtuu aina kun sitä käytetään käyttöoikeustunnuksen vaihtamiseen. Token-vaihtovastaus palauttaa sekä uuden käyttöoikeustunnuksen että uuden uudelleenkäyttötunnuksen.
Miten voin ottaa käyttöön/poistaa käytöstä uudelleenkäyttötunnuksen kierron Logto:ssa?
Logto hallintakonsolissa, mene Admin Console > Applications ja valitse sovellus, jolle haluat vaihtaa uudelleenkäyttötunnuksen kierron. Sovelluksen tietosivulla, mene "Advanced settings" välilehdelle ja selaa alas alhaalle, löydät kytkimen sekä joitakin muita hyödyllisiä asetuksia.
Jos katkaiset kytkimen, uudelleenkäyttötunnustasi ei koskaan kierrätetä ennen sen vanhenemista. Siksi suosittelemme vahvasti aina ottamaan käyttöön uudelleenkäyttötunnuksen kierron.
Yhteenveto: Mikä on uudelleenkäyttötunnuksen kierto ja miksi se on tärkeää?
Uudelleenkäyttötunnuksen kierto on paras käytäntö, joka varmistaa uudelleenkäyttötunnuksen turvallisuuden sovelluksessasi. Se mitätöi edellisen uudelleenkäyttötunnuksen ja myöntää uuden, kun uudelleenkäyttötunnusta käytetään uuden käyttöoikeustunnuksen saamiseen. Tämä mekanismi vähentää tunnuksen vuotamisen riskiä ja varmistaa uudelleenkäyttötunnuksen turvallisuuden.
Logto noudattaa alan johtavia parhaita käytäntöjä ja asettaa aina käyttäjien turvallisuuden etusijalle.
Toivon, että tämä blogi selittää hyvin epäilyksenne uudelleenkäyttötunnuksen kiertomekanismista. Kerro meille, jos jokin on edelleen epäselvää. Palautteesi ja ehdotuksesi ovat aina tervetulleita!
Kokeile Logtoa tänään ja koe turvallisempi tunnistautumiskokemus.