Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés

Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés
C'est moi, en train d'écrire un script pour énumérer 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. Nous avons récemment déménagé de la Turquie en Croatie (le meilleur point pour visiter l'Europe). Afin de ne pas entrer en quarantaine en Croatie, vous devez avoir un certificat de test covid négatif effectué au plus tard 48 heures avant l'entrée.

Nous avons découvert qu'il est relativement rentable (2500 roubles) et rapide (tous les résultats arrivent dans les 5 heures) de passer un test à l'aéroport d'Istanbul, d'où nous venons de prendre l'avion.

Nous sommes arrivés à l'aéroport 7 heures avant le départ, avons trouvé un point de test. Ils font tout de façon chaotique : tu montes, donnes ton passeport, paies, tu reçois 2 vignettes avec un code barre, tu vas au laboratoire mobile, où ils te prennent une de ces vignettes pour identifier ton analyse. Après tu pars, et ils te disent : va sur ce site : enabiz.gov.tr/PcrTestSonuc, entrez votre code-barres et les 4 derniers chiffres de votre passeport, après un certain temps, il y aura un résultat.

Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés

Mais si vous entrez des données immédiatement après avoir passé l'analyse, la page donne une erreur.

Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés
Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés

Même alors, des pensées sur la «belle» UX se sont glissées dans ma tête, dans lesquelles, avec toute erreur de l'opérateur qui a entré les données du passeport, il n'y a aucun moyen de connaître votre résultat.

Avant le départ

L'heure du départ arrive, j'entre mes données et je vois que les documents pour eux sont déjà là, bien qu'il n'y ait pas encore de résultat de test.

Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés
Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés

Il est même clair que les tests sont arrivés au laboratoire il y a 1.5hXNUMX. Mais la saisie de données de ma femme donne toujours une erreur indiquant que l'entrée n'a pas été trouvée. Et surtout, vous ne pourrez pas simplement aller demander ce qui ne va pas, parce que. Nous avons passé le test dans la zone avant le contrôle des passeports.

Lors de l'embarquement sur le vol, on nous a 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é les codes-barres) et, en dernier recours, nous irions en quarantaine.

Dès que je suis monté dans l'avion, mon code indiquait que j'avais un test négatif.

Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés

À 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 ne figurait pas dans la base de données. Et à la frontière elle-même, les documents ont été approchés avec beaucoup de précautions : le garde-frontière a fait un test de dépistage du coronavirus et l'a emmené dans une pièce séparée pour vérifier sa réalité. Nous avons décidé de raconter notre histoire de confiance telle qu'elle est et de découvrir quelles options nous avons.

Pendant que nous faisions la queue, j'ai décidé de vérifier les données correctes (mes) et incorrectes, la réaction de la page de validation.

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

code-barresNo=XX
kimlikNo=AA
kimlikTipi=2
code-barresNon - numéro de code barre, kimlikNon - ID du passeport, Kimlik Tipi – paramètre fixe égal à 2 (si seuls les deux premiers champs sont renseignés). Aucun jeton n'était visible. La requête a renvoyé 1 pour les paramètres corrects (mes données) et 0 pour les paramètres incorrects.

Du facteur, j'ai essayé de trier 40 combinaisons (soudain 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 a suggéré la quarantaine. Mais nous ne voulions clairement pas rester assis dans l'appartement pendant 14 jours, nous avons donc demandé à attendre un peu dans la zone de transit afin d'essayer de résoudre le problème en quelques heures. Le garde-frontière est entré dans notre position, est allé voir si nous pouvions nous asseoir dans la zone blanche et, avec l'accord du chef, a dit : "d'accord, juste quelques heures".

J'ai commencé à chercher les téléphones de ceux qui ont fait le test de la couronne, et en parallèle j'ai décidé de tester une hypothèse folle : si ce système a une UX aussi terrible, alors le système de sécurité ne devrait pas être bon, même si le gov.tr ​​​​domaine.

En conséquence, alors que j'étais assis sur des appels, j'ai écrit un petit script qui triait tous les numéros de 0000 à 9999 dans le champ kimlikNo. barkodNo nous avions sur un autocollant, donc ça ne pouvait pas être faux.

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

Les appels n'ont pas donné beaucoup de succès : j'ai été redirigé d'un service à l'autre. Mais très vite le script donna la valeur convoitée 6505, qui ne ressemblait en rien aux vrais 4 chiffres 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 (les étrangers russes n'ont même pas de tels numéros), mais toutes les autres données (y compris le prénom, le nom et la date de naissance) sont correctes.

Comment une UX mal conçue sur un test de coronavirus nous a presque mis en isolement, mais une faille de sécurité nous a sauvés

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 content qu'ils nous laissent passer sans quarantaine, alors je viens de commencer mon voyage à travers l'Europe.

Source: habr.com

Ajouter un commentaire