Comment l'UX mal conçu du test de coronavirus nous a presque mis dans l'auto-isolement, mais la faille de sécurité nous a sauvés



C'est moi, en train d'écrire un script pour parcourir les paramètres d'une requête POST à ​​gov.tr, assis devant la frontière avec la Croatie.



Comment tout a commencé



Ma femme et moi parcourons le monde et travaillons à distance. Récemment déménagé de la Turquie vers la Croatie (le point d'appel le plus optimal en Europe). Afin de ne pas aller en quarantaine en Croatie, vous devez avoir un certificat d'analyse négative pour covid, établi au plus tard 48 heures avant l'entrée.



Nous avons découvert que c'était relativement rentable (2500 roubles) et rapidement (tous les résultats arrivent dans les 5 heures) ils font un test à l'aéroport d'Istanbul, d'où nous venons de décoller.



Nous sommes arrivés à l'aéroport 7 heures avant le départ, avons trouvé un point de test. Ils font tout de manière chaotique: vous montez, donnez votre passeport, payez, obtenez 2 autocollants code-barres, allez au laboratoire mobile, où ils vous prennent l'un de ces autocollants pour identifier votre analyse. Ensuite, vous sortez et ils vous disent: allez sur ce site: enabiz.gov.tr/PcrTestSonuc , tapez votre code-barres et les 4 derniers chiffres de votre passeport, après un moment vous obtiendrez le résultat.







Mais si vous entrez les données juste après l'analyse, la page donne une erreur.









Même dans ce cas, des pensées d '«excellent» UX se sont glissées dans ma tête, dans lesquelles, avec toute erreur de l'opérateur, qui a martelé les données du passeport, il n'y a aucun moyen de connaître son résultat.



Avant le départ



L'heure du départ arrive, je conduis dans mes données et vois qu'il y a déjà des documents pour eux, bien qu'il n'y ait pas encore de résultat de test.









On peut même constater que les tests sont arrivés au laboratoire il y a une heure et demie. Mais l'entrée de données de ma femme génère toujours une erreur selon laquelle aucun enregistrement n'a été trouvé. Et surtout, vous ne pourrez pas simplement aller demander ce qui ne va pas, car nous avons réussi le test dans la région avant le contrôle des passeports.



Lors de l'embarquement, ils nous ont demandé les résultats des tests, mais, heureusement, nous avons pu convaincre le représentant de l'aéroport qu'ils allaient bientôt apparaître (leur a montré des codes à barres), et, en dernier recours, nous allions en quarantaine.



Dès que je suis monté dans l'avion, l'information est apparue dans mon code que mon test était négatif.







À l'arrivée



Et c'est là que le plaisir commence! Dès que nous sommes arrivés et que nous nous sommes connectés au WiFi local, il s'est avéré que le dossier de ma femme n'était toujours pas dans la base de données. Et à la frontière elle-même, ils ont abordé les documents très attentivement: le garde-frontière a fait un test de dépistage du coronavirus et les a emmenés dans une pièce séparée pour vérifier sa réalité. Nous avons décidé de raconter notre vérité telle qu'elle est et de découvrir quelles options nous avons.



Pendant que nous étions dans la file d'attente, j'ai décidé de vérifier les données correctes (mes) et incorrectes, comment réagit la page de validation.



Il s'est avéré qu'elle envoyait une demande de publication à www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik , avec les paramètres suivants:



barkodNo = XX

kimlikNo = YY

kimlikTipi = 2

barkodNo est le numéro de code à barres,kimlikNo - numéro de passeport, kimlikTipi - paramètre fixe égal à 2 (si vous ne remplissez que les deux premiers champs). Aucun jeton n'était visible. La demande a donné 1 pour les paramètres corrects (mes données) et 0 pour les mauvais.



Du facteur j'ai essayé d'itérer plus de 40 combinaisons (soudainement il y avait une erreur d'un caractère), mais rien n'en est sorti.



À ce moment-là, nous nous sommes approchés du garde-frontière, il a écouté notre histoire et proposé la quarantaine. Mais nous ne voulions manifestement pas rester assis dans l'appartement pendant 14 jours, nous avons donc demandé d'attendre un peu dans la zone de transit afin d'essayer de régler le problème dans quelques heures. Le garde-frontière est entré dans notre position, est allé chercher si nous pouvions nous asseoir dans la zone blanche et, avec le consentement du chef, a dit: «d'accord, juste quelques heures».



J'ai commencé à chercher le numéro de téléphone de ceux qui faisaient le test Corona, et en même temps j'ai décidé de tester une hypothèse folle: si ce système a un UX si terrible, alors le système de sécurité ne devrait pas être bon, bien que le gov.tr.



En conséquence, pendant les appels, j'ai écrit un petit script qui répétait tous les nombres de 0000 à 9999 dans le champ kimlikNo. barkodNon nous avions sur l'autocollant, donc ça ne pouvait pas être faux.



Imaginez ma surprise quand même après 500 requêtes continues, je n'ai pas été banni et que le script a continué à fonctionner à une vitesse de 20 requêtes par seconde depuis le WiFi de l'aéroport.



Les appels n'ont pas été très réussis: j'ai été redirigé d'un département ĸ à un autre. Mais très vite, le script a produit la valeur convoitée 6505, qui ne ressemblait pas du tout aux 4 chiffres réels du passeport.



Après avoir téléchargé le document, il s'est avéré qu'il ne s'agissait clairement pas du passeport de ma femme (de tels numéros n'existent même pas pour les étrangers russes), mais toutes les autres données (y compris le prénom, le nom et la date de naissance) sont correctes.







La chose la plus intéressante est que les codes-barres ne sont pas non plus aléatoires, mais vont presque un par un. Ainsi, en théorie, je pourrais trouver des contacts qui ont obtenu le numéro de passeport de ma femme et, en général, pomper en douceur les données privées d'autres personnes.



Mais il était 9 heures du matin et une nuit sans sommeil, j'étais en retard pour une réunion en ligne et j'étais heureux qu'ils nous aient laissé passer sans quarantaine, alors je viens de commencer mon voyage à travers l'Europe.



All Articles