Effet de vue fiable contre l'attaque de l'homme dans l'appareil

Bonjour, Habr.



Avez-vous déjà pensé au fait que l'ère de la cryptographie personnalisée est définitivement révolue. Non, je ne dis pas que le cryptage des messagers et des crypto-monnaies est aujourd'hui en disgrâce. Je parle du bon vieux RBS, en d'autres termes, des systèmes banque-client. Il y a une dizaine d'années, toute banque cliente qui se respectait se composait d'un logiciel et d'un token avec une signature numérique. Et aujourd'hui, c'est presque une rareté, tout le monde passe aux confirmations SMS partout, ce qui est certainement un ordre de grandeur plus pratique que de jouer avec les paramètres des fournisseurs de crypto-monnaie et de définir des certificats CPU.



Quel est le problème, la commodité a-t-elle vraiment dépassé la sécurité dans un domaine comme la finance? Mais non, il s'avère que la sécurité des deux options est également faible. Comment se fait-il, eh bien, c'est clair que l'authentification par sms est loin d'être une sécurité idéale avec la possibilité d'intercepter et de remplacer les sms, mais la crypte est même dans le support matériel! Le fait est que tout système de sécurité est évalué par son maillon le plus faible.



Alice et Bob



Je décrirai le problème en utilisant l'exemple d'Alice et Bob. Imaginez qu'Alice ait un smartphone dans une main, sur l'écran duquel un document de paiement est affiché. Et d'autre part, un jeton sans fil signé numériquement. Alice devra signer un ordre de paiement électronique, pour cela il suffit de coupler le token et le smartphone et de cliquer sur "signer".



Comme si tout était assez simple et sûr - les deux appareils appartiennent à Alice et les deux sont entre ses mains. Mais disons qu'il y a Bob, qui décide en ce moment d'intercepter le document d'Alice et d'envoyer un autre document à son jeton - par exemple, un ordre de paiement, dans lequel une grande quantité ira du compte d'Alice vers un compte inconnu.



image



Ici, nous ne considérerons pas différents scénarios sur la façon de procéder, il suffit de lister les zones potentiellement dangereuses où Bob peut effectuer la substitution prévue. Ainsi, la zone d'attaque potentielle comprend: le système d'exploitation du smartphone, le processeur, le processeur vidéo, la RAM, le canal de communication sans fil. L'interception à distance du contrôle du smartphone permet à Bob d'organiser une attaque dans l'une des zones répertoriées approximativement selon l'algorithme suivant: suivre que la passerelle de jeton est ouverte pour recevoir des données, intercepter le document d'Alice sur le chemin de la RAM à l'émetteur sans fil, envoyer son document à la passerelle de jeton, recevoir du récepteur du smartphone sans fil document signé et l'envoyer à un hôte spécifique. En même temps, affichez des informations sur le document signé avec succès par Alice sur l'écran du smartphone.L'attaque peut être menée sur un canal de communication sans fil, mais en général, l'algorithme d'attaque sera le même.



Quelqu'un peut avoir une question - qu'en est-il de la cryptographie, est-il vraiment impossible d'utiliser le cryptage pour se protéger contre Bob. Le cryptage peut être utilisé, bien sûr, mais malheureusement, il est impossible de cacher les clés de Bob, qui a pris le contrôle du smartphone, sur le smartphone lui-même. Mais même si les clés de cryptage sont retirées de l'appareil, cela ne sauvera pas la situation, car il est logique de crypter un document électronique uniquement avant de l'envoyer à un jeton pour protéger le canal sans fil. Toutes les autres opérations avec le document dans le smartphone lui-même sont effectuées exclusivement sous une forme ouverte. Dans cette situation, l'utilisateur ne peut compter que sur l'antivirus mis à jour et l'anti-fraude bancaire.



À propos de l'antifraude



Je voudrais dire quelques mots sur cette technologie controversée. Si quelqu'un a rencontré cela, il me comprendra. Tout paiement suspect du point de vue de la banque est instantanément bloqué, et avec lui le compte est bloqué, suivi d'un marathon de plusieurs jours de collecte de documents et de preuve à la banque que vous êtes un bon citoyen et que vous vouliez transférer de l'argent à un autre bon citoyen. Eh bien c'est ainsi, inspiré par les événements récents de ma propre expérience.



MITM, ou plutôt MID



Nous avons donc une sorte d'homme au milieu de la menace - "Man In The Middle" (MITM). Dans ce cas, au milieu entre l'écran du smartphone et le jeton signé numériquement. Mais contrairement à l'attaque classique de l'homme du milieu, il est impossible de la neutraliser à l'aide de méthodes cryptographiques. Je ne sais pas si ce type d'attaque a son propre terme spécifique, nous l'avons appelé «Man In Device» (MID) . Dans ce qui suit, j'appellerai cette attaque de cette façon.



