Comme vous le savez, en 2015, nous avons lancé le système de paiement Mir, et les cartes Mir sont acceptées partout en Russie. C'est, bien sûr, très cool, mais maintenant, l'utilisation de portefeuilles mobiles pour payer les achats gagne en popularité. Selon les statistiques, en 2019, 19% de toutes les transactions sont des paiements via un smartphone. En 2017, il n'y en avait que 3%. En 2018, le système de paiement Mir Pay a également présenté sa propre application de paiement Mir Pay . Mir Pay est écrit en Kotlin et peut fonctionner sur les téléphones avec support NFC et Android 6.0 et supérieur.
Je m'appelle Valery Bogdanov, je suis à la tête du groupe de test dans l'équipe des paiements mobiles du département informatique de NSPK, et je vais vous expliquer comment fonctionnent les portefeuilles mobiles en utilisant notre application Mir Pay comme exemple .
Voyons d'abord comment fonctionne le paiement avec une carte plastique. Dans le cas classique, la carte est délivrée au titulaire par la banque émettrice. Dans ce cas, la carte dans une zone de mémoire protégée stocke la clé MK-AC ( Application Cryptogram Master Key ) partagée avec l'émetteur . Au moment du paiement (si opération en ligne ) génère une carte basée sur la clé de session MK-AC SK-AC ( Application Cryptogram Session Key ) et sur celle-ci, en utilisant les données cartographiques et les données sur l'opération reçues du terminal, génère un cryptogramme ARQC ( Authorization Demander un cryptogramme ). La génération du cryptogramme est basée sur l' algorithme 3DES (Triple DES ). Dans le cas général, les données de transaction sont envoyées de la carte au terminal, puis à l'hébergeur de la banque acquéreuse (c'est-à-dire au service du commerçant), puis au système de paiement et à la toute dernière étape à la banque émettrice (c'est-à-dire émettrice de la carte) pour autorisation.
L'émetteur vérifie le cryptogramme en le générant lui-même sur la base des données de transaction fournies avec l' ARQC et en le comparant à la valeur des données reçues. La banque émettrice peut approuver ou rejeter l'opération sur la base des résultats de l'analyse des données de la carte, des cryptogrammes, des limites établies, de l'évaluation des risques et d'autres paramètres.
Voyons maintenant la différence entre payer avec un portefeuille mobile. Ici, la banque émettrice ne donne rien au titulaire du portefeuille (à l'exception de la carte, bien sûr, mais elle ne participe pas directement au paiement), au lieu de cela, le titulaire de la carte entre ses données dans le portefeuille, et il "apparaît" dedans, ou plutôt, pas lui, mais un jeton spécial -profil généré sur la base de cette carte. Il est déjà clair qu'il ne sera pas possible d'organiser le paiement, comme dans le cas classique, car le téléphone manque de données de carte et de clé MK-AC de l'émetteur - à leur place, le profil de jeton et ses clés spéciales sont utilisés. Avant d'aborder le paiement, comprenons ce qui se passe lorsqu'une carte est «ajoutée» à un portefeuille mobile.
Le titulaire de la carte entre les données dans l'application (1)qui les transmet sous forme cryptée (plus à ce sujet plus tard) via les hôtes du fournisseur de services de portefeuille mobile ( WSP - Wallet Service Provider ) au système de paiement. Dans le cas de Mir Pay, le fournisseur de services de portefeuille est le NSPK, les données sont donc immédiatement transmises au système de paiement (2) . Le traitement ultérieur a lieu sur la plate-forme de paiement mobile (PMP). PMP déchiffre les données, détermine par le numéro de la carte l'émetteur par lequel elles ont été émises et demande confirmation de la possibilité d'ajouter la carte au portefeuille (3) . En cas de réponse positive (4) pour cette carte, la procédure pour générer un profil de token (5) et l'envoyer au téléphone (6)... Ainsi, au lieu des données de la carte, l'appareil mobile stockera un profil de jeton associé à cette carte et à cet appareil. Notez que la conversion du profil du token aux données de la carte d'origine n'est pas possible en dehors de la plateforme de paiement mobile. Après avoir enregistré le profil de jeton sur l'appareil de l'utilisateur, Mir Pay demande un pack de clés à usage unique au PMP (7) , qui sera utilisé par l'application lors d'un achat en tant que clés de session, similaire au SK-AC mentionné ci-dessus . Comme son nom l'indique, une clé à usage unique ne peut pas être utilisée plus d'une fois, par conséquent, lors de l'utilisation, l'application Mir Pay télécharge périodiquement de nouvelles parties de clés à partir du PMP. Ceci termine l'ajout de la carte à l'application.
Voyons maintenant comment le processus de paiement a changé par rapport au paiement par carte plastique.
La première étape est presque la même, seules les données de profil de jeton sont utilisées à la place des données de carte, et le cryptogramme ARQC est généré sur une clé à usage unique reçue du PMP en tant que session SK-AC . Une autre différence entre Mir Pay et les cartes plastiques est qu'au lieu de 3DES , un algorithme de cryptage par bloc symétrique plus moderne AES ( Advanced Encryption Standard ) est utilisé pour générer un cryptogramme .
En outre, les données sur l'opération passent également par le terminal, l'hôte de la banque acquéreuse et pénètrent dans le système de paiement. Par le numéro de jeton (à partir du profil de jeton), le système de paiement détermine qu'il ne s'agit pas d'une carte ordinaire, mais d'un jeton, et envoie l'opération au PMP pour vérifier le cryptogramme et la soi-disant détokenisation - en transformant le jeton en données de carte réelles. Oui, le cryptogramme est maintenant vérifié non pas par l'émetteur, mais par le PMP, car c'est dans les profondeurs de la plate-forme que ces clés à usage unique et le profil de jeton sont générés. En outre, l'opération avec déjà des données de carte est envoyée à la banque émettrice pour autorisation. Sur le chemin du retour - transformation inverse.
Dans Mir Payle schéma avec des clés à usage unique est utilisé, mais il existe une autre approche - stocker une clé sur l'appareil. Cette approche nécessite un élément de sécurité sur l'appareil et certains portefeuilles peuvent l'appliquer étant donné que certains appareils ont un tel élément de sécurité. Dans notre cas, étant donné la grande variété de téléphones Android, ce n'est tout simplement pas réalisable. Cette spécificité explique le schéma choisi.
Compte tenu du processus de tokenisation décrit ci-dessus, un point subtil peut être remarqué: lors du paiement avec un portefeuille, les données du profil du token sont utilisées, cependant, lorsqu'une carte est ajoutée, ses données sont envoyées aux hébergeurs du système de paiement, et ces données sont strictement confidentielles. Pour protéger les données de la carte dans Mir Payun système de protection à plusieurs étages est fourni. Au démarrage, un mécanisme de contrôle de l'intégrité de l'application et de vérification de l'environnement est automatiquement activé, ce qui ne permet pas l'utilisation d'une fausse application modifiée par des personnes non autorisées. Si un risque important est détecté, l'application en informe l'utilisateur et supprime automatiquement tous les profils de jetons stockés. De plus, les résultats de ces contrôles sont également analysés du côté du PMP.
Pour l'échange de données confidentielles PMP et Mir Paygénérer des paires de clés et échanger des composants publics. Étant donné que nous ne pouvons pas faire confiance à 100% au magasin de clés intégré, un schéma a été développé avec le stockage de différents composants clés à différents endroits: à la fois dans le magasin de clés et dans la RAM. Autrement dit, pour initier une opération frauduleuse, il faut, d'une part, extraire les cryptogrammes de toutes ces clés, et d'autre part, elles doivent également être décryptées! Mais ce n'est pas si facile et pas très efficace, car des clés strictement uniques sont utilisées pour les opérations. Et seulement après Mir Payet PMP a échangé des clés publiques, c'est-à-dire qu'ils ont en fait créé un canal sécurisé, le transfert de données sensibles est autorisé, qui est crypté avec des algorithmes crypto-résistants. Grâce à ce mécanisme, le profil de jeton, les clés à usage unique pour effectuer des transactions, ainsi que les données sur les transactions déjà terminées sont livrés au périphérique de l'utilisateur.
Comme vous pouvez le voir dans cette description, la sécurité des paiements basés sur les portefeuilles mobiles n'est pas seulement maintenue au niveau des cartes plastiques, et dans certains cas la dépasse même! L' application Mir Pay est conforme aux exigences de sécurité internationales et nationales et permet aux détenteurs de la carte Mir d'utiliser leur téléphone mobile pour le paiement sans crainte de fuite de données personnelles.
Actuellement le développement de Mir Paycontinue - après avoir publié les premières versions en peu de temps, nous introduisons déjà de nouveaux développements dans l'application, sans oublier d'améliorer ce qui a déjà été fait.
Un certain nombre de points nécessitent du développement - vous devez prendre en compte les modèles de smartphones récemment sortis et prévus, dépourvus de services Google, - passer à des homologues russes ou développer votre propre solution.