Réglementation générale sur la protection des données (RGPD)


Le contenu ci-dessous s'inspire d'un article de Bozhidar Bozhanov publié sur son site.

Présentation

RGPD (Réglementation Générale sur la Protection des Données - General Data Protection Regulation - GDPR en anglais) est la nouvelle réglementation européenne qui s'applique à tous les développeurs. Cette réglementation devra être appliquée dans l'Union européenne à partir du 25 mai 2018.
Cette réglementation est une loi qui doit être suivie dans tous les pays européens (mais qui s'applique aussi aux entreprises hors d'Europe qui ont des utilisateurs en Europe). Dans ce cas particulier, elle s'applique aux entreprises non européennes, mais qui ont des clients européens, ce qui est le cas de la plupart des entreprises.
Mais que devrions nous faire pour que notre système/site interne soit conforme ?


Un guide pour les PME éditée par la BPI (Banque Publique d'Investissement)est disponible ici

I.  Les principes et droits des utilisateurs

Les droits de l'utilisateur ou du client qui relèvent du développeur sont :


Il est important de savoir ce qu'est une « donnée personnelle ». Ce sont les données que l'utilisateur a explicitement fournies, mais aussi les données que vous avez collectées sur lui par le biais d'un tiers, ou basées sur son activité sur le site (ce qu'il a consulté, ce qu'il a acheté, ...).

II.  Les fonctionnalités à implémenter

a)  Oubliez-moi

Pour la fonctionnalité « Oubliez-moi », vous devez avoir une procédure qui prend en paramètre un identifiant utilisateur et efface toutes ses données personnelles (dans le cas d'une collecte sur la base d'un consentement ou basée sur l'intérêt légitime du responsable des données personnelles (voir plus bas) et non pas en raison de l'exécution d'un contrat ou d'obligation légale).
Dans un modèle de données ordinaire, supprimer un enregistrement peut être facile, mais certaines clés étrangères peuvent être enfreintes. Cela signifie que vous avez deux options :

b)  Notification des suppressions aux tiers

Supprimer les données de votre système c'est une chose, mais vous êtes aussi obligé d'informer tous les tiers de votre action.
Article 19 RGPD

c)  Restreindre le traitement

Dans votre panneau d'administration, où il y a une liste d'utilisateurs, il devrait y avoir un bouton « Restreindre le traitement ». La page réglages utilisateur devrait également l'avoir. Lors de son clic (après lecture de l'information appropriée), il devrait marquer le profil comme restreint. Cela signifie qu'il ne devrait plus être visible par l'équipe du backoffice, ou publiquement.
Article 18 RGPD

d)  Export des données

Il devrait y avoir un autre bouton « Export des données ». Lors de son clic, l'utilisateur devrait recevoir toutes les données que vous possédez sur lui.
Article 20 RGPD

e)  Permettre aux utilisateurs d'éditer leur profil

Les utilisateurs doivent pouvoir modifier toutes les données les concernant. Règle générale, tous les champs dans votre table « utilisateurs » devraient être éditables via l'interface graphique (création d'un formulaire).
Article 16 RGPD

f)  Consentement par cases à cocher

« J'accepte les termes et conditions » ne sera plus suffisant pour prétendre que l'utilisateur a donné son consentement au traitement de ses données. Donc, pour chaque activité particulière de traitement, il doit y avoir une case à cocher sur l'écran d'enregistrement (ou le profil utilisateur).
Cette case à cocher ne devra pas être présélectionnée, ceci ne comptant pas comme un « consentement ».
Remarque : C'est à l'équipe juridique de décider ce qui est d'un intérêt légitime et donc de toutes les activités de traitement ne nécessitent pas forcement de cases à cocher de consentement.
Article 8 RGPD

g)  Contrôle de l'âge

Vous devrez demander l'âge des utilisateurs, et si l'utilisateur est un enfant (moins de seize ans), vous devrez demander la permission des parents (par mel par exemple) qui devront confirmer.
Évidemment, les enfants pourront tricher sur leur date de naissance, ou fournir une fausse adresse mail parentale, mais vous aurez fait votre travail conformément à la législation.
Article 16 RGPD

h)  Ne pas garder les données plus que nécessaire

Si vous avez collecté les données pour un usage spécifique vous devez les supprimer/les anonymiser aussitôt que possible.
Article 5 RGPD

III.  Les choses à faire

a)  Chiffrage des données en transit

Cela signifie que la communication entre votre couche applicative et votre base de données (ou votre queue de message, ou tout composant que vous avez) devrait se faire à travers TLS.

b)  Chiffrer les sauvegardes
c)  Implémentation de la pseudomisation

Vous devrez changer les données personnelles en « pseudonymes », de façon à ce que les gens ne puissent pas être identifiés.
Techniquement, cela pourrait signifier que votre objet utilisateur peut avoir une méthode « pseudonymise » qui applique un hash+sel / bcrypt / PBKDF2 pour les données pouvant être utilisées pour identifier une personne.

d)  Loguer les accès aux données personnelles

Chaque opération de lecture d'un enregistrement de données personnelles devrait être logué, pour que vous sachiez qui y a accédé et pour quel usage.
Cela ne découle pas directement de la réglementation, mais c'est implicite concernant les responsabilités.

Conclusion

Globalement, le but de la réglementation est de vous faire prendre des décisions conscientes lors de traitement de données personnelles. Elle impose de meilleures pratiques de manière légale.