Les capacités croissantes des cybercriminels à intercepter à distance le contrôle de l'ordinateur ou du smartphone de quelqu'un d'autre ouvrent des perspectives pour diverses attaques de pirates. De plus, les dommages les plus importants peuvent être causés par des attaques liées à la signature électronique - la substitution de documents lors de la signature et la substitution de documents lors de leur visualisation. Par exemple, vous voyez sur votre smartphone un passeport électronique, une procuration électronique, une pièce d'identité électronique, un billet électronique, etc. L'authenticité du document est confirmée par une signature électronique - mais comment vérifier rapidement et de manière fiable que le document électronique est bien signé avec une signature électronique et qu'il est conforme à la norme? J'espère que tout le monde comprend que le cachet avec les mots "signé par une signature électronique qualifiée" n'a rien à voir avec la signature électronique,et dans Photoshop, il peut être collé à n'importe quel document électronique.



C'est une chose si vous devez constamment vérifier l'authenticité de tels documents électroniques - dans ce cas, vous devez disposer d'un outil certifié pour recevoir, visualiser et vérifier les documents électroniques. Par exemple, un scanner QR et un ordinateur qui y sont connectés avec un logiciel certifié préinstallé.

Mais si vous êtes un simple utilisateur ou dans votre organisation il n'est pas nécessaire d'effectuer régulièrement ces opérations et que vous disposez d'un smartphone ordinaire pour vérifier un document électronique, alors vous risquez d'être victime d'une attaque avec une substitution de document sur l'écran de votre appareil.



Qu'y a-t-il sur le marché?



Existe-t-il des méthodes et des dispositifs pour neutraliser l'attaque Man In Device aujourd'hui? Oui, de tels appareils existent, ce sont des terminaux utilisateurs de la classe Trust Screen.



Leur principe de fonctionnement est d'empêcher physiquement un attaquant de pénétrer dans l'appareil lui-même. En fait, c'est le même smartphone, mais avec un logiciel pré-installé et certifié, avec un logiciel intégré pour travailler avec une signature numérique et coupé du monde extérieur. Et il n'a que deux fonctions: accepter un document électronique d'un certain format, l'afficher, le signer et le renvoyer avec une signature. Ou acceptez le document signé, affichez le document lui-même et un message sur la validité de la signature numérique. En général, c'est pratique, sûr et fiable, mais j'aimerais avoir quelque chose de plus compact pour de tels cas, idéalement ne nécessitant pas de charge et quelque chose qui soit toujours à portée de main.



Avec cette attitude, il y a un an et demi, nous avons commencé un brainstorming à la recherche d'une nouvelle solution à la menace Man In Device.



Retour à Alice et Bob



Pour plus de clarté sur la solution trouvée, revenons encore une fois au modèle de menace avec Alice et Bob. Ainsi, Alice tient toujours un smartphone dans une main, quels que soient la marque et le modèle et quel que soit le système d'exploitation. Appelons cela un appareil non fiable. Dans son autre main, Alice détient un certain appareil avec une signature numérique, nous supposerons qu'il s'agit d'un appareil de confiance certifié fabriqué conformément à tous les canons de la sécurité de l'information et Bob ne peut pas pirater cet appareil d'Alice. Mais Bob est facilement entré dans le smartphone d'Alice et est prêt à mettre en œuvre l'attaque Man In Device dessus.



Vous remarquerez peut-être que jusqu'à présent la situation n'est pas différente de celle décrite ci-dessus, dans laquelle Bob exécute facilement une fraude par usurpation de documents. Où est la solution?

La solution que nous avons trouvée, que nous appelons «l'effet de visionnage de confiance», ne neutralise pas ces attaques, mais nous permet de nous assurer que le bon document est affiché sur l'écran du smartphone. Ce principe est similaire à l'idée de la cryptographie quantique dans laquelle le canal de communication n'est pas protégé, mais les parties sont assurées de pouvoir déterminer la tentative d'interception de la clé. Donc, dans notre technologie - nous ne nous engageons pas à embrasser l'immensité dans une tentative de protéger les canaux de communication, le système d'exploitation, le processeur, etc., mais notre solution est capable de déterminer de manière fiable le fait de substitution ou de modification d'un document électronique sur des appareils non fiables, qu'il s'agisse d'un smartphone ou personnel ordinateur.



