Eenmalige kodes kan op jou foon heeltemal korrek wees en dieselfde sekonde deur die bediener verwerp word. Beide kante bereken dieselfde funksie uit 'n gedeelde geheim en die huidige tydstap, so 'n meningsverskil oor die tyd lewer 'n meningsverskil oor die kode. Dit maak klokdrywing 'n veiligheidsrelevante fout eerder as 'n irritasie.

Twee klokke maak hier saak, en om die sigbare een reg te maak is die deel wat mense eerste doen. Die een wat gewoonlik aandag nodig het, is die ander een.

Die kode is 'n funksie van tyd, nie 'n wagwoord nie

TOTP neem die gedeelde geheim en 'n teller wat van die huidige tyd afgelei word, laat albei deur 'n gesleutelde hash gaan en kort die resultaat in tot 'n kort desimale string, soos gespesifiseer in RFC 6238. Die teller beweeg by elke tydstap vorentoe, gewoonlik dertig sekondes, so dieselfde geheim lewer 'n nuwe waarde wanneer die stap verander. Die verifieerder herbereken die verwagte waarde vir die huidige stap en vergelyk dit, wat dieselfde geheim en dieselfde idee van nou vereis. 'n Wagwoord bly hergebruikbaar totdat dit verander word, terwyl hierdie waarde op 'n grens verstryk wat die kliënt nie kan sien nie.

Dit is hoekom een kode werk en die volgende oomblikke later faal. Dit verduidelik ook hoekom die kopieer van 'n kode uit 'n kletsboodskap so 'n onbetroubare gewoonte is.

Twee klokke moet ooreenstem, nie een nie

Inskrywingsmateriaal is die eerste gedeelde ding, en tyd is die tweede. As die geheim reg is terwyl die klokke meer as die toegelate venster verskil, beland elke gegenereerde waarde in die verkeerde stap en word dit verwerp. As die klokke ooreenstem terwyl die geheim verkeerd is, word elke waarde ook verwerp, en albei foute lyk identies op die aanmeldskerm. Om hulle te skei beteken om die rekeninginskrywing en die tyd onafhanklik na te gaan, in daardie volgorde.

Die verifieerder se klok verdien dieselfde ondersoek as die toestel s'n. 'n Bediener wie se tydbron stukkend is, verwerp op een slag korrekte kodes van elke gebruiker, en die verslae sal 'n skielike onderbreking eerder as 'n drywing beskryf. Daardie patroon is die moeite werd om te herken, want die regstelling daarvan hoort op die bediener en nie op honderd telefone nie.

Wat dit kos om die venster te verbreed

Implementasies mag 'n kode van 'n aangrensende stap aanvaar om klein verskille te absorbeer, en daardie verdraagsaamheid is 'n ontwerpbesluit eerder as 'n gratis aanpassing. Elke ekstra stap vermenigvuldig die aantal waardes wat op enige oomblik geldig is, en dit is presies wat 'n raaiende aanvaller verkies. Die herspelreël maak om dieselfde rede saak, want 'n kode wat twee keer aanvaar word, is 'n kode wat nuttig gelek het. 'n Administrateur wat die venster verbreed om klagtes te stil, ruil 'n werklike eienskap vir 'n kosmetiese verbetering.

Om die klok reg te maak is die herstel, terwyl om die venster te verbreed 'n kalmeermiddel is. Die eerste verwyder die oorsaak en die tweede verberg dit.

Kontroleer albei klokke voordat jy weer probeer

Lees die tyd op die toestel en op die bediener, en vergelyk die afwykings eerder as die vertoonde plaaslike tye. Die opdragte hieronder wys sinchronisasietoestand en die rou UTC-oomblik op 'n Linux-gasheer of -bediener. Voer hulle aan beide kante uit voordat jy enige verifikasie-instelling verander.

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

'n Afwyking in sekondes gemeet is onskadelik, een in minute gemeet verduidelik 'n verwerping, en 'n stelsel wat geen sinchronisasiebron rapporteer nie, is 'n kandidaat vir albei. Vergelyk die twee UTC-tydstempels direk, want plaaslike tyd sluit 'n tydsone in wat die algoritme nooit sien nie. As die afwykings klein is en die kodes steeds faal, stop om klokke aan te pas en ondersoek eerder die inskrywing. Herhaalde pogings teen 'n gesperde rekening maak die oorspronklike fout moeiliker om te sien.

Teken die verwerpingstyd, die afwyking en die foutteks aan, en laat die gedeelde geheim daaruit. Ondersteuning kan met die eerste drie werk en behoort nooit die vierde te sien nie.

Verwante artikels