Comment une application Google iOS enregistre-t-elle et restaure-t-elle les comptes actifs après leur suppression?

4

Sur un appareil iOS 8, j'ai installé Google Hangouts et, lors de son premier lancement, il pré-remplissait un compte précédemment associé à une application Google différente, supprimée depuis longtemps.

Comme je venais juste de réinitialiser l'identifiant publicitaire, j'ai supposé que ce devait être l'identifiant du vendeur (une autre application Google était installée sur l'appareil). J'ai donc supprimé les deux (toutes) applications Google de l'appareil, ce qui devrait réinitialiser l'ID de fournisseur.

J'ai ensuite réinstallé Google Hangouts et l'ai lancé. L'ancien compte était toujours actif. Ce n'est pas seulement un comportement mystérieux, c'est aussi une vulnérabilité assez sérieuse en matière de sécurité et de confidentialité. Lorsqu'une application est supprimée, et en particulier lorsque toutes les applications d'un fournisseur sont supprimées, il ne doit rester aucun compte ni aucune donnée active sur l'appareil.

Des idées sur la manière dont Google Hangouts connaît l'ancien compte?

pseudon
la source

Réponses:

1

Apple conseille aux développeurs de stocker les informations de connexion aux applications dans le trousseau iOS chiffré. Lorsque vous supprimez une application de votre téléphone, les enregistrements associés ne sont pas supprimés du trousseau.

