Als ik zoek naar hoe key attestation nou eigenlijk werkt kom ik uit bij beschrijvingen als deze:
https://source.android.com/docs/security/features/keystore/attestationKnap complex, en los van een stortbui aan attributen die ertoe kunnen doen voor een applicatie, die het gebruik ervan lastig te implementeren maken. Google heeft overigens ook een methode ontwikkeld die veel simpeler is voor de ontwikkelaars, maar die is
wel afhankelijk van de Play Store. Deze video van een presentatie geeft een overzicht:
https://www.youtube.com/watch?v=Bc4ZLmTp4m0Kennelijk is Logius bezig de afhankelijkheid van de Play Store te verminderen, wat op zich goed is als we de afhankelijkheid van Amerikaanse tech-reuzen proberen te verminderen, maar de prijs is dus kennelijk een hoge complexiteit, en complexiteit is niet goed voor security, want hoe complexer iets wordt, hoe makkelijker je steekjes laat vallen in de implementatie.
De reden dat key attestation complex is is ongetwijfeld dat de hele keten van hardware, besturingssysteem en app geverifieerd moet worden, het weerspiegelt de complexiteit van dat geheel. Als je kijkt naar hoe versleutelde communicatie werkt op het internet is dat een oplossing voor het probleem hoe je over een onveilig netwerk communiceert tussen veilige eindpunten. Key attestation (en de voor de ontwikkelaar simpelere variant die in de video wordt besproken die Play Store nodig heeft) gaat over de vraag hoe je garandeert dat het eindpunt van de gebruiker, de smartphone, veilig is. Is die geroot? Is het OS werkelijk wat het moet zijn? Is de app zelf werkelijk wat die moet zijn? Nogmaals: dat is een complex geheel.
Toen bij banken digipassen en (Rabo/ING-)scanners nog de boventoon voerden was dat hele probleem voor authenticatie en signing verplaatst naar een apart apparaatje waaraan de gebruiker helemaal niets
kan veranderen. Dan verplaats je het communicatie-eindpunt van de pc van de gebruiker naar een apparaatje waar helemaal niet mee gesjoemeld kan worden, en dat maakt het attestation-probleem dramatisch veel eenvoudiger. Het heeft helaas ook nadelen:
• Het beperkt zich tot authenticatie en signing, er is geen enkele garantie dat een pc die stijf staat van de malware wel de juiste gegevens aan de gebruiker toont. Daarom is een hardwaretoken met een eigen schermpje en keypad waar al die malware en andere aanvallers niet aan kunnen komen superieur: wat je op
dat schermpje ziet is wat je ondertekent als gebruiker. Maar de weergave op de pc heeft niet die bescherming.
• De doorsnee gebruiker snapt helaas totaal niet dat en waarom het displaytje van de scanner die kritische status heeft, en de digipassen hebben helemaal geen displaytje dat transactiegegevens toont, net zo min als Yubikeys en dergelijke apparaatjes, die zelfs geen eigen keypad hebben om pin- en andere codes op in te toetsen. Dus zelfs als je "what you see is what you sign" hebt dan nog snappen heel wat mensen niet hoe bloedserieus ze dat moeten nemen en dat je dat je bij een verschil tussen de pc en het schermpje van het hardwaretoken het schermpje van het token moet geloven.
• De varianten waar je je bankpasje insteekt gebruiken de pincode die je ook buiten de deur gebruikt. Als die onverhoopt wordt afgekeken door iemand die de pas vervolgens rolt ben je zuur.
• Bugs in zo'n hardware-token zijn alleen op te lossen door het fysieke token te vervangen. Praktisch/logistiek is dat een nadeel, maar het is de keerzijde van de medaille van het voordeel dat je er als gebruiker/aanvaller niet mee kan sjoemelen.
Voor mijn eigen gebruik zou ik het een verademing vinden als Logius ook een scanner zoals ING die heeft (scanner met display en numeriek keypad en eigen pincode) zou ondersteunen, maar ik snap dus dat dat voor grote groepen mensen niet de veiligheid geeft die het lijkt te bieden als je aanneemt dat alle gebruikers goed snappen hoe het werkt.
Het alternatief lijkt de smartphone te zijn, in wezen een compacte general purpose-computer, maar waarop je niet de vrijheid hebt je eigen OS te kiezen, omdat de veiligheid vereist dat de fabrikant (van hardware en van het OS) alle touwtjes strak in handen heeft. En hoe weet je als gebruiker dat zo'n fabrikant, naast die sterke veiligheidsgaranties, niet doodleuk
ook persoonsgegevens oogst, je als gebruiker maximaal de cloud in zuigt in plaats van de keuze aan jou te laten, en dat soort ellende?
Ik weet die dingen niet. Ik heb zelf mede daarom geen smartphone. Ik heb ooit zijdelings van iemand die een tijdje een iPhone probeerde gezien hoe die voortdurend aan het worstelen was om te voorkomen dat alles de cloud in gezogen werd, werkelijk alles leek ontworpen te zijn vanuit de aanname dat wat hij niet wilde juist volkomen vanzelf sprak. Android lijkt het op dat punt beter te doen, maar daar kom ik zo nu en dan weer berichten over tegen dat Google meer zou oogsten aan je doen en laten dan de instellingen die je doet suggereren, berichten waarvan ik niet kan controleren hoeveel daar nou van klopt.
Logius, en banken, kijken niet verder dan naar hoe goed een platform hun applicatie beschermt en ondersteunt, maar niet naar of dat platform zelf voor de gebruiker geen nadelen heeft. De overheid is zover dat ze hun eigen afhankelijkheid van tech-reuzen willen afbouwen, maar gaat doodleuk door met het afhankelijk maken van de burger van diezelfde techreuzen. Wat Logius nu doet, de afhankelijkheid van de Play Store verminderen, is een stap maar nog heel ver verwijderd van de afhankelijkheid van Google elimineren. Persoonlijk vind ik dat een partij die zo'n afhankelijkheid voorschrijft zelf een geschikt apparaat mee moet leveren voor wie niet voor een smartphone kiest: het is een afhankelijkheid van de overheid of dienstverlener en niet van de gebruiker.
En als ze dan toch aansturen op afhankelijkheid van hun klanten/burgers/gebruikers van een smartphone, dan zou ik willen dat ze wél verder kijken dan hun eigen app en de gebruiker ook informeren over welke smartphones vrij zijn van dat gezuig dat de tech-reuzen. Degene die eisen stelt moet dat huiswerk doen, want dat is ondoenlijk voor een gebruiker, ook een die technisch redelijk goed onderlegd is, om zelf uit te vogelen. Als je je eigen klanten/burgers/gebruikers bindt aan een platform van een derde partij, zorg dan maar dat je die mensen vertelt hoe dat zit, na het zelf heel grondig en degelijk uitgezocht te hebben, want anders ben
jij als overheid, bank of wat dan ook degene die mensen overlevert aan die derde partij. Dat verantwoordelijkheidsbesef ben ik nog nergens tegengekomen.