Profiil on endiselt loendis, sertifikaat kuvatakse endiselt paigaldatuna ja ühendusnupp ebaõnnestub teatega, mis ütleb ainult „Keystore'i viga“ ja ei midagi muud. Enne rakenduse salvestusruumi kustutamist või telefoni üleandmist tehke kindlaks, milline võtmeoperatsioon ebaõnnestus. Kolm tulemust tekitavad sama dialoogi ja need vastavad kolmele erinevale tegevusele — ainult üks neist on hävitav. Võrdlus on väärt kümmet minutit, sest vale haru maksab teile identiteedi, mida te püüdsite hoida.

Kolm riket ühe dialoogi taga

Esimene on autentimine. Võti on olemas ja kehtiv, kuid selle kasutamine nõuab, et kasutaja tõestaks kohalolekut — seadme lukust avamine, biomeetria või tööprofiili väljakutse. Kui lukustusaealine, registreeritud biomeetria või profiili olek on hiljuti muutunud, võib võtme kasutamine ebaõnnestuda, samal ajal kui võti ise on täiesti korras.

Teine on püsiv kehtetuks muutmine. Platvormi poliitika muudab teatud võtmematerjali kehtetuks, kui lukustusmeetod lähtestatakse või biomeetriline registreering muutub, sest selle kaitsnud side ei kehti enam. Võtit ei saa parandada ja korduskatse ei ole taastamisplaan; identiteet tuleb asendada selle väljastanud registreerimisprotsessi kaudu.

Kolmas on teenusepakkuja rike: keystore'i teenus ei suutnud toimingut praegu lõpule viia. See on klass, mida mõnikord tasub korrata, ja ainus selline.

FailureWhat it meansWhat recovers itWhat does not
User not authenticatedKey needs a presence checkSupported unlock or authorization flowA VPN account password reset
Key permanently invalidatedBinding is gone; key unusableReplacement enrollment for that identityRetrying, rebooting, reinstalling the client
Transient provider errorService could not complete nowThe provider's documented retry pathClearing app data

Pange tähele, et kaks kolmest ei ole hävitavad ja ühel pole seadme tasandil üldse lahendust. Ükski neist ei lahene telefoni kustutamisega, mis on samm, mille inimesed teevad esimesena, sest dialoog ei anna neile midagi muud, mille alusel tegutseda.

Uuesti registreerimine versus andmete kustutamine

Need kaks näevad väljastpoolt sarnased ja ei ole seda. Uuesti registreerimine palub väljastaval süsteemil uut identiteeti — värske sertifikaat või võti, mis on selle seadmega seotud — ja võtab vana kasutusest välja. Andmete kustutamine kustutab rakenduse salvestatud oleku, mis võib eemaldada viite võtmele ilma võtit eemaldamata, või võib võtme eemaldada ja jätta teid ilma volituseta see uuesti luua.

Erinevus on oluline, sest mitteeksporditavad võtmed ei ole disaini järgi teisaldatavad. Need elavad seadme keystore'is, mida toetab mis tahes saadaolev riistvara või teenusepakkuja, ja need ei ole midagi, mida varukoopia tabab ja taastamine tagasi paneb. Kui juurutuse identiteet on mitteeksporditav võti, kavandage taastamiseks uuesti registreerimine ja kinnitage eelnevalt, et teil on selle registreerimise saamiseks kinnitatud tee — mõned organisatsioonid nõuavad selleks juurdepääsu privaatvõrgule, ja just seda pakkus katkine VPN.

Seega on järjekord: proovige toetatud autentimisteed, seejärel tehke kindlaks, kas võti on püsivalt kehtetu, ja asendage identiteet ainult siis, kui see on. Salvestusruumi kustutamine kuulub viimaseks, pärast seda, kui teate, mis luuakse uuesti, mitte esimeseks, sest see on lihtne.

Korrake ainult seda, mida saab korrata

