Langages de développement et Frameworks
Principes de la protection des données
Information et consentement donnés clairement à la personne concernée
Si elle n’a pas accepté formellement et librement le traitement de ses données personnelles, il est purement interdit de les collecter. Cette procédure doit être appliquée systématiquement et indépendamment du type de données (sensibles ou personnelles). Pour cela, elle doit avoir un choix réel de l’accepter ou non, une alternative doit exister, le consentement ne peut plus être présumé.
Elle doit aussi être informée du but précis et du type de données collectées. L’entreprise doit divulguer des informations pertinentes et suffisamment concrètes. Il doit y avoir une finalité spécifique pour chaque donnée, la personne doit savoir à quoi cela va servir. Ce consentement peut être transmis sous forme électronique ou orale et ne doit pas avoir une forme particulière. Son
approbation doit dans tous les cas être donné explicitement, une case précochée ne peut par exemple pas être utilisée. De la même manière que le consentement, la révocation de celui-ci doit pouvoir être possible à tout moment.
Assurer le « Privacy by design » et le « Privacy by default »
Ces deux concepts permettent une protection des données par des moyens purement techniques.
L’objectif est d’instaurer une culture de protection des données à l’interne de l’entreprise. La notion de « Privacy by design » vise à prévenir les risques avant même le traitement de ces données et réduit ainsi le risque d’atteinte à la personnalité et de violation des droits fondamentaux. Cela est défini par une suppression régulière de données non primordiales ainsi que leur anonymisation (ou
pseudonymisation) systématique. Le principe de la minimisation des données est donc appliqué, seulement les données nécessaires seront ainsi utilisées. Le concept « Privacy by default » permet de s’assurer à l’aide de paramètres définis par défaut que seules les données personnelles nécessaires seront traitées pour la finalité prévue. En respectant cela, une entreprise doit par exemple permettre d’effectuer des achats en ligne sans pour autant « forcer » l’utilisateur à se rattacher à un profil client.
Désignation d’un représentant dans l’UE
La nomination d’un responsable de traitement de données (DPO) ou d’un mandat à l’externe devient quasiment obligatoire. Cela peut également passer par une filiale qui possède un siège social au sein de l’UE, si son siège principal ne s’y trouve pas.
Tenir un registre des activités de traitement
Après avoir déterminé dans quelles circonstances des données de clients, fournisseurs ou employés seront collectées et/ou traitées, il est nécessaire de lister les applications et outils utilisés par les systèmes d’information de l’entreprise pour le stockage de ces données et « tracer » cela dans un registre. Cette mesure est obligatoire si la barre des 250 employés au sein de l’entreprise est dépassée.
Obligation de notifier une violation de données personnelles
Le responsable de traitement de données est soumis à notifier toute violation à l’autorité de contrôle compétente (DPA) dans un délai de 72 heures si cette violation est susceptible d’engendrer un risque pour les droits et libertés. Il faut aussi relever que la ou les personnes concernées par cette violation doivent également être notifiées.
Analyser l’impact relatif à la protection des données
Ce principe est basé sur l’autorégulation. Une entreprise doit être conforme à la protection des données en tout temps et pouvoir le prouver. Si les droits et libertés des personnes physiques ne peuvent être respectés, l’autorité de contrôle doit être consultée afin de trouver une solution.
Quelques précisions supplémentaires sont également présentes dans ce nouveau texte. Ainsi, les données qui peuvent être considérées comme ultra-sensibles (registre des condamnations pénales par exemple) ne peuvent être traitées que sous contrôle d’une autorité publique ou en accord avec le droit de l’état.
LPD actuelle
Tout comme pour le texte européen, il est important de prendre en compte ces définitions mentionnées comme suit à l’article 3 de la LPD (Assemblée fédérale de la Confédération suisse, 1992) :
a. données personnelles (données), toutes les informations qui se rapportent à une personne identifiée ou identifiable ;
b. personne concernée, la personne physique ou morale au sujet de laquelle des données sont traitées ;
c. données sensibles, les données personnelles sur :
1. les opinions ou activités religieuses, philosophiques, politiques ou syndicales,
2. la santé, la sphère intime ou l’appartenance à une race,
3. des mesures d’aide sociale,
4. des poursuites ou sanctions pénales et administratives ;
d. profil de la personnalité, un assemblage de données qui permet d’apprécier les caractéristiques
essentielles de la personnalité d’une personne physique ;
e. traitement, toute opération relative à des données personnelles – quels que soient les moyens et procédés utilisés – notamment la collecte, la conservation, l’exploitation, la modification, la communication, l’archivage ou la destruction de données ;
f. communication, le fait de rendre des données personnelles accessibles, par exemple en autorisant leur consultation, en les transmettant ou en les diffusant ;
g. fichier, tout ensemble de données personnelles dont la structure permet de rechercher les données par personne concernée ;
h. organe fédéral, l’autorité ou le service fédéral ainsi que la personne en tant qu’elle est chargée d’une tâche de la Confédération ;
i. maître du fichier, la personne privée ou l’organe fédéral qui décide du but et du contenu du fichier;
Data Protection Officier
Comme déjà évoqué, avec le RGPD et le projet de révision de la LPD, la nomination d’un DPO peut se révéler obligatoire sous certaines conditions, notamment dans les institutions publiques et les entreprises qui traitent des données à grande échelle. Certes cette nomination ne reste pas toujours obligatoire, mais son apport est fortement conseillé. Son rôle sera une aide bienvenue dans le maintien de la conformité pour une entreprise dans la durée.
Un DPO est capable de coordonner les actions à effectuer dans les différents services d’une entreprise en l’aidant à atteindre ses objectifs tout en restant conforme avec la réglementation. Son rôle est complexe dans la structure d’une entreprise. Outre d’excellentes connaissances en informatique et en cybersécurité, il doit posséder une bonne culture juridique, particulièrement en droit des nouvelles technologies. Enfin, il doit pouvoir bien communiquer avec les différents responsables de services et les sensibiliser en permanence. (CNIL, 2018)
Langages de développement et Frameworks
HyperText Markup Language
HyperText Markup Language ou « HTML » est un langage qui se traduit en français par « langage de balises pour l’hypertexte ». Il est utilisé comme standard pour créer et afficher le contenu d’une page web. Des « additions » peuvent être couplées à ce langage pour décrire sa présentation graphique (avec CSS) et lui ajouter des fonctionnalités interactives (avec JavaScript).
Comme son nom l’indique, ce langage fonctionne grâce à un système de « balises » qui sont insérées à un texte normal. Chaque balise a une signification particulière et permet d’inclure du contenu spécifique à la page web (un titre, du texte brut, des paragraphes ou des images par exemple). La référence à « hypertexte » est le fait de créer des liens entre les différentes pages web et de permettre de naviguer facilement entre elles comme on le fait aujourd’hui couramment à travers n’importe quel site web.
Avec ce langage, chacun a donc la possibilité de créer et façonner des sites web. (Mozilla, 2018)
Cascading Style Sheets
Cascading Style Sheets ou « CSS » est un langage utilisé en complément du HTML. Également utilisé comme standard dans le développement web, il permet de décrire la présentation, notamment graphique, d’une page web.
Il décrit ainsi de quelle manière les éléments doivent être affichés (disposition des textes et médias par exemple). (Mozilla, 2018)
JavaScript
JavaScript ou « JS » est un langage de scripts conçu par Netscape et utilisé au travers de millions de pages web dans le monde entier. Il est orienté objet et très facile à assimiler. (Mozilla, 2018)
Ce langage a la particularité de s’exécuter directement sur l’ordinateur du client, c’est donc l’ordinateur de l’utilisateur qui va « recevoir » ce code et le lancer dans le navigateur web. JavaScript est alors utile pour des petites animations et interactions sur une page sans qu’on ait besoin de la recharger en permanence. (Info Web Master, 2018) Une bibliothèque nommée «jQuery » sera utilisée afin de simplifier la manipulation de DOM (modèle de document chargé dans le navigateur), les appels d’AJAX (pratique de programmation consistant à construire des pages Web plus complexes et dynamiques) et la gestion des évènements.
Elle est fréquemment utilisée par les développeurs JavaScript et fonctionne sur une multitude de navigateurs web. (Mozilla, 2018)
Framework Materialize
Materialize est un Framework moderne basé sur le concept « Material Design ». Créé et conçu par Google, le « Material Design » est un langage de conception qui combine les principes classiques d’un design « réussi » ainsi que l’innovation et la technologie. (Materialize, 2018) Ce Framework permet aux développeurs d’améliorer considérablement le CSS d’un site web en proposant des éléments graphiques préconçus et simples à implémenter.
En combinant ce Framework avec le langage JavaScript et la bibliothèque « jQuery », des animations cohérentes et familiales pour l’utilisateur sont visibles. La navigation sur le site web s’effectue ainsi de manière intuitive et facilite la compréhension d’utilisation pour l’utilisateur.
PHP Hypertext Preprocessor
PHP est un langage de scripts généraliste et Open Source. Il est énormément utilisé et a été spécifiquement conçu pour le développement d’applications web. Son intégration au HTML est ainsi facilitée. L’avantage offert par PHP est sa simplicité d’apprentissage, même pour les débutants, et son offre de fonctionnalités avancées pour les experts.
À la différence de JavaScript qui est également un langage de scripts, son code est interprété sur le serveur du site web. Son résultat sera encapsulé dans le HTML et envoyé sous cette forme au client (l’utilisateur). (The PHP Group, 2018)
En juin 2018, il a été constaté que PHP était utilisé par 83,5% des sites web, ce qui en fait le langage orienté serveur le plus populaire. (W3Techs, 2018) PHP a été retenu pour plusieurs raisons évidentes dans la conception de cet outil :
• C’est un langage totalement gratuit
• Il est très performant dans son exécution
• Il est facile à apprendre et prendre en main
• Beaucoup de documentations sont disponible et sa communauté est grande
• Il gère parfaitement et nativement les requêtes d’accès aux bases de données (SQL)
• Il est très mature et sa stabilité n’est plus à prouver en étant déjà à sa septième version
• Comme il est exécuté depuis le serveur, il peut fonctionner sur tous les appareils et systèmes d’exploitation au moyen d’un navigateur web
• Il est le langage le plus standardisé par les hébergeurs web
Model-View-Controller
MVC est un patron d’architecture logicielle populaire pour la conception d’applications web. Il est très souvent utilisé pour la réalisation d’application web avec PHP. Généralement, son utilisation permet d’implémenter des interfaces utilisateurs.
L’application est séparée en trois parts distinctes, permettant la modularité et rendant plus simple la collaboration et la réutilisation. Ce modèle rend aussi les applications plus flexibles et plus accueillantes aux itérations. (Mozilla, 2018)
1. Le Modèle détermine quelles données l’application doit contenir. Si l’état de ces données change, alors le modèle va généralement avertir la vue (donc l’affichage peut être modifié au besoin) et parfois le contrôleur (dans le cas où une logique différente est nécessaire pour contrôler la modification de la vue).
2. La Vue détermine comment les données de l’application doivent être affichées. Cela correspond au code HTML et CSS. Son but est de montrer simplement les données issues du Modèle sans qu’elles soient modifiées ou interprétées.
3. Le Contrôleur fait le lien entre la Modèle et la Vue. Le contrôleur contient toute la logique de mise à jour du modèle et/ou la vue en réponse aux entrées (actions) de l’utilisateur sur l’application.
|
Table des matières
INTRODUCTION
1. État de l’Art juridique
1.1. RGPD (partie européenne)
1.1.1. Définitions
1.1.2. Principes de la protection des données
1.1.3. Champs d’application
1.1.4. Sanctions en cas de violation
1.2. LPD actuelle
1.2.1. Définitions
1.2.2. Principes de la protection des données
1.2.3. Champs d’application
1.2.4. Sanctions en cas de violation
1.3. Projet de révision de la LPD
1.3.1. Principales mesures annoncées
1.3.2. Changements à la LPD en vigueur
1.3.3. Sanctions en cas de violation
1.4. LIPDA
1.5. Synthèse légale
1.5.1. Enjeux des entreprises suisses
1.5.2. Procédures de mises en conformité
1.6. Situation de la HES-SO
1.6.1. Préavis du Rectorat
1.6.2. Décision du Conseil de domaine « Économie et Services »
1.6.3. HES-SO Valais-Wallis
1.6.4. Instituts
2. État de l’Art technique
2.1. Outils d’accompagnement aux entreprises
2.1.1. Automatisation de la cartographie des traitements
2.1.2. Identification des données sensibles
2.1.3. Analyse d’impact
2.1.4. Détection des données prohibées
2.1.5. Intelligence artificielle
2.1.6. Questionnaires et listes de vérification
2.2. Data Protection Officier
2.2.1. Formations
2.2.2. Externalisation du DPO
2.3. Synthèse des outils
3. Analyse et choix
3.1. Type d’outil
3.1.1. Pourquoi un site web ?
3.2. Langages de développement et Frameworks
3.2.1. HyperText Markup Language
3.2.2. Cascading Style Sheets
3.2.3. JavaScript
3.2.4. Framework Materialize
3.2.5. PHP Hypertext Preprocessor
3.2.6. Model-View-Controller
3.3. Infrastructure et environnement de développement
3.3.1. Serveur web local
3.3.2. Stockage des données
3.3.3. Environnement de développement intégré
3.3.4. Hébergement en ligne du code
4. Développement de l’outil
4.1. Mock-ups
4.2. Vue du Questionnaire (Inputs)
4.2.1. Lab concerné
4.2.2. Type de données
4.2.3. Responsable de traitement
4.2.4. Traitement des données défini légalement
4.3. Vue du Résultat (Outputs)
4.3.1. Récapitulatif
4.3.2. Bouton Choix effectués
4.3.3. Bouton Recommencer
4.3.4. Résultats selon chaque périmètre
4.4. Structure de l’outil
4.5. Base de données
4.5.1. Table Lab
4.5.2. Table Type
4.5.3. Table Responsable
4.5.4. Tables Question et Choix
4.5.5. Table Périmètre
4.5.6. Table Résultat
5. Use cases réalisés
5.1. Inputs
5.2. Outputs
6. Conclusion
6.1. Synthèse générale
6.2. Avis personnel
6.3. Cahier des Charges
6.4. Améliorations possibles
RÉFÉRENCES
ANNEXES
Télécharger le rapport complet