mercoledì 25 gennaio 2012

. NET Rocks sicurezza colloqui con Carl, Richard e Troy

immagine
Nel caso in cui abbiate vissuto sotto una roccia (no pun intended), negli ultimi nove anni e mezzo,. Rocks NET è senza dubbio la più importante. Podcast NET a tema l'universo. Nel momento in cui ha ottenuto me, c'erano già stati 734 episodi precedenti (spesso in esecuzione per un'ora o più), per cui la serie ha veramente bene e diventare radicata nella psiche di molti. Sviluppatore NET. Quanti sviluppatori? A quanto pare circa 250.000 , sì un quarto-di-un-milione-.NET-sviluppatori. Wow!
Per me, negli ultimi anni è stato uno dei podcast molto, molto pochi dove sarò religiosamente ascolta ogni episodio, indipendentemente dal contenuto. Carl e Richard sono diventati una parte della mia unità giornaliere, voli a lungo e regimi di esercizio su base piuttosto regolare.
Il mio discorso è arrivato in un buon momento per la protezione delle applicazioni (a seconda della prospettiva). Avevamo appena coronato un anno di sito web senza precedenti hacking e proprio quando abbiamo pensato che fosse tutto finito, arrivò Stratfor e poi la situazione hash DoS . Durante questo periodo ho anche avvolto la OWASP Top 10 per. serie NET sviluppatori , confezionato il tutto in un eBook bel po ' e ha lanciato ASafaWeb .
Nello spettacolo si parla di ciascuno dei OWASP Top 10 rischi di sicurezza di applicazioni web e su come mitigare in. NET plus testa su un paio di tangenti su alcuni recenti hack, la gestione delle password e l'importantissima pronuncia di "ASafaWeb" e " OWASP ". Ho avuto una palla di registrazione dello show (nonostante la mia mancanza di internet e di dover ricorrere a Skype su iPhone su reti 3G), e ogni impressione ho avuto di Carl e Richard è stata rafforzata sia dentro che fuori l'aria. Grandi ragazzi che amano la loro tecnologia e la passione per la condivisione con tutti coloro che ci ascoltano.
Così qui è, buon divertimento!

lunedì 23 gennaio 2012

CAPTCHA rottura con gli esseri umani automatizzati

Siamo tutti familiarità con diritto CAPTCHA? Quella fortezza impenetrabile di personaggi folli ondulata che solo un essere umano reale può decifrare. Mentre tendono a guidare noi un po 'noci, che fanno in realtà forniscono una preziosa funzione in quanto impediscono l'automazione delle richieste nei confronti dei servizi on-line. Per esempio, non è possibile da soli ottenere un account Google senza prima avvolgendo la testa attorno a ciò che sulla terra, questo si dice:
CAPTCHA prima di creare un account Google
Perché Google fa? Bene, una volta che ti sei creato un account Google ora avete GMail e G + e ogni sorta di altre piattaforme che potrebbero essere utilizzate per eseguire tali nefaste attività la generazione di spam, distribuzione di malware o la creazione di false identità. Una volta che è possibile automatizzare questo, queste attività possono essere eseguite in massa.
Si tratta di un accordo simile con Western Union :
CAPTCHA Western Union
E 'facile immaginare che essere in grado di creare automaticamente gli account presso un istituto finanziario potrebbe aprire la porta ad ogni sorta di imbrogli monetaria. E se siete già stati in grado di creare un account GMail, hai tutto il necessario per iniziare a dosaggio la creazione di identità alla Western Union.
Così CAPTCHA impedisce tutto questo, giusto? Solo gli esseri umani possono violare il codice e completare i processi di iscrizione, giusto? Ma cosa succederebbe se potessimo automatizzare gli esseri umani, voglio dire che se potessimo prendere CAPTCHA e risolverli a un ritmo tale che questi processi di registrazione potrebbe essere facilmente automatizzato?Ebbene si scopre che può e che vi costerà solo un paio di dollari.

CAPTCHA commodity risolvere con Antigate

L'ispirazione per questo post risale a un pezzo che ho letto recentemente dal famoso scrittore di sicurezza Brian Krebs sul Sweatshops virtuale Sconfiggere Bot-o-Non Test .Nell'articolo, Brian parla di come risolvere i CAPTCHA viene esternalizzata dagli spammer per servizi in mercati a basso costo che utilizzano le persone reali a sfornare attraverso un gran numero di il testo offuscato per una frazione di centesimo di volta in volta, si parla fino a $ 1 per 1.000 CAPTCHA. Proprio così, un decimo di un centesimo per risolvere un CAPTCHA. Il servizio è di consumo tramite un API che significa concettualmente script automatici degli spammer 'può semplicemente passare il CAPTCHA off e ottenere una risposta rapida che contiene il testo vero e proprio, che possono poi essere utilizzati nei loro sforzi di spamming.
L'articolo parla KolotiBablo.com che si rivolge a coloro che desiderano unirsi al team di elite cracker CAPTCHA. Sono una squadra impressionante guardare troppo:
Cracker KolotiBablo.com CAPTCHA
Personalmente, se fossi uno spammer, sarei confortato dal sapere che i miei cracker CAPTCHA sono stati ornati in giacca e cravatta e alla supervisione di un supervisore attraente in un abito pantaloni. Ma sto divagando.
Ho pensato che sarebbe interessante prendere in realtà di questo servizio e vedere quanto efficiente in outsourcing fessurazione CAPTCHA può essere. Mentre KolotiBablo.com potrebbe essere la coalface per sarebbero cracker CAPTCHA, se vogliamo utilizzare il servizio fessurazione abbiamo bisogno di firmare con Antigate oltre a antigate.com (entrambi scappare stessa sottorete):
Schermata di benvenuto di Antigate
Antigate offre una struttura di prezzo molto attraente con posible pagamento in un numero di differenti formati più diffusi. Tuttavia, è importante notare che il servizio non può essere utilizzato per operazioni di spam perché lo generano "butthurt". Non ero del tutto sicuro di cosa questo significasse, ma dopo che usare Google ho deciso che probabilmente era meglio non partecipare alla butthurting e sarebbe più sicuro solo di costruire la mia app piccolo test, invece.
La registrazione è molto simile la registrazione per ogni vecchio servizio:
Registrazione per Antigate
In effetti è così tanto come molti servizi di registrazione comune che non c'è SSL. E non come password complesse. E mi manda indietro la mia bella stringa generata 1Password folle di personaggi:
Antigate non consentire una password sicura
Password attenuato un po ', tutto sembra essere ok, penso:
Russo messaggio repsonse dopo la registrazione con Antigate
Una volta effettuato l'accesso, tutto sembra piuttosto semplice con una bella opzioni di avvio rapido. Quello che volevo veramente fare era scrivere il mio codice, che è fortunatamente una delle opzioni:
Opzioni per il servizio Antigate consumo di
Wow, hanno anche avuto un mercato! Magari un'altra volta, per ora voglio solo cominciare a risolvere CAPTCHA. Guardando l'API, il processo va in fondo così:
  1. Invia la chiave di CAPTCHA e API tramite una richiesta HTTP POST
  2. Una risposta viene restituito con un ID
  3. Attendere 10 secondi, quindi inviare il ID di nuovo in un'altra richiesta
  4. Una risposta sia con il testo risolto o lo stato "non pronto" viene rinviato
  5. Se non è pronto, attendere 5 secondi per poi chiedere lo stato di nuovo (risciacquo, schiuma, ripetere)
Sembra un caso d'uso molto buono per polling lungo . Non importa, l'API è semplice, la cosa interessante sarà il tasso di successo conseguito.
Prima di passare al punto cruciale di questo post - in realtà "rottura" CAPTCHA - c'è un altro utile servizio fornito da Antigate e questa è la possibilità di ottenere un rapido controllo sanitario sullo stato degli operatori. In realtà, è possibile caricare da soli , senza l'autenticazione e si dovrebbe vedere qualcosa di simile a questa:
Stato attuale degli operatori Antigate
Ha senso molto di più quando si vede l'XML sottostante la fonte:
< RISPOSTA >
  < attesa > 50 </ attesa >
  < Carico > 86,53 </ carico >
  < minbid > 0,001 </ minbid >
  < averageRecognitionTime > 16,175225206526 </ averageRecognitionTime >
</ RISPOSTA >
Questo rende molto conveniente per capire quando per caricare il servizio con le richieste per risolvere CAPTCHA. Ne riparleremo più avanti.

Costruire un sito CAPTCHA permesso di rompere

Naturalmente niente di tutto questo sta andando essere molto interessante se non abbiamo un sito CAPTCHA abilitati ad iniziare rottura. Per evitare il butthurting, ho creato un sito web ASP.NET MCV 3 e afferrò il Web Helper Biblioteca da Microsoft. Gli helper web rendono molto semplice far cadere un CAPTCHA in qualsiasi pagina e quindi convalidare l'invio.
In realtà, è un reCAPTCHA implementazione e la distinzione è importante, acquisito da Google qualche anno fa, reCAPTCHA è progettato per contribuire alla digitalizzazione dei libri di testo in modo da questo esercizio è di andare a rendere il mondo un posto un po 'meglio con si spera che ulteriori informazioni disponibili a più persone. In più c'è il fatto che Google serve circa 200 milioni di essi ogni giorno quindi è un bene di alto profilo dell'attuazione e riflessivo di quanto servizio Antigate è probabilmente usati per risolvere già.
Passando, ho costruito una forma tipica di registro come segue:
Obiettivo del sito modulo di registrazione
Ciò che è veramente importante qui è come il CAPTCHA rende in HTML, abbiamo bisogno di capire questo al fine di scaricare in realtà l'immagine di Google, inviarlo a Antigate poi presentare i valori di forma corretta con la registrazione. Tenete a mente che tutto ciò che stiamo per vedere è facilmente disponibile nel codice HTML di un sito attuazione CAPTCHA.
Prendendo il modulo di registrazione dall'alto, il CAPTCHA è incorporata tramite il seguente markup:
< script di tipo = "text / javascript">
   va r R ecaptchaOptions = {"t eme ": "R ed ", "l ang ": "e n ", "t abindex ": 0};
 </ script di >
<script src="http://www.google.com/recaptcha/api/challenge?
  k=6Le2hMwSAAAAAPhhj00SFHjaniz3zLnV0nDLThq9"
  type="text/javascript"></script>
< noscript >
  <iframe frameborder="0" height="300px" 
    src="http://www.google.com/recaptcha/api/noscript?
    k=6Le2hMwSAAAAAPhhj00SFHjaniz3zLnV0nDLThq9" width="500px"></iframe>
  < br />
  < br />
  < textarea cols = "40" name = "recaptcha_challenge_field" file = "3"> </ textarea >
  < Ingresso nome = "recaptcha_response_field" tipo = "hidden" 
    value = "manual_challenge" />
</ noscript >
Il modo più semplice per guardare a questo è quello di concentrarsi sul contenuto nel tag <noscript> che è quello che sta per essere analizzato se il browser non supporta JavaScript (o ha spento). Questo ci salva da trattare con tutta la logica del file di script esterni che altrimenti usati per inserire l'immagine CAPTCHA nella maggior parte dei browser.
Il bit importante è la fonte iframe che è dove l'immagine verrà incorporato. In questo caso, è possibile vedere il percorso è http://www.google.com/recaptcha/api/noscript?k=6Le2hMwSAAAAAPhhj00SFHjaniz3zLnV0nDLThq9
Questa pagina ti rendono una implementazione di base CAPTCHA - ricordate che questo è quello previsto per la gente senza JavaScript:
CAPTCHA contenuti della iframe contenuto in un form
L'immagine CAPTCHA è diverso da quello precedente in forma, come abbiamo caricato l'iframe due volte che l'ha causato per aggiornare, una volta quando abbiamo caricato la pagina di registrazione che poi di nuovo quando ho caricato l'iframe separatamente per catturare lo schermo di cui sopra. Quando ho automatizzare questo nella prossima sezione che viene caricato solo una volta.
Ispezionare il sorgente della pagina iframe, possiamo facilmente trovare l'immagine CAPTCHA incorporato nel codice:
<img width="300" height="57" alt="" src="image?
c=03AHJ_VusH0z9XlyEjm8c2Qm6sl9DhDD_fWq7R-tpRlwhF0KeLy2m8nZBM-
T7AOpGn6UCLd0M7fITJZ2RJ0pgHVt2PrchJwp3VoaKwcJMAK7_BhQdxIPidUT5-
nAUIF7GRDD3vrjs2CXLfw7byQMJa9gDNy9CSvhiSuw">
E naturalmente siamo in grado di estrarre l'URL reale dell'immagine stessa. Questo è il punto di esercizio come questo è il ragazzo che dobbiamo mandare a Antigate:
http://www.google.com/recaptcha/api/image?c=03AHJ_VusH0z9XlyEjm8c2Qm6sl9DhDD_fWq7R-tpRlwhF0KeLy2m8nZBM-T7AOpGn6UCLd0M7fITJZ2RJ0pgHVt2PrchJwp3VoaKwcJMAK7_BhQdxIPidUT5-nAUIF7GRDD3vrjs2CXLfw7byQMJa9gDNy9CSvhiSuw
L'ultima cosa che dobbiamo sapere è come costruire l'invio del form al sito di destinazione.Ovviamente questo include valori quali il nome e l'indirizzo con il CAPTCHA risolto, ma c'è un po 'più ad esso che quello. Diamo un'occhiata a ciò che viene presentato dal guardare la richiesta HTTP con Fiddler :
Campi modulo inviato al sito di destinazione
Quello che vediamo qui è un gruppo di campi in cui ho appena inserito "aaa" e poi due campi CAPTCHA correlati: una sfida e una risposta. La sfida è semplicemente il parametro di stringa di query da l'immagine CAPTCHA sopra e la risposta è ovviamente il CAPTCHA risolto. Ora sappiamo tutto quello che serve per costruire il cracker CAPTCHA.

Costruire il cracker CAPTCHA

Antigate cercare di essere utile qui e fornire un piccolo esempio di C # per iniziare. Ho finito per riscrivere lo stesso sia per brevità e per garantire ho capito esattamente che cosa stava succedendo. In più, naturalmente, ha bisogno in realtà di automatizzare l'invio del form nella nostra applicazione CAPTCHA abilitato che è naturalmente un requisito su misura.
Ho finito con una console app che fa questo:
Schema Sequnce di come CAPTCHA sarà aggirato
In breve:
  1. Richiedere la pagina di registrazione dal sito di destinazione
  2. Richiedi la fonte iframe usati per inserire l'immagine CAPTCHA
  3. Richiedi l'immagine CAPTCHA utilizzati nel sito e salvarlo in locale
  4. Invia il CAPTCHA al servizio Antigate
  5. Antigate assegna il CAPTCHA di un operatore umano che risolve allora e lo rimanda indietro a loro
  6. Attendere 10 secondi, poi controllare con Antigate per il testo CAPTCHA (ripetere ogni 5 secondi, fino a risolvere)
  7. Invia una registrazione al sito di destinazione con i campi compilati (che ho appena definito un set statico di dati di esempio) più la sfida CAPTCHA e testo risolto
Dopo tutto questo è completo, ho anche aggiunto qualche registrazione perché voglio monitorare le cose come velocità e tasso di successo più la durata di ogni fase del processo.Il successo del processo è determinato dalla risposta del modulo di presentazione, ovviamente se si ottiene il diritto CAPTCHA stai per ricevere un corpo di risposta molto diverso se si sbaglia.
Questo è tutto - è davvero così semplice. Ma questo non è un servizio gratuito così avremo bisogno di un po di credito prima di procedere.

Rabbocco del conto Antigate

L'ultima cosa che dobbiamo fare prima la rottura grave CAPTCHA inizia è quello di mettere dei soldi sul conto Antigate. Fanno le cose piuttosto facili, delegando i bit finanziari off diAvangate che vendono codici di ricarica per i diversi valori:
L'acquisto di ricariche per il servizio Antigate
Avangate è una bella fama e-rivenditore di prodotti software che di solito significa che si sta acquistando numeri di licenza. Nel corso sul loro sito, la (attualmente) dollaro australiano forte significa che stiamo cercando a 96 centesimi per rompere 1.000 CAPTCHA. Nizza:
Acquisto Avangate Pagina
Il pagamento avviene tramite PayPal e sono andato eseguire la stessa procedura di autorizzazione dopo che sono stato rimandato Avangate:
Ricevuta per l'acquisto di 1 dollaro vale la pena di Antigate fessurazione CAPTCHA
Poco dopo e il codice è comodamente tramite e-mail:
Chiave di attivazione per il servizio ° Antigate
E ... siamo attivo e funzionante:
Topup successo del servizio Antigate
A destra, ora davvero interessante po comincia.

Rottura CAPTCHA

Diciamo la rincorsa! Ho aggiunto un po 'di verbosità di uscita che è stata molto utile durante il processo di compilazione:
Esecuzione del cracker di CAPTCHA
Qui possiamo vedere il percorso di origine iframe seguita dal percorso immagine CAPTCHA e poi la stringa di query estratte da esso (si ricordi, questa è la sfida che dobbiamo presentare con la forma). L'immagine viene quindi salvata in locale, sottoposti a Antigate e una risposta con l'ID restituito, che in questo caso è 42244161. Si può vedere il processo poi dorme per 10 secondi, seguita da un totale di tre richieste, ogni cinque secondi di distanza, fino a quando una risposta viene restituito con il testo "mungo odatesp". Questo è il primo momento "Wow!"; Un essere umano da qualche parte ha effettivamente risolto questo e lo ha inviato di nuovo a me!
Ma naturalmente la vera prova del successo è ancora una volta il modulo viene inviato. La seconda riga di testo ultima mostra questo è tornato su "Ok" in modo che il modulo ha effettivamente restituito un corpo di risposta coerente con una registrazione. Infine, l'intero processo ha preso poco più di 27 secondi e il cracker CAPTCHA anche registrato con successo il processo:
Voce del registro dopo automatizzando la registrazione
In questo caso qui, perché ho anche controllare il sito web abbiamo presentato l'iscrizione alla posso fare un test di integrità e assicurarsi che la registrazione è stata effettivamente presentata:
Registrazione nuovo utente nel database
Sì, guarda a destra! Questo ha tutti i dati di esempio ho configurato il cracker CAPTCHA di inviare e CreateDate sul record cade subito dopo la CaptchaCompleteDate nel registro. Così là lo avete - successo elusione programmatica CAPTCHA utilizzando un essere umano automatizzato. Il problema è che, 27 secondi non è esattamente vesciche. Ma c'è un modo migliore per guadagnarsi da prestazioni ed è qualcosa che i programmatori hanno conosciuto per molto tempo: il multithreading.

Utilizzando il modello multithread esseri umani

Che cosa succede se cominciamo multithreading gli umani? Voglio dire piuttosto che correre su una singola istanza del cracker CAPTCHA, che ne dite, per esempio, 30 casi in contemporanea? Naturalmente il successo di questo modello dipende dalla disponibilità di 30 operatori che sono in grado di lavorare contemporaneamente su ciò che è in sostanza un processo sequenziale (un operatore non può risolvere uno CAPTCHA alla volta). Ma, come abbiamo visto in precedenza, non è raro avere 50 operatori a portata di mano.
Così ho realizzato un "multithreading dei poveri" e sparò il 30 istanze separate della console cracker di CAPTCHA:
30 istanze di cracker CAPTCHA in esecuzione contemporaneamente
Ho lasciato questa corsa per 20 minuti poi analizzato i risultati che, come ci si aspetterebbe, mostrano una velocità molto più alta:
CAPTCHA rotto al minuto (30 thread)
Un totale di 1.230 CAPTCHA sono stati mandati a Antigate e solo 77 non sono stati risolti correttamente quindi causando il processo di registrazione a fallire. Questo è un tasso di successo del 94%:
Tasso di successo di CAPTCHA risolti
Ma anche se multithread, il processo di soluzione dei CAPTCHA era ancora un enorme collo di bottiglia in automazione iscrizioni:
Grafico a barre in pila mostrano crepe CAPTCHA consumano una grande quantità di tempo
Infatti i numeri si ruppe a 420ms dall'inizio alla quale l'immagine CAPTCHA era pronto per l'invio fuori poi 26 secondi per ottenere effettivamente una risposta indietro con il CAPTCHA risolti seguito da 199ms di sottoporlo al modulo di registrazione con gli altri campi.Chiaramente CAPTCHA mette ancora una intaccare in maniera significativa la durata complessiva del processo, che è quasi il 98% del processo di totale sottomissione è masticare lassù.
Ma naturalmente è possibile eseguire le discussioni pressoché illimitata (a seconda delle persone a disposizione) e la linea di fondo è che sono stato in grado di rompere il processo di CAPTCHA e di automatizzare le registrazioni al ritmo di uno per ogni 0,98 secondi e con un tasso di successo del 94% . Questo ha veramente bene e ha dimostrato che l'intento di CAPTCHA può infatti essere sconfitto semplicemente automatizzando l'uomo.

Riassunto

Devo ammettere, mi sento un po 'dispiaciuto per la gente seduta lì all'infinito la soluzione di un flusso senza fine di CAPTCHA, francamente, un solo drive me un po' i dadi! Ma quello che doveva essere ancora peggio - e ho bisogno di prendere qualche colpa qui - è che durante il test ho continuato a sottoporre il CAPTCHA stesso più e più e più volte. Posso immaginare il povero operatore seduto lì a pensare "WTF è questo tizio già facendo?" Poi di nuovo, forse hanno fatto qualche soldo veloce perché riconoscendo al tempo stesso modello e diventa ancora più efficiente.
Quando ho ricevuto lo script in esecuzione, non potevo fare a meno di accenderlo più e più volte. Francamente, ho trovato un po 'mindboggling pensare che ogni volta che ho eseguito, che dolorosamente ottuso CAPTCHA poco volava di tutto il mondo e di essere risolto da qualcuno per cui 0,001 dollari è stato uno sforzo utile e il risultato efficiente consegnato torna da me nel giro di pochi di secondi. C'è qualcosa di bello l'efficienza con cui questo accade.
Naturalmente l'altra questione solleva tutto questo è la legalità di un servizio come Antigate.Da un lato, sono solo la conversione di bitmap a caso al testo, che in sé e per sé, è probabilmente un grosso problema. Ma può anche essere un grosso problema nello stesso modo che Napster e Megaupload ha permesso di condividere file, ma potrebbe scendere al implicita (o presunte) intenzioni del servizio. Alla fine della giornata, antigate.com si attesti ad un IP in Florida così assumedly se uscissero fallo abbastanza di legge, l'azione che abbiamo visto con Megaupload scorsa settimana non sarebbe troppo difficile, voglio dire, non è a loro piace ' re secreto via in più buio più profondo dell'Europa dell'Est o nulla.
L'altra cosa da notare è che Antigate non sono solo i ragazzi là fuori che forniscono questo servizio; Death By CAPTCHA offre un servizio molto simile così come bypass CAPTCHA eCAPTCHA beat , questo non è esattamente territorio innovativa. Poi la disponibilità di tutti questi servizi potrebbe rendere molto facile stare in piedi un "cluster umani" modello in cui si ripete il processo che ho passato sopra simultaneamente attraverso molteplici servizi di conseguenza aumentando notevolmente la velocità.
Ora, naturalmente, niente di tutto questo è in realtà rompendo l'attuazione CAPTCHA, la santità della parola deformata è stata mantenuta e anzi ha preso reale gli esseri umani vivono per la loro risoluzione in testo normale. Ma ciò che questo esercizio si dimostrano è che l'affermazione che CAPTCHA impedisce l'automazione è semplicemente sbagliato, tutto quello che serve è per una parte della automazione per essere spostato da computer per l'uomo. Considerate questo contro la definizione di Wikipedia e sarebbe giusto dire che questo esercizio ha minato la premessa stessa sicurezza su cui è costruito CAPTACH:
La base del sistema di CAPTCHA è quello di impedire l'accesso automatico a un sistema da programmi informatici o "bot"
E 'una posizione strana per avvolgere il post su, voglio dire che siamo talmente abituati a mettere le nostre emozioni, i PC ad alta efficienza al lavoro per salvare noi umani dal lavoro esercizi intensivi. Ma ciò che questo post ci mostra è che a volte abbiamo bisogno di invertire il processo e invece automatizzare l' uomo nella misura in cui possono effettuare ad alti livelli di efficienza. Ci vuole solo alcuni orchestrazione intelligente e abbastanza che gli esseri umani sono disposti a fare il lavoro a buon mercato sufficiente a rendere l'esercizio economicamente conveniente.

mercoledì 18 gennaio 2012

Zappos, Stratfor, Sony, Gawker; Hai la vostra attenzione? Bene, ora iniziare a utilizzare un gestore di password!

Un'altra settimana, un altro incidente di sicurezza importante con un sito web significativi.Così la notizia questa volta è che Zappos - quei ragazzi che vendono le scarpe (tra le altre cose) - per la gente negli Stati Uniti può avere, uh, accidentalmente rivelato da qualche parte secondo l'ordine di 24 milioni di account utente . Bugger.
Ora, naturalmente, alla radice di questo è inevitabilmente ancora più malvagi intenti a sfondare sicurezza sito a scopo di lucro, l'attivismo o calci vecchio semplicemente.Indipendentemente dal modus operandi di questi incidenti, resta il fatto che un numero significativo di conti sono stati esposti e c'è ora la possibilità reale che i nomi utente e password - forse la tua username e la password - stanno per essere galleggianti intorno internet essere visti da chi sa quante persone.
Questo, naturalmente, è un problema perché statisticamente c'è una probabilità più migliore media che hai usato la password in una serie di altre posizioni. Hai usarlo per eBay? Era lo stesso che avete usato per Amazon? O, ancora peggio, è che la tua password Gmail e può ora essere utilizzato per ripristinare tutte le altre password ? Se vi state chiedendo una di queste domande in questo momento, è il momento per un gestore di password che lo rendemorto facile per creare una forte, password unica per tutti gli account in modo che la prossima volta che questo accade - e non ci sarà una prossima volta - l'esposizione delle credenziali e il rischio non andrà oltre quel singolo sito.

Riutilizzo delle password è davvero così male?

Mettiamo un contesto intorno a questo da un altro recente incidente di sicurezza maggiore; Gawker. Indietro alla fine del 2010, da qualche parte secondo l'ordine di alcune centinaia di migliaia gli account sono stati esposti dopo Gawker è stato violato. Questo, naturalmente, potrebbe rivelarsi un numero molto piccolo in confronto a Zappos, ma è comunque un numero significativo.
Cosa succede frequentemente in questi incidenti hacking è che i colpevoli dopo la prova con orgoglio del loro operato per il web per tutti. E 'vero, ogni account viene reso pubblico in modo che chiunque può scaricare. Ecco Gawker , ecco Sony , ecco Stratfor e per il momento stai leggendo questo, potreste essere in grado di aggiungere Zappos alla lista.Linea di fondo: si aspettano informazioni riservate conto di essere reso pubblico.
Cosa succede dopo è che tali credenziali trapelato iniziare a ricevere abusato. Dopo l'incidente Gawker, gente con gli account violati ha iniziato inaspettatamente tweeting di bacche di Acai . Perché? Perché avevano riutilizzato la stessa password tra Gawker e Twitter e uno dei 2 miliardi di persone più che ora hanno avuto accesso a queste informazioni lo stava usando Twitter per inviare spam. E 'così semplice.
Ora, naturalmente, potrebbe anche essere molto peggio; riutilizzare l'account su Amazon e alcuni di quei 2 miliardi di persone potrebbero iniziare a fare altri acquisti a vostro nome.Riutilizzarlo su Facebook e improvvisamente è molto facile per iniziare socialmente ingegneria tuoi amici a cliccare su link o l'installazione di software che normalmente non potrebbero fare - dopo tutto, qualcuno di loro fiducia li sta spingendo in azione quindi deve essere ok, giusto?
La linea di fondo è semplicemente questo: ogni volta che si riutilizza una password, è come dormire con qualcuno senza "precauzioni". Certo, può rendere le cose un po 'più facile e vi fidate di loro di essere "sicuro", ma che stai rischiando la propria sicurezza personale, più che di ogni altra interazione che avete in futuro.

La password anti-pratiche

Ci sono un sacco di idee là fuori su come dovrebbe essere la gestione delle password: in arrivo con una frase poi raccogliere le lettere dalle parole, sostituendo questi personaggi a -> @ e S -> $, creando solo una manciata di password di classi diverse poi riutilizzarli (forum, negozi, banche, ecc), utilizzando le informazioni relative al sito per generare la password e così via e così via.
Nessuno di questi funziona in modo coerente, ecco perché:
  1. Tutto ciò che dipende dalla memoria - la vostra memoria - non scala. Si può essere in grado di ricordare 10 o 15 o anche 20 frasi o schemi o qualsiasi modello che si sceglie, ma si dispone di più account di questo, anche se non ve ne rendete conto ora.
  2. Sviluppatori di siti web possono essere veri bastardi (abbiate pazienza) e l'impossibilità di utilizzare password generate dai modelli. Possono limitare la lunghezza dei caratteri ai limiti molto bassi o limitare di un set di caratteri molto limitato. Ci sono un sacco di siti là fuori dove sei bloccato con un PIN a 4 cifre.
  3. Nessuno - nessuno - è immune da sempre violato. Banche avere violato . avere violato le forme di sicurezza . governi ottenere hacked . Pensare è possibile creare una "classe" di password, come se ogni luogo si riutilizza è "sicuro" è fondamentalmente errata.
Quando non hanno consistenza, è possibile creare eccezioni. Quando si hanno delle eccezioni, è necessario un metodo per tenere traccia e gestire quelli che vi rimette a destra da dove siete partiti che alla fine significa solo una cosa: l'unica password sicura è quella che non riesce a ricordare .

Il ruolo del gestore di password

Un password manager è un po 'come il vecchio adagio di mettere tutte le uova nello stesso paniere poi guardarlo davvero, davvero da vicino. Ci sono diversi prodotti là fuori che affrontare il problema da angolazioni leggermente diverse, ma oggi voglio guardare il mio preferito, 1Password .
In termini molto semplici, funziona così:
  1. Si installa il software 1Password sul vostro PC / Mac / iPhone / Android.
  2. Si crea un "portachiavi" che è un file che conterrà tutte le vostre password.
  3. Sognate un singolo, password molto forte con un sacco di numeri, lettere, simboli, ecc - questa è la tua "Master Password", che si memorizzare e guardia con la vostra vita.
  4. Hai messo tutte le password per tutti i siti si utilizza nel vostro portachiavi che è quindi possibile sbloccare solo con la password principale.
  5. Si riserva il portachiavi e la sincronizzazione tra i dispositivi che utilizzando Dropbox.
Il portachiavi è crittografato in maniera estremamente robusta e può essere sbloccato solo con la master password. Se si perde questo, sei da solo - nessuno sarà in grado di aiutarvi a sbloccare quel file quindi dovrete passare attraverso un processo di reset su ognuno di loro.Naturalmente questo significa anche che chiunque si impossessa del vostro portachiavi non può fare nulla con essa senza la master password. Per esempio, se il portachiavi viene recuperato dal disco rigido del PC o in qualche modo estratto dal tuo account Dropbox, è inutile per conto suo.
Altri generale Domande e risposte su 1Password possono essere trovati nei loro post sul blog di Quanta sicurezza 1Password?

Semplificare la gestione delle password

Questo è in realtà un processo molto semplice, infatti è così semplice che è molto più semplice di quello che hai fatto prima, anche se si riusciva a ricordare tutte le tue password.
Il primo, ho 1Password eseguito localmente sul mio PC. Si integra nelle principali browser che significa che quando faccio il login a un sito Web che non riconosce, per esempio, oh, Zappos, questo è ciò che vedo:
1Password avevamo originariamente per ricordare la mia password Zappos
Questo è in Google Chrome, browser diversi un aspetto leggermente diverso. Comunque, potete vedere che ho cerchiato la barra di 1Password che viene visualizzata automaticamente dopo il login in Ho bisogno di inserire la password principale per andare avanti dopo di che posso dare un nome all'account allora che è - ho finito.
Quando sono accanto tornare al sito e vuoi fare il login, mi basta premere l'icona di 1Password sul browser (è appena a destra della barra degli indirizzi), inserire la password master, che completa automaticamente il modulo di accesso - sia username e password - sottopone poi per me:
Accedere nuovamente in Zappos con 1Password
Quanto facile è quello?! Perché questo è così semplice e perché mai poi realmente bisogno diricordare le password per siti come Zappos, è possibile iniziare a creare davvero "forte" le password e 1Password vi aiuterà con questo. Eseguire il backup sul menu in alto, il quadrante po 'come ci si trova in una posizione sicura permette di fare questo:
Creare una password complessa con 1Password
Che cosa questo significa è che si finisce con un qualcosa di password come "D [O62MA & RCWJ (Ihf3nk ^ e1bVS" <- questa è una buona password e non importa di una virgola che non si può ricordare e che sarebbe un dolore a tipo, perché non avete intenzione di fare che più, vero?
Tutto questo funziona benissimo sul PC (o Mac) ma ci sono anche equivalenti per iPhone e Android e faranno sincronizzare il vostro portachiavi tramite Dropbox. La linea di fondo è che si può sia mantenere il vostro account sicuri e tenerli con te ovunque tu vada, la scelta di piattaforma mobile dipende, naturalmente.

Il (molto raro) caveat

La promessa di avere solo "una password" è un po 'grande, ma non è troppo lontano il marchio. Qualsiasi luogo in cui non si può prendere 1Password sarà un problema. L'accesso al mio PC mentre è bloccato è un esempio, l'accesso al mio account iTunes su Apple TV è un altro. In casi come questo, mi sia finire con una password più corta che è più facile da digitare (ma ancora non riesco a ricordare) o utilizzare una memorabile unico uno quando ho davvero bisogno. Ma sono rare eccezioni - quattro o cinque al massimo.
Ma ci sono anche altri casi limite che possono rendere le cose più difficile per alcune persone. Che utilizzano regolarmente i computer condivisi in cui non è possibile eseguire 1Password è un buon esempio. La cosa da tenere a tornare a con sicurezza è che si sta cercando di trovare questo equilibrio tra rendendo troppo difficile per i cattivi contro nonrendendo troppo difficile per voi. Per molte persone, che significa equilibrio con approcci diversi, una taglia non è bene per tutti. In un caso come le macchine condivise, 1Password su un dispositivo mobile con il più breve - ma pur sempre casuale - password potrebbe essere l'opzione migliore.

Riassunto

Speriamo che andrà a finire che Zappos ha fatto un buon lavoro di proteggere gli account dei loro clienti 'e anche se la loro banca dati potrebbe essere stato a conoscenza, conservazione crittografia corretta garantirà le password al sicuro, o per lo meno non sono in grado di essere rotto in massa . Ma a prescindere, stanno ancora raccontando ai clienti di cambiare le loro password altrove li hanno riutilizzati . Chiaramente rimane un rischio.
Questa è una storia ormai ripetitivo, uno sono stato sul lato sbagliato di me in passato. In realtà è stato l'incidente che mi ha spinto in azione e mi ha installato e funzionante su 1Password. Io semplicemente non preoccuparsi di questo genere di cose più - Io ho zero rischio oltre i singoli siti.
Fatevi un favore, vai a farti 1Password poi passare qualche ora in movimento i vostri conti e reimpostare la password per qualcosa di sicuro. Anche se non sono stati colpiti da Zappos (o Sony o Stratfor o Gawker), domani sarà Amazon o eBay o PayPal o qualcuno come quello chevi è impatto e che stai per avere un intero mondo di nuovi problemi da affrontare. Purtroppo, è inevitabile.

lunedì 16 gennaio 2012

UriMapper in Windows Phone

In un precedente post su Estensibilità ricerca in Windows Phone 7 , un UriMapper è stato utilizzato per tradurre l'URI lancio invocato da ricerca Bing in un MappedUri, in questo caso, una pagina all'interno dell'applicazione Windows Phone.In questo articolo andremo a vedere come utilizzare una UriMapper per aiutare a strutturare e navigare all'interno dell'applicazione Windows Phone. Come un ripasso, ecco il UriMapper abbiamo definito nel App.xaml, e come è stato collegato al PhoneApplicationFrame nel file App.xaml.cs. 
App.xaml
<Application.Resources>
    <uriMapper:UriMapper x:Key="UriMapper">
            <UriMapper: UriMapping Uri = "/ SearchExtras"
                            MappedUri = "/ MainPage.xaml" />
    </ UriMapper: UriMapper>
</ Application.Resources>

App.xaml.cs
RootFrame = new PhoneApplicationFrame () {
                                UriMapper = Risorse ["UriMapper"] come UriMapper
                            };
Stiamo per iniziare cambiando il UriMapping al seguente:
<uriMapper:UriMapping Uri="/{Page}" MappedUri="/{Page}Page.xaml" />
Questa mappatura sarà tradurre qualsiasi URI che inizia con "/" aggiungendo il suffisso "Page.xaml". Ciò presuppone che tutte le pagine all'interno della nostra applicazione si chiuderà con "Page.xaml", ma significa che invece di navigare a "/ SecondPage.xaml", si può invece navigare solo "/ secondo".
Questo diventa utile se in seguito si decide che tutte le nostre pagine saranno in una cartella denominata "Pagine". In precedenza, avrebbe dovuto cercare attraverso l'intera applicazione alla ricerca di qualsiasi Naviga metodi e modificare l'URI per includere il prefisso "/ Pagine". Utilizzando UriMapping, tutto quello che dovete fare è cambiare la mappatura di includere il prefisso.
<uriMapper:UriMapping Uri="/{Page}" MappedUri="/Pages/{Page}Page.xaml" />
Come applicazione di Windows Phone cresce, si può decidere di rompere la vostra applicazione fino in assembly separati. In questo caso, è possibile ancora utilizzare un UriMapping per individuare la pagina a cui l'utente sta navigando. Per esempio, la mappatura seguenti individuare il MySatellitePage.xaml, che è in un assembly denominato Satellite:
<UriMapper: UriMapping Uri = "/ MySatellite" 
                      MappedUri = "/ satellite; componente / Pages / MySatellitePage.xaml" />
Deep linking
Un altro luogo dove l'uso di un UriMapping è importante è quando si utilizza il deep linking al fine di indirizzare gli utenti a una posizione specifica all'interno dell'applicazione. Questo può essere da un Tile Live (come determinato dal URI specificato durante la creazione della piastrella), o da una notifica Toast (l'elemento Param determina l'URI all'interno dell'applicazione per essere navigato a quando l'utente seleziona il brindisi).
L'approccio più semplice è di utilizzare l'URI della pagina che si desidera avviare (per esempio, "/ MyLaunchPage.xaml").Tuttavia, questo introduce un forte accoppiamento tra la struttura delle applicazioni e le notifiche inviate dal server. Invece, si può aggiungere un UriMapping simile al seguente, che mappa un URI "/ Toast" attraverso la pagina di lancio:
<UriMapper: UriMapping Uri = "/ Toast" 
                      MappedUri = "/ MyLaunchPage.xaml" />
Ora, se abbiamo bisogno di cambiare la struttura dell'applicazione, possiamo farlo facilmente aggiornando la mappatura. Senza la UriMapping avremmo dovuto aggiornare sia l'applicazione Windows Phone e il codice del server, e garantire che sono entrambi aggiornati allo stesso tempo - un compito quasi impossibile.
Noterete che non abbiamo specificato alcun parametro query in qualsiasi mapping dichiarato. Questo perché ci vengono mappati automaticamente di fronte alla URI al MappedUri. Nel caso del UriMapping scorso, per esempio, un URI "/ Toast? CustomerId = 1234" avranno mappato "/ MyLaunchPage.xaml? CustomerId = 1234".
Ho dimostrato un certo numero di scenari in cui una UriMapper può essere utilizzato per migliorare la navigazione e la struttura della vostra applicazione Windows Phone. Imparare ad usare questo potente strumento, e sarete scrivere codice più efficiente prima di conoscerla.