Vanemad platvormiversioonid koondasid keystore'i vead ühte erindisse, mistõttu nii paljud kliendid kordavad kõike. Alates API 33-st kannab erindi tüüp struktuuri: numbriline viga, mööduva rikke lipp ja korduskatse poliitika. Kliendi arendaja jaoks on korduskatse poliitika mõttekas ainult siis, kui mööduvuse lipp on tõene; püsival kehtetuks muutmisel pole korduskatse ajakava, ja selle vastu tsüklis tagumine lihtsalt tühjendab akut ja täidab logi.

Kui te diagnoosite, mitte ei kirjuta klienti, on praktiline tagajärg sama. Identsed vead igal katsel välistavad ühekordse tõrke, kuid ei erista püsivalt kehtetuks muudetud võtit teenusepakkujast, mis on juba mõnda aega kättesaamatu — pakkuja katkestus näeb kümnendal katsel välja täpselt sama nagu esimesel. Ilma API 33 struktureeritud väljadeta käsitlege kordamist põhjusena otsida teist signaali — veakoodi, kui teie build seda näitab, operaatori olekut või teist võtit samas seadmes, mis õnnestub — mitte tõendina, et võti on surnud.

Lugege põhjusabelat, mitte silti

Rakendused mähivad algse erindi ja kasutajaliidese sõbralik tekst varjab sageli ainsat välja, mis haru otsustab. Säilitage põhjusabel ja katse ajatempel: välimine erind nimetab tavaliselt toimingu ja põhjus nimetab võtme oleku.

Vastustage järeldusele, et kaks ebaõnnestuvat rakendust tõestavad defektset seadet. Erinevaid võtmeid võivad toetada erinevad teenusepakkujad ja turbetasemed ning rakendus, mis veel töötab, ei pruugi üldse sama toimingut sooritada — allkiri, dekrüpteerimine ja võtme atesteerimine on erinevad taotlused samale teenusele. KeyStoreExceptioni viide kirjeldab struktureeritud välju uuemate API-tasemete puhul ja on koht, kust kontrollida, mida teie build tegelikult teatada suudab.

See, mis toetaks riistvarajäreldust, on kitsam, kui enamik eeldab: sama toiming sama teenusepakkuja juures ebaõnnestub sõltumatute võtmete lõikes pakkuja tasandi veaga, mitte võtme tasandi veaga. See on platvormi diagnostika küsimus, mitte tugifoorumi lõim seadmepartii kohta.

Mida otsustamise ajal kirja panna

Kirjutage üles Androidi build, kliendi versioon, valitud profiil, ebaõnnestunud toiming ja kas midagi on hiljuti muutunud — operatsioonisüsteemi uuendus, lukustusekraani muudatus, uus sõrmejälg, uuesti registreerimine. Kirjutage jada üles kontekstina, mitte põhjuse tõendina; lukustuse muudatus enne võtme riket on usutav korrelatsioon, mitte demonstratsioon.

Seejärel tegutsege kindlaks tehtud haru järgi. Mööduv: hoidke identiteet, kasutage toetatud korduskatse teed. Autentimine nõutav: lõpetage toetatud lukust avamise voog ja hoidke juurutuse nõutud lukustuspoliitikat, selle asemel et see dialoogist möödumiseks välja lülitada. Püsivalt kehtetu: asendage ja võtke identiteet kasutusest välja tavapärase registreerimise kaudu.

Lõpetage tulemuse tõestamisega värskel volitatud ühendusel, tõelise ressursini, serveri valideerimine endiselt sisse lülitatud. Miski, mis töötab ainult lõdvendatud sertifikaadikontrollidega, ei ole võtmeprobleemi parandanud — see on viinud selle võrgukihile, kus see hiljem halvemate sümptomitega pinnale tuleb.

  • Kolm haru: vajab autentimist, püsivalt kehtetu, pakkuja juures mööduv.
  • Ainult kolmas saab korduskatsest kasu, ja seda ainult oma korduskatse poliitika järgi.
  • Asendav registreerimine taastab juurdepääsu; andmete kustutamine võtab selle võimaluse ära.
  • Kontrollige värske ühenduse ja tavapäraste serveri identiteedikontrollidega.

Seotud artiklid