Question:
Comment empêcheriez-vous quelqu'un de vendre son cookie persistant à quelqu'un qui n'est pas membre de l'institution et qui souhaite y accéder?
Dimitris
2017-05-03 17:00:38 UTC
view on stackexchange narkive permalink

La plupart de nos éditeurs vendent des abonnements à des institutions et les gens y accèdent en étant identifiés comme faisant partie de l'institution. Cette authentification de l'institution se produit avec des plages d'adresses IP ou Shibboleth, mais toutes les institutions ne prennent pas en charge Shibboleth ou d'autres SAML, et les plages d'adresses IP n'aident pas. sans VPN ni serveur proxy. Ainsi, les éditeurs veulent que nous concevions un système par lequel un utilisateur obtiendra un accès à court terme à son patrimoine institutionnel (c'est-à-dire au contenu souscrit par son institution) alors qu'il se trouve en dehors de la plage IP de l'institution (par exemple chez lui ou en voyage .) La solution doit être aussi simple que possible pour l'utilisateur, elle ne doit pas exiger qu'il télécharge quoi que ce soit et elle doit bien fonctionner pour les utilisateurs venant de téléphones mobiles ou de leurs ordinateurs portables. Le processus pourrait exiger que les utilisateurs lancent cet accès à l'intérieur de la plage IP, mais idéalement, ils devraient être en mesure d'initier leur accès de 30 jours même s'ils sont loin de l'institution et ont oublié de le configurer.

Précisez en particulier comment l'utilisateur affirmera qu'il est membre (faculté, étudiant, employé, peu importe) de l'institution qu'il revendique. N'oubliez pas que l'institution n'a pas de serveur d'authentification et n'en installera pas. De plus, l'utilisateur n'installera pas d'application sur son ordinateur, la solution complète impliquera invariablement un cookie persistant à un moment donné. Comment empêcheriez-vous quelqu'un de vendre son cookie persistant à quelqu'un qui n'est pas membre de l'institution et qui souhaite y accéder?

les noms d'utilisateur et les mots de passe utilisant le domaine de messagerie de l'institution sont le modèle de conception courant pour cela
Mais encore, il / elle peut vendre ses informations d'identification.Qu'en est-il de l'adresse MAC à insérer dans l'ID de session?
Les adresses MAC @Dimitris peuvent être truquées.
Si votre modèle de menace suppose que vos utilisateurs sont les attaquants, je ne pense pas qu'il existe une solution adéquate pour ce que vous recherchez.
N'autorisez pas les cookies persistants.
Pouvez-vous empêcher quelqu'un d'exécuter un serveur VPN dans sa plage d'adresses IP?
En fait, pouvez-vous empêcher quelqu'un de télécharger les données sur une clé USB?
Si Alice a accès au contenu et que vous empêchez Bob d'utiliser les informations d'identification d'Alice pour accéder au système, qu'est-ce qui empêche Alice d'obtenir légitimement le contenu et de le partager avec Bob par e-mail / Google Drive / Dropbox / clé USB / impressionetc.?Si vous avez un «emprunteur» déterminé et un «partisan» volontaire, vous n'empêcherez pas la distribution parascolaire.Toutes ces méthodes sont _ beaucoup_ plus faciles que de vendre (ou de distribuer librement) des cookies validés.
Cela semble terrible comme le problème de PACER avec RECAP.
Cela ressemble plus à EBSCO pour moi.
Cherchez-vous à * empêcher * que cela se produise ou à * dissuader * les gens de le faire?La prévention à 100% ne fonctionnera jamais (ne pourra jamais) fonctionner, mais si ce que vous recherchez ajoute des frictions au processus, c'est une proposition différente.
Onze réponses:
cloudfeet
2017-05-03 17:27:18 UTC
view on stackexchange narkive permalink

Pouvez-vous empêcher quelqu'un de vendre son mot de passe pour obtenir un accès similaire? Pensez-vous que vous en avez besoin? C'est à peu près équivalent.

Avez-vous besoin de faire cela?

D'après mon expérience à l'intérieur / à l'extérieur des institutions académiques avec accès aux revues, il y a toujours une certaine quantité de ressources de partage en tant que faveur ( par exemple "hé, pouvez-vous m'envoyer un PDF de ce document?"). Vous ne pourrez jamais arrêter cela, car un utilisateur légitime y accède manuellement sur une machine correcte. Cependant, je n'ai personnellement jamais vu des étudiants / membres du personnel essayer de gagner de l'argent avec cela.

Surveillance

Même s'ils voulaient gagner de l'argent de cette manière, je ne pense pas que le partage de cookies est le meilleur moyen - ce n'est certainement pas comme ça que je le ferais! Les protections que vous pourriez ajouter au système de cookies (par exemple, prendre les empreintes digitales du navigateur de l'utilisateur et vérifier qu'il reste le même, etc.) ne s'appliqueront pas aux autres méthodes.

Au lieu de cela (s'il s'agit réellement d'un problème), un Une solution raisonnable et robuste consiste à surveiller les modèles d'utilisation des utilisateurs. S'ils téléchargent 100 fois les ressources de quelqu'un d'autre, ou s'ils récupèrent des ressources de manière cohérente pendant 250 heures consécutives (les humains les plus longs peuvent survivre sans dormir), alors il y a probablement plusieurs utilisateurs ou un système automatisé au travail.

Cependant, cette solution de surveillance n'a pas à être incluse dès le début, elle peut être ajoutée plus tard - et jusqu'à ce que vous ayez la preuve qu'il s'agit réellement d'un problème, je pense que cela devrait être assez loin liste de choses à faire.

Qu'en est-il de l'adresse MAC à insérer dans l'ID de session?Est-ce un moyen efficace d'éviter que des tiers ne se connectent à la page Web?
@Dimitris: Vous pouvez faire diverses choses pour lier plus étroitement les cookies à un ordinateur / navigateur particulier, mais cela _seulement_ protège contre le partage de cookies, pas d'autres méthodes de partage d'accès.
Donc, non, ce n'est pas une solution robuste, même en ignorant le fait que les adresses MAC peuvent être modifiées.
alors pourquoi exactement quelqu'un partage-t-il son accès simplement parce qu'il utilise quelque chose comme JDownload pour télécharger des éléments?Le téléchargement de données est à peu près la seule fonctionnalité de la plate-forme
@Dimitris Comment vérifieriez-vous que le périphérique a réellement la bonne adresse MAC?À moins que l'appareil ne se trouve sur le même réseau Ethernet que votre serveur (cela ne se produira pas), vous ne pouvez pas voir le côté serveur MAC de l'appareil.
@Dimitris Solution de contournement triviale qui contourne essentiellement toutes les solutions matérielles possibles: Cloner une VM.Heck, configurez une machine virtuelle dans Azure et partagez-y les informations d'identification.
Les adresses Mac peuvent également changer.D'Ethernet à Wifi et retour deux fois par jour, parfois au module GSM mac, et bien sûr mon pare-feu trop zélé a dû sonner avec son propre adaptateur réseau virtuel avec la dernière mise à jour également ...
@Voo, c'est exactement ce qu'une entreprise dans laquelle j'ai travaillé a fait avec Microsoft Office, elle n'a payé qu'une seule licence et vous deviez utiliser l'instance à tour de rôle.
Je ne pense pas que vendre un mot de passe et vendre un cookie d'authentification soit ** du tout ** équivalent.Un cookie d'authentification, s'il est correctement configuré, peut vous donner accès aux documents de la bibliothèque, et rien d'autre.Le mot de passe institutionnel, dans de nombreuses institutions, permettrait à un attaquant de prendre en charge toutes les interactions de l'utilisateur avec l'institution, VPN dans le réseau, se connecter à tous leurs ordinateurs de travail, et à partir de là potentiellement vider leurs comptes bancaires, reprendre leur courrier électronique.et vandaliser leur présence sur les réseaux sociaux.
R.. GitHub STOP HELPING ICE
2017-05-04 06:02:17 UTC
view on stackexchange narkive permalink

Vous ne le faites pas.

Cette question est essentiellement une variante de "Comment faire un DRM et le faire fonctionner?" et la réponse est la même.

Je ne sais pas pourquoi "vendre un cookie persistant" semble être votre principale menace. Normalement, les utilisateurs republieront simplement vos publications sur SciHub.

À peu près ceci (+1).Les solutions DRM ne fonctionnent pas pour une raison, et cette raison est que les ordinateurs ont été initialement conçus pour être des machines entièrement programmables.La seule façon de faire fonctionner DRM (ou la solution d'accès papier OP est après) est de permettre à un utilisateur d'accéder à la ressource uniquement à partir de matériel sous votre contrôle à 100%.(Ce qui n'est pas viable pour un éditeur)
GdD
2017-05-03 19:34:59 UTC
view on stackexchange narkive permalink

Le contrôle des cookies n'est pas une bonne solution à votre problème, qui n'est pas si bien défini. Vous pourriez passer beaucoup de temps à empêcher les utilisateurs d'envoyer leurs cookies, mais vous risquez de bloquer l'accès légitime suffisamment de fois pour que vous perdiez la bonne volonté de vos clients, et les efforts seront probablement disproportionnés par rapport aux avantages. Voici quelques stratégies alternatives possibles:

  • Limiter le nombre d'appareils à partir desquels un compte utilisateur peut être vu pour se connecter. Si vous voyez un compte d'utilisateur actif sur environ 3 appareils, cela pourrait être un signe d'abus
  • Suivi de la localisation géographique, si un compte d'utilisateur est en cours d'accès à Boston et à Pékin en même temps, il peut s'agir d'un abus
  • En introduisant une authentification à 2 facteurs, un utilisateur devrait parfois insérer un code supplémentaire. Pour être honnête, c'est problématique, la configuration et la maintenance sont coûteuses et les gens oublient constamment leurs épingles pour obtenir un jeton. Du côté positif, vous ne pouvez pas partager les générateurs de jetons. Quelqu'un peut toujours envoyer son code de jeton à quelqu'un d'autre, mais cela rend plus difficile le partage des informations d'identification
  • Surveillez les modèles d'utilisation abusifs, vous pouvez utiliser une sorte d'algorithme d'apprentissage automatique sur les statistiques des utilisateurs ou simplement d'anciens seuils comme @cloudfeet le suggère
  • Ayez des questions de sécurité supplémentaires nécessitant des informations personnelles comme réponses. Peu de gens feront confiance à quelqu'un d'autre à cette information, souvent ce serait la même chose que ce qui est demandé sur un site Web bancaire ou autre, donc cela les découragerait de les partager. Cela pose des problèmes pour vous en tant que propriétaire de site Web, car vous êtes désormais responsable de plus d'informations personnelles
  • Envoyez des e-mails périodiques pour leur rappeler leurs obligations, cela n'empêchera pas tout le monde, mais des conseils doux et courtois fonctionneront pour certains
En ce qui concerne la limitation du nombre d'appareils, comment identifiez-vous l'appareil qu'un utilisateur utilise?
Dans la plupart des cas, la géolocalisation est basée sur IP.Un utilisateur légitime peut avoir ses raisons de jongler avec les VPN.
2FA peut être partagé car il est basé sur une clé secrète à partir de laquelle un code unique est dérivé de l'heure actuelle.Il vous suffit de partager cette clé secrète et vous pouvez générer vos propres codes.C'est dans un scénario TOTP qui est le plus courant.
Trois appareils: bureau de travail, bureau à domicile, smartphone.Si vous voulez limiter le nombre d'appareils, quatre ou cinq est un meilleur nombre.
Il est rare que vous souhaitiez lire un article académique volumineux sur un smartphone @Mark, dans tous les cas, j'ai choisi 3 comme exemple
Cela dépend de la solution 2fa @Ginnungapgap,, beaucoup utilisent un secret partageable mais certains ne le font pas, je suppose que vous en utiliseriez une qui n'est pas basée sur un secret partageable.
@Mark La phrase était "_Si vous voyez un compte d'utilisateur ** actif ** sur 3 appareils ou plus_" - vous pouvez utiliser travail / domicile / mobile à des moments _différents_, mais il est peu probable que ce soit _actif_ sur les trois appareils en même temps!De plus, le "_or so_" suggère que le nombre n'est pas gravé dans la pierre.
Steven Walker-Roberts
2017-05-04 10:58:36 UTC
view on stackexchange narkive permalink

Je pense que toutes les réponses ci-dessus sont fausses. @Andy a probablement répondu à votre question, bien que trop vaguement. Le problème est que (a) vous supposez que vos utilisateurs sont un vecteur de menace (exploitant les cookies pour obtenir un accès non autorisé) (b) vous souhaitez utiliser des cookies dans le cadre de votre mécanisme d'authentification. En fait, ce que vous voulez réellement implémenter, c'est un type de sécurité zéro confiance, un modèle qui dit qu'aucun utilisateur ne doit en aucun cas faire confiance à aucun égard (c'est assez difficile à comprendre au début).

Essentiellement, l'implication est que vous pouvez utiliser des cookies, mais ceux-ci ne doivent être que des cookies de session. Shibbeloth et d'autres conceptions similaires pour les établissements universitaires au Royaume-Uni utilisent une combinaison de cookies de session, d'authentification tierce (au sein de l'établissement) et d'authentification de session basée sur une base de données (par rapport aux deux autres). En fait, il vérifie généralement l'institution pour les droits d'utilisateur aussi (c'est-à-dire que si vous étudiez l'informatique, vous n'avez pas besoin de la bibliothèque médicale, etc.).

Donc, l'utilisation d'un cookie persistant est votre problème, c'est un non-non définitif. Vous semblez déjà comprendre le risque lié à l'utilisation d'un cookie persistant, à savoir qu'il peut être volé (généralement en texte brut). Par conséquent, utilisez au pire des cookies de session non persistants.

Ce que vous devriez faire, à mon avis, si vous deviez utiliser cette méthode d'authentification, c'est de révoquer les cookies régulièrement et de demander à l'utilisateur de se reconnecter . Comme je l'ai expliqué, Shibbeloth est multi-facteurs de par sa conception car il compare vos informations d'identification à celles détenues par votre université. De meilleures conceptions ne permettraient pas seulement de comparer les informations utilisateur, mais nécessiteraient plus d'un identifiant (par exemple, un message texte, un e-mail ou une réponse secrète comme dans les services bancaires en ligne).

De manière réaliste, la plupart des applications basées sur le Web peuvent bénéficier énormément d'être sans état (en fonction de l'application et de la configuration requise par l'utilisateur / système). Ainsi, vous pouvez supprimer les cookies de session presque entièrement en les utilisant jusqu'à ce que la fenêtre du navigateur soit fermée / le temps écoulé ou en utilisant un magasin d'utilisateurs crypté côté client (meilleure solution).

Entre autres atténuations ce que d'autres utilisateurs ont dit, comme les navigateurs d'empreintes digitales et la surveillance des modèles d'utilisation, il existe de nombreuses stratégies que vous pouvez utiliser. Vous pouvez également utiliser la liste blanche IP, l'anti-DDoS, le remplacement régulier des informations d'identification, etc. Ce sont complémentaires, mais pas une solution en eux-mêmes.

Ce que vous ne devez jamais faire, c'est dé-prioriser la sécurité et les failles logicielles pour l'utilisateur l'expérience d'amélioration (c'est la même chose d'ailleurs). Si vous faites cela, vous pourriez un jour être responsable d'une catastrophe de protection des données (et potentiellement aller en prison et / ou perdre beaucoup d'argent).

