Esiste una vera alternativa all'uso delle immagini CAPTCHA?

18

La sicurezza riguarda il bilanciamento di costi e rischi, niente è impossibile da battere, specialmente le tipiche implementazioni CAPTCHA, ma aggiungono qualcosa che nessun altro sistema sembra offrire.

Ho letto per un po 'su questi CAPTCHAs e su possibili alternative ... (quindi per favore non mi riferire ad altri siti / risposte a meno che non rispondano veramente alla seguente domanda).

Non ho alcuna esperienza, quindi per me è difficile stimare i costi e i rischi associati a questa decisione: dovrei impiegare CAPTCHA (sto pensando a JCaptcha o a reCaptcha), o sono abbastanza una combinazione di altre tecniche?

Ho un modulo di registrazione da compilare, ma non voglio che la mia tabella utente venga riempita di cestino. Il campo Honeypot è facile da implementare, ma oh così facile da aggirare, un semplice controllo di sicurezza (di che colore è il cielo?) Funziona bene contro l'attacco automatico, ma ogni quindicenne può costruire un semplice attacco mirato che distrugge la mia tabella utente ... javascript per controllare il tempo impiegato per compilare il modulo è insicuro e con un semplice post sul mio server rotto. Fondamentalmente, non ho trovato nulla che funzioni contro un attacco mirato leggermente intelligente tranne un tipico CAPTCHA, quindi non riesco a controllare la traina ... Quindi la vera domanda è che sono a rischio significativo di essere trollato con un attacco mirato così Preferirei perdere il 10% dei miei utenti a questi CAPTCHA o esiste un'alternativa che non tasserebbe tanto l'utente?

EDIT: Grazie mille per le tue risposte, certamente mi ha aiutato a chiarire le idee, specialmente il link a OWASP sull'evitare attacchi brute-force (ho ottenuto il mio +1, ma non ho accettato poiché non sembrava una soluzione, ma aiuta a trovarne una, se pensi che dovrei accettarla perché trovo la risposta migliore finora, ti prego di commentarla, perché potrei interpretare erroneamente il funzionamento del sito) .

D'altra parte Asirra è abbastanza divertente e facile, e molto meglio dei CAPTCHA tradizionali, lo consiglierei sicuramente su altri servizi. Il puzzle è molto più divertente, e anche se fallisci, falliresti solo una volta ... pietà:

Asirra is still in beta-testing; the service and its API may both be unstable.

Modifica finale: Nel caso in cui sia utile, ecco i passaggi che ho seguito per garantire che gli utenti non siano infastiditi dai CAPTCHA, ma mi sento al sicuro dai bot.

  • honeypot field (così facile da implementare non mi costa nulla anche se non mi sento molto sicuro con esso.)
  • link di verifica e-mail (o accesso OAuth) poiché era sempre sul mio piano di aggiungerlo. solo gli utenti convalidati vengono migrati alla mia tabella utente, il resto rimane registrato.
  • time check: data / ora del server con firma caricata tramite ajax, l'utente deve impiegare almeno 5 secondi per compilare il modulo prima di inviare (la password) o viene scartato.
  • pagina di conferma (con token firmato dal server per garantire che la richiesta sia passata per primo attraverso il server) dopo la registrazione che avverte l'utente che è richiesta una e-mail di conferma e ha un pulsante per inviare l'e-mail di conferma. (Nel qual caso i dati sono anche registrati sul DB)

Questo non fermerà un attaccante molto dedicato, ma spero che non vogliano passare ore e ore a sintonizzare il suo attacco per ottenere nulla, solo a darmi fastidio.

    
posta Daren 23.01.2013 - 13:17
fonte

12 risposte

7

Google ha messo a punto una nuova tecnica chiamata reCaptcha che è più semplice e, a quanto si dice, più affidabile di quella esistente soluzioni.

Consiste in una singola casella di controllo che, quando viene cliccato, invia metadati ai server di Google, che a sua volta utilizza un AI proprietario per determinare se il clic ha avuto origine da uno script o da un essere umano.

Guardaquesto venture beat article per ulteriori informazioni.

    
risposta data 29.12.2014 - 17:48
fonte
17

Pensare fuori dagli schemi ...

Nella maggior parte dei casi ciò si applica: Lo scopo commerciale per CAPTCHA è identificare che la persona che accede a una pagina è un essere umano. Il motivo alla base del bisogno di sapere che si tratta di un essere umano è di impedire l'invio automatico di moduli, e il motivo principale per prevenire questo è prevenire gli attacchi di forza bruta.

