Door Erwtensoep: Bij Man-in-the-Browser aanvallen helpen zowiezo de meeste token generators niet, waar de algorithmes ook op gebaseerd zijn, omdat je zelf de overboeking signeert. Bijv. je wil 50 euro naar het rekeningnummer van bol.com overmaken, je vult deze waardes(het bedrag en het rekeningnummer) dan in en drukt op Ok of verzenden. Net voordat ze verzonden zijn past de malware die op je systeem actief is deze waardes dan aan naar bijv. 1000 euro en een rekeningnummer in Afrika. De bank stuurt dan deze waardes weer terug samen met de code die je in je token generator moet invoeren en mogelijk gebaseerd is op rekeningnummers en bedragen. Voordat de browser dan dit weergeeft wordt het bedrag en het nummer dan weer aangepast zodat het slachtoffer niks doorheeft en de transactie signeert met de code die de token generator genereert op basis van de ingevoerde code. De criminelen kunnen dus niet naar wens allemaal transacties doen, maar ze kunnen wel elke transactie die door het slachtoffer gemaakt wordt naar wens aanpassen. De Rabobank heeft dan sinds kort dat er nog een 2e code moet worden ingevoerd voor het signeren, namelijk het bedrag. Als de criminelen dit dan aanpassen om geen argwaan te wekken werkt het dus niet meer omdat er dan een verkeerde code uit de token generator komt. Dus kunnen ze alleen maar het echte bedrag laten zien en is er een zeer grote kans dat het slachtoffer dit opmerkt aangezien hij/zij het zelf van het scherm moet aflezen en invoeren i.t.t. oplossingen die een kabel gebruiken. De criminelen zouden natuurlijk nog wel de bedragen ongemoeid kunnen laten en alleen bij elke overboeking het rekeningnummer kunnen aanpassen, maar dan zijn de inkomsten voor hen een stuk lager.
Waar ik wel benieuwd naar ben is het verschil tussen een token generator waarbij de bankpas moet worden ingevoerd en een waarbij dat niet moet zoals de Digipass.
Je illustreert iets wat een zwak punt van is van de token modellen, en (in principe) een sterk punt van het TAN via SMS model.
Je moet de bancaire tokens (abn e-denitifier, rabo random reader e.d.) zien als een tweede secure channel, met (helaas) een extreem lage bitrate .
De bankpas erin maakt het een per-klant uniek token, zonder dat het stukje hardware uniek hoeft te zijn.
Je kunt dus makkelijk even iemand z'n random reader/e-dentifier lenen op kantoor als je wilt internet bankieren.
De digipassen moeten zorgvuldig aan de klant gekoppeld worden, en authenticeren slechts de klant, niet de transactie die door een compromised systeem naar de bank gestuurd wordt.
De bedoeling van dat tweede kanaal is *de transactie* *die de bank ontvangen heeft* bevestigen.
En het lastige is, dat de gebruiker liefst de hele transactie via dat tweede kanaal zou moeten bevestigen, handmatig, en zodanig dat de gebruiker snapt dat het om de transactie gaat.
De bank zou natuurlijk een hash van de hele transactie kunnen sturen, maar de gebruiker kan die niet zelf genereren, (want je kunt nu juist niet vertrouwen op de desktop computer).
Dus moet je de gebruiker een paar getallen, waaronder dan het bedrag wat de gebruiker denkt over te maken , laten intoetsen en daarmee genereer je een uitkomst die dienst doet als shared secret tussen gebruiker en bank.
Nu is het aantal getallen wat je kunt laten intoetsen erg beperkt, en het uitleggen dat het echt om het bedrag gaat en niet blindelings overtypen wat het scherm zegt is heel lastig.
Nog lastiger als een 'telefonische helpdesk' mensen 'door de storing heen praat' .
Het nieuwere ABN token, wat je via USB aan de computer koppelt kan in het display meer gegevens van de transactie laten zien.
Daarmee is de bitrate van het secure channel met de bank een stukje hoger geworden. Het is natuurlijk wel zaak dat het token dan ook echt een 'trusted component' vormt, en niet gecompromitteerd kan worden om een andere transactie te laten zien dan dat er getekent wordt.
De TAN vis SMS systemen hebben als voordeel dat ze (maar liefst) 160 karakters kunnen gebruiken om te vertellen welk(e) bedragen waar naar toe gaan. Heel wat meer dan je kunt laten intypen [zonder al je klanten kwijt te raken].
(het aanvalsmodel hier zit in compromised smart phones, en gewijzigde telefoonnummers bij de bank).
Maar zelfs dan zijn er nog steeds mensen die blindelings een transactie bevestigen ook al zegt de SMS dat er een ander bedrag ergens naar toe gaat.
Banken kijken dan ook naar afwijkende patronen, en denken over modellen waarbij 'standaard' transcties meteen doorgaan, en alleen afwijkende via SMS bevestigd moeten worden. De gedachte is dat als de TAN-uit-SMS inkloppen geen blinde routine is, de SMS beter gelezen wordt.
(lezers van Bruce Schneier, en Ross Anderson weten al langer dat de psychologische component van security [cq human interface, workflow, ] gewoon heel erg belangrijk is. Security falen hangt zelden echt op de cryptografie; En 'de gebruiker de schuld geven' is mischien lekker voor security experts, maar de faal is er, en de schuld geven of verschuiven doet daar niet aan af ).