Claviers virtuels contre " keylogger"
Date : 02 Septembre 2005
Face à la menace que représentent les " keylogger" (programmes
enregistrant les évènements du clavier) pour les services bancaires en ligne,
de nombreuses banques proposent depuis peu, ou vont bientôt proposer, à leurs
clients, d'entrer leurs codes d'authentification depuis un clavier virtuel.
Principe des claviers virtuels
L'idée est de présenter un clavier sur l'écran du client, via une image "bitmap" dans la page HTML, et de permettre via une applet Java ou un javascript, une saisie des codes d'authentification, en cliquant sur les touches de ce clavier avec la souris.
Les informations saisies sont ensuite postées lors de la validation du formulaire par le client de la même manière que lorsqu'elles ont été saisies depuis le clavier.
Les informations saisies de cette manières échappent aux applications
malveillantes qui enregistrent les frappes au clavier pour les envoyer vers des
attaquants potentiels.
Limites de cette solution
La première faiblesse de cette solution est due à la possibilité pour une application malveillante de récupérer les données postées vers le serveur, avec une fonction capable de contrôler les entrées-sorties du navigateur de la victime qu'elle souhaite espionner.
Certaines banques ont trouvé un moyen de pallier cette faiblesse : les codes d'authentification étant numériques, les claviers proposés au client doivent être composés des 10 chiffres disposés dans une image de type "bitmap". Si ces chiffres sont placés de manière aléatoire dans une matrice, lorsque le client entre son code personnel et valide sa saisie, ce sont les coordonnées des cases de la matrice choisies par le client qui sont retournées au serveur de la banque. Ainsi, un attaquant capable d'écouter les informations postées obtient seulement des coordonnées internes à une matrice dont il ne connaît pas le contenu à un instant donné.
La seconde possibilité d'attaque contre la solution des claviers virtuels consiste à réaliser des captures d'écrans couplées aux clics de la souris, lorsque une connexion à un site bancaire est détectée.
Cette technique peut sembler compliquée par
rapport à un "keylogger", mais des programmes de démonstration
circulent déjà sur Internet, dont certains ont fait l'objet de présentation
lors de conférences auxquelles le Cert-IST a participé. De plus, il semblerait
que certains chevaux de Troie l'aient déjà implémentée (cf. l'article de "Websense Security Labs" http://www.websensesecuritylabs.com/alerts/alert.php?AlertID=262)
Conclusion
La saisie de codes d'authentification par un clavier virtuel marque une prise en compte de la part des banques des problématiques de la sécurité des transactions sur Internet.
Cette technique bien que plus sécurisée que la saisie directe au clavier, n'est cependant pas une solution hautement sécurisée comme peuvent l'être les authentifications fortes par cartes à puce ou par des mots de passe à usage unique (calculés à partir d'une question posée –"challenge"- par le serveur par exemple).
L'autre avantage de ces deux dernières solutions dans la quelle le client
n'a pas à envoyer un mot de passe fixe sur Internet, est qu'elles ne sont pas
vulnérables à des attaques de type "phishing".
Pour plus d'information :
Informations de banques sur le clavier virtuel
- BNP : https://www.secure.bnpparibas.net/controller?redir=5&stamp=1124959106455&type=homeconnex
- Société Générale : http://par.societegenerale.fr/EIP/resources/production/clavier_virtuel/clavier_virtuel_securite/
- Axa Banque : https://www.axabanque.fr/Contenu/securite3.htm
Programmes de démonstration d’attaques: http://securityfocus.com/archive/1/407472/30/210/threaded