Finn Voorhees, un développeur iOS, vient de publier une drôle de petite histoire : après avoir cassé un iPhone accidentellement, il s'est rendu compte que le modèle de remplacement fourni par Apple ne lui permettait plus de se connecter à Snapchat, un réseau social.
Il a cherché la raison de ce bannissement, a découvert comment ce problème a pu arriver… et a dû changer d'iPhone. Premièrement, le souci vient du fait qu'Apple lui a fourni un iPhone remis à neuf, ce qui est plutôt un point positif. Il a ensuite cherché à vérifier comment Snapchat a pu identifier un iPhone précis, car les développeurs ne peuvent normalement pas accéder au numéro de série d'un appareil et la méthode classique pour identifier un appareil (identifierForVendor
) passe par une valeur qui est remise à zéro lors de la réinstallation d'une application, et donc lors du changement de smartphone.
En réalité, le réseau social passe visiblement par le framework DeviceCheck. Cette solution sert officiellement (notamment) à empêcher un utilisateur de tester plusieurs fois une application. Le problème de cette méthode, c'est qu'elle passe par des bits de données qui sont visiblement écrits dans une zone de l'iPhone qui est persistante. Elle résiste à une réinstallation de l'application, une remise à zéro de l'appareil ou même à l'import des données d'une autre personne. Plus concrètement, la personne qui vous rachètera votre iPhone ou — dans le cas de Finn — la personne qui a reçu l'iPhone après le reconditionnement par Apple sera bloquée si vous avez été bloqué par Snapchat.
Pour Finn, comme l'iPhone venait d'Apple, la solution a été de remplacer le smartphone une seconde fois. Visiblement, ni Snapchat ni Apple n'ont pu trouver une réelle solution au problème. Mais si vous avez acheté un iPhone d'occasion, vous n'aurez probablement pas cette possibilité. Il termine son article par une recommandation pour les autres développeurs : ce framework n'est pas destiné à servir à identifier un utilisateur précis mais bien un appareil précis et l'employer pour cet usage peut amener des erreurs. Notons enfin que d'autres applications emploient peut-être cette méthode pour bannir des utilisateurs, mais si c'est le cas elles ne sont pas connues.