Développer en conformité avec le RGPD
Il est indispensable pour pour un chef de projet informatique et l’ensemble de son équipe au développement d’un projet informatique, de s’assurer durant toute la vie du projet que les données des utilisateurs et toutes les opérations effectuées sur ces données soient protégées.
- Se sensibiliser aux grands principes du RGPD;
- Cartographier et catégoriser les données et les traitements réalisés par votre programme et votre application pour vous permettre d’avoir une vision globale sur les données;
- Prioriser les actions à mener sur la base d’un registre des activités de traitement;
- Gérer les risques par notamment une analyse d’impact relative à la protection des données;
- Organiser des processus internes garantissant la prise en compte de la protection des données sur tous les aspects du projet (label, code de conduite, process, etc.);
- Documenter la conformité de vos développements.
Identifier les données personnelles
Afin de développer une application conforme aux exigences légales en matière de protection des données, il faudrait être en mesure d’identifier les données personnelles.
Pour cela, il est indispensable de comprendre les notions de “données personnelles”, de “finalité”, de “traitement”, d’”anonymisation”, de “pseudonymisation” définies dans le RGPD.
Préparer son développement (privacy by design et by default, PIA)
Les principes de la protection des données personnelles doivent être intégrés aux développements informatiques dès la phase de conception et par défaut, et cela afin de respecter la protection des données concernées par le traitement.
Sécuriser son environnement de développement
Le sécurité des données (disponibilité, intégrité et confidentialité) doit être respecter en permanence. Quelques priorités :
- Sécuriser et mettre à jour vos serveurs et vos postes de travail d’une façon homogène et reproductible
- Assurer la sécurité des serveurs de production;
- Assurer la sécurité des serveurs développement;
- Assurer la sécurité des serveurs d’intégration continue;
- Assurer la sécurité des postes de travail des développeurs;
- Evaluer les risques en matière de sécurité, en fonction de votre contexte et adopter les mesures de sécurité adéquates (risque liés aux outils SaaS et collaboratifs dans le cloud (Slack, Trello, GitHub, etc.));
- Insister particulièrement sur la gestion des accès et la traçabilité des opérations (documenter la gestion de vos clés SSH, favoriser une authentification forte, mettre en place une analyse automatique des journaux);
- Prévoir une politique de sécurité accessible.
Gérer son code source
Il est vivement recommander par la CNIL d’utiliser un outil de gestion de code source et des fichiers associés pour suivre dans le temps ses différents versions et conservant la chronologie de toutes les modifications:
- paramétrer efficacement votre gestionnaire de code source en pensant à sa sécurité (authentification forte ou par clés SSH, permissions, sauvegardes).
- Soyez vigilant sur le contenu de votre code source (outils de métriques de qualité de code, etc.).
Faire un choix éclairé de son architecture
Lors de la conception de l’architecture de votre application, il convient d’identifier les données personnelles qui seraient traitées et définir un parcours et un cycle de vie pour chacune d’entre elles.
Le choix des supports de données (stockage local, serveur, service cloud) est une étape cruciale qui doit être adapté à vos besoins et à vos connaissances techniques.
Le registre des activités de traitement et une analyse d’impact peuvent vous accompagner dans ce choix.
En cas de recours à un prestataire pour l’hébergement, choisissez celui qui garantit la mise en place de mesures de sécurité et de confidentialité appropriées et suffisamment transparentes.
Il convient de s’assurer de connaître la localisation géographique des serveurs qui vont héberger les données.
Si les données sortent de l’espace économique européen, vous pouvez être amenée à effectuer des transferts des données et être soumises aux règles applicables en la matière.
Sécuriser les sites web, les applications et les serveurs
Tous les sites web, applications ou serveurs doivent intégrer, selon la CNIL, les règles de base de sécurité sur les communications, les authentifications, l’infrastructure:
- Sécuriser les communications:
- protocole TLS version 1.2 ou 1.3;
- Utilisation obligatoire de TLS;
- limitation des portes de communication.
- Sécuriser les authentifications:
- Respect des exigences en matière de mot de passe;
- Testez les suites cryptographiques installées sur les systèmes;
- Adoptez une politique spécifique de mots de passe pour les administrateurs;
- Limitez l’accès aux outils et interfaces d’administration aux seules personnes habilitées;
- Assurer des mesures de sécurité renforcées lors de l’accès depuis Internet aux interfaces d’administration.
- Sécuriser les infrastructures:
- Effectuez des sauvegardes, si possible chiffrées et vérifiées régulièrement;
- Limitez le nombre de composants mis en œuvre (mises à jours critiques, veille des vulnérabilités);
- Utiliser les outils de détection des vulnérabilités;
- Restreignez ou interdisez l’accès physique et logique aux ports de diagnostic et de configuration à distance;
- Protégez les bases de données que vous rendez accessibles sur Internet;
- Assurer une bonne gestion des bases de données (utiliser des comptes nominatifs, révoquer les privilèges d’administration).
Minimiser les données collectées
Vous ne devez pas collecter que les données personnelles qui sont adéquates, pertinentes et nécessaires au regard des finalités de votre traitement telles que définies au moment de la collecte.
Une fois les données collectées, mettez en place des mécanismes d’effacement automatique.
Gérer les utilisateurs
La manière de gérer les profils de vos collaborateurs et de vos utilisateurs finaux doit être pensée en amont de vos développements. Elle consiste à définir différents profils d’accès et d’habilitation afin que chaque personne ne puisse accéder qu’aux seules données dont il a effectivement besoin.
Les bonnes pratiques de gestion des utilisateurs
- Utilisation d’identifiants uniques et propres à chaque individu;
- Imposer une authentification avant tout accès aux données personnelles;
- Prévoir une politique de gestion d’accès aux données différentiées;
- Prévoir un système de journalisation afin de tracer les activités, et détecter toutes anomalies ou évènements liés à la sécurité;
- Prévoir des audits de code ou des tests d’intrusion au sein de votre environnement de développement afin de vérifier la robustesse de votre système des profils.
Fluidifier la gestion des profils d’habilitation
- Documenter ou automatiser les procédures de mouvements de vos collaborateurs, d’inscription et de désinscription de vos utilisateurs;
- Mettre en revue régulière des droits accordés suivant l’évolution des usages (services d’annuaire comme LDAP);
- Ne pas utiliser de compte “suprême” (type root, administrateur, etc.);
- Favoriser l’usage d’un gestionnaire de mots de passe au sein de votre projet.
Maîtriser les bibliothèques et les SDK
En cas d’utilisation des bibliothèques, kits de développement (SDK) ou d’autres composants logiciels écrits par des tiers:
- Evaluer l’intérêt de l’ajout de chaque dépendance;
- Choisir des logiciels, bibliothèques et SDK maintenus;
- Prendre en compte la question de la protection des données personnelles lors de choix d’un SDK;
- Ne pas implémenter vous mêmes des algorithmes ou des protocoles cryptographiques en cas d’utilisation des mécanismes cryptographiques;
- Lire leur documentation et changez leur configuration par défaut;
- Auditer vos bibliothèques et SDK;
- Cartographier vos dépendances (les bibliothèques et SDK tiers peuvent également intégrer d’autres composants. Il convient d’auditer leur code);
- Utiliser des systèmes de gestion de dépendances;
- Gérer les mises à jour de vos dépendances;
- Faire attention aux bibliothèques et SDK en fin de support.
- Surveiller les statuts des projets open-source (changement de propriétaire du domaine ou du package, attention aux mises à jour malicieuses de dépendances populaires)
- Faire attention aux tentatives de typosquattage et autres techniques malveillantes.
Veiller à la qualité du code et sa documentation
Il est indispensable, selon la CNIL, d’assurer la qualité de votre code. Une bonne visibilité de votre code permettra de réduire l’effort de maintenance, d’audit et de corrections des bugs dans le temps.
- documenter le code et l’architecture
- Contrôler la qualité de votre code et de sa documentation.
Tester les applications
Tester les applications permet de s’assurer :
- du bon fonctionnement de votre produit
- de la bonne expérience d’utilisateur
- de l’absence de certaines erreurs avant et après sa mise en production
- de réduire les risques d’atteinte aux données personnelles.
Pour une meilleur efficacité :
- automatiser les tests
- intégrer les tests dans votre stratégie d’entreprise
- Attention aux données de test
Droit | Définition | Exemple d’implémentaion |
Droit d’accès | Droit d’obtenir une copie de toutes les informations que vous avez à leur sujet. Cela permet, entre autres, à une personne de savoir si des données la concernant sont traitées et d’en obtenir une copie lisible dans un format compréhensible. Il permet notamment de contrôler l’exactitude des données. | Prévoir une fonctionnalité permettant d’afficher toutes les données relatives à une personne. S’il y a beaucoup de données, vous pouvez scinder ses données en plusieurs affichages. Si les données sont trop volumineuses, proposez à la personne de télécharger une archive contenant toutes ses données. |
Droit d’effacement | Droit de demander l’effacement de l’intégralité des données que vous détenez sur elles. | Prévoir une fonctionnalité permettant d’effacer toutes les données relatives à une personne. Prévoyez aussi une notification automatique des sous-traitants afin qu’ils effacent eux aussi les données relatives à cette personne. Prévoyez un effacement des données également dans les sauvegardes, ou une autre solution permettant de ne pas restaurer les données effacées relatives à cette personne. |
Droit d’opposition | Droit de de s’opposer dans certains cas à ce que leurs données soient utilisées pour un objectif précis. | prévoyez une fonctionnalité permettant à la personne concernée de s’opposer au traitement. Lorsque la personne exerce son droit d’opposition par ce biais, le responsable de traitement doit supprimer les données déjà collectées, et ne doit par la suite plus collecter de données associées à cette personne. |
Droit à la portabilité | Droit à la portabilité | Prévoir une fonctionnalité permettant à la personne concernée de télécharger ses données dans un format standard lisible par un ordinateur (CSV, XML, JSON, etc.) |
Droit de rectification | Droit de récupérer leurs données dans un format lisible par machine, pour leur propre usage ou pour les fournir à un autre organisme. | Permettre de pouvoir modifier directement les données dans le compte utilisateur. |
Droit à la limitation du traitement | Droit de demander à ce que le traitement de leurs données soit bloqué pendant un certain temps, par exemple le temps d’examiner une contestation de sa part sur l’utilisation de ses données ou une demande d’exercice de droits. | Permettre à des administrateurs de mettre des données relatives à une personne en « quarantaine » : ces données ne pourront alors plus être lues ou modifiées. |
Informer les personnes
Les utilisateurs des systèmes d’information ont le droit d’être informée de manière transparente, concise, compréhensible et aisément accessible en des termes simples et claires sur le traitement de leur données personnelles.
Préparer l’exercice des droits des personnes
Pour permettre aux personnes concernées d’exercer leur droits en application du RGPD, il convient de préparer en amont la façon dont ils vous contacteront et la façon dont vous traiterez leurs demandes.
Cette préparation en amont vous permettra de gérer efficacement l’exercice de ces droits. A fin de cette préparation, il convient de:
- Indiquer où et comment les personnes peuvent exercer leurs droits relatifs à leurs données personnelles;
- implémenter l’exercice des droits, totalement ou en partie, dans l’application ou logiciel que vous développez afin de faciliter l’exercice des droits des personnes.
- En cas d’accès ou d’opérations directement effectuées par une personne pour exercer ces droits :
- gérer son authentification de façon sécurisée;
- tracer toutes les opérations ayant un impact sur ses données personnelles.
Gérer la durée de conservation des données
Les données personnelles ne peuvent être conservées pour une durée allant au-delà de celle nécessaire à l’accomplissement de la finalité.
Le cycle de la vie d’une donnée personnelle connaît trois phases:
- conservation en base active (durée nécessaire à la réalisation de la finalité)
- archivage intermédiaire (les données présentent encore un intérêt administratif pour l’organisme ou leur conservation réponde à une obligation légale)
- archivage définitif (en raison de leur valeur et intérêt)
Prendre en compte les bases légales dans l’implémentation technique
Pour pouvoir être mis en œuvre, les traitements des données doivent se fonder sur l’une des bases légales mentionnées à l’article 6 du RGPD.
Le choix de d’une base légale, va directement impacter les conditions de mise en œuvre du traitement et les droits des personnes.
Ainsi, prévoir en amont d’un développement les bases légales des traitements prévus dans le projet vous permettra d’intégrer au mieux les fonctions nécessaires à la conformité à la loi de ces traitements.
Mesurer la fréquentation de sites web et des applications
Les outils de mesures d’audience sont utilisés pour obtenir des informations sur la navigation des internautes sur son site.
Ils permettent de comprendre comment les utilisateurs arrivent sur un site web ou une application mobile et de reconstituer leur parcours.
Utilisant des cookies ou d’autres traceurs, ils peuvent être exemptés de consentement sous certaines conditions.