Les trousseaux sont des conteneurs de stockage sécurisés, ce qui signifie que lorsque le trousseau est verrouillé, personne ne peut accéder à son contenu protégé. Sous OS X, les utilisateurs peuvent déverrouiller un trousseau (fournissant ainsi aux applications sécurisées l'accès au contenu) en saisissant un seul mot de passe principal. Dans iOS, chaque application a toujours accès à ses propres éléments de trousseau. l'utilisateur n'est jamais invité à déverrouiller le trousseau. Tandis que sous OS X, toute application peut accéder à n’importe quel élément de trousseau à condition que l’utilisateur donne sa permission, sous iOS, une application ne peut accéder qu’à ses propres éléments de trousseau.

https://developer.apple.com/library/ios/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html

Alistair McMillan
la source
Cela semble être le mécanisme le plus probable, mais s'il s'agit bien du mécanisme utilisé par Google (ou de n'importe quelle application), il semble extrêmement insécurisé et constitue une violation grave de la vie privée. J'ai eu accès à la connexion Google d'une autre personne simplement en installant une application à partir de Google alors qu'aucune autre application Google n'existait sur l'appareil. Il semble qu'il existe un moyen de nettoyer les applications nouvellement installées: stackoverflow.com/questions/4747404/… mais Hangouts ne l'a pas fait. Il ne semble pas non plus y avoir de moyen pour un utilisateur de supprimer des éléments de porte-clés non-Safari.
pseudon
Le gros problème de sécurité / confidentialité d'Apple est que les éléments du trousseau ne sont pas effacés lorsqu'une application est supprimée (ou, dans le pire des cas, lorsque la dernière des applications d'un fournisseur est supprimée). Le problème d'Apple est également qu'il n'existe pas de moyen facile pour les utilisateurs de supprimer des éléments de porte-clés individuels (non-Safari). Et c'est un problème de sécurité / confidentialité de Google, car ils permettent à une connexion de rester persistante après la suppression d'applications (y compris la suppression de toutes les applications Google).
pseudon
Je ne suis pas d'accord pour dire que c'est un gros problème de sécurité / confidentialité. Si quelqu'un vous donnait son appareil et que ses données le préoccupaient, il aurait dû d'abord l'effacer. Je ne donnerais jamais un appareil à quelqu'un avec des données encore dessus. Il n'existe aucun mécanisme permettant à une application de supprimer ses éléments de trousseau. Vous ne pouvez donc pas vraiment reprocher à Google ici. Je conviendrais cependant que ce serait bien si Apple nous fournissait un moyen de modifier notre trousseau, de la même manière que vous pouvez accéder aux paramètres Safari sur un appareil iOS et modifier les informations d'identification enregistrées.
Alistair McMillan
Oui, si je me débarrassais d’un appareil, je l’effacerais, même si je suis sûr que beaucoup de gens oublient ou ne savent pas comment. Mais je pense que c'est un comportement très contre-intuitif. Il est courant de partager un iPad avec sa famille et / ou ses amis, mais cela ne doit pas impliquer des connexions actives persistantes aux applications supprimées.
pseudon
Un autre cas d'utilisation consiste à supprimer l'application (ou même toutes les applications du groupe d'applications), mais plus tard, vous souhaitez réinstaller une application avec une nouvelle identité non liée à l'ancienne. Si les anciennes données sont restaurées à partir d'une sauvegarde, cela devient impossible.
Pseudon
1

Il utilise probablement iCloud comme méthode, éventuellement le magasin de clés iCloud .

En ce qui concerne le stockage…

L'espace total disponible dans le stockage de valeurs-clés iCloud de votre application est de 1 Mo par utilisateur. Le nombre maximal de clés que vous pouvez spécifier est de 1024 et la taille maximale autorisée pour chaque valeur associée à une clé est de 1 Mo. Par exemple, si vous stockez une seule valeur importante d'exactement 1 Mo pour une clé unique, cela consomme entièrement votre quota pour un utilisateur donné de votre application. Si vous stockez 1 Ko de données pour chaque clé, vous pouvez utiliser 1 000 paires clé-valeur. La longueur maximale d'une chaîne de clé est de 64 octets à l'aide du codage UTF8. La taille des données de vos chaînes de clés cumulées ne compte pas dans votre quota total de 1 Mo pour le stockage de valeurs-clés iCloud; Au contraire, vos chaînes de clés (qui consomment au maximum 64 Ko) sont comptabilisées dans l'allotissement total d'un utilisateur iCloud.

(Source: Lecture conceptuelle des développeurs Apple pour les limites de données d'iCloud Key-Value Storage, voir le lien ci-dessus)

En bref, les développeurs peuvent accéder aux données via les paires KV d'iCloud NSUbiquitousKeyValueStore, stocker des objets NSDictionarypouvant être stockés dans un fichier (jusqu'à 64 Ko par élément, jusqu'à 1024 clés et leur taille totale doit être inférieure à 1 Mo), et les récupérer ultérieurement.


Edit: Le stockage iCloud Key-Value n'est pas aussi sécurisé que les porte-clés. Google peut utiliser des trousseaux, mais également stocker des données chiffrées dans le magasin Key-Value, car iCloud présente des problèmes de sécurité. Peut-être utiliser le nom de l'appareil comme moyen de décrypter?

DDPWNAGE
la source
Les applications Google ne disposant pas d'autorisations pour iCloud, il est donc plus probable que ce soit Keychain.
pseudon
@pseudon KVS n'a pas besoin de permission.
DDPWNAGE
Possible alors. Cela constituerait également un comportement contre-intuitif de la part d'un utilisateur, qui ne s'attendrait jamais à ce qu'une application soit capable de stocker une connexion active de manière persistante dans son iCloud, en particulier pour une application supprimée. Une application peut-elle utiliser iCloud KV Store si iCloud n'est pas connecté ou en cours d'utilisation sur l'appareil?
pseudon
@ pseudon pas que je sache.
DDPWNAGE
1

... dans iOS, une application ne peut accéder qu'à ses propres éléments de trousseau

Les fournisseurs peuvent partager des données entre leurs applications, à l'aide du trousseau, à condition d'utiliser un groupe de trousseaux , défini dans les droits de leur bundle d'applications. "c'est propre" signifie fournisseur, pas application.

Comme d'autres l'ont souligné, les entrées de trousseau peuvent ne pas être nettoyées implicitement.

Étant donné que ce type de "suivi" est le plus large possible et ne concerne qu'un fournisseur avec des applications installées, la surface de risque de sécurité est considérablement réduite (par rapport au partage UUID ou UIPasteboard - tous deux supprimés / fermés).

Il est important de noter que les produits Apple sont actuellement conçus pour des "utilisateurs uniques"; Apple ne propose pas encore de partitionnement utilisateur (par exemple, toute empreinte digitale enregistrée déverrouille tout le périphérique. Par conséquent, si vous avez un ami / un enfant avec une empreinte digitale enregistrée, il obtiendra exactement le même accès que vous).

Ajout aux réponses de DDPWNAGE et Alistair (étant donné que je n'ai pas assez de représentants pour commenter), mais en précisant comment toutes les applications Google peuvent accéder à exactement une entrée de trousseau.

CuriousGeorge
la source