Pour mettre pleinement en œuvre ce que vous recherchez, utilisez un application Web (probablement basée sur javascript) qui n'a pas besoin d'être installée. Cette application doit être programmée pour implémenter pleinement votre API et faire tout le gros du travail pour l'utilisateur. Il devrait idéalement effectuer un contrôle d'accès basé sur les rôles (RBAC) sur cette API (identifiez donc les différents groupes d'utilisateurs que vous avez mentionnés). Évidemment, le RBAC doit être implémenté côté serveur. Il n'y a aucune raison pour laquelle votre API ne peut pas fournir ou créer un lien direct vers celui-ci et stocker les jetons émis directement, ou via un autre canal tel qu'un jeton basé sur un message texte.

J'espère que cela vous donnera matière à réflexion. à votre conception.

«Ce que vous ne devez jamais faire, c'est dé-prioriser la sécurité et les failles logicielles pour améliorer l'expérience utilisateur».DRM n'a rien à voir avec la sécurité.C'est juste l'une des nombreuses exigences de l'entreprise, dont une autre est l'expérience utilisateur.Si vous avez conçu le DRM parfait que personne ne voulait utiliser, vous seriez toujours en faillite.
+1, mais en ce qui concerne votre affirmation selon laquelle "[il ne faut jamais] dé-prioriser la sécurité ... pour l'expérience utilisateur ..." me semble une hyperbole grossière.Tous les systèmes ne protègent pas les codes de lancement nucléaire, etc.D'un autre côté, vous pouvez construire le système le plus sûr au monde, mais si personne ne se soucie de l'utiliser, tout cela a été un exercice infructueux.Dans le monde réel, très peu se soucient de la sécurité à ce degré (beaucoup trop peu de souci en général, je dirais), mais il n'est pas souvent pratique d'aller aux longueurs * maximales * pour protéger les données, ce qui est, plus souvent qu'autrement, seulementsemi-critique.
Merci pour vos commentaires.Je peux voir la logique dans ce que vous dites, mais je ne peux pas être d'accord.Dans les entreprises de premier ordre de nos jours, les logiciels sont particulièrement difficiles à pirater - prenez Facebook par exemple.Cependant, tout est piratable dans une certaine mesure, en ce sens qu'il peut être exploité d'une manière ou d'une autre. Peut être le mot clé.Mon point est que la plupart des hacks de nos jours sont des exploits zero-day spécialement adaptés au système.Ainsi, une violation de données ou une violation de DRM est une question de quand, pas si.La question est de savoir si vous voulez l'atténuer ou non.
Toutes les violations de données ne se ressemblent pas et les compromis à faire varient.On peut raisonnablement décider d'atténuer certains cas et non d'atténuer d'autres - si un utilisateur partageant l'accès à un compte non privilégié peut être exploité en une violation complète, ce sont les problèmes les plus importants permettant cette escalade / effet de levier qui doivent être résolus.
@Steven Il existe une manière assez simple de rendre le processus presque impossible à interrompre: obliger les utilisateurs à utiliser du matériel personnalisé sous votre contrôle pour accéder aux données.Maintenant, c'est clairement une UX horrible et extrêmement chère, mais ce serait clairement sûr et très, très difficile à casser.Êtes-vous toujours sûr que nous ne devrions * jamais * dé-prioriser la sécurité et que ce n'est peut-être pas aussi noir et blanc?:-)
Même si nous parlons d'exemples moins ridicules, nous échangeons tous la sécurité contre l'UX chaque jour.J'avais l'habitude de travailler pour une entreprise qui avait un réseau à vide où il était très compliqué de faire entrer et sortir des données.Bien que ce soit certainement beaucoup plus sûr que l'alternative, le développement en a beaucoup souffert (si vous n'avez pas travaillé dans un tel environnement, vous ne pouvez probablement pas imaginer à quel point les choses même simples peuvent être ennuyeuses).Pour la plupart des entreprises, un compromis, par exemple, n'en vaudrait clairement pas la peine.
Il y a toujours des compromis entre l'expérience utilisateur et la sécurité.Il est inutile de dire que vous ne pourrez jamais mettre l'expérience utilisateur en premier.Les articles de journaux ici seraient sûrement plus sûrs si on pouvait seulement y accéder en personne sous l'escorte d'un garde armé après que le conseil d'administration de leur institution ait vérifié qu'ils sont autorisés à y accéder (et que quelqu'un d'autre a vérifié que c'était vraiment le cas.le conseil d'administration, etc ...), mais ce serait une expérience utilisateur horrible.L'astuce est de savoir quels compromis faire et comment, et non des règles catégoriques selon lesquelles la sécurité passe toujours en premier.
Je pense que toute la philosophie derrière la confiance zéro est qu'il n'y a pas besoin de compromis, cela nécessite juste un changement de perspective.Mon point est que l'expérience utilisateur / la convivialité et la sécurité ne doivent pas être mutuellement exclusives, il vous suffit de partir de l'axiome selon lequel rien ne peut être fait confiance.Dans le cas de cette question, la meilleure sécurité / DRM serait obtenue en ne faisant pas confiance à l'utilisateur / à l'authentification.Cette philosophie de conception est un sujet de recherche brûlant en informatique (je la recherche moi-même).La raison?Même des exploits insignifiants qui semblent inoffensifs peuvent entraîner un sabotage majeur par la suite.
Xavier J
2017-05-03 23:19:36 UTC
view on stackexchange narkive permalink

