
Dans mon dernier article, j'ai
expliqué comment je suis
allé à DefCamp . L'article d'aujourd'hui est la première partie d'une publication sur mes recherches sur la sécurité de l'Internet des objets, qui a constitué la base de ma présentation à la conférence.
L'IoT se développe rapidement: il y a maintenant plus de
260 entreprises , dont des villes intelligentes, des usines, des mines, des sociétés pétrolières, des détaillants, des soins de santé, de l'éducation et plus encore. Le cycle de publication ne couvrira que les domaines de la technologie portable, de la médecine intelligente et de la maison intelligente, y compris les applications mobiles.
Aujourd'hui, la technologie intelligente commence à avoir plus de sens que de connecter un casque Bluetooth à un téléphone, et elle devient courante, ce qui indique une compréhension de l'objectif de la technologie intelligente et des scénarios qu'elle permet d'automatiser.
La mauvaise nouvelle est que bon nombre de ces nouveaux appareils sont la cible d'attaques. Dans le même temps, les problèmes de sécurité ont été résolus rétroactivement ou n'ont pas été résolus du tout en raison du manque de prise en charge des anciens appareils. De tels appareils présentent un risque sérieux pour l'infrastructure (domestique ou professionnelle) s'ils ne sont pas correctement gérés. Par conséquent, nous examinons ci-dessous un certain nombre de problèmes liés à la sécurité des objets intelligents, aux méthodes et outils de piratage disponibles, ainsi qu'aux fonctionnalités de traitement et de protection des données. Le but de la recherche n'est pas de mettre en œuvre ou de décrire les méthodes de «piratage clé en main», mais d'examiner les approches qui, dans certaines conditions, peuvent conduire à l'accès aux données, ainsi que d'examiner les situations où les développeurs, pour une raison quelconque, décident de ne pas protéger les données des utilisateurs. Les documents sont présentés de manière globale (des informations complètes sont disponibles sur le site
officiel .
Technologie portable - Montres intelligentes
Montre Apple

