Eingongskodar kan vera heilt korrekte på telefonen din og likevel bli avviste av tenaren i same sekund. Begge sider reknar ut den same funksjonen frå ein delt løyndom og det gjeldande tidstrinnet, så usemje om tida gir usemje om koden. Det gjer klokkedrift til ein feil som er viktig for tryggleiken, og ikkje berre ein irritasjon.

To klokker har noko å seia her, og å retta den synlege er den delen folk gjer først. Den som vanlegvis treng merksemd, er den andre.

Koden er ein funksjon av tid, ikkje eit passord

TOTP tek den delte løyndomen og ein teljar som er leia ut frå gjeldande tid, køyrer begge gjennom ein hash med nøkkel og kortar resultatet ned til ein kort desimalstreng, slik det er fastsett i RFC 6238. Teljaren går framover ved kvart tidstrinn, vanlegvis tretti sekund, så den same løyndomen gir ein ny verdi når trinnet endrar seg. Stadfestaren reknar ut den forventa verdien for gjeldande trinn på nytt og samanliknar, noko som krev den same løyndomen og den same oppfatninga av no. Eit passord blir verande gjenbrukbart til det blir endra, medan denne verdien går ut på ei grense klienten ikkje kan sjå.

Difor verkar éin kode og den neste sviktar nokre augneblink seinare. Det forklarar òg kvifor det er så upåliteleg å kopiera ein kode frå ei chatmelding.

To klokker må stemma, ikkje éi

Registreringsmaterialet er det første felles, og tida er det andre. Viss løyndomen er rett medan klokkene avvik meir enn det tillatne vindauget, hamnar kvar genererte verdi i feil trinn og blir avvist. Viss klokkene stemmer medan løyndomen er feil, blir kvar verdi òg avvist, og båe feila ser like ut frå påloggingsskjermen. Å skilja dei inneber å kontrollera kontooppføringa og tida kvar for seg, i den rekkjefølgja.

Klokka til stadfestaren fortener same gransking som klokka til eininga. Ein tenar med øydelagd tidskjelde avviser riktige kodar frå alle brukarar samstundes, og rapportane vil skildra eit brått avbrot snarare enn eit avvik. Det mønsteret er verdt å kjenna att, fordi rettinga høyrer til tenaren og ikkje til hundre telefonar.

Kva det kostar å utvida vindauget

Implementasjonar kan godta ein kode frå eit nærliggjande trinn for å ta opp små skilnader, og den toleransen er eit designval, ikkje ei gratis justering. Kvart ekstra trinn multipliserer talet på verdiar som er gyldige til kvar tid, og det er nettopp det ein angripande gjetar føretrekkjer. Regelen mot gjenbruk er viktig av same grunn, sidan ein kode som blir godteken to gonger er ein kode som har lekt nyttig. Ein administrator som utvidar vindauget for å tyssa på klager, byter ein reell eigenskap mot ei kosmetisk betring.

Å retta klokka er reparasjonen, medan å utvida vindauget er eit beroligande middel. Det første fjernar årsaka og det andre løyner henne.

Kontroller båe klokkene før du prøver på nytt

Les tida på eininga og på tenaren, og samanlikn avvika i staden for dei viste lokale tidene. Kommandoane nedanfor viser synkroniseringstilstand og det rå UTC-tidspunktet på ein Linux-vert eller -tenar. Køyr dei i båe endar før du endrar noka autentiseringsinnstilling.

timedatectl
date -u +'%Y-%m-%dT%H:%M:%SZ'
chronyc tracking
timedatectl timesync-status

Eit avvik målt i sekund er ufarleg, eit målt i minutt forklarar ei avvising, og eit system som ikkje melder noka synkroniseringskjelde er kandidat for båe. Samanlikn dei to UTC-tidsstempla direkte, sidan lokal tid inneheld ei tidssone algoritmen aldri ser. Viss avvika er små og kodane framleis sviktar, slutt å justera klokker og gransk registreringsoppføringa i staden. Gjentekne forsøk mot ein låst konto gjer den opphavlege feilen vanskelegare å observera.

Noter avvisingstida, avviket og feilteksten, og hald den delte løyndomen utanfor. Støtte kan jobba med dei tre første og bør aldri sjå den fjerde.

Relaterte artiklar