Quindi lo scopo finale di un CAPTCHA nella maggior parte dei casi è uno strumento per prevenire attacchi brute-force.

Se questo è il motivo principale per cui vuoi usare un Captcha, continua a leggere. Tieni presente che esistono altri motivi per l'utilizzo di CAPTCHA e questi suggerimenti potrebbero o potrebbero non essere applicabili.

Detto questo, esistono alternative a CAPTCHA per prevenire attacchi di forza bruta. Il sito web OWASP ne elenca alcuni con pro e contro di ciascun approccio :

1. Account di blocco

Il modo più ovvio per bloccare gli attacchi a forza bruta consiste semplicemente nel bloccare gli account dopo un numero definito di tentativi di password errati. I blocchi degli account possono durare una durata specifica, ad esempio un'ora, oppure gli account possono rimanere bloccati finché non vengono sbloccati manualmente da un amministratore. Tuttavia, il blocco degli account non è sempre la soluzione migliore, perché qualcuno potrebbe facilmente abusare della misura di sicurezza e bloccare centinaia di account utente. In effetti, alcuni siti Web subiscono così tanti attacchi che non sono in grado di applicare un criterio di blocco perché sbloccano costantemente gli account dei clienti.

I problemi con i blocchi degli account sono:

  • Un utente malintenzionato può causare un Denial of Service (DoS) bloccando un numero elevato di account.
  • Poiché non è possibile bloccare un account che non esiste, verranno bloccati solo i nomi di account validi. Un utente malintenzionato potrebbe utilizzare questo fatto per raccogliere nomi utente dal sito, a seconda delle risposte di errore.
  • Un utente malintenzionato può causare una deviazione bloccando molti account e allagando l'help desk con chiamate di supporto.
  • Un utente malintenzionato può bloccare continuamente lo stesso account, anche secondi dopo che un amministratore lo ha sbloccato, disattivando effettivamente l'account.
  • Il blocco degli account è inefficace contro attacchi lenti che provano solo poche password ogni ora.
  • Il blocco degli account è inefficace contro gli attacchi che tentano una password contro un elenco di nomi utente.
  • Il blocco dell'account è inefficace se l'attaccante utilizza un elenco di combinazioni nome utente / password e indovina correttamente nel primo paio di tentativi.
  • Account potenti come gli account degli amministratori spesso aggirano i criteri di blocco, ma questi sono gli account più desiderabili da attaccare. Alcuni sistemi bloccano gli account amministratore solo su accessi basati sulla rete.
  • Anche dopo aver bloccato un account, l'attacco potrebbe continuare, consumando preziose risorse umane e computer.

2. Inietti pause casuali quando controlli una password.

L'aggiunta di una pausa anche di pochi secondi può rallentare notevolmente un attacco a forza bruta, ma non disturberà la maggior parte degli utenti legittimi mentre accedono ai propri account.

3. Blocca un indirizzo IP con più accessi non riusciti

4. Progetta il tuo sito Web in modo che non utilizzi un comportamento prevedibile per le password non riuscite.

Per questo:

I have a registration form to be filled, but I don't want my user table to be filled with trash.

Nel tuo caso particolare, sceglierei un approccio a due livelli:

Per prima cosa, utilizzerei l'opzione "Inserisci pausa casuale" solo per limitare il numero di invii falsi che potrebbero essere inseriti in primo luogo.

Per gestire tentativi di registrazione potenzialmente falsi, utilizzare un meccanismo di verifica. Registrali ma non attivi, invia loro un'email con un link "Attivazione". Per quelli che si attivano - almeno sai di avere un indirizzo email valido di qualcuno che in realtà vuole registrarsi. Quindi implementa un'attività pianificata che elimina automaticamente gli account non attivati dopo X ore o X giorni.

    
risposta data 23.01.2013 - 15:35
fonte
8

Un'alternativa a un captcha classico è Microsoft Asirra (che considero abbastanza interessante). Invece di leggere il testo criptato, devi selezionare i gatti dalle immagini contenenti sia gatti che cani. Hanno oltre 3 milioni di foto, quindi dovresti essere sicuro contro gli aggressori più determinati. Non è molto probabile che qualcuno indicizzerà tutte queste immagini solo per riempire il tuo database con la posta indesiderata, e inoltre, la possibilità di non essere in grado di selezionare i gatti dal primo tentativo è bassa.

UPDATE: Google può risolvere Cat Captchas.

    
risposta data 23.01.2013 - 15:15
fonte
8

