5 votes

Comment détecter si l'utilisateur se connecte depuis un ordinateur reconnu ?

Sur de nombreux sites Web de banque et d'investissement, le site empêche les utilisateurs de se connecter à partir d'un ordinateur non reconnu sans avoir au préalable répondu à une question supplémentaire ou activé cette machine. Comment les développeurs créent-ils généralement cette fonctionnalité ?

Par exemple, voici le message que Salesforce.com affiche lorsque je me connecte à mon compte à partir d'une machine non reconnue :

Activate Required image, computer not recognized

Nous essayons de faire le même type de chose à partir d'une de nos applications, mais nous ne sommes pas sûrs de la meilleure (et de la plus sûre) approche.

3voto

John Feminella Points 116878

Il existe de nombreuses approches possibles pour y parvenir, mais elles utilisent généralement une combinaison des éléments suivants :

  • Plage d'IP à partir de laquelle vous vous connectez
  • votre nom d'hôte
  • présence de cookies sur votre ordinateur laissés par le site après une authentification réussie
  • chaîne de caractères de l'agent utilisateur

Si vous avez trop de différences avec l'une de vos connexions de confiance existantes, la machine est considérée comme non fiable. La limite à ne pas dépasser est un compromis entre sécurité et commodité.

2voto

citricsquid Points 940

Il n'y a pas d'approche vraiment sûre, on pourrait se baser sur l'adresse IP, mais elle est souvent dynamique, on pourrait se baser sur les cookies mais ils sont loin d'être sûrs, on pourrait se baser sur l'adresse MAC mais il faudrait utiliser Java (IIRC) pour y accéder, mais cela aussi peut être usurpé...

Il n'existe aucun moyen réel de vérifier si l'ordinateur à partir duquel ils se connectent s'est déjà connecté auparavant. Vous pouvez probablement trouver des "hacks" pour le faire, mais ce ne sera jamais sûr.

2voto

rATRIJS Points 169

Vous pouvez créer un cookie sur la machine de l'utilisateur et vérifier ultérieurement si ce cookie existe et contient une valeur appropriée. Si le cookie n'existe pas, alors cet ordinateur est un nouveau sinon cet ordinateur est déjà passé par là.

La valeur des cookies peut être un hash aléatoire, avec différents attributs, par exemple l'adresse IP, l'agent utilisateur, etc...

2voto

0xA3 Points 73439

L'Electronic Frontier Foundation (EFF) a mis en place un site web de démonstration montrant à quel point il est facile d'identifier un navigateur, même si les cookies sont désactivés ou si vous vous connectez à partir d'une autre adresse IP ou d'un autre fournisseur :

Panopticlick : Votre navigateur est-il unique et traçable ?

Ils utilisent une combinaison de

  • Chaîne de l'agent utilisateur
  • En-têtes HTTP
  • Plug-ins de navigateur installés
  • Fuseau horaire
  • Taille de l'écran et résolution des couleurs
  • Polices de caractères du système
  • Paramètres des cookies

Cependant, le scénario typique (et probablement celui utilisé dans votre application d'exemple) serait de stocker un cookie localement et d'identifier l'utilisateur qui revient via ce cookie.

2voto

Andrew McGregor Points 7641

L'approche la plus sûre consiste sans aucun doute à émettre des certificats pour les clients et à faire en sorte que le serveur vérifie les certificats à la connexion (assurez-vous d'utiliser une liste de révocation !). Cette méthode est assez lourde sur le plan administratif, mais elle fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X