• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 19/03/2024

Identifiez les 6 aspects de la sécurité d’une application

Dans le chapitre précédent, vous avez pris conscience des impacts négatifs d’applications mal sécurisées pour les sociétés et les utilisateurs et de l’importance de se protéger. Dans ce contexte, qu’est-ce que la sécurité et quelles sont ses missions ?

Maîtrisez le concept de sécurité

Vous en avez vu quelques exemples dans la partie précédente, sécuriser une application, c’est s’intéresser notamment aux accès ou bien encore aux données qui communiquent avec l’extérieur.

Voyons-les en détail !

L’authentification

L’authentification consiste à savoir lier, grâce à une caractéristique discriminante (un mot de passe par exemple) une identité à une entité donnée d’un système (la partie administration d’un site, un processus en particulier ou 1 ordinateur par exemple). Elle s’applique à l’utilisateur, à l’émetteur d’un message ou à l’auteur d’un document.

L’authentification est probablement la notion la plus simple à comprendre, mais en tant que développeur, c’est une de celles qui vous demanderont le plus de travail d’implémentation. Les problèmes potentiels à gérer sont nombreux :

  • Dépersonnification : Comment s’assure-t-on que notre utilisateur est bien la personne qu’il prétend être ?

  • Rejeu : Comment lutter contre l’espionnage, la capture et la réutilisation des mots de passe par exemple ?

  • Rebond : Comment lutter contre l’espionnage, la capture et la réutilisation des mots de passe dans une autre partie du système ou sur autre application par exemple ?

  • Altération des messages entre les différents acteurs du système : Comment s’assure-t-on que personne ne s'approprie une signature illégalement ?

  • Transférabilité du mot de passe : comment lutter contre les comportements du type : « Tiens, voilà mon mot de passe » ?

Le contrôle d’accès

Une fois authentifié, l’utilisateur souhaite accéder à des fonctionnalités offertes par l’application. Au préalable, il faut contrôler s’il a le droit d’y accéder.

Assurer cette fonction c’est avoir la capacité de lier une ressource (une base de données par exemple) avec des droits d’accès à cette ressource et une entité.

L’intégrité

Il s’agit ici de prévenir l’altération volontaire ou accidentelle d’une donnée ou des services d’un système. Elle s’applique à la phase de communication entre composants, au flux, au stockage des données (altérations de contenu) et au système (détection d’intrusion).

La confidentialité des données

La confidentialité des données doit être assurée lors d’échange de données sensibles (mot de passe, données bancaires ou médicales.) Il s’agit de garantir que des données acquises illégalement soient inutilisables.

La non-répudiation

Cette fonction consiste à s’assurer que l’envoi et la réception d’un message sont incontestables. En d’autres termes, l’émetteur ou le récepteur d’une donnée ne doit pas être en mesure de nier son implication en cas de litige. Le moyen technologique repose sur les certificats, que nous verrons plus en détail plus loin dans le cours.

Protection contre l’analyse du trafic

La sécurité des communications repose sur des mécanismes déjà abordés et que nous approfondirons ensuite : mécanisme d’authentification, de chiffrement et de hachage. L’exemple le plus emblématique est l’utilisation des protocoles SSL (Secure Socket Layer) et TLS (Transport Layer Security) dans les échanges sur le Web grâce au protocole HTTPS dont vous avez évidemment entendu parler.

En résumé

Dans cette partie, vous avez appris ce qu’est la sécurité et quelles sont les fonctions à assurer pour minimiser l’impact des différentes menaces qui pèsent sur vos systèmes. Mais comment cela s’applique-t-il dans nos applications ? Nous le voyons en détail tout de suite dans le prochain chapitre.

Exemple de certificat de réussite
Exemple de certificat de réussite