Protektoid et ACRA : gestion de crash orientée privacy

Protektoid et ACRA : gestion de crash orienté privacy

Petite présentation

Pourquoi une gestion de crash ?

De nombreuses applications utilisent des outils de reporting de crash afin d'améliorer l'expérience utilisateur.

Ces rapports sont soient automatiquement envoyés soit fait sur demande. La premiere approche est généralement choisie, afin d'optimiser le nombre de rapport et donc fournir des nouvelles versions de l'application au plus tôt.

Quel lien avec la privacy ?

Ces gestionnaires de crash sont tres souvent des solutions professionnelles clés en main. On peut notamment citer Crashlytics, Apphance et Apteligent, outils tres performant, faciles à prendre en main et offrant des bonnes fonctionnalités pour les développeurs.

Cependant, qui dit solution "clé en main" dit aussi une potentielle perte du controle des flux d'informations et notamment des informations relevant du domaine de la vie privée des utilisateurs : adresse IP, nom, prénom, email et autres. Ainsi, la mise en place d'un outil de gestion de crash peut engendrer des envois de données non désirés

Protektoid et la gestion des crashs : ACRA, Application Crash Reports for Android

Les débuts

Pour ne rien cacher, les premieres version de testing internes de Protektoid reposaient sur Crashlytics, pour sa simplicité de mise en oeuvre et le non besoin, à cette étape du projet, de finaliser le framework de gestion des crashs. L'expérience fut vraiment agréable !

Cependant, et comme le confirme plusieurs cas réels et même les instructions fournies par Crashlytics concernant la gestion de la privacy (liens en anglais : http://try.crashlytics.com/terms/ et http://www.iubenda.com/blog/consent-from-users-and-developers-to-data-processing-and-transfer/), nous avons décidé que Crashlytics ne pourrait pas répondre à nos exigences quant au controle du respect de la vie privée.

Le framework mis en place : gestion des crash et respect de la vie privée

Fort de cette expérience, nous avons décidé de nous reposer sur le superbe outil OpenSource ACRA, acronyme de Application Crash Reports for Android. Ce projet est hébergé sur github à l'adresse https://github.com/ACRA et contient notamment les repository suivants

  1. https://github.com/ACRA/acra, le plugin Android 
  2. https://github.com/ACRA/acralyzer, pour le stockage et la gestion des rapports de crashs
  3. https://github.com/ACRA/acra-storage, pour l'affichage des rapports pour les développeurs

Quelle sécurité ?

Bien entendu, nous n'allons pas dévoiler toute la stratégie relative à la sécurité de la mise en place du framework ACRA. Sachez juste que nous avons appliqués les recommandations tres détaillées disponible en anglais sur https://github.com/ACRA/acralyzer/wiki/security et https://github.com/ACRA/acralyzer/wiki/Setting-up-a-reverse-proxy et même plus.

Quel intéret ?

Bien entendu, la premiere question est  "quel intéret de mettre toute cette plateforme en place ?". ou encore "ce sont des considérations techniques".

La réponse est assez simple : avec ce choix, la donnée des crashs restent sur les serveurs du projet ! On ne parle pas ici de besoin de "controle de la données" ou de "mise en place de solution geek" (même si c'est un peu le cas :D). Le but premier est en effet d'assurer aux utilisateurs que les données restent où elles ont prévues d'être et où elles sont déclarées être.

Vous verrez que sur notre site, nous avons la mention relative au stockage des données et leur déclaration auprès de la CNIL. L'utilisation du framework ACRA nous permet de conserver cela, ce qui n'aurait pas été possible avec la plupart des autres solutions du marché, sujette au notamment "safe harbor", ces solutions étant principalement développées par des entreprises de la Silicon Valley.

La suite

Nous souhaitons étendre notre étude du farmework ACRA mais aussi analyser les choix des différentes applications Android sur ce sujet tres souvent sous-étudié de la gestion des crashs.

Vous avez une application pour laquelle vous voulez étudier ce sujet ? N'hésitez pas, posez vos questions dans les commentaires ou contactez-nous.

 

 

Comments