Bonjour à tous,
J'ai pris le temps ce week-end d'analyser les échanges entre l'application Kingsong Android et les serveurs histoire d'avoir une petite idée de ce qui circule.
Pour partage, voici le résultat des captures.
A la connexion à l'application
Requête vers /index.php/api/comment/great/list
Aucun paramètre
Réponse :
{
"status": "1",
"code": "0",
"msg": "",
"page": "0",
"total": "0",
"pagenum": "0",
"data": {
"total": "10",
"comment_list": [],
"user_map": [
{
"id": "xxxx",
"cover": "",
"nickname": "xxxxxxxxxx",
"did": "xxxxxxx",
"sex": "x",
"birthday": "xxxx-xx-xx",
"weight": "x.xx",
"occupation": "",
"address": "", "email": "xxxxxx.xxxx@xxxxx.xxx",
"mobile": "", "country": "xx",
"status": "1",
"createtime": "xxxxxxxxxx",
"updatetime": "x",
"autograph": "",
"password": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"online": "x",
"openid_qq": "",
"access_token_qq": "",
"openid_wx": "",
"access_token_wx": "",
"openid_wb": "",
"access_token_wb": "",
"sid": "",
"logintime": "xxxxxxxxxx",
"qq": "x",
"wx": "",
"wb": "",
"shock": "x",
"recordEquip": "",
"is_follow": "x"
}
]
}
}
Remarques :
On notera ici la région (country) associée au compte lors de sa création
Requête vers /index.php/api/find/index
Paramètres :
apiversions=3.1.9
key=xxxxxxxxxxxxxxx
lang=en_US
latitude=xx.xxxxxxx
longitude=x.xxxxxxx
sid=xxxxxxxxxxxxx
temptime=xxxxxxxxxx
token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Réponse : Un bel objet JSON contenant une liste d'utilisateurs à proximité avec la distance, leur position GPS, ...
...
{
"user": {
"name": "xxxxxx",
"logintime": "xxxx-xx-xx xx:xx:xx",
"cover": "",
"nickname": "xxxxxxxxxx",
"id": "xxx",
"sex": "x"
},
"userId": "xxx", "dist": "xx.xx",
"lng": "x.xxxxxxxxxxxxxxxxx",
"lat": "xx.xxxxxxxxxxxxxxxx",
"isFollow": "x"
}
...
Remarques :
On notera que nos coordonnées GPS sont envoyées en stockées sur les serveurs Kingsong.
Les serveurs retournent les coordoonées GPS de tous les utilisateur à "proximité". Dans mon cas un rayon d'environ 50km
A la connexion de la roue
Requête vers /index.php/api/equipment/connectEquipment
Paramètres :
apiversions=3.1.9
bluetoothAddress=xxxxxx
firmwareName=KS-18S
firmwareVersion=108
key=xxxxxxxxxxxxxxx
lang=en_US
mileage=xxxx.xx
serialNumber=KS18S6B17xxxxPxxx
sid=xxxxxxxxxxxxx
temptime=xxxxxxxxxx
token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Réponse :
{
"status": "1",
"code": "100001",
"msg": "Operation succeed",
...
}
Remarques :
On notera ici l'envoie à chaque connexion des informations suivantes relatives à la roue : adresse bluetooth, modèle, numéro de série, version du firmware et kilométrage
A noter, qu'il est possible de connecter sa roue sans connectivité réseau
Lors de l'accès aux réglages de la vitesse et des alarmes
Requête vers /index.php/api/equipment/check
Paramètres :
apiversions=3.1.9
bluetoothAddress=xxxxxx
contry=CN
equipKey=123456
firmwareName=KS-18S
firmwareVersion=108
key=xxxxxxxxxxxxxxx
lang=en_US
serialNumber=KS18S6B17xxxxPxxx
sid=xxxxxxxxxxxxx
temptime=xxxxxxxxxx
token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Réponse :
{
"status": "1",
"code": "110080",
"msg": "The current user is bound",
"page": "0",
"total": "0",
"pagenum": "0",
"data": ""
}
Remarques :
On notera ici l'envoie à chaque accès à ce menu des informations suivantes relatives à la roue : adresse bluetooth, modèle, numéro de série, version du firmware
A noter, qu'il n'est pas possible d'avoir accès à ce paramétrage sans connectivité réseau, même si sa roue est débloquée
Visiblement un rapprochement est fait entre le numéro de série et le code région (country) associé à l'identifiant de connexion pour avoir accès aux réglages
Mes premiers avis à chaud :
CNIL, RGPD, ... ils connaissent chez Kingsong ?
Stocker mes coordonnées GPS sans mon consentement et les envoyer à chaque utilisateur de l'application dans un rayon d'au moins 50km, c'est un peu moyen...
Comment puis-je exercer mes droits : consultation, modification et suppression de mes données personnelles ?
Je trouve très très moyen de ne pas avoir accès aux paramètres de réglage du tiltback et des alarmes sans connectivité réseau une fois sa roue débloquée
D'une manière générale l'application me semble beaucoup trop intrusive : Position GPS, kilométrage, numéro de série, adresse bluetooth, ...
A noter que sous Android, cette application semble avoir par défaut les droits de démarrage en arrière plan.
En plus des autres droits "nécessaires" mais obligatoires à son fonctionnement : Appareil photo, Localisation, Microphone, Stockage, Téléphone