Faites comme les banques, Lyft et d'autres organisations le font. Exigez que l'utilisateur reçoive un texte ou un e-mail avec un code de validation avant d'autoriser l'achèvement de la progression de la connexion.

Le terme pour cela est «[authentification à deux facteurs] (https://en.wikipedia.org/wiki/Multi-factor_authentication)».
Joel Coehoorn
2017-05-05 19:57:41 UTC
view on stackexchange narkive permalink

Cela ressemble beaucoup à EBSCO. Je suis l'administrateur d'une institution qui utilise Academic Search Premiere, PsycArticles, JStor et quelques autres abonnements EBSCO.

Pour le moment, nous (comme beaucoup d'autres) nous appuyons sur EZProxy, mais cette solution devient de moins en moins tenable à mesure que le contenu passe à SSL / TLS. Le proxy du trafic chiffré n'est pas une très bonne idée.

Je peux vous dire que cette idée selon laquelle les institutions ne peuvent pas faire Shibboleth ou SAML est de plus en plus inexacte. Il y en a quelques-uns, mais il est temps pour eux de se lancer dans le programme et de créer un fournisseur d'identité SSO. Si mon établissement de moins de 400 ETP peut le faire, ils le peuvent aussi. Vous pouvez également consulter OAuth.

Pour remplacer ceux dont le personnel informatique est vraiment incompétent, vous pouvez gérer vous-même les comptes. Exiger des établissements qu'ils téléchargent un rapport à chaque trimestre avec les adresses électroniques des professeurs et des étudiants, envoyer des invitations pour les nouveaux inscrits sur la liste, prolonger la date d'expiration pour ceux qui reviennent et suspendre ces comptes pour l'institution qui n'est plus dans la liste.

Bien sûr, en tant qu'utilisateur, je pourrais donner accès à quelqu'un d'autre, mais c'est également vrai pour tout autre service. Même avec le système existant, je pourrais me connecter sur l'ordinateur portable de quelqu'un d'autre pendant que je suis à la maison. Vous n'aurez vraiment rien perdu.

J'ai remarqué que quelques institutions rencontrent des difficultés avec EZProxy, car il peut être difficile de configurer correctement le trafic crypté par proxy pour de nombreux utilisateurs.De nos jours, de nombreuses universités utilisent des comptes Google et Microsoft pour l'authentification unique, et cela à son tour avec Shibboleth.
Dans ce cas de mon institution, c'est principalement que nous sommes juste bon marché.Nous utilisons toujours une version ezproxy de 2005 qui ne souhaite utiliser que des protocoles SSL RC4 compromis plutôt que TLS, et je ne peux pas obtenir l'approbation pour la mettre à niveau.Bien que pour être juste envers mes supérieurs, leur réticence vient du fait que vous ne pouvez plus simplement acheter le programme;OCLC ne le vend maintenant qu'avec un abonnement annuel où le renouvellement de chaque année coûte plus cher que ce que nous avons dépensé pour l'obtenir à la première place il y a 12 ans.C'est effectivement plus qu'une multiplication par 10 des prix.
HSchmale
2017-05-04 02:33:07 UTC
view on stackexchange narkive permalink

Envoyez un e-mail à leur établissement par e-mail avec un lien qui créera un cookie de courte durée (3 jours) dans leur navigateur, à usage unique. Les institutions ont presque toujours un e-mail. Permettez-leur de saisir l'adresse e-mail de leur établissement. Cela évite au journal d'avoir à gérer les mots de passe sur le système et permet aux professeurs de se mettre au travail.

AnoE
2017-05-04 03:27:40 UTC
view on stackexchange narkive permalink

Je suppose que vous n'êtes pas préoccupé par le vol de sommes importantes (comme dans une configuration bancaire). Donc, si l'authentification réelle à 2 facteurs ou même "obtenir physique" (lecteur de carte) est trop pour vous, que diriez-vous de ceci:

  • Mettez en œuvre une authentification de connexion / mot de passe régulière (avec HTTPS bien sûr , comme d'habitude).
  • Prenez votre cookie de session et créez un second cookie composé de hash (session_cookie + IP + secret salt) .
  • Si vous si vous le souhaitez, ajoutez l'ID de session SSL à ce hachage (ce qui ne persiste pas à fermer le navigateur, ce qui est bon pour vous). Cela pourrait entraîner un peu d'inconvénient si une partie lance une renégociation (ce qui vous donnerait un nouvel ID de session et obligerait ainsi l'utilisateur à se reconnecter).
  • En plus de vérifier le cookie de session, vérifiez également l'adresse IP du client pour chaque requête en utilisant ce deuxième bit d'information (qui, comme dit, peut être un deuxième cookie ou concaténé dans le premier, n'a pas d'importance) .

Maintenant, l'utilisateur peut donner le cookie au contenu de son cœur et personne ne pourra l'utiliser à moins qu'il ne puisse également usurper l'adresse IP (plutôt improbable dans ce scénario; probablement beaucoup plus difficile que l'utilisateur d'origine transmettant simplement tout contenu qu'il a légitimement téléchargé) et / ou l'identifiant de session SSL (impossible).

Que diriez-vous du nom d'utilisateur / mot de passe de base (comme mentionné dans cette réponse) MAIS le processus de création de compte est soit effectué par l'institution de licence via un appel API, soit ne peut être effectué qu'à partir du ou des blocs réseau de l'institution.Une fois le compte créé, authentification utilisateur / pass normale.Si vous êtes préoccupé par le partage de compte, ajoutez 2 facteurs en envoyant un e-mail avec un lien qui termine le processus d'authentification à l'adresse fournie par l'institution de l'utilisateur
user2428118
2017-05-04 17:15:43 UTC
view on stackexchange narkive permalink

Parce que personne ne l'a encore mentionné, une autre difficulté à utiliser un cookie ailleurs serait la empreinte digitale du navigateur; en gros, en examinant les propriétés des logiciels et du matériel utilisés qui ont fait l'objet d'une fuite et en les utilisant comme «empreinte digitale» pour identifier l'appareil utilisé.

Bien sûr, vous allez devoir envoyer l'appareil empreinte digitale sur votre serveur à un moment donné afin que vous puissiez vérifier qu'une session n'a pas fini par être utilisée sur un navigateur et / ou un appareil différent, de sorte qu'un attaquant déterminé pourrait à ce stade essayer de modifier les données pour qu'elles correspondent aux informations envoyées par le navigateur de l'utilisateur réel. Néanmoins, en fonction de votre implémentation, il pourrait être utilisé pour au moins élever quelque peu la barre.

user1258361
2017-05-05 02:19:03 UTC
view on stackexchange narkive permalink

La solution basée sur les cookies n'empêche pas les utilisateurs de vendre / louer leurs comptes - une meilleure solution serait l'authentification à 2 facteurs gérée par le serveur basée sur l'adresse IP:

  • Autoriser les comptes à s'inscrire à un petit ensemble d'adresses IP.
  • La connexion ou la tentative d'utilisation d'un cookie de connexion en dehors de cet ensemble entraîne un lien de confirmation par e-mail avec un rappel pour empêcher tout accès non autorisé.
  • Si le nouveau La zone est confirmée, elle est ajoutée à l'ensemble des emplacements autorisés et la plus ancienne de la liste est supprimée pour faire de la place.

Maintenir un fichier d'authentification à 2 facteurs sur l'ordinateur de l'utilisateur final ne fonctionne pas parce que l'utilisateur final pourrait également vendre ce fichier, donc l'authentification à 2 facteurs doit être gérée côté serveur.

Également profiler les domaines de spécialisation et le comportement d'accès des utilisateurs finaux. Par exemple, si un compte appartenant à un professeur de physique commence soudainement à télécharger en masse des articles d'économie et de sociologie, verrouillez-le évidemment.

Mesurez les quantités de données (similaires aux forfaits de données mobiles) sur les téléchargements par compte. Par exemple, le premier demi-gigaoctet d'articles qu'un utilisateur télécharge chaque semaine se télécharge normalement, après quoi les téléchargements de cet utilisateur sont limités à 200 Ko / s (modifiez les nombres comme bon vous semble). La plupart des articles de revues ne sont pas énormes et la limitation du téléchargement n'affecterait pas la plupart des utilisateurs normaux, mais cela s'avérera incroyablement frustrant pour les téléchargeurs en masse.

Voter contre.Hein?Adresses IP?Avons-nous négligé le fait que les gens les partagent, au travail, dans les cafés, etc.?Sensationnel.
Aucune solution n'est parfaite.Les adresses IP peuvent être masquées ou acheminées par proxy.Il existe des outils pour modifier l'adresse MAC de votre ordinateur.Il vous suffit donc d'utiliser le meilleur identifiant d'ordinateur / utilisateur.
Hatebit
2017-05-05 17:22:53 UTC
view on stackexchange narkive permalink

Vous pouvez utiliser l'authentification par certificat client (SSL), signée par votre organisation. Cela devrait être à l'échelle d'Internet, un peu comme un VPN, mais plus simple et moins cher.

comment distribuez-vous et installez-vous ces certificats?cette suggestion ne serait-elle pas contraire aux exigences énoncées?
Eh bien, le mécanisme d'installation est intégré au système d'exploitation, donc pour l'utilisateur moyen, il est intuitif.Et ils pourraient être distribués par e-mail, même si l'exigence «l'utilisateur ne devrait rien télécharger» est un peu vague, puisque nous parlons de toute façon de télécharger des documents. Du côté du serveur, vous pourriez avoir une base de données SQlite pour le couplage des certificats utilisateur et un script simple, comme PHP pour l'authentification, ce qui évite en quelque sorte d'avoir un serveur dédié. Les certificats doivent être délivrés sur demande, conçus pour expirer avec les exigences du PO.
et alors comment empêcher l'utilisateur de vendre le certificat client (même problème que le cookie)?Je ne suis pas non plus d'accord pour dire que l'installation d'un certificat est aussi intuitive pour les utilisateurs que le téléchargement d'un article à partir d'un site de journal ...
@schroeder Je sais, je vais trop loin, mais je suis vraiment intéressé à fournir une réponse. Après quelques recherches sur Google, il semble que du côté serveur, vous puissiez détecter si les certificats sont utilisés en même temps à partir de deux machines différentes (ou, encore plus détectable, à partir d'un MAC / IP usurpé).Cela pourrait inciter suffisamment les clients à ne pas partager le certificat. De plus, les conditions d'utilisation ne devraient-elles pas empêcher cela?Et le problème des PO n'est-il pas réellement une rupture de contrat, ou même une base pour une sanction pénale?


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...