ALOM

đź”’ Security

UBER

🤔 Problématiques :

  • Comment sĂ©curiser les donnĂ©es ?
  • Comment authentifier les utilisateurs ?

🎚️ Niveaux de sécurité

  • Physique : ContrĂ´le d'accès, biomĂ©trie
  • Hardware : Encryption des disques
  • Middleware : Firewalls (blocage d'IP/Ports), VPN (rĂ©seaux privĂ©s virtuels)
  • Software : Authentification/Autorisation
  • Data : Hashage / Chiffrement

HTTPS

HTTPS fournit un tunnel de communications sécurisé

Encryption des données via un algorithme asymétrique

Certificat validant l'identité du site + clé publique

HTTPS

⚠️ HTTPS

  • Chiffre les donnĂ©es entre le client et le serveur
  • Ne permet pas de valider l'identitĂ© de l'utilisateur

Software Security

  • Authentication (authentification)
  • Authorization (autorisation)

Authentication

Vérification de l'identité d'un "principal" (un user, un device, un système qui veut effectuer une action)

Authorization

Décider si un "principal" peut faire une action en particulier. (contrôle d'accès)

Authentification en HTTP

Utilisation du header

Authorization: <type> <credentials>

Authorization: Basic QXNoOnBhc3N3b3Jk

Authorization: Bearer QXNoOnBhc3N3b3Jk

Authentification en HTTP

Authorization: Basic QXNoOnBhc3N3b3Jk

Les logins/mots de passe (ou tokens) transitent dans les headers

C'est pour ça que l'on doit utiliser HTTPS !

En servlets

Utilisation des servlet filters

En

spring-security
  • Authentification (validation des credentials)
  • Utilisation d'un Cookie HTTP pour identifiant de session
  • Stockage de "principal" en session cĂ´tĂ© serveur
  • Logout : suppression de la session
  • Protection contre le vol de session (CSRF & Session Fixation)
  • Protection contre les appels venant de sources inconnues (CORS)

spring-security

Page de login

spring-security

Sécurisation des services REST par défaut

  • Username : user
  • Password : logguĂ© sur la console
Using generated security password: 112eb169-1567-42fe-bf0e-7c7bc94a5afa

spring-security

Personalisation de la sécurisation des services REST

  • Username : spring.security.user.name
  • Password : spring.security.user.password

TP

Security đź”’