Différentes méthodes d'entrée affectent les angles d'inclinaison, mais le réseau de neurones reconnaît le code PIN dans tous les cas après la collecte de données par le scriptComme vous le savez, tout smartphone possède de nombreux capteurs - GPS, lumière, capteurs d'orientation, capteurs de mouvement et environ 20 capteurs supplémentaires - tous fournissent en continu des données afin que le smartphone puisse interagir avec le monde physique environnant. Les développeurs ont plusieurs façons d'accéder aux informations de ces capteurs, y compris via un navigateur mobile, selon l'
API Javascript officielle .
Cette méthode ouvre un large champ de possibilités pour le piratage à distance. Par exemple, des spécialistes de la School of Computer Science de l'Université de Newcastle ont développé le script
PINlogger.js , avec lequel vous pouvez déterminer via le navigateur les boutons sur lesquels l'utilisateur clique sur le clavier à l'écran. Le script lit les informations des capteurs d'inclinaison de l'appareil mobile à chaque clic. Étonnamment, dans certains navigateurs (Safari), le script lancé dans le navigateur continue de collecter des données même à partir d'un écran verrouillé. Cela fonctionne de la même manière, si sur un onglet voisin vous tapez un mot de passe dans la banque en ligne sans fermer l'onglet précédent.
Cette méthode convient pour voler un code PIN à la fois via un site Web malveillant avec un script et depuis toute application mobile ayant accès aux informations des capteurs. La précision de reconnaissance des chiffres PIN est assez élevée. Un code PIN à quatre chiffres est reconnu au premier essai avec une probabilité de 70%, au deuxième - 86%, au troisième - 94% et au cinquième essai - avec une probabilité de 98% pour différents utilisateurs ou de 99% pour un utilisateur.
Les vecteurs d'attaque des onglets voisins (b) ne fonctionnent que dans Chrome et Dolphin pour iOS, et l'attaque depuis le cadre (a) fonctionne dans tous les navigateurs populaires, y compris Safari, Chrome, Firefox, Opera et DolphinPour une démonstration pratique de l'attaque, une interface spéciale a été développée pour saisir des codes PIN à quatre chiffres. La partie client a envoyé au serveur des relevés de capteurs d'orientation et de mouvement. La partie serveur a été implémentée sur Node.js et les lectures des capteurs ont été stockées dans la base de données MobgoLab.
Dans cette démonstration, il était facile pour les chercheurs d'identifier les événements de clavier à l'aide de l'événement
onkeydown . Les auteurs des travaux scientifiques attirent l'attention sur le fait qu'une approche similaire est utilisée dans d'autres programmes pour collecter des codes PIN pour les informations provenant de capteurs, tels que
TouchLogger et
TapLogger . Si vous devez détecter des clics sur l'écran verrouillé, vous devrez peut-être un scénario plus complexe pour segmenter les données du capteur afin d'isoler les éléments de données nécessaires. Par exemple, cela peut être fait en mesurant les amplitudes maximales du signal et en utilisant des capteurs supplémentaires, comme indiqué dans
les articles scientifiques précédents . Le code de saisie des données est
publié sur GitHub .
La base de données accumule des informations sur les clics et les lectures des capteurs au moment de la pression. Chacun des 10 volontaires a entré cinq fois 50 codes PIN à quatre chiffres (un total de 2488 codes PIN correctement entrés). Cet ensemble de données a ensuite été utilisé pour extraire des traits puis former le réseau neuronal (70% des données ont été utilisées pour la formation, 15% pour les tests et 15% pour les tests).
À en juger par les résultats des tests comparatifs, PINlogger.js est bien meilleur pour reconnaître les codes PIN à partir d'informations provenant de capteurs de mouvement que les développements similaires précédents. De plus, il s'agit du premier système à voler des codes PIN via un navigateur, et non via une application installée sur un smartphone.

Les chercheurs notent que la plupart des utilisateurs ne sont pas conscients du danger de fuite de données personnelles en prenant les données des capteurs. Un sondage auprès des utilisateurs a montré que la plupart d'entre eux voient la menace dans le GPS ou dans la caméra, et non dans ce qui constitue une menace plus réelle - dans les capteurs internes de mouvement, d'inclinaison et autres. Le nombre 25 n'est pas accidentel: c'est juste autant de capteurs que les chercheurs ont compté dans un smartphone standard. Le diagramme ci-dessous montre les résultats de l'enquête - dans lequel des 25 capteurs les utilisateurs voient la plus grande menace.

Les utilisateurs ne sont pas seulement inconscients de la menace. Beaucoup ne comprennent même pas quel type d'informations la plupart des 25 capteurs collectent. Les gens n'ont même pas entendu parler de certains capteurs.

Le problème est que ces informations ne sont pas protégées au niveau du système d'exploitation. Il est facilement accessible pour les applications et pour tous les sites via les navigateurs - sans autorisation. Seuls quelques capteurs nécessitent une autorisation explicite pour fournir des informations, y compris un appareil photo et un GPS. Les autres fournissent les informations de manière totalement ouverte.
En utilisant ces données ouvertes, vous pouvez non seulement collecter des codes PIN et des mots de passe, mais également surveiller l'utilisateur. Tout site peut déterminer quand une personne reçoit un appel et raccroche,

... lorsqu'une personne s'assoit, marche ou court.

Encore une fois, toutes ces informations sont disponibles sur tout site et toute application sans aucune autorisation. Les sites l'obtiennent en utilisant du JavaScript standard.
Les experts en sécurité et les principaux acteurs de l'industrie mobile sont bien conscients de ce problème de sécurité, mais jusqu'à présent, ils ne sont pas parvenus à un consensus sur la manière de le résoudre.
Les travaux scientifiques ont été
publiés le 7 avril 2017 dans la revue
International Journal of Information Security (doi: 10.1007 / s10207-017-0369-x), dans le domaine public.