MITM
La montre interagit via Bluetooth ou, si cette chaîne n'est pas disponible, via Wi-Fi pour communiquer avec le téléphone et les serveurs Apple. Le transfert de données réseau entre le cloud et les applications de téléphone / montre est crypté avec TLS1.2 et une protection contre les attaques MITM et SSL Pinning. Dans le même temps, les montres, contrairement aux téléphones, n'ont pas d'interface pour installer des certificats SSL racine personnalisés. Les flux de données non chiffrés n'ont pas été détectés.
Contourner l'écran de verrouillage
L'utilisation d'un code d'accès sur une montre intelligente est souvent un élément facultatif, mais peut être inclus. Apple vous permet de
réinitialiser le mot de passe de différentes manières , mais
une seule peut éviter conditionnellement la suppression des données.
Cette dernière méthode est basée sur le mécanisme de reconnexion de la montre à l'appareil avec
récupération des données avec changement du mot de passe. Un tel scénario est utilisé chaque fois qu'il est censé donner des heures de réparation ou de vente, car il est nécessaire de déconnecter le mode de verrouillage d'activation. Cela signifie que la suppression de la liaison de la montre au téléphone supprime les données de la montre, cependant, le téléphone sauvegarde les données de la montre afin
de restaurer ultérieurement les données sur la montre . Et comme la sauvegarde ne sauvegarde pas uniquement les paramètres des cartes bancaires, des codes d'accès et de l'horloge Bluetooth, vous pouvez accéder aux données et également définir un nouveau code d'accès.
Pour exécuter la méthode, vous devez effectuer les étapes suivantes:
- La montre et le téléphone doivent être proches; L'application Apple Watch doit être exécutée sur le téléphone.
- Dans l'onglet «Onglet Ma montre», les heures nécessaires sont sélectionnées et l'action est confirmée par «Dissocier Apple Watch».
- Ensuite, vous devez entrer le mot de passe de votre compte Apple (en cas d'oubli du mot de passe, il est proposé de le réinitialiser ).
- Confirmation finale de l'action.
Étant donné que cette méthode interagit avec les informations d'identification Apple, il est possible d'y accéder en réinitialisant le mot de passe à l'aide de
solutions médico-légales , ce qui vous permet finalement de supprimer le mot de passe sur la montre Apple.
Jailbreak
Le jailbreak pour la plate-forme iOS a toujours servi à augmenter les privilèges pour divers systèmes d'exploitation (iOS, tvOS et watchOS). Malgré sa popularité, il existe de nombreuses montres de jailbreak connues pour les montres Apple (disponibles ci-dessous sont répertoriées):
Jailbreaks pour usbPrison et connexion Bluetooth via SSHSauvegardes
Étant donné que les montres Apple fonctionnent principalement comme un périphérique auxiliaire, les applications installées sur la montre sont des widgets et toutes les informations sont stockées dans des applications sur le téléphone. Néanmoins, les applications de surveillance stockent toujours une certaine partie de leur propre chef, ce qui vous permet d'envisager des options pour accéder aux données via des sauvegardes (lors de l'interaction avec une horloge qui existe déjà sur un PC / Mac dans le cloud). Il convient de garder à l'esprit que dans les produits Apple, de nombreuses données sont multiplates-formes et synchronisées entre tous les appareils.
Pour l'accès aux données, les solutions médico-légales et les applications ordinaires pour travailler avec des fichiers de sauvegarde conviennent (dans le cas d'une sauvegarde cloud ou de scénarios de contournement d'accès, uniquement des solutions médico-légales ou à proximité); Il convient de noter que de nombreuses applications pour le moment peuvent ne pas avoir accès au contenu des fichiers de sauvegarde, par conséquent, l'un des outils possibles est l'
extracteur de sauvegarde pour iPhone (dans la version de base de l'abonnement, il permet d'accéder aux données d'horloge, et les versions complètes et professionnelles ont toujours le support 2FA accès aux données).
Les informations nécessaires sur le périphérique se trouvent dans le fichier
/mobile/Library/DeviceRegistry.state/properties.bin et couvrent les paramètres suivants:
- Regardez les données, y compris le nom, le fabricant, le modèle, le système d'exploitation et le GUID.
- Numéro de série, UDID, adresse MAC Wi-Fi, SEID (Secure Element ID), adresse MAC Bluetooth.
La liste des applications installées se trouve à deux endroits:
- Dans le fichier "com.apple.Carousel" situé sur le chemin /mobile/Library/DeviceRegistry/GUID/NanoPreferencesSync/NanoDomains/com.apple.Carousel
- Dans les sous-dossiers du dossier « / mobile / Library / DeviceRegistry / GUID »
Selon les applications installées, l'accès, par exemple, peut être obtenu au carnet d'adresses, qui est synchronisé avec le téléphone et est un type de données multiplateforme (les données sont placées dans le fichier
/ mobile / Library / DeviceRegistry / GUID / AddressBook / ) ou au référentiel de livrets qui stocke les services bancaires des cartes ou des cartes de programmes de fidélité, divers tickets de livret (les données sont placées dans le fichier
/mobile/Library/DeviceRegistry/GUID/NanoPasses/nanopasses.sqlite3 ). La base de données de ce dernier dans le tableau «Pass table» contient des données en trois parties (l'image ci-dessous est prise du téléphone, pas de l'horloge, pour plus de commodité):
- Unique_ID
- Type_ID (ticket, carte de fidélité, etc.)
- Contenu codé d'une «passe» distincte (au format valeur / données)

De plus, l'Apple Watch donne accès aux données de l'application Apple Health et remplit les données de cette application à partir de diverses sources, notamment parmi ceux que l'utilisateur entre manuellement. En règle générale, les données de cette application sont cryptées, elles ne parviennent donc à la sauvegarde que si un mot de passe est défini pour celle-ci (c'est-à-dire que les fichiers de sauvegarde sont cryptés). Cependant, cette application a la possibilité d'exporter des données sous forme claire sans chiffrement (dans l'archive zip). Lors de l'exportation de données, il est important de considérer que l'archive peut être exportée vers n'importe quelle application: fichiers Apple, stockage cloud, messagerie instantanée, etc., où il n'y a pas de cryptage supplémentaire. L'application est analysée séparément ci-dessous dans la section Apple Health.
Montres Android
Samsung Gear
Montre LG
Les montres Android sont produites par différents fabricants (Asus, Samsung, LG, etc.). Contrairement aux montres Apple, elles offrent souvent un ensemble complet avec un module 3G-4G pour installer une carte SIM, plutôt que eSIM, sinon la fonctionnalité ne diffère pas.
Parmi les approches de l'accès aux données, on distingue les suivantes:
- Recherche médico-légale (physique, logique et réseau)
- Contourner l'écran de verrouillage
- Utilisation des outils d'analyse des données racine
Seule la première option sera considérée dans l'article dans le cadre de la copie d'images, de sections et d'outils racine. La recherche logique (y compris dans le cadre des sauvegardes) ne diffère pas des méthodes connues. La version en ligne de l'étude gagne en popularité et n'est pas largement représentée, même dans le cadre de solutions médico-légales prêtes à l'emploi. Il consiste en la reproduction de mécanismes d'interaction pour l'échange de données via Wi-Fi, Bluetooth, y compris MITM-méthodes, mais nécessite un examen dans un article séparé.
Copier l'image de l'appareil
Lors de l'analyse des appareils Android, l'approche ne change pas, seuls les outils diffèrent (un exemple de l'outil sera donné dans la section Samsung / LG). Pour copier le contenu du périphérique, une copie au niveau du bit de l'ensemble du périphérique ou de partitions individuelles peut être utilisée. À ces fins, utilise le mode développeur. L'option la plus simple consiste à utiliser les commandes adb shell et adb pull pour accéder aux données. Selon le fabricant, le modèle d'appareil et la version du système d'exploitation, les kits d'outils ADB, SDB ou MTK peuvent être utilisés. Le plus souvent, la section utilisateur «
/ dev / block / mmcblk0p12 / data » est copiée pour analyse, mais d'autres sections peuvent être copiées si nécessaire:
- DD if = / dev / block / mmcblk0p12 / data of = /storage/extSdCard/data.dd
- DD if = / dev / block / mmcblk0p8 / cache of = /storage/extSdCard/cache.dd
- DD si = / dev / block / mmcblk0p3 / efs of = /storage/extSdCard/efs.dd
- DD if = / dev / block / mmcblk0p09 / system of = /storage/extSdCard/system.dd
Contourner l'écran de verrouillage
Pour Wear OS, l'utilisation de codes PIN est facultative, si souvent la montre n'est pas protégée par un code PIN. Il existe plus de façons de contourner le verrouillage pour les montres Android que pour Apple.
- Gestion des mots de passe basée sur le compte.
- Gesture.key et settings.db (Interaction avec les fichiers de verrouillage).
- Clés ADB
Gestion des mots de passe basée sur le compteLa façon la moins invasive de contourner un verrou est d'utiliser un compte Google et des informations d'identification obtenues d'une manière ou d'une autre. Les méthodes peuvent être différentes, y compris l'accès au compte via des solutions médico-légales. Après avoir obtenu l'accès, il est possible de déverrouiller à distance l'appareil ou d'entrer un nouveau code PIN, ce qui dans les deux cas vous permet de contourner le verrouillage du code PIN.
Gesture.key et settings.dbADB ou ses analogues fait partie des outils de développement et fonctionne indépendamment d'eux. Ces utilitaires peuvent être utilisés pour modifier et supprimer les fichiers système: le fichier gesture.key responsable du verrouillage du code PIN et le fichier
settings.db responsable du déverrouillage du périphérique verrouillé. Dans les deux cas, un accès physique à l'appareil est requis; pour le premier fichier, un ensemble de commandes pour supprimer «
shell adb.exe; cd / données / système; rm gesture.key »et le mode de débogage activé« Debugging mode »ou l'exécution de commandes via une récupération personnalisée comme ClockworkMod ou Team Win Recovery Project (TWRP).
De même, pour
settings.key, vous devez exécuter la commande «
update system set value = 0 », ce qui entraînera le remplacement des valeurs des
paramètres lock_pattern_autolock et
lockscreen.lockedoutpermenently et le déverrouillage de l'appareil sans connaître le code PIN.
Il convient également de noter qu'un chargeur de démarrage verrouillé et le manque d'outils de déverrouillage ne permettent pas d'accéder aux données, dans d'autres cas, surtout si une récupération personnalisée est déjà installée, il n'y a pas de difficultés d'accès.
Touches adbTrès souvent, l'utilisation de périphériques pour divers scénarios conduit à des paramètres et des états de périphérique dangereux. En particulier, lorsque vous utilisez un appareil pour le développement, cela forcera le mode de
débogage USB à être activé, et les clés de développement adbkey et adbkey.pub situées dans le répertoire // // Android des utilisateurs seront placées sur des PC synchronisés avec les appareils. En conséquence, le mode lui-même vous permet d'installer un logiciel tiers, de contourner le verrouillage de l'écran et les touches peuvent être utilisées pour transférer l'état de "synchronisation" vers un nouvel emplacement.
Porter OS et Root
Pour les montres Android, Android OS est utilisé adapté aux besoins physiques des appareils. Dans la gamme des montres Asus Zenwatch, Huawei Watch, LG Watch et bien d'autres, Android OS est utilisé, dans le cas des Montres Samsung - Tizen OS.
Android Wear commence par 4.4W1, 4.4W2, 1.0 et se termine par la version 2.9, qui correspond à Android habituelle, à partir de 4.4. Versions 4.4, 5.0.1 et se terminant par 7.1.1 / 8.0.0 (février 2018). Les nouvelles versions après avoir changé de marque sur Wear OS commencent par 1.0 (Android 7.1.1 / 8.0.0 - mars 2018 et version 2.1 (7.1.1 / 9.0.0 - septembre 2018) et les versions ultérieures. La boîte à outils racine est largement présentée pour Android Portez la version 2.0.
Racine:Récupération - Pour rechercher les versions nécessaires, vous pouvez utiliser la recherche :- TWRP
- Pour la version 5.1.1, twrp-3.1.0-0.img convient
- Pour la version 6.0.1 et Wear 2.0, twrp-3.0.0-0.img convient
- Pour Samsung Gear et LG Watch, la version 2.8.4 et supérieure convient
Par exemple, Samsung Gear Watch et LG Watch
En omettant les paramètres techniques du Samsung Gear, vous pouvez envisager l'option de rechercher des appareils dans le cadre d'une étude médico-légale. La montre ne prend pas en charge la connexion Wi-Fi, seules les connexions Bluetooth et USB sont disponibles, ainsi qu'une protection par code PIN en option. Dans le cas de Samsung, un SDB (pont de développement intelligent) est requis, qui fait partie du Tizen-SDK. Dans le cas de LG, la trousse à outils Android traditionnelle, ADB, est requise.
L'extraction de données peut être décrite en trois étapes.
Étape numéro 1. Se rooter pour SamsungPour l'obtenir, vous devez trouver l'image personnalisée appropriée, l'utilitaire universel pour les appareils Samsung - Odin 3.0, mettre l'appareil en mode développement (en activant SDB), le mettre en mode «téléchargement» et exécuter la commande «
Shell Sdb, racine sdb »
Étape numéro 1. Obtenir Root pour LGAvant d'obtenir un accès root, vous devez activer le mode de débogage ADB. Après cela, utilisez les outils de restauration de LG Watch, redémarrez dans le chargeur de démarrage et mettez à jour l'image:
- adb reboot-bootloader
- déverrouillage OEM fastboot
- adb push SuperSU.zip / sdcard / download
- adb reboot-bootloader
- démarrage rapide twrp.img
- Installez SuperSu.zip et attendez le redémarrage
Étape numéro 2. Obtention d'une image de périphériqueParmi les différents outils de développement Android, il y a le populaire
Toybox , qui vous permet de
créer une image de l'appareil pour une extraction et une étude plus poussées des données. Le package Toybox est situé sur un disque externe ou dans le dossier de téléchargement de la mémoire principale. Les droits d'accès pour l'exécution du coffre à jouets sont modifiés, la recherche des sections appropriées pour la copie est effectuée (en exécutant les commandes «
cd / dev / block / platform / msm_sdcc.1; ls -al by-name ). En règle générale, la section utilisateur (userdata) située dans
/ dev / block / mmcblk0p21 est copiée . Après cela, en utilisant toybox, dd et netcat, l'image de la section correspondante est copiée:
- adb push toybox / sdcard / téléchargement
- adb shell; su
- mv / sdcard / download / toybox / dev /
- racine chown: coffre à jouets racine;
- coffre à jouets chmod 755
- cd / dev / block / platform / msm_sdcc; ls -al par nom
- / * partition d'image avec dd et pipe vers netcat, -L met netcat en mode écoute * /
- dd if = / dev / block / mmcblk0p21 | ./toybox nc -L
- / * Numéro de port écouté sur la montre affiché pour l'utilisateur * /
- 44477 / * port affiché * /
- adb avant tcp: 44867 tcp: 44867
- / * Envoyer une demande de surveillance sur le numéro de port 44867 et l'envoyer au fichier image * /
- nc 127.0.0.1 44867> Samsung.IMG
Étape numéro 3. Extraction de donnéesLes données les plus utiles, qui sont stockées indépendamment dans la montre elle-même dans le cas de Samsung, sont placées dans les bases de données suivantes:
- Messages - apps.com.samsung.message.data.dbspace / msg-consumer-server.db
- Données de santé / fitness - apps.com.samsung.shealth / shealth.db
- Courriel - apps.com.samsung.wemail.data.dbspace / wemail.db
- Contacts / Carnet d'adresses - dbspace / contacts-svc.db
Dans le cas des montres LG —— dans la base de données suivante:
- Événements / Notifications - data.com.android.providers.calendar.databases / calendar.db
- Contacts / Carnet d'adresses - data.com.android.providers.contacts.databases / contacts2.db
- Données de santé / remise en forme - data.com.google.android.apps.fitness.databases / pedometer.db
Fitness Tracker - Xiaomi Band

Le tracker de fitness est un appareil auxiliaire, et toutes les données sont collectées dans l'application Mi-Fit, qui interagit toujours via une connexion cryptée avec TLS1.2 avec des serveurs Amazon AWS, principalement situés dans l'UE. Un certain nombre de demandes sans référence à des actions vont aux serveurs américains. Dans le cas de Mi Fit, le chiffrement n'empêche pas complètement les attaques MITM en raison de l'absence d'épinglage SSL et de la possibilité d'installer un certificat racine sur l'appareil. Dans ce cas, l'accès à toutes les données transmises sur le réseau a lieu. Localement, le dossier d'application contient un journal des événements détaillé et des indicateurs de condition physique de l'utilisateur à partir duquel ces données ont été obtenues dans le cadre de scénarios utilisateur, par exemple
Demande du serveur api-mifit.huawei.comGET /users/-/sports?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&sportCategory=run&timezone=GMT-3%3A00 HTTP/1.1 Content-Type: application/json
La réponse HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: 716 { "items" : [ { "trackId" : "1496744715", "startTime" : 1496744715, "endTime" : 1496748315, "sportTime" : 1800, "distance" : 3600, "calories" : 3.5, "averagePace" : 2.0, "averageStepFrequency" : 39, "averageStrideLength" : 68, "timestamp" : 1496744715, "averageHeartRate" : 90, "altitudeAscend" : 20, "altitudeDescend" : 10, "secondHalfStartTime" : 600, "strokeCount" : 30, "foreHandCount" : 15, "backHandCount" : 15, "serveCount" : 30, "type" : "OUTDOOR_RUN" } ] }
Fitness Tracker - Huawei Honor Band

Huawei Honor Band, comme Xiaomi Band, n'est pas un appareil autonome, et toutes les données sont collectées par l'application installée sur le téléphone. L'application repose également sur une connexion TLS, mais contrairement à Xiaomi, elle dispose d'un petit nombre de connexions. Tous sont suffisamment protégés, y compris contre les attaques MITM et SSL Strip.
Dans le même temps, de nombreuses données sont reçues localement dans le cadre des sauvegardes, obtenues à partir des capteurs du tracker, qui peuvent être divisées en données de service, d'utilisateur et de fitness, qui, à leur tour, sont divisées en données brutes et agrégées. La liste des données est pour iOS, mais ne diffère pas de la version Android.
- Les données et les journaux des périphériques se trouvent dans le dossier / hms / oclog / crash, / hms / oclog / log.
- Les valeurs actuelles et les plus récentes du tracker couvrent des informations sur le sommeil, les données de réveil, les distances (distance, kilométrage, etc.), la fréquence cardiaque et les calories. Ils se trouvent dans les fichiers /Documents/*.archiver.
- Le micrologiciel comprend toutes les données, l'emplacement, l'URL d'où il est téléchargé, la taille, le journal des modifications, l'indicateur de mise à jour forcée et le fichier du micrologiciel lui-même, qui est téléchargé via HTTP dans le cadre de la mise à jour sécurisée DFU , à l'exception des premières versions.
- Les données géographiques incluent des informations de localisation avec une référence au temps et à la séparation par jours et types d'activités, ainsi que des données sur la vitesse et la direction du mouvement, le cas échéant. Ils se trouvent également dans le dossier /*.archiver.
- Les données utilisateur incluent des informations de base - photo de profil, nom, date de naissance, taille, poids, sexe, âge et données générales sur les étapes et le kilométrage. Également situé dans le dossier /*.archiver.
- Les détails du compte incluent UDID, Token, UserID, SessionID, Mac Device Address et Bluetooth Keys.

Applications de fitness - Vélo de route, VTT

À titre d'exemple d'applications de mise en forme, les versions RoadBike et MountainBike PRO ont été considérées, qui ne sont pas différentes dans la mise en œuvre.
Ces applications suivent les réalisations des utilisateurs, les indicateurs de vitesse, les distances de passage et ont la capacité de s'intégrer à certains trackers physiques, et n'impliquent pas non plus d'activité Internet. Stockez localement toutes les données enregistrées:
- Données GPS - géolocalisation, distance, altitude et altitude, horodatages locaux et en référence aux valeurs GPS.
- Données de session - horodatages, distance, durée de la piste, indicateurs de moyenne et de minimax, indicateurs cardiaques de différence d'altitude (s'il y a un tracker spécial).
- Données de vitesse - horodatages, temps de conduite, distance (si vous avez des capteurs supplémentaires, vous pouvez corriger le calcul de vitesse correct).
- Données utilisateur - informations d'identification (y compris le mot de passe en texte clair), taille, poids, sexe, nom et date de naissance.
Toutes les données sont placées dans database.sqlite3 et, en outre, la base de données MapOpenCycleMap.SQLite contient des informations sur la piste, y compris la géolocalisation et un instantané de la géolocalisation et de l'itinéraire.


Médecine intelligente
La médecine intelligente implique la convergence de la technologie numérique avec les problèmes de santé au sein de la société pour accroître l'efficacité des soins médicaux. Ces technologies comprennent des solutions et des services matériels et logiciels, y compris la télémédecine, les téléphones mobiles et les applications, les appareils portables et les appareils fixes, les capteurs de clinique ou la surveillance à distance.

La plupart des applications de santé se divisent en deux catégories: les applications sources (mesure des indicateurs de santé humaine) et les applications d'agrégation de données (collecte de données en un seul endroit à partir de différentes sources).
Santé Apple
L'application Apple collecte des données de santé à partir de diverses sources logicielles et matérielles (iPhone, Apple Watch et applications tierces) qui prennent en charge le protocole HealthKit.
Les données sont divisées en 4 catégories: Activité, Sommeil, Pleine Conscience et Nutrition (résumé d'activité, indicateurs de sommeil et de veille, une catégorie indéfinie pour iOS 11-12, un journal alimentaire). Si un code d'accès, Touch ID ou Face ID est utilisé, toutes les données de cette application sont cryptées à la fois sur l'appareil et dans le cloud, y compris lors de la transmission de données sur le réseau. Séparément, à propos de la comparaison de la protection des données Apple Health et Google Fit peut être trouvé dans l'article
Elcomsoft .

Globalement, toutes les données Apple Health peuvent être divisées en deux catégories du point de vue de la sécurité: enregistrées automatiquement par l'application à partir de différentes sources et exportées.
Dans le premier cas, la plupart des données sont cryptées et une certaine partie en clair, du point de vue d'Apple n'est pas critique pour les crypter.
Dans le second cas, toutes les données seront en texte clair au format CDA (Clinical Document Architecture) - typique pour l'échange de données médicales; et sous une forme plus familière, il s'agit d'une archive avec des fichiers xml. Il convient de noter que la protection des données par Apple ne signifie pas que les données des applications source sont également protégées (comme le montrent les exemples ci-dessus avec les trackers et ci-dessous avec les poids). Il ne garantit pas non plus que les applications n'utilisent pas les données d'autres applications sources via Apple Healthkit et n'enregistrent pas de données dans leur cloud.
Il convient de noter que le modèle d'autorisation d'Apple était à l'origine un peu différent. Toutes les demandes d'accès aux données d'application ont été demandées au démarrage ou selon les besoins (à la fin des actions nécessitant des autorisations), contrairement aux versions antérieures d'Android. Mais pour l'application Apple Health, une liste détaillée des autorisations de lire et d'écrire des indicateurs du cœur, de la pression, de la masse, etc. ne s'affiche pas avec une description détaillée de quoi et pourquoi est requis (comme d'habitude, tout est demandé immédiatement).
Ce dernier conduit au fait que l'idée initiale d'un bac à sable de données avec l'avènement d'applications comme Apple Health n'est pas évidente pour l'utilisateur, ce qui a conduit Apple à créer un autre bac à sable pour les données médicales. Par exemple, une application a demandé quelque chose à lire et à écrire, et il n'y a rien de criminel, bien que la plupart des applications travaillant avec Apple Health n'écrivent que des données, à l'exception des données de base. Si l'application est explicitement conçue pour lire des données pour le travail, cela nécessite une notification explicite à l'utilisateur, lui permettant d'interdire les demandes de lecture individuelles sans conséquences pour l'application. En d'autres termes, la lecture et l'écriture des données médicales de chaque application comme dans un trousseau de clés ou un bac à sable doivent être isolées des autres applications, bien qu'Apple Health puisse agréger toutes les données en soi. Sinon, du côté des développeurs peu scrupuleux, il est possible d'accéder aux données d'autres applications avec leur pompage ultérieur depuis l'appareil. Soit dit en passant, Apple Health séparément dans les sources vous permet de gérer de manière transparente les autorisations, mais la question du bon fonctionnement de l'application lorsque l'accès est refusé reste ouverte (comme auparavant dans Android pour les autorisations d'application).
Apple a également abordé la
question de l'émission de données enregistrées par d'autres applications vers une application demandant des données. L'application (en cas de manque d'accès) ne recevra des données que précédemment enregistrées par la même application. Cependant, cela nécessite a) de désactiver les droits d'accès inutiles et de les vérifier; b) il n'y a aucune garantie du bon fonctionnement de l'application, car on ne sait pas si les autorisations de lecture des données étaient vraiment nécessaires. De nombreuses applications ne répondent pas aux vérifications d'autorisation. Ainsi, par exemple, l'application de balance intelligente PICOOC n'a même pas de section avec des autorisations de lecture - uniquement des données d'écriture.
Un fait intéressant, dans la prochaine version d'Android, l'autorisation de lire dans le presse-papiers est attendue .
Les données Apple Health sont réparties entre les fichiers de base de données suivants:
- HealthDomain \ MedicalID \ MedicalIDData.archive - stocke les données dans les informations saisies manuellement par l'utilisateur (nom, taille, poids, implants médicaux).
- HealthDomain \ Health \ healthdb.sqlite - une liste d'applications source qui vous permet de récupérer des données dans leur forme d'origine et sans protection supplémentaire; contient également des informations sur le périphérique source (nom, modèle / fabricant, horodatages, informations générales sur la partie / l'environnement logiciel).
- HealthDomain \ Health \ healthdb_secure.sqlite - contient des informations supplémentaires (UDID de l'appareil, nom de l'appareil, horodatages, taille, sexe, groupe sanguin, anniversaire, limitations physiques, poids corporel total, fuseau horaire et version du système d'exploitation de l'appareil téléphonique).
- HealthDomain \ Health \ healthdb_secure.hfd est une base de données chiffrée qui inclut des informations provenant des applications source.

Lorsque vous travaillez avec une archive de données exportée (c'est-à-dire sans chiffrement), il faut comprendre que l'exportation de l'archive peut être effectuée n'importe où sur l'appareil, elle peut être transférée vers le stockage cloud ou l'archive vers toute autre application, ce qui en soi peut être un risque parce que il contient des informations détaillées, y compris mais sans s'y limiter:
- Nom d'utilisateur, photo de profil, taille, poids corporel.
- Géo-tracking (pays / ville hôte, version OS).
- UDID de l'appareil, nom de l'appareil, dernière date de mise à jour des données dans l'application Apple Health.
- Anniversaire, sexe, groupe sanguin, couleur de peau, taille, poids, miel. implants.
- Indicateurs et mesures quotidiens, par exemple, fréquence cardiaque, poids, pression, divers indicateurs supplémentaires d'appareils et d'applications, données de journal de calories et de nutrition, données d'entraînement et de distance, journal d'activité avec horodatages, etc.
- Analyseur XML gratuit
Balances intelligentes Picooc
PICOOC intègre des solutions matérielles aux applications et services Internet. En particulier, 13 mesures sont surveillées dans des échelles intelligentes, telles que le poids, le pourcentage de graisse corporelle et l'indice de graisse, la masse corporelle, les os, les muscles, l'eau dans le corps, l'âge métabolique et les changements d'indicateurs.


Les données suivantes sont publiées localement:
- Les journaux Bluetooth se produisent à la suite de l'analyse des appareils à proximité et pour tous les appareils, le nom de l'appareil et son adresse mac sont enregistrés.
- Les valeurs de mesure du corps sont stockées dans la base de données picooc.sqlite dans la table `body_indexs` et ont été mentionnées ci-dessus dans la description de l'application.
- Les informations sur l'appareil incluent des informations sur l'adresse mac de l'appareil, le nom du modèle, l'ID utilisateur, l'image de l'appareil et sont également stockées dans le fichier dans le fichier picooc.sqlite.
- La liste d'amis comprend des informations sur le nom, le téléphone, l'ID utilisateur, le champ - à condition que les amis utilisent la même application - c'est-à-dire L'application forme un réseau social.
- Les informations utilisateur incluent le surnom, l'ID utilisateur, la taille, l'âge, le sexe, la race et se composent de deux parties sur l'exemple d'iOS
- Les données du capteur incluent des informations sur l'heure, l'âge, le système d'exploitation, la hauteur, les paramètres d'écran, le modèle de l'appareil, les paramètres de langue, l'environnement, etc. et sont stockés dans le fichier "\ sensoranalytics-message-v2.plist.db"
- Les paramètres incluent des informations sur le mot de passe local, la méthode de déverrouillage et l'activité récente; stocké dans le fichier «picooc \ Library \ Preferences \ com.picooc.international.plist» sur l'exemple d'iOS.

Du point de vue du transfert de données, il y a la possibilité d'interception avec un certificat racine. Les données les plus intéressantes peuvent être considérées comme suit:
- L'URL de la photo de profil, qui est accessible au public via le lien en permanence et possède en fait 2 URL:
- Informations sur l'appareil et l'environnement.
- Informations sur l'utilisateur, notamment le nom d'utilisateur, l'anniversaire, la taille, le poids, les horodatages, le système d'exploitation et le fuseau horaire.
- Informations d'identification, y compris le mot de passe, y compris lors du changement du mot de passe de l'ancien au nouveau.

C'est là que se termine le premier article. La deuxième partie portera sur la maison connectée: Smart TV, assistants vocaux, cuisine intelligente et éclairage.