Captcha non è affatto una soluzione!

C'è un captcha killer generale che potrebbe passare tutti i captcha esistenti e persino non già inventati!

È basato su social engineering :

Semplice e facile, uno studente di spammer di 15 anni potrebbe creare questo:

  1. Crea un semplice gioco di enigma puzzle captcha senza problemi:
    1. Piccolo gioco divertente, giocando con molti captcha per accedere a livello di gioco
    2. ... lascia agli utenti giocare con captcha ...
  2. Tramite un semplice script server, quando viene richiesto un captcha, il server accede al sito target per ottenere il captcha del target, anziché inoltrarlo ai giocatori di il sito captcha game .
    1. I giocatori cercheranno di rispondere ai captcha il più rapidamente possibile per raggiungere il secondo livello di gioco.
    2. Il server deve semplicemente inoltrare il controllo e le risposte captcha tra il sito di destinazione (la vera vittima) e i gammers (complicità indesiderata: vittima collaterale)
  3. Con ogni captcha superato, il server potrebbe creare un account spammer per scegliere come target ...

Una rete di assistenza umana ... per i robot.

Dove i robot potrebbero utilizzare l'aiuto delle persone per svolgere il proprio (cattivo) lavoro.

Riconoscimenti:

Un grande ringraziamento a @ GennadyVanin - ГеннадийВанин per l'idea di interessante captcha gratuito di puzzle game ! La prima idea era quella di creare un sito di poco legale per pornografia o creazione di monaci e utilizzare i captcha per convalidare nuovi account.

Questa idea di captcha game puzzle aggiungi

  • sito banale (non appena legale)
  • più di un captha verrà risolto da un utente.

Alternative

Esistono diversi modi per prevenire gli spam, dagli strumenti bayesiani alla conferma della posta basata su PGP.

Un solo esempio: puoi utilizzare bogofilter con le norme progressive:

  1. All'inizio ogni post sul tuo blog verrà inviato al tuo ambiente bogofilter ...

  2. In una prima volta, tutti i post devono essere validati manualmente ( elenco grigio ), mentre si insegna bogofilter .

  3. Una volta esaminati spam e ham sufficienti, bogofilter diventa in grado di

    1. convalida automaticamente un sacco di post
    2. rifiuta automaticamente ed efficacemente molti post
    3. quindi lista grigia qualche nuovo post non ben classificato ... Che verrà convalidato manualmente, insegnando bogofilter di nuovo ... e ancora ... (vedi il mio commento ;)

Ovviamente, ciò richiederà un monitoraggio attivo, non perfetto, a volte alcune operazioni di ottimizzazione e post recupero potrebbero essere utili ...

Conclusione

In fine,

  • captcha consuma molto tempo,
  • diventerà sempre hackable ,
  • potrebbe essere confuso e
  • non aggiungere guadagno alla bellezza di una pagina di benvenuto!
risposta data 24.01.2013 - 04:10
fonte
2

un'alternativa alle immagini sono domande interpretabili umane; ma questo potrebbe comportare dei costi di sviluppo, strategie che ho visto:

  1. immagini identificabili dall'utente: sperimentate da una banca Uk; hanno chiesto agli utenti di caricare foto di persone che conoscevano e hanno fatto una scelta multipla con altre foto casuali, "Chi è tua zia?". Ha funzionato bene fino a quando non è stato totalmente abusato. :-) per favore nota che questa è solo una strategia di "password alternativa" e quindi ha gli stessi problemi.
  2. domande aritmetiche: "cosa è 10 diviso per 2?" con qualche entropia sul formato e i meccanismi usati per formulare la frase, ad es. "cosa è dieci diviso per 2?"
  3. puzzle. domande a scelta multipla che descrivono una foto. per esempio. una casa blu su un campo verde.

Si prega di essere consapevoli del fatto che NESSUNO di questi passerà la legislazione sulla disabilità. Dove vivo (Regno Unito) il RNIB e il loro braccio di consulenza Foviance minacceranno le grandi aziende per l'utilizzo di meccanismi non conformi allo standard DDA. Il grosso problema che ho sempre dovuto affrontare è che la sicurezza è strong solo quanto la più debole delle due strategie (se si fornisce anche un meccanismo conforme DDA).

    
risposta data 23.01.2013 - 15:18
fonte
1

