Domanda:
Come impediresti a qualcuno di vendere il suo cookie persistente a qualcuno che non è un membro dell'istituzione e desidera ottenere l'accesso?
Dimitris
2017-05-03 17:00:38 UTC
view on stackexchange narkive permalink

La maggior parte dei nostri editori vende abbonamenti a istituti e le persone possono accedervi essendo identificati come parte dell'istituto. L'autenticazione dell'istituto avviene con intervalli IP o Shibboleth, ma non tutti gli istituti supportano Shibboleth o altri SAML e gli intervalli IP non aiutano senza VPN o server proxy. Quindi, gli editori vogliono che mettiamo a punto uno schema in base al quale un utente avrà accesso a breve termine alla sua partecipazione istituzionale (cioè, al contenuto sottoscritto dalla sua istituzione) mentre si trova al di fuori della gamma IP dell'istituzione (ad esempio a casa o in viaggio .) La soluzione deve essere il più semplice possibile per l'utente, non dovrebbe richiedere che scarichi nulla e dovrebbe funzionare bene per gli utenti che provengono da telefoni cellulari o dai loro laptop. Il processo potrebbe richiedere che gli utenti avviino questo accesso mentre si trovano all'interno dell'intervallo IP, ma idealmente dovrebbero essere in grado di avviare il loro accesso di 30 giorni anche se sono lontani dall'istituto e si sono dimenticati di configurarlo.

In particolare, si prega di indicare come l'utente affermerà di essere un membro (docente, studente, dipendente, qualunque cosa) dell'istituzione che rivendica. Ricorda che l'istituto non ha un server di autenticazione e non ne installerà uno. Inoltre, l'utente non installerà un'applicazione sul proprio computer. La soluzione completa implicherà invariabilmente a un certo punto un cookie persistente. Come impedirebbe a qualcuno di vendere il suo cookie persistente a qualcuno che non è un membro dell'istituto e desidera ottenere l'accesso?

nomi utente e password che utilizzano il dominio di posta elettronica dell'istituto sono il modello di progettazione comune per questo
Tuttavia, lui / lei può vendere le sue credenziali.Che dire dell'indirizzo MAC da inserire nell'ID di sessione?
Gli indirizzi MAC di @Dimitris possono essere falsificati.
Se il tuo modello di minaccia presuppone che i tuoi utenti siano gli aggressori, non credo che ci sia una soluzione adeguata per ciò che stai cercando.
Non consentire i cookie persistenti.
Puoi impedire a qualcuno che esegue un server VPN nel proprio intervallo IP?
In effetti, puoi impedire a qualcuno di scaricare i dati su una pen drive?
Se Alice ha accesso al contenuto e impedisci a Bob di utilizzare le credenziali di Alice per accedere al sistema, cosa impedisce ad Alice di ottenere legittimamente il contenuto e condividerlo con Bob via e-mail / Google Drive / Dropbox / pen drive / stampa /eccetera.?Se hai un determinato "mutuatario" e un "partecipante" disponibile, non impedirai la distribuzione extracurricolare.Tutti questi metodi sono _molto_ più facili che vendere (o distribuire liberamente) cookie convalidati.
Sembra terribile come il problema di PACER con RECAP.
Mi suona più come EBSCO.
Stai cercando di * impedire * che ciò accada o * scoraggiare * le persone dal farlo?La prevenzione al 100% non funzionerà mai (mai), ma se quello che stai cercando è aggiungere attrito al processo, è una proposta diversa.
Undici risposte:
cloudfeet
2017-05-03 17:27:18 UTC
view on stackexchange narkive permalink

Potete impedire a qualcuno di vendere la propria password per ottenere un accesso simile? Pensi di averne bisogno? È praticamente equivalente.

Hai bisogno di farlo?

Dalla mia esperienza all'interno / all'esterno di istituzioni accademiche con accesso a riviste, c'è sempre una certa quantità di risorse per la condivisione come favore ( es. "ehi, potresti inviarmi un PDF di questo documento?"). Non sarai mai in grado di fermarlo, perché in realtà viene effettivamente eseguito l'accesso manuale da un utente legittimo su una macchina corretta. Tuttavia, personalmente non ho mai visto studenti / personale che cercavano di trarre profitto da questo.

