Outils pour utilisateurs

Outils du site


bloc3:authentification

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc3:authentification [2023/03/23 19:00] – ↷ Page déplacée de bloc2:prog:web:authentification à bloc3:authentification adminbloc3:authentification [2024/05/13 11:09] (Version actuelle) – [Définitions] admin
Ligne 1: Ligne 1:
-====== Qu'est ce que l'authentification ? ======+====== Authentification ====== 
 +===== Définitions ===== 
 +{{:bloc3:authent.png?200|Authentification}} \\  
 +**L'identification** est le procédé qui permet de vérifier l'identité d'un utilisateur. L'objectif de cette opération est de différencier les utilisateurs les uns des autres. Pour ce faire, l'utilisateur répond à la question : **//<color blue>Qui suis-je ?</color>//** en fournissant un __identifiant__.\\ \\  
 +**L'authentification** est le procédé qui permet de vérifier qu'un utilisateur identifié est bien celui qu'il déclare être. Pour le prouver, l'utilisateur répond à la question : **//<color blue>Que sais-je ?</color>//** en fournissant un __mot de passe__.\\ \\  
 +**L'authentification à deux facteurs** est un procédé qui complète l'authentification afin de vérifier de manière encore plus certaine que l'utilisateur authentifié n'est pas un individu malveillant. Pour le prouver, l'utilisateur répond à la question : **//<color blue>Que possédè-je ?</color>//** en : 
 +  * fournissant un code aléatoire obtenu sur un [[https://fr.wikipedia.org/wiki/Mot_de_passe_%C3%A0_usage_unique|générateur OTP]] ; 
 +  * fournissant un code reçu par SMS ; 
 +  * validant un notification sur une App mobile dédiée.
  
 +**L'habilitation** est le procédé qui, lorsqu'un utilisateur a été authentifié, permet de déterminer quels accès lui seront accordés. L'habilitation consiste à appliquer une politique de droits pré-établie répondant à la question : **//<color blue>Qu'as-tu le droit de faire ... ou pas ?</color>//**. \\ \\
 +__Notes__ : 
 +  * Aujourd'hui, l'authentification à deux facteurs s'appuie largement sur les smartphones (qui concrétisent naturellement "ce que je possède"). Elle est réellement plus exigeante et, pour s'en convaincre, il suffit de faire l'expérience de ne plus avoir accès à son smartphone (perte, oubli, panne, etc.) au moment où le second facteur est nécessaire. La situation peut être chaotique, voire kafkaïenne ;
  
-L'authentification web est le processus qui permet de vérifier l'identité d'un utilisateur d'un site web ou d'une application web. L'objectif de l'authentification web est de s'assurer que seules les personnes autorisées ont accès aux parties protégées du site ou de l'application. 
  
-Le processus d'authentification web peut varier selon la configuration du site ou de l'application. Il peut impliquer des étapes telles que la saisie d'un nom d'utilisateur et d'un mot de passe, la réponse à une question de sécurité, la validation d'un code envoyé par courrier électronique ou SMSou l'utilisation d'un jeton d'authentification physique comme un jeton de sécurité ou une carte d'identité.+  * Pour une organisation, la multiplication des besoins d'authentification a conduit à fabriquer des guichets centralisés d'authentificationappelés Single Sign-On ([[https://fr.wikipedia.org/wiki/Authentification_unique|SSO]]).
  
-Une fois l'authentification réussie, l'utilisateur est généralement autorisé à accéder aux parties protégées du site ou de l'application. Si l'authentification échoue, l'utilisateur peut être invité à réessayer ou être bloqué temporairement ou définitivement selon les paramètres de sécurité du site ou de l'application.+===== Les Fonctionnalités à considérer dans une authentification =====
  
-{{:bloc2:prog:web:tokenbasedauthentication_1_.png?400|}}+==== Gérer les utilisateurs ==== 
 +Pour gérer efficacement l'authentification, il conviendra de disposer d'une liste à jour des utilisateurs autorisés. Pour ce faire, il faudra gérer les utilisateurs au fil de deux besoins essentiels : 
 +  * Ajouter de nouveaux utilisateurs ; 
 +  * Désactiver des utilisateurs ;
  
----- +==== Gérer les droits ==== 
-====== Comment créer une authentification ======+Ensuite, il est important de pouvoir appliquer une **politique d'habilitations** par le biais d'une  gestion des droits d'accès. Cela implique de pouvoir **attribuer ou retirer des droits** à chacun. Souvent, l'application des droits à des **groupes d'utilisateurs** facilitera le processus.  
 +\\ \\ Principe fondamental de la sécurité : //__appliquer à chacun tous les droits nécessaires mais seulement eux, jamais plus__//.
  
-Voici un exemple de code PHP pour se connecter à une base de données SQL avec un nom d'utilisateur et un mot de passe :+==== Gérer l'authentification ==== 
 +Offrir une mire d'authentification et le traitement associé.
  
 +==== Gérer le changement de mot de passe ====
 +En outre, il est nécessaire de pouvoir gérer le changement de mot de passe des utilisateurs. Cela permet aux utilisateurs de changer leur mot de passe régulièrement pour **maintenir la sécurité du système**. 
  
-{{:bloc2:prog:web:sql.png?400|}}+==== Gérer la réinitialisation de mot de passe ==== 
 +Une nécessité supplémentaire consiste à proposer un système de réinitialisation de son mot de passe en cas d'oubli, afin que chacun, en toute autonomie, puisse continuer à accéder au système sans interruption.
  
 +==== Gérer la double authentification ====
 +Enfin, de sorte à **renforcer la sécurité du système**, proposer une double authentification implique des traitements et un processus spécifiques.
  
 +On le mesure ici, développer un système d'authentification complet ne peut pas s'improviser.
  
-Voici un exemple de code PHP qui peut être utilisé pour vérifier le nom d'utilisateur et le mot de passe que l'utilisateur entre dans un formulaire, et qui est vérifié dans une base de données SQL : +====== RGPD et Authentification ======
- +
-{{:bloc2:prog:web:capture.png?400|}} +
- +
----- +
-====== Les bonnes pratiques de l'authentification web ====== +
- +
-Les **bonnes pratiques de l'authentification web** comprennent plusieurs éléments clés pour garantir la sécurité des utilisateurs et des systèmes. L'un de ces éléments est **le hachage des mots de passe**. Le hachage des mots de passe consiste à utiliser **un algorithme de hachage pour transformer un mot de passe en une chaîne de caractères aléatoires appelée "hash-code"**. +
- +
-{{:bloc2:prog:web:php_e.png?400|}} +
- +
-**Le hash-code est stocké dans la base de données, au lieu du mot de passe lui-même.** Lorsqu'un utilisateur entre son mot de passe pour s'authentifier, le système hache ce mot de passe et **le compare au hash-code stocké dans la base de données**. Si les deux hash-codes correspondent, l'utilisateur est authentifié. +
- +
-Pour maximiser la sécurité, il est important d'utiliser** le hash-code le plus long possible**. Actuellement, **le hash-code le plus long est de 256 bits**, ce qui offre une très grande sécurité contre les attaques de déchiffrement. En outre, **il est important d'utiliser l'algorithme de hachage le plus lent possible. Actuellement, l'algorithme le plus lent est BCrypt**, qui utilise une fonction de hachage très complexe qui prend beaucoup de temps à exécuter. Cela empêche **les attaques de force brute**, qui consistent à essayer de deviner un mot de passe en exécutant rapidement des milliers d'essais. +
- +
- +
-En plus du hachage des mots de passe, il est important d'établir une politique des mots de passe pour gérer les mots de passe des utilisateurs. Cette politique doit inclure des règles sur la longueur et la complexité des mots de passe, ainsi que sur leur durée de vie. Elle doit également inclure un seuil de blocage en cas d'échecs répétés, ainsi que des règles sur la réinitialisation des mots de passe en cas d'oubli. Enfin, la politique doit définir le moyen et le mode de communication initiale des mots de passe aux utilisateurs. +
- +
-En utilisant le hachage des mots de passe, en établissant une politique des mots de passe et en suivant ces bonnes pratiques, vous pouvez renforcer la sécurité de votre système d'authentification web. Cependant, il est également important de stocker les mots de passe de manière sécurisée, afin d'éviter qu'ils ne tombent entre de mauvaises mains en cas de fuite de données. Pour cela, il est recommandé d'utiliser un coffre-fort à mot de passe, qui est un outil de stockage et de gestion sécurisé des mots de passe +
- +
- +
-====== Les Fonctionnalités à considérer lors de l'authentification web ====== +
- +
- +
-__Gérer les nouveaux utilisateurs et les désactivations__+
    
 +**Le Règlement général sur la protection des données (RGPD)** ne traite pas spécifiquement de l'authentification, mais il s'y applique systématiquement puisque celle-ci traite des données à caractère personnel. 
  
 +Par ailleurs, le RGPD stipule que tout service numérique opéré à destinations d'utilisateurs doit mettre en œuvre un procédé complet de **traçabilité**. L'authentification n'échappe pas à ce principe et se doit d'enregistrer toutes les opérations qui lui sont liées (connexions réussies, connexions en échec, déconnexions, changements de mots de passe, etc.). Les traces ainsi enregistrées pourront servir tant dans le cadre d'une requête judiciaire que pour un usage interne dans la gestion quotidienne.
  
-Pour gérer efficacement l'authentification web, il est important de considérer plusieurs fonctionnalités clés. Tout d'abord, il est important de pouvoir **gérer les nouveaux utilisateurs et les désactivations**. Cela signifie qu'il faut être en mesure de **créer de nouveaux comptes** pour les utilisateurs autorisés, tout en ayant la **possibilité de désactiver les comptes des utilisateurs qui ne sont plus autorisés à accéder au système**. 
- 
-__Gérer les droits (autorisations et groupes)__ 
- 
- 
-Ensuite, il est important de pouvoir **gérer les droits des utilisateurs**. Cela implique de pouvoir **attribuer des autorisations et des groupes spécifiques à chaque utilisateur**, afin de contrôler leur **accès aux différentes parties du système**. Cela permet d'éviter que les utilisateurs n'accèdent à des informations ou des fonctionnalités auxquelles ils ne sont pas autorisés. 
- 
-__Gérer la double authentification__ 
- 
-Il est également important de pouvoir gérer la **double authentification**, pour **renforcer la sécurité du système**. La **double authentification** implique de demander à l'utilisateur de fournir deux éléments d'identification pour accéder au système, comme **un mot de passe et un code à usage unique envoyé par SMS**. Cela empêche les utilisateurs non autorisés d'accéder au système même s'ils connaissent le mot de passe. 
- 
-__Gérer le changement de mot de passe et la réinitialisation des mots de passe__ 
- 
-En outre, il est important de pouvoir gérer **le changement de mot de passe des utilisateurs**. Cela permet aux utilisateurs de **changer leur mot de passe régulièrement pour maintenir la sécurité du système**. Il est également important de pouvoir gérer la **réinitialisation des mots de passe en cas d'oubli**, afin que les utilisateurs puissent continuer à accéder au système sans interruption. 
- 
-__Gérer la communication et le stockage sécurisés__ 
- 
-Enfin, il est important de gérer **la communication et le stockage sécurisés des informations d'authentification**. Cela implique de **crypter les informations d'authentification pour les protéger contre les attaques de pirates informatiques**. Il est également important de gérer **la confidentialité des informations d'authentification, en appliquant les droits d'accès aux utilisateurs en fonction de leurs autorisations et groupes**. 
- 
- 
- 
----- 
- 
-====== Quel rapport a le RGPD avec l'authentification web ? ====== 
-  
- 
-**Le Règlement général sur la protection des données (RGPD)** ne traite pas spécifiquement de l'authentification web, mais il s'applique généralement aux données personnelles collectées lors de l'authentification en ligne. Le RGPD établit des exigences en matière de protection de la vie privée des personnes, notamment en ce qui concerne la collecte, l'utilisation et la conservation de leurs données personnelles. Il exige notamment que les entreprises qui collectent des données personnelles obtiennent le consentement des personnes concernées et leur fournissent des informations claires et précises sur la façon dont leurs données seront utilisées. En outre, le RGPD exige que les entreprises prennent des mesures de sécurité appropriées pour protéger les données personnelles qu'elles collectent, y compris lors de l'authentification en ligne. 
- 
-Le RGPD pour s'assurer du bon fonctionnement pourra sous un délai de 6 mois, demander le retracement des connexions dans un fichier LOG.  
- 
-Voici un exemple de code PHP qui peut être utilisé pour écrire des entrées dans un fichier log : 
- 
-{{:bloc2:prog:web:php_f.png?400|}} 
- 
-Ce code ouvre le fichier log en mode écriture (a pour "append" ou ajout), ce qui signifie que les données seront ajoutées à la fin du fichier sans écraser son contenu existant. Le message à écrire dans le fichier log est ensuite écrit à l'aide de la fonction fwrite() et le fichier est fermé avec la fonction fclose(). 
- 
-Il est important de noter que le fichier log doit avoir les autorisations d'écriture correctes pour que ce code fonctionne correctement. Vous devrez peut-être modifier les autorisations du fichier pour permettre à PHP d'écrire dans le fichier. 
bloc3/authentification.1679594410.txt.gz · Dernière modification : 2023/03/23 19:00 de admin