web-dev-qa-db-fra.com

Est-il sûr de permettre aux utilisateurs de se connecter plusieurs fois sur différents navigateurs et ordinateurs?

Nous développons actuellement une application web. Les développeurs ont autorisé plusieurs connexions. par exemple, un utilisateur peut se connecter à plusieurs ordinateurs en même temps. Ils citent le compte Gmail comme exemple d'autorisations d'accès multiples.

Nous avons sécurisé notre application Web similaire à ici.

Autoriser plusieurs connexions sur différents ordinateurs/navigateurs augmente-t-il la vulnérabilité aux hacks? Si oui, comment expliquer cela aux développeurs?

11

Il existe une bonne raison d'empêcher les connexions simultanées - si elles ne sont pas nécessaires à vos utilisateurs.

Une bonne règle d'or consiste à ne pas autoriser plus de fonctionnalités que celles qui sont nécessaires. Si vos utilisateurs ne se connectent jamais à plus d'une session simultanée, leur interdiction réduirait le risque d'attaque (car un attaquant ne pourrait pas mener son attaque pendant que l'utilisateur était connecté.)

Si, toutefois, vos utilisateurs peuvent s'attendre à utiliser plusieurs sessions, vous devrez disposer de cette fonctionnalité.

Vraiment, cette question se résume à un problème de fonctionnalité - Google sait que leurs utilisateurs peuvent avoir besoin de se connecter à partir de plusieurs machines/emplacements/navigateurs en même temps, donc ils se contentent de notifier les autres sessions, plutôt que de les interdire.

8
Rory Alsop

Je pense que toutes les réponses données jusqu'à présent sont toutes valables. Cependant, je ne suis pas sûr d'être entièrement d'accord. Prenez par exemple ce site. Je peux ouvrir plusieurs sessions et me connecter sur stackexchange.com, cela rend-il security.stackexchange.com moins sûr? Je pense que le bien-fondé de cela est discutable, et il y a des avantages et des inconvénients à l'argument. Bien que je dirais que toute augmentation du risque de sécurité de le permettre est négligeable.

Je pense que la question des connexions multiples dépendant du scénario, est moins une question de sécurité et plus une question de processus. Il peut être judicieux d'interdire plusieurs connexions en raison de processus métier, par exemple l'octroi de licences. Mais dans d'autres scénarios, il peut être judicieux, par exemple, d'augmenter la convivialité. C'est à vous, en tant qu'architecte, de décider si l'augmentation du risque vaut des avantages perçus, ou d'augmenter le travail pour désactiver plusieurs connexions.

4
Nicholas King

Je ne pense pas que permettre à plusieurs utilisateurs de se connecter soit vulnérable aux attaques. Si Gmail le permet, je suis sûr qu'ils ont pensé aux risques potentiels;)

Maintenant, cela ne signifie pas que votre application n'est pas vulnérable, mais elle sera davantage basée sur la façon dont vous avez développé le processus de connexion (https, mot de passe haché de la base de données, etc.).

Puisque vous mentionnez que vous avez sécurisé votre application comme indiqué sur ce post , vous avez considérablement réduit le risque (je ne peux pas dire que c'est 100% sécurisé, rien ne l'est).

Maintenant, vous pouvez ajouter la même fonctionnalité que Google Mail: répertorier toutes les sessions connectées actuelles pour l'utilisateur. Ce faisant, si un compte utilisateur est piraté et accessible par un autre endroit, il sera possible de le voir, l'IP derrière, etc.

Il ne sera pas plus sécurisé, mais il soulagera vos utilisateurs.

1
Cyril N.

Je pense que le problème et la préoccupation sont vraiment définis par les données et les systèmes en question. Si chaque connexion, permet la mutation (modification) des données partagées, ou la modification des systèmes partagés, alors avoir plusieurs connexions par le même utilisateur est un problème.

Dans le cas de gmail, les données en question sont individuelles et non partagées donc ce n'est jamais le cas. Si je change mon gmail en une seule connexion, je ne me tire que du pied.

Du point de vue de la sécurité, je voudrais également soulever/considérer certaines préoccupations:

  1. Chaque fois que vous autorisez plusieurs connexions simultanées, vous dites essentiellement que vous avez des connexions non sécurisées à votre système. Si l'ordinateur sur lequel le système fonctionne n'est pas correctement sécurisé, ce "portail" est ouvert et gratuit pour quelqu'un qui n'est pas le bon utilisateur abusant de la connexion - vous avez donc perdu la traçabilité et la répudiation de votre système.

  2. Bien sûr, toute page active (sauf s'il s'agit de HTML pur) va représenter un "portail" d'exploits potentiels que si un agresseur a accès à l'attaque peut alors exploiter pour une escalade plus poussée au-delà des droits de l'utilisateur connecté. Ou pire encore, peut créer un portail pour attaquer les systèmes sur lesquels l'application et ses données sont hébergées et subvertir tous les contrôles et accéder ainsi aux "joyaux de la couronne" pour ainsi dire.

  3. Enfin, ne croyez jamais votre propre BS, vous n'avez pas sécurisé votre application. Vous avez fait de votre mieux pour sécuriser votre application au mieux de vos connaissances à ce moment-là - sinon les attaques 0day n'existeraient pas. Donc, ne croyez jamais que votre application est "sécurisée" et ainsi, vous pouvez faire quelque chose qui ressemble nominalement à ce que vous proposez. Aucune infraction prévue ici, mais c'est la vérité. Soyez toujours paranoïaque à propos de la sécurité.

0
Tek Tengu