Monitoraggio

Anche se volessero fare soldi in questo modo, non credo che condividere i cookie è il modo migliore, non è certo come lo farei! Le protezioni che potresti aggiungere al sistema dei cookie (ad esempio, il rilevamento delle impronte digitali del browser dell'utente e il controllo che rimanga lo stesso, ecc.) Non si applicheranno ad altri metodi.

Invece (se questo è effettivamente un problema), un Una soluzione ragionevole e robusta consiste nel monitorare i modelli di utilizzo dell'utente. Se stanno scaricando 100 volte le risorse di chiunque altro o se recuperano risorse in modo coerente per 250 ore consecutive (gli esseri umani più lunghi possono sopravvivere senza dormire), allora probabilmente ci sono più utenti o un sistema automatizzato al lavoro.

Tuttavia, questa soluzione di monitoraggio non deve essere inclusa dall'inizio, può essere aggiunta in un secondo momento e fino a quando non avrai la prova che si tratta effettivamente di un problema, penso che dovrebbe essere abbastanza lontano elenco di cose da fare.

Che dire dell'indirizzo MAC da inserire nell'ID di sessione?È un modo efficace per evitare che terze parti accedano alla pagina web?
@Dimitris: È possibile fare varie cose per collegare i cookie in modo più stretto a un particolare computer / browser, ma questo _solo_ protegge dalla condivisione dei cookie, non da altri metodi di condivisione dell'accesso.
Quindi no, questa non è una soluzione robusta, anche ignorando il fatto che gli indirizzi MAC possono essere modificati.
quindi perché esattamente qualcuno condivide il proprio accesso solo perché usa qualcosa come JDownload per scaricare cose?Il download dei dati è praticamente l'unica caratteristica della piattaforma
@Dimitris Come verifichereste che il dispositivo abbia effettivamente l'indirizzo MAC corretto?A meno che il dispositivo non si trovi nella stessa rete ethernet del tuo server (cosa che non succederà), non puoi vedere il MAC lato server del dispositivo.
@Dimitris Soluzione alternativa banale che fondamentalmente aggira tutte le possibili soluzioni basate su hardware: clonare una VM.Diamine, configura una VM in Azure e condividi le credenziali ad essa.
Anche gli indirizzi Mac possono cambiare.Da Ethernet a Wifi e ritorno due volte al giorno, occasionalmente al modulo GSM Mac, e ovviamente il mio firewall troppo zelante ha dovuto intervenire con il proprio adattatore di rete virtuale con l'ultimo aggiornamento ...
@Voo questo è esattamente ciò che una società per cui ho lavorato ha fatto con Microsoft Office, ha pagato solo una licenza e dovevi fare a turno usando l'istanza.
Non credo che la vendita di una password e la vendita di un cookie di autenticazione siano ** affatto ** equivalenti.Un cookie di autenticazione, se impostato correttamente, può darti accesso ai materiali della biblioteca e nient'altro.La password istituzionale, in molte istituzioni, consentirebbe a un utente malintenzionato di assumere tutte le interazioni dell'utente con l'istituto, VPN nella rete, accedere a tutti i computer di lavoro e da lì potenzialmente svuotare i propri conti bancari, assumere il controllo della postae vandalizzano la loro presenza sui social media.
R.. GitHub STOP HELPING ICE
2017-05-04 06:02:17 UTC
view on stackexchange narkive permalink

Tu no.

Questa domanda è fondamentalmente una variante di "Come faccio a eseguire il DRM e farlo funzionare?" e la risposta è la stessa.

Non sono sicuro del motivo per cui "vendere un cookie persistente" sembra la tua minaccia principale. Normalmente gli utenti ripubblicheranno le tue pubblicazioni su SciHub.

Praticamente questo (+1).Le soluzioni DRM non funzionano per un motivo, e questo motivo è che i computer sono stati originariamente progettati per essere macchine completamente programmabili.L'unico modo per far funzionare il DRM (o la soluzione di accesso cartaceo che OP è dopo) è consentire a un utente di accedere alla risorsa solo dall'hardware che è al 100% sotto il tuo controllo.(Che non è qualcosa di praticabile per un editore)
GdD
2017-05-03 19:34:59 UTC
view on stackexchange narkive permalink

Il controllo dei cookie non è una buona soluzione al tuo problema, che non è così ben definito. Potresti dedicare molto tempo a impedire agli utenti di inviare i loro cookie, ma è probabile che blocchi l'accesso legittimo abbastanza volte da perdere la buona volontà dei tuoi clienti e lo sforzo è probabilmente sproporzionato rispetto ai vantaggi. Alcune possibili strategie alternative potrebbero essere:

  • Limitare il numero di dispositivi da cui può essere visto un account utente per accedere. Se vedi un account utente attivo su 3 dispositivi circa, potrebbe essere un segno di abuso
  • Monitoraggio della posizione geografica, se a Boston e Pechino si accede contemporaneamente a un account utente potrebbe essere un abuso
  • Introducendo un qualche tipo di autenticazione a 2 fattori, un utente dovrebbe inserire occasionalmente un codice extra. Questo è problematico ad essere onesti, è costoso da configurare e mantenere e le persone dimenticano costantemente i loro pin per ottenere un token. Il lato positivo è che non puoi condividere generatori di token. Qualcuno potrebbe ancora inviare il proprio codice token a qualcun altro, ma rende più difficile condividere le credenziali
  • Monitorare i modelli di utente per abusi, potresti utilizzare una sorta di algoritmo di apprendimento automatico sulle statistiche degli utenti o semplicemente vecchie soglie come suggerisce @cloudfeet
  • Avere domande di sicurezza aggiuntive che richiedono informazioni personali come risposte. Poche persone si fideranno di qualcun altro di queste informazioni, spesso sarebbe uguale a ciò che viene chiesto su un sito Web bancario o simili, quindi li scoraggerebbe a condividerle. Questo crea problemi per te come proprietario di un sito web poiché ora sei responsabile di più informazioni personali
  • Invia e-mail periodiche per ricordare loro i loro obblighi, non fermerà tutti, ma i pungoli gentili e cortesi funzioneranno per alcuni
Per quanto riguarda la limitazione del numero di dispositivi, come si identifica quale dispositivo sta utilizzando un utente?
Nella maggior parte dei casi, la geolocalizzazione si basa sull'IP.Un utente legittimo potrebbe avere le sue ragioni per destreggiarsi tra le VPN.
2FA può essere condiviso poiché si basa su una chiave segreta da cui deriva un codice univoco dall'ora corrente.Devi solo condividere quella chiave segreta e puoi generare i tuoi codici.Questo è in uno scenario TOTP che è più comune.
Tre dispositivi: desktop da lavoro, desktop da casa, smartphone.Se hai intenzione di limitare il numero di dispositivi, quattro o cinque è un numero migliore.
E 'raro che tu voglia leggere un grosso articolo accademico su uno smartphone @Mark, in ogni caso ne ho scelto 3 come esempio
Dipende dalla soluzione 2fa @Ginnungapgap, molti usano un segreto condivisibile ma alcuni no, presumo che ne useresti uno che non è basato su un segreto condivisibile.
@Mark La frase era "_Se vedi un account utente ** attivo ** su 3 dispositivi o giù di lì_" - potresti usare lavoro / casa / cellulare in _diversi_ orari, ma è improbabile che tu sia _attivo_ su tutti e tre contemporaneamente!Inoltre "_or so_" suggerisce che il numero non è scolpito nella pietra.
Steven Walker-Roberts
2017-05-04 10:58:36 UTC
view on stackexchange narkive permalink

Penso che tutte le risposte precedenti siano sbagliate. @ Andy probabilmente ha risposto alla tua domanda, anche se troppo vagamente. Il problema è che (a) presumi che i tuoi utenti siano un vettore di minacce (sfruttando i cookie per ottenere un accesso non autorizzato) (b) desideri utilizzare i cookie come parte del tuo meccanismo di autenticazione. In realtà, ciò che si vuole effettivamente implementare è un tipo di sicurezza zero trust, un modello che dice che nessun utente dovrebbe essere considerato attendibile in nessun caso (questo è abbastanza difficile da capire all'inizio).

Quindi, usare un cookie persistente è il tuo problema, questo è un deciso no-no. Sembra che tu abbia già compreso il rischio nell'utilizzo di un cookie persistente, ovvero che possa essere rubato (di solito in chiaro). Pertanto, nella peggiore delle ipotesi, utilizza cookie di sessione non persistenti.

Quello che dovresti fare, a mio avviso, se usassi questo metodo di autenticazione è revocare i cookie regolarmente e richiedere all'utente di accedere nuovamente . Come ho spiegato, Shibbeloth è multifattorizzato in base alla progettazione in quanto confronta le tue credenziali con quelle della tua università. I progetti migliori non si limiterebbero a confrontare le informazioni dell'utente, ma richiederebbero più di una credenziale (ad esempio un messaggio di testo, un'e-mail o una risposta segreta come nel banking online).

Realisticamente, la maggior parte delle applicazioni basate sul Web possono trarre enormi vantaggi dall'essere senza stato (a seconda dell'applicazione e dei requisiti dell'utente / di sistema). Quindi, puoi rimuovere i cookie di sessione dall'immagine quasi interamente usandoli fino alla chiusura della finestra del browser / tempo trascorso o utilizzando un archivio utente lato client crittografato (soluzione migliore).

Tra le altre mitigazioni come hanno detto altri utenti, come il rilevamento delle impronte digitali e il monitoraggio dei modelli di utilizzo, ci sono molte strategie che potresti utilizzare. Potresti anche utilizzare la whitelist IP, l'anti-DDoS, il rollover regolare delle credenziali ecc. Questi sono complementari, ma non una soluzione di per sé.

Ciò che non devi mai fare è ridurre la priorità di sicurezza e difetti del software per l'utente esperienza di miglioramento (sono la stessa cosa tra l'altro). Se lo fai, un giorno potresti essere responsabile di una catastrofe per la protezione dei dati (e potenzialmente andare in prigione e / o perdere molti soldi).

Per implementare completamente ciò che stai cercando, usa un applicazione web (probabilmente basata su javascript) che non necessita di essere installata. Quell'applicazione dovrebbe essere programmata per implementare completamente la tua API e fare tutto il lavoro pesante per l'utente. Idealmente dovrebbe eseguire il controllo degli accessi basato sui ruoli (RBAC) su tale API (quindi identifica i diversi gruppi di utenti che hai menzionato). Ovviamente, RBAC deve essere implementato sul lato server. Non c'è motivo per cui la tua API non possa fornire o collegarsi direttamente a questo e memorizzare i token emessi direttamente o tramite un altro canale come un token basato su messaggi di testo.

Spero che questo ti dia qualche spunto di riflessione in relazione al tuo design.

"Quello che non devi mai fare è ridurre la priorità della sicurezza e dei difetti del software per migliorare l'esperienza dell'utente".DRM non ha nulla a che fare con la sicurezza.È solo uno dei tanti, tanti requisiti aziendali, un altro dei quali è l'esperienza dell'utente.Se avessi progettato il DRM perfetto che nessuno voleva usare, saresti comunque senza lavoro.
+1, ma per quanto riguarda la tua affermazione che "[Non si deve mai] togliere la priorità alla sicurezza ... per l'esperienza dell'utente ..." mi sembra una grossolana iperbole.Non tutti i sistemi proteggono i codici di lancio nucleare e simili;D'altro canto, puoi costruire il sistema più sicuro al mondo, ma se nessuno si preoccupa di usarlo, è stato tutto un esercizio inutile.Nel mondo reale, pochissimi si preoccupano della sicurezza a quel livello (troppo poca preoccupazione in generale, direi), ma spesso non è pratico andare a lunghezze * massime * per proteggere i dati che è, il più delle volte, solosemi-critico.
Grazie per i vostri commenti.Riesco a vedere la logica in quello che dici, ma non posso essere d'accordo.Oggigiorno nelle società blue chip, il software è particolarmente difficile da hackerare, ad esempio Facebook.Tuttavia, tutto è hackerabile in una certa misura, in quanto può essere sfruttato in un modo o nell'altro. Può essere la parola chiave.Il punto è che la maggior parte degli hack di questi tempi sono exploit zero-day adattati al sistema in modo univoco.Quindi una violazione dei dati o DRM è una questione di quando, non se.La domanda è: vuoi mitigarlo o no.
Non tutte le violazioni dei dati sono uguali e i compromessi da effettuare variano.Si può ragionevolmente decidere di mitigare alcuni casi e non mitigarne altri: se un utente che condivide l'accesso a un account non privilegiato può essere sfruttato in una violazione completa, sono i problemi più grandi che consentono tale escalation / leva che devono essere affrontati.
@Steven C'è un modo piuttosto semplice per rendere il processo quasi impossibile da interrompere: richiedere agli utenti di utilizzare hardware personalizzato che è sotto il tuo controllo per accedere ai dati.Ora questa è chiaramente una UX orribile ed estremamente costosa, ma chiaramente sarebbe sicura e molto, molto difficile da rompere.Sei ancora sicuro che dovremmo * mai * togliere la priorità alla sicurezza e che forse non è così in bianco e nero?:-)
Anche se parliamo di esempi meno ridicoli, tutti noi scambiamo la sicurezza con l'UX ogni giorno.Lavoravo per un'azienda che aveva una rete con air gap in cui era molto complicato inserire e uscire i dati.Sebbene fosse sicuramente molto più sicuro dell'alternativa, lo sviluppo ne ha sofferto molto di conseguenza (se non hai lavorato in un ambiente del genere probabilmente non puoi immaginare quanto possano essere fastidiose anche le cose semplici).Per la maggior parte delle aziende, ad esempio, questo compromesso non varrebbe chiaramente la pena.
Ci sono sempre dei compromessi tra esperienza utente e sicurezza.Inutile dire che non puoi mai mettere al primo posto l'esperienza utente.Sicuramente gli articoli di giornale qui sarebbero più sicuri se solo si potesse accedervi di persona sotto scorta da una guardia armata dopo che il Consiglio di fondazione della loro istituzione ha verificato che sono autorizzati ad accedervi (e qualcun altro ha verificato che lo era davveroil consiglio, ecc ...), ma sarebbe un'esperienza utente orribile.Il trucco è sapere quali compromessi fare e come, non regole categoriche che la sicurezza viene sempre prima.
Penso che l'intera filosofia alla base della fiducia zero sia che non ci sia bisogno di un compromesso, richiede solo un cambio di prospettiva.Il punto è che l'esperienza utente / usabilità e sicurezza non devono necessariamente escludersi a vicenda, devi solo partire dall'assioma che non ci si può fidare di nulla.Nel caso di questa domanda, la migliore sicurezza / DRM si otterrebbe non fidandosi dell'utente / autenticazione.Questa filosofia di design è un argomento di ricerca caldo in informatica (sto ricercando io stesso).La ragione?Persino gli exploit banali e apparentemente innocui possono provocare in seguito un grosso sabotaggio.
Xavier J
2017-05-03 23:19:36 UTC
view on stackexchange narkive permalink

Fai come stanno facendo le banche, Lyft e altre organizzazioni. Richiedi che l'utente riceva un messaggio di testo o e-mail con un codice di convalida prima di consentire il completamento dell'avanzamento dell'accesso.

Il termine per questo è "[autenticazione a due fattori] (https://en.wikipedia.org/wiki/Multi-factor_authentication)."
Joel Coehoorn
2017-05-05 19:57:41 UTC
view on stackexchange narkive permalink

Sembra molto simile a EBSCO. Sono l'amministratore di un'istituzione che utilizza Academic Search Premiere, PsycArticles, JStor e alcuni altri abbonamenti EBSCO.

In questo momento noi (come molti altri) ci affidiamo a EZProxy, ma questa soluzione sta diventando sempre meno sostenibile man mano che più contenuti diventano SSL / TLS. Il proxy del traffico crittografato non è una buona idea.

Posso dirti che l'idea che le istituzioni non possano fare Shibboleth o SAML è sempre più imprecisa. Ce ne sono alcuni là fuori, ma è tempo per loro di entrare nel programma e ottenere un provider di identità SSO. Se il mio istituto FTE con meno di 400 persone può farlo, possono farlo anche loro. Potresti anche guardare OAuth.

Come ripiego per chi ha personale IT veramente incompetente, puoi gestire gli account da solo. Richiedere alle istituzioni di caricare un rapporto ogni trimestre con indirizzi di posta elettronica per docenti e studenti, inviare un invito per coloro che sono nuovi nell'elenco, estendere la data di scadenza per coloro che stanno tornando e sospendere gli account per l'istituto che sono non più nell'elenco.

Certo, come utente potrei dare l'accesso a qualcun altro, ma questo vale anche per qualsiasi altro servizio. Anche con il sistema esistente, potrei accedere al laptop di qualcun altro mentre sono a casa. Non avrai davvero perso nulla.

Ho notato che alcune istituzioni stanno lottando con EZProxy perché il proxy del traffico crittografato in modo affidabile per molti utenti può essere difficile da configurare correttamente.Molte università in questi giorni utilizzano account Google e Microsoft per SSO, e questo a sua volta con Shibboleth.
In questo caso del mio istituto, è principalmente che siamo economici.Stiamo ancora eseguendo una versione ezproxy del 2005 che desidera utilizzare solo protocolli SSL RC4 compromessi anziché TLS e non riesco a ottenere l'approvazione per aggiornarlo.Sebbene in tutta onestà con i miei superiori, la loro riluttanza deriva dal fatto che non puoi più acquistare il programma;OCLC lo vende solo ora con un abbonamento annuale in cui il rinnovo di ogni anno costa più di quanto abbiamo speso per ottenerlo al primo posto 12 anni fa.È effettivamente più di un aumento di prezzo di 10 volte.
HSchmale
2017-05-04 02:33:07 UTC
view on stackexchange narkive permalink

Inviare un'e-mail al proprio istituto con un collegamento che creerà un cookie di breve durata (3 giorni) nel browser, ovvero un utilizzo occasionale. Le istituzioni hanno quasi sempre un'e-mail. Consenti loro di inserire l'email dell'istituto. Ciò impedisce al giornale di dover gestire le password sul sistema e consente ai professori di mettersi al lavoro.

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

Presumo che tu non sia preoccupato per il furto di ingenti somme di denaro (come in una configurazione bancaria). Quindi, se l'effettiva autenticazione a 2 fattori o anche "ottenere fisico" (lettore di schede) è troppo per te, che ne dici di questo:

  • Implementa la normale autenticazione di login / password (con HTTPS ovviamente , come al solito).
  • Prendi il tuo cookie di sessione e crea un secondo cookie che consiste di hash (session_cookie + IP + secret salt) .
  • Se tu quindi lo desideri, aggiungi l'ID della sessione SSL a quell'hash (che non persiste chiudendo il browser, il che è un bene per te). Questo potrebbe portare a un po 'di inconvenienti se una delle parti avvia una rinegoziazione (che ti darebbe un nuovo ID di sessione e quindi costringerebbe l'utente ad accedere di nuovo).
  • Oltre a verificare il cookie di sessione, verifica anche l'IP del client per ogni singola richiesta utilizzando quel secondo bit di informazione (che, come detto, può essere un secondo cookie o concatenato nel primo, non importa) .

Ora l'utente può dare via il cookie a suo piacimento e nessuno potrà usarlo a meno che non possa anche falsificare l'indirizzo IP (piuttosto improbabile in questo scenario; probabilmente molto più difficile dell'utente originale che si limita a inoltrare qualsiasi contenuto scaricato legittimamente) e / o l'ID di sessione SSL (impossibile).

Che ne dici di nome utente / password di base (come menzionato in questa risposta) MA il processo di creazione dell'account viene eseguito dall'istituto di licenza tramite chiamata API o può essere eseguito solo dai netblock dell'istituto.Una volta creato l'account, normale autenticazione utente / pass.Se sei preoccupato per la condivisione dell'account, aggiungi 2 fattori inviando un'e-mail con un collegamento che completa il processo di autenticazione all'indirizzo fornito dall'istituto dell'utente
user2428118
2017-05-04 17:15:43 UTC
view on stackexchange narkive permalink

Poiché nessuno lo ha ancora menzionato, un altro rendere più difficile l'utilizzo di un cookie altrove sarebbe il fingerprinting del browser; fondamentalmente, esaminando le proprietà del software e dell'hardware utilizzato che sono trapelate in qualche modo e utilizzandole come "impronta digitale" per identificare il dispositivo utilizzato.

Ovviamente, dovrai inviare il dispositivo impronta digitale al tuo server ad un certo punto in modo da poter verificare che una sessione non è finita per essere utilizzata su un browser e / o dispositivo diverso, quindi un determinato aggressore potrebbe a questo punto provare a modificare i dati in modo che corrispondano alle informazioni inviate da il browser dell'utente effettivo. Tuttavia, a seconda della tua implementazione, potrebbe essere usato almeno per alzare un po 'il livello.

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

La soluzione basata sui cookie non impedisce agli utenti di vendere / affittare i propri account: una soluzione migliore sarebbe l'autenticazione a due fattori gestita dal server basata sull'indirizzo IP:

  • Consenti agli account di registrarsi a un piccolo insieme di indirizzi IP.
  • L'accesso o il tentativo di utilizzare un cookie di accesso esterno a questo insieme richiede un collegamento di conferma tramite posta elettronica con un promemoria per impedire l'accesso non autorizzato.
  • Se il nuovo l'area è confermata, viene aggiunta alla serie di posizioni autorizzate e la più vecchia nell'elenco viene rimossa per fare spazio.

Mantenere un file di autenticazione a 2 fattori sul computer dell'utente finale non funziona perché l'utente finale potrebbe vendere anche quel file, quindi l'autenticazione a 2 fattori deve essere gestita lato server.

Profila anche i campi di specializzazione e il comportamento di accesso degli utenti finali. Ad esempio, se un account appartenente a un professore di fisica inizia improvvisamente a scaricare in blocco documenti di economia e sociologia, ovviamente bloccalo.

Misurare la quantità di dati (simili ai piani dati mobili) sui download per account. Ad esempio, il primo mezzo gigabyte di articoli che un utente scarica ogni settimana viene scaricato normalmente, dopodiché i download di quell'utente vengono limitati a 200 KB / s (cambia i numeri come meglio credi). La maggior parte degli articoli di giornale non sono enormi e la limitazione del download non interesserebbe la maggior parte degli utenti normali, tuttavia si rivelerà incredibilmente frustrante per i downloader di massa.

Downvote.Eh?Indirizzi IP?Abbiamo trascurato il fatto che le persone li condividono, al lavoro, nei bar e così via?Wow.
Nessuna soluzione è perfetta.Gli indirizzi IP possono essere mascherati o instradati tramite proxy.Esistono strumenti per modificare l'indirizzo MAC del computer.Quindi devi solo andare con il miglior identificatore di computer / utente.
Hatebit
2017-05-05 17:22:53 UTC
view on stackexchange narkive permalink

È possibile utilizzare l'autenticazione del certificato client (SSL), firmata dalla propria organizzazione. Dovrebbe essere a livello di Internet, un po 'come una VPN, ma più semplice ed economico.

come distribuisci e installi questi certificati?questo suggerimento non sarebbe contrario ai requisiti dichiarati?
Ebbene, il meccanismo di installazione è integrato nel sistema operativo, quindi per l'utente medio è intuitivo.E potrebbero essere distribuiti via e-mail, anche se il requisito "l'utente non deve scaricare nulla" è un po 'vago, poiché si tratta comunque di scaricare materiali. Sul lato server, potresti avere un database SQlite per l'accoppiamento del certificato utente e un semplice script, come PHP per l'autenticazione, che evita di avere un server dedicato. I certificati dovrebbero essere emessi su richiesta, destinati a scadere con i requisiti del PO.
e allora come impedire all'utente di vendere il certificato del cliente (stesso problema del cookie)?Non sono inoltre d'accordo sul fatto che l'installazione di un certificato sia intuitiva per gli utenti quanto il download di un articolo da un sito di una rivista ...
@schroeder Lo so, mi sto estendendo fino in fondo, ma sono sinceramente interessato a fornire una risposta. Dopo un po 'di ricerche su Google, sembra che dal lato server si possa rilevare se i certificati vengono utilizzati contemporaneamente da due macchine diverse (o, ancora più rilevabile, da un MAC / IP contraffatto).Questo potrebbe essere un incentivo abbastanza buono per i clienti a non condividere il certificato. Inoltre, i Termini di utilizzo non dovrebbero impedirlo?E il problema dei PO non è effettivamente una violazione del contratto o addirittura una base per una sanzione penale?


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...