I bot di spam sono già abbastanza intelligenti da fare ricerche su Google, quindi qualcosa come chiedere il colore del cielo è piuttosto inefficace. Generalmente cose come semplici problemi di matematica o immagini con problemi matematici possono essere ragionevolmente efficaci. nuCaptcha è un captcha animato che è molto più facile da leggere anche se non sono sicuro che sia stato rotto o no. Le liste nere di IP sono piuttosto efficaci nel riconoscere gli spammer comuni e bloccarli. Ci sono anche liste nere di domini che cercano collegamenti a siti di spam noti da parte degli utenti e account di posta elettronica spam conosciuti. È inoltre utile chiedere a un utente di fare clic su un collegamento inviato a loro tramite e-mail, in quanto obbliga a legittimare l'indirizzo e-mail.

    
risposta data 23.01.2013 - 15:21
fonte
1

Sono abbastanza sicuro che il progetto Assira di Microsoft sia morto, o almeno non più supportato attivamente. C'è un altro approccio simile chiamato Confident CAPTCHA che è praticamente la stessa cosa: agli utenti viene chiesto di fare clic su un paio di immagini per dimostrare di essere umani. Ha anche un'opzione audio per ipovedenti, che Assira no.

    
risposta data 24.01.2013 - 19:51
fonte
1

Huh, non sono riuscito nemmeno a trovare alcuna domanda.

Il CAPTCHA non è sinonimo di protezione antispam e non ci sono bot antispam senza spammer umani dietro . Spam è stato creato da esseri umani , a volte bot assistito e richiesto a pagamento dagli esseri umani.
Non ci sono spam creati da bot se stessi e pagati con ordine dalle macchine. Quelli si chiamano virus .

Nella root, la protezione antispam è protetta contro gli spammer , ovvero gli umani. E CAPTCHA , per definizione, non è né protection né da humans , è Test di Turing pubblico completamente automatico per comunicare a computer e esseri umani . Può essere usato come prevenzione contro la pubblicazione assistita da bot.

Inoltre, pubblicazione assistita da bot non è sinonimo di spam. La maggior parte dei social network si basa sulla condivisione assistita da bot di articoli, notizie, re-posting e retweet da pianificazione .

Non ci sarà soluzione a domande mai formulate ma solo accennate con termini mai formulati (che cos'è spam, spammer, ecc.).

Ed è piuttosto ingenuo cercare una pallottola d'argento universale una volta, per tutto e per sempre contro gli spammer umani creativi.

    
risposta data 25.01.2013 - 06:45
fonte
1

Forse i puzzle dei clienti sono una soluzione. L'idea è di lasciare che il client esegua un'operazione computazionalmente intensiva e facilmente verificabile dal server. L'idea è di aumentare gradualmente la complessità dell'operazione.

Un hash unidirezionale è una tale operazione che può essere utilizzata. Alla prima sottomissione di un modulo è possibile avere il client per trovare una parola in cui il checksum md5 termina con un carattere specifico. Questo può essere trovato ragionevolmente veloce ed è ancora più veloce per la verifica da parte del server. Se qualcuno cerca di potenziare la forza del servizio, è necessario disporre di più caratteri di corrispondenza del checksum rendendo il puzzle più difficile per il cliente.

controlla link e link

    
risposta data 26.01.2013 - 20:52
fonte
1

Penso che il giorno dei CAPTCHA sia finito. Non può essere sicuro quando ci sono siti web che offrono di risolvere 1000 per 3 dollari su google se fai una ricerca. È ampiamente noto che un sacco di spamming al giorno d'oggi è di esseri umani in paesi con economie emergenti piuttosto che macchine. Personalmente odio CAPTCHA e uso software chiamato RUMOLA per leggerli e riempirli per me e, anche se io uso questo software per rendere il blogging meno frustrante, basta provare che per un po 'di soldi puoi superare tutti i CAPTCHA ... Ps . Se ti senti come me su CAPTCHA puoi provare RUMOLA su skipinput.com

    
risposta data 01.02.2013 - 18:13
fonte
0

Ho un suggerimento che dare un'immagine all'utente simile a un'immagine captcha. Ma quell'immagine conterrà una semplice espressione matematica come 55 + 12. L'utente desidera inserire la risposta di tale espressione in questo caso.

Per migliorare la sicurezza, puoi creare dinamicamente un'immagine o puoi utilizzare una serie di set di immagini predefinite.

    
risposta data 24.01.2013 - 06:28
fonte
0

Potresti voler controllare "sei un umano?" Mi ricorda ciò che Asirra sta cercando di fare.

link

    
risposta data 25.01.2013 - 07:22
fonte

Leggi altre domande sui tag