Pour comprendre comment fonctionne notre technologie, imaginons encore une fois que pour signer un document, un fichier avec un document est envoyé d'un smartphone vers un appareil de confiance. Mais le long du chemin du document, l'attaquant a de nombreuses façons de remplacer le document ou les données qu'il contient. Et ici se pose la question principale. Comment pouvez-vous vous assurer qu'un petit appareil de confiance qui n'a pas d'écran pour afficher le document reçu a reçu le bon document? Dans notre solution, nous renvoyons le document à partir du périphérique de confiance et ré-affichons son image sur l'écran du smartphone, mais en fournissant l'image du document dans le périphérique de confiance avec certaines étiquettes de sécurité générées de manière spéciale. La technologie développée crée un «effet de visualisation fiable» en raison des principes de la cryptographie visuelle - une direction exotique dans le domaine de la cryptographie moderne.



À propos de la cryptographie visuelle



L'une des méthodes les plus connues appartient à Moni Naor et Adi Shamir, qui l'ont développée en 1994. Ils ont démontré un schéma graphique secret partagé, selon lequel l'image était divisée en n parties de sorte que seule une personne avec les n parties pouvait déchiffrer l'image, tandis que les n-1 autres parties ne montraient aucune information sur l'image d'origine.



image

Connecter des secrets séparés vous permet de voir des informations cachées





Dans notre technologie, le mécanisme inverse fonctionne - trois secrets sont combinés en un seul tout, ce qui ne vous permet pas d'isoler chacun des secrets dans un temps strictement limité. Et seulement diviser le tout en trois parties originales vous permet de voir les informations qui y sont cachées.



3 secrets sont cachés ici







les secrets sont divisés




Analysons le schéma cryptographique de l'algorithme



Le texte d'origine se compose de trois images en noir et blanc, chaque pixel étant soit 0 - transparent, soit 1 - noir.



Lorsque les images se superposent, les pixels sont fusionnés selon le principe suivant:



1) 0 + 0 + 0 = 0

2) 1 + 0 + 0 = 1 ou 0 + 1 + 0 = 1 ou 0 + 0 + 1 = 1

3) 1 + 1 + 0 = 1 ou 1 + 0 + 1 = 1 ou 0 + 1 + 1 = 1

4) 1 + 1 + 1 = 1



Ainsi, la fusion d'images entraîne la perte de certaines informations (lignes 2 et 3), ce qui ne permettra pas sans clé restaurer chacune des images séparément. C'est l'étape du cryptage.



Maintenant, je vais vous montrer comment générer une clé de déchiffrement, c'est-à-dire décomposer une image en ses composants d'origine.



Par exemple, nous avons devant nous trois fragments des images originales, superposés les uns aux autres:







Le fragment crypté de l'image contient des pixels noirs et transparents et contient moins d'informations que les trois images originales.



Pour créer une clé de déchiffrement, vous devez parcourir les pixels noirs de chaque fragment des images d'origine et les faire correspondre en fonction des coordonnées.

La clé résultante contiendra les coordonnées des pixels noirs dans l'image cryptée et leur contenu d'origine.



Dans l'exemple donné, la clé suivante sera obtenue:



a1: 110, c2: 011, d2: 111, b4: 010, a5: 110, c5: 111



où a1 sont les coordonnées du pixel noir dans l'image cryptée, et 110 sont les couleurs des pixels avec les mêmes coordonnées dans les images originales.



Cet algorithme de chiffrement est essentiellement une fonction à sens unique avec une clé.



À propos de la force cryptographique



Calculons la résistance cryptographique de cet algorithme. Chaque pixel noir est le résultat de la fusion des pixels de trois couches. En même temps, comme indiqué ci-dessus, il y a 7 options pour une telle fusion, je les citerai à nouveau:







Ainsi, dans un petit fragment de l'image donnée dans l'exemple, constitué de 6 pixels noirs, il y a 7 à la 6ème puissance ou 117649 options de décomposition en images originales ...



Il n'est pas difficile d'estimer que si, par exemple, 1000 pixels de ce type apparaissent sur une image en taille réelle,alors le nombre d'options sera de 7 à la 1000e puissance, qui seracombinaisons.



Il est clair qu'avec une résistance cryptographique donnée, une méthode de piratage direct est impossible. Mais l'attaquant potentiel a d'autres méthodes de cryptanalyse.



Compte tenu du fait que récemment, les systèmes de reconnaissance d'image basés sur des réseaux de neurones ont fait de grands progrès, un attaquant potentiel pourrait bien les utiliser pour reconnaître une image d'un code d'authenticité sur une seule image. Cependant, cet outil dans ce cas sera impuissant pour trois raisons.

Tout d'abord, le code d'authenticité est affiché sous une forme déformée sous la forme d'un captcha. De plus, l'emplacement du captcha et l'angle d'inclinaison sont également aléatoires.



Deuxièmement, le captcha est mélangé avec l'image de la grille de sécurité, qui a un motif aléatoire et le texte du document.



Et troisièmement, le temps nécessaire pour tenter de reconnaître l'attaquant est extrêmement court, 1 à 2 secondes. C'est exactement combien de temps doit s'écouler entre le moment où l'utilisateur appuie sur le bouton de l'appareil de confiance et l'image apparaît sur l'écran de l'appareil non approuvé.





Essayez de reconnaître un mot de code mélangé à un filet de sécurité et à une partie du texte du document



Après décoloration de la maille de protection




Le même fragment après la couche avec le treillis protecteur est partiellement décoloré - le mot de code est facilement reconnaissable



Tout est-il si fluide?



Cependant, un aperçu de la technologie présentée serait incomplet sans mentionner une faille potentielle qu'un hacker pourrait exploiter. Le fait est que l'un des trois calques d'une seule image est connu à l'avance de l'attaquant Bob - il s'agit d'une image avec le texte du document. Naturellement, Bob a aussi une image de son propre document, avec laquelle il va remplacer le document d'Alice. Et puis la tâche de Bob peut être grandement simplifiée. Connaissant l'un des trois secrets sous la forme d'un calque avec une image de texte, vous pouvez soustraire un masque avec l'image de ce secret d'une seule image. En conséquence, il y aura une image qui comprend 2 couches - avec un filet de protection et un code d'authenticité. Ensuite, l'image résultante est mélangée avec l'image du texte du document original. Et c'est tout - le problème du piratage est résolu.



Cependant, tout n'est pas si simple ici: dans les zones où les pixels de texte sont mélangés avec les pixels de la grille de sécurité et / ou du code d'authenticité, après soustraction du masque, des espaces visibles resteront. Mais si le texte original diffère du faux par un petit nombre de caractères sur le fragment local, alors après que l'image résiduelle de la grille de sécurité avec le code d'authenticité soit imposée au texte original, ces lacunes dans la plupart des sections disparaîtront et ne resteront que dans un petit fragment où la substitution a été effectuée. Ainsi, Alice peut même ne pas remarquer la substitution de document.



Décision



Pour éviter la possibilité de piratage selon le scénario ci-dessus, une solution assez simple est proposée. Dans le périphérique de confiance, l'image du texte du document est auparavant légèrement déformée à l'aide de valeurs aléatoires. Le moyen le plus simple de se déformer est de changer la largeur de chacune des 4 marges de chaque page du document.



De plus, la largeur de chaque champ passera à sa valeur aléatoire, que ce soit dans le sens de l'augmentation ou de la diminution. Il suffit de changer la largeur des champs de quelques pixels et cette attaque sera visible à l'œil nu sous forme d'artefacts résiduels provenant de parties des caractères pendantes après soustraction du masque. Si le texte du document contient des lignes, comme dans l'exemple ci-dessous, alors lorsque le texte est déformé, les images des lignes ne sont pas affectées.





une décoloration douce de la grille de sécurité vous permet de vous assurer que le texte du document ne change



pas.Pour faciliter la compréhension, un exemple avec des images en noir et blanc est présenté. Mais avec une certaine modification de l'algorithme, il peut également être appliqué aux images couleur.



Maintenant, quelques mots sur le rôle de l'utilisateur dans cette technologie. L'utilisation de méthodes de cryptographie visuelle dans la technologie implique l'utilisation de la vision de l'utilisateur comme métrique principale pour évaluer l'absence ou la présence d'une attaque Man In Device. En fait, on parle de validation visuelle, qui s'exprime en deux opérations successives effectuées par l'utilisateur:



1.Comparer le code d'authenticité sur l'indicateur d'un appareil de confiance avec le code d'authenticité dans le captcha sur l'image du document





en tant que dispositif de confiance, il est proposé de créer une carte plastique spéciale

avec un indicateur d'un code d'authenticité et des boutons "confirmer" et "annuler"




2.Comparaison du texte affiché avec une diminution progressive du contraste des couches avec un treillis de protection et des codes d'authenticité avec le texte original du document



La dernière opération est basée sur la capacité de remarquer d'une personne le moindre changement dans l'image globale. Tout comme un chasseur est capable de remarquer du gibier en mouvement dans la forêt à travers les branches des arbres au moindre contour, ainsi l'utilisateur peut clairement voir que le texte progressivement émergeant du document ne change pas lorsque le contraste des deux autres couches de l'image diminue et correspond en contexte à l'original.



C'est la validation visuelle qui crée l'effet visuel final de confiance.



PS Dans la partie suivante, j'essaierai de parler des problèmes auxquels j'ai dû faire face lors du développement d'un prototype, comment il est possible de transférer certains des calculs complexes d'un appareil de confiance vers un serveur de confiance sans compromettre la sécurité, et si nous avons réussi à trouver un investisseur dans le projet.



All Articles