giovedì 27 marzo 2014

Che prezzo potreste essere davvero pagare per Woolworths wifi "libero"?

Sapete come si suol dire - se il prodotto è libero, allora sei il prodotto! Questo funziona per artisti del calibro di Facebook o Google, perché vieni colpito con annunci mirati. Si lavora per LinkedIn, perché possono poi vendere servizi di alta qualità che garantiscono alle persone di accedere ai dati che raccolgono. La domanda è se, come si diventa il prodotto in un'epoca di wifi gratuito?
L'altro giorno ho notato questo per la prima volta nel mio supermercato Woolworths locale qui in Australia:
Accedi Woolworhts offerring wifi gratuito
Il wifi gratuito fa un sacco di senso in certi luoghi. In un caffè, per esempio, - il cliente - indugia più a lungo e consuma più latte macchiato. In realtà si tratta di un drawcard di caffè - "Penso che basta andare a quello che mi permette di sfogliare gratuitamente su mia ti addormenti". Ha senso anche negli aeroporti dove si sta seduti intorno per lunghi periodi.
La domanda è: qual è la proposta di valore per il fornitore di connessione wifi gratuita in un supermercato? Ecco un ambiente altamente mobile dove trascorrere la vostra visita vagare da corridoio a navata. Non c'è nessun posto a sedere, nessuna vera attesa intorno e nessun proposta di valore apparente per offrire ai clienti l'accesso al web. Tranne potenzialmente, c'è, ed è in realtà abbastanza subdolo.

Che cosa stai "accettando" per?

Le istruzioni nell'immagine qui sopra dovrebbe essere un po 'una bandiera rossa, ma purtroppo si perdono un passo lasciate così mi aggiungo qui:
1.5 - Leggere e comprendere i termini e le condizioni
Il problema è, che cosa state accettando è dannatamente difficile da leggere sul dispositivo che si sta inevitabilmente portando con voi quando si vuole realmente utilizzare il servizio:
Termini e condizioni minuscoli su iPhone
Come ci si aspetta da termini e condizioni, non c'è assolutamente nessun modo li si può leggere prima di accettarli comunque! In parte ciò è dovuto al fatto che è quasi impossibile scorrere attraverso di loro nella piccola finestra Woolies hanno messo nel telefono e in parte è perché siete veramente in vena di assorbire più di mille parole su un iPhone mentre gironzolavano in un negozio di alimentari navata. Non importa, li potete leggere nella loro interezza qui . L'ho fatto, e ho trovato alcune informazioni interessanti che potrebbero aiutare a spiegare la proposta di valore.
Meditate questo nella sezione privacy:
Tuttavia, una volta che si accede al servizio e si apre il browser internet per un sito web, informazioni sul tipo di browser web e / o informazioni sul sistema operativo utilizzato dal dispositivo abilitato possono essere raccolte ed elaborate al fine di determinare il più efficace e / o personalizzati mezzi di visualizzazione del sito web richiesto sul dispositivo. Woolworths sarà raccogliere e memorizzare l'indirizzo IP e MAC del dispositivo abilitato che ha effettuato l'accesso al servizio Guest Wi-Fi, dopo aver accettato i termini e le condizioni.
Il corsivo è mio perché la sezione evidenziata è molto eloquente. L'indirizzo IP non vuol dire molto (è stata assegnata da Woolworths quando ci si connette comunque), ma l'indirizzo MAC, ora che è qualcosa di ben più interessante ...
Cosa hai avuto modo di ricordare su indirizzi MAC è che sono personali - ognuno lega esplicitamente torna a un individuo dispositivo . Oh, certo, persone sostengono che, per essere "personali" hai avuto modo di avere il nome di qualcuno o indirizzo o per telefono o qualche altro attributo che lega di nuovo ad un individuo , ma la realtà è che ci sono molti, molti modi di mappatura di un MAC di una persona. Infatti in tal senso, il NIST anche ritenuto come l'identificazione personale in quanto soddisfa i seguenti criteri:
Informazioni sugli asset, come Internet Protocol (IP) o Media Access Control (MAC) o altro identificatore statico persistente specifiche dell'host che collega costantemente ad una determinata persona o un piccolo gruppo ben definito di persone
Si tratta di un ID unico dispositivo che viene inviato quando ci si connette a un punto di accesso wireless e contiene informazioni su chi fatto il dispositivo (ad esempio Apple) ma ancora più importante, si attacca con il dispositivo per sempre (a corto di mezzi sovversivi per cambiarlo).
La cosa interessante qui è però che Woolworths sarà - non "può" o "riservarsi il diritto di", ma "si" - memorizzarlo. Che oggi apre un intero nuovo mondo di possibilità, diamo un'occhiata a loro.

Grazie, ti aspettiamo di nuovo (e non dimenticate di portare il vostro telefono)

Il vantaggio più evidente di memorizzazione del dispositivo MAC è che ottengono per seguire i movimenti dei clienti. Se collego il mio iPhone al Woolies locale e memorizzare il MAC, la prossima volta che torno con il mio telefono, WAMMO! Ora sono stati in grado di mappare la mia attività di ripetizione.
Naturalmente questo è reso possibile da due fattori importanti:
  1. I dispositivi dovranno riconnettersi alle reti conosciute. Si salta il vostro iPhone su "Woolworths Free WiFi" e quando torni domani o la prossima settimana o anche il prossimo anno, ti auto-connessione.
  2. Noi tutti portiamo i nostri dispositivi in ​​tutto il mondo. Questo è quasi come un impianto di inseguimento umano ma senza l'intervento chirurgico! Avere un telefono abilitato wifi su di voi in questi giorni è onnipresente.
Ma si va oltre solo il mio negozio locale, se sono intelligenti (e non ho motivo di pensare che non lo sono), essi saranno aggregano quelle indirizzi MAC centrale contro la posizione del negozio e il tempo che è stato visto e quindi aggregando che in più negozi. Ora che è interessante come si arriva a iniziare a clienti in più sedi di monitoraggio, tutto ciò che serve è lo stesso SSID sul wifi gratuito in ogni negozio e sto cercando di indovinare che "Woolworths Free WiFi" non riguardano solo il mio unico locale ...
Ma tutto questo ti dà è il traffico pedonale non identificabile, giusto? Voglio dire che in realtà non sa che possiede il MAC, giusto? In realtà, scoprendo che è molto facile una volta che hai un altro pezzo fondamentale di dati - carte fedeltà.

Per la vostra convenienza, si prega di utilizzare la vostra carta di ricompense

Questo piccolo cucciolo è una miniera d'oro per i rivenditori:
Woolworths carta di premi di tutti i giorni
Non riesco a ricordare di aver mai effettuato un acquisto presso Woolies e non viene chiesto se ho una carta di ricompensa per presentare. Li amano! Non li amo perché permette loro di realtà (eventualmente) vi danno alcuni sconti, li amano perché sono servizi di aggregazione di dati impressionante. Le tue abitudini di acquisto contengono una grande quantità di informazioni su di voi, informazioni che possono essere preziose per scopi di targeting. Ma può anche essere utilizzato per riconciliare i movimenti , anche quando non si utilizza la carta.
Ora posso solo parlare con le possibilità tecnologiche qui, non so se Woolies sono in realtà facendo questo o no, ma cerchiamo di ipotizzare per un momento quanto facile sarebbe:
Woolies ha un cliente che utilizza la connessione wifi gratuita e su ogni visita che memorizzare l'indirizzo MAC del dispositivo (ricordate, si potrannoconservarlo). Casualmente, la stessa carta fedeltà è stata utilizzata entro 20 minuti del MAC viene registrato su due visite successive. Ok, potrebbe essere solo una coincidenza - come circa tre successive visite? O quattro? Si ottiene il punto - la riconciliazione di questi dati è morto facile. Una volta che c'è un ragionevole grado di fiducia nella identità del titolare dell'indirizzo MAC, non c'è più la necessità di conciliare contro la carta fedeltà, sanno già chi sei da identificativo del telefono da solo.

Posizione woolies 'sulla raccolta dei dati

Curioso per quanto accurata l'affermazione "Woolworths raccoglierà e memorizzare l'indirizzo IP e MAC del dispositivo abilitato" è davvero, ho chiesto loro i miei dati. In realtà li ho chiesto tutti i miei dati e tutti i dati di mia moglie pure. Quello che ho chiesto era tutt'altro che avevano in archivio per la nostra identità in base a nome, indirizzo, e-mail e telefono, nonché l'indirizzo MAC del mio iPhone. Quest'ultimo ha provocato questa risposta:
Non ci sono dati in archivio relativi al MAC all'indirizzo fornito, per le ragioni esposte qui di seguito:Prima che un individuo può utilizzare il servizio WiFi gratuito nei negozi, devono prima prendere in considerazione e di accettare i "Termini e condizioni '(T & Cs) per l'utilizzo della servizio. La posizione della T & C contorno Woolworths 'su una serie di considerazioni pertinenti per l'utilizzo del servizio. Sulla accettazione della T & C, i consensi dei clienti alle condizioni di utilizzo. Posso confermare che Woolworths fa raccogliere e memorizzare l'IP e l'indirizzo MAC dei dispositivi individuali quanto per monitorare ciò che sta accedendo contenuti e bloccare l'accesso a siti che violano Woolworths '' Acceptable Use dei Sistemi Informativi 'Politica. È importante notare, tuttavia, che questi dati viene mantenuto solo durante il periodo in cui l'individuo sta utilizzando il proprio dispositivo sulla rete WiFi, e non indefinitamente. Inoltre, il contenuto viene filtrato solo per la verifica di ciò che viene visualizzato - Woolworths non può, e non collega questo con chi visualizza tale contenuto.
Ci sono un certo numero di messaggi interessanti in questo: in primo luogo, che il contenuto viene monitorato. Ora che è una bella dichiarazione generale - stanno semplicemente monitorando URL? Oppure contenuto della risposta? Naturalmente entrambi possono contenere dati di natura sensibile e sarebbe ancora rientrare la loro definizione di "uso accettabile" (non ho visto questa definizione, ma credo che possiamo ragionevolmente intuire il suo contenuto) in modo che la stessa vecchia "non uso wifi pubblico e si aspettano i vostri dati rimangano privati ​​"si applica mantra.
In secondo luogo, ricordate che i dispositivi di solito auto-connettersi alle reti conosciute e che Woolworths sarà "monitorare ciò che sta accedendo contenuto". Così ora siete diretti verso i negozi mesi dopo giocando con la connessione wifi gratuita, telefono in tasca e e stanno monitorando tutte le cose il dispositivo è a solo in virtù di voi che entrano in campo. Per molte persone, questa è una sorprendente rivelazione privacy.
In terzo luogo, è davvero necessario per memorizzare l' indirizzo MAC al fine di attuare il filtraggio? Più comunemente, il filtraggio è fatto da blacklist risorse non consentiti, qual è la proposta di valore di memorizzazione di dati univocamente identificabili sul cliente? A meno che non stanno cercando un modello tra le richieste provenienti da un singolo dispositivo (che solleverebbe altre questioni di privacy), è difficile razionalizzare perché questo sarebbe necessaria.
Infine, questa dichiarazione: "Woolworths non può, e non collegare questo con chi sta visualizzando tali contenuti". Come ho descritto in precedenza, "non può" non è esattamente corretto in quanto hanno abbastanza dati personali per sapere esattamente quando vado nel negozio, dove vivo, come a telefonarmi e che tipo di uova che mi piace (dipende dalla fedeltà acquisti di registrazione della carta, ovviamente). "Non" è un tipo completamente diverso di vermi a "non possiamo" e abbiamo bisogno di prenderli in parola su questo.

Poiché i dati come questo è semplicemente troppo prezioso per non avere

Con l'avvertenza che sto speculando in modo chiaro e non ho niente altro che una comprensione della tecnologia e le rinunce Woolies ci dà su cui basare questo post del blog, l'opportunità di implementare lo scenario che ho descritto qui deve essere molto allettante. Ho visto alcune delle cose che i più ombreggiato agenzie pubblicitarie in Australia hanno proposto di grandi organizzazioni in passato e se questa opportunità non è stato messo a loro nel modo più forte possibile, mi piacerebbe essere massicciamente sorpreso.
Stiamo già vedendo questo genere di cose accade in natura, ricordare i bidoni della spazzatura che monitorati e mirati persone nel Regno Unito l'anno scorso ? O di passare da wifi, ma ancora nel regno delle pratiche rivenditori ombrosi, come su di riconoscimento facciale di Tesco ? O l'intero"Target conosceva una ragazza era incinta prima della sua famiglia ha fatto" debacle? C'è un modello qui con negozi fisici spingendo regolarmente contro "la linea raccapricciante" di Eric Schmidt e forse, spesso andando al di là di esso.
La scena supermercato in Australia è massicciamente competitivo come sono sicuro che è in altre parti del mondo troppo. I nostri due più grandi catene hanno copped loro giusta quota di cattiva stampa (e cattivo attenzione legale) spingendo i confini sulle cose come sconti di carburante dopo aver utilizzato i loro servizi di shopping, sarebbe davvero essere quel grande una sorpresa se essi sono stati trovati per essere raccolta movimenti dei clienti tramite wifi? E 'difficile vedere un'altra proposta di valore per i piedi i punti di accesso in un ambiente altamente-mobile dove la gente vuole solo per afferrare i loro generi alimentari e uscire dal luogo, Woolies non è esattamente una "destinazione"!

Questo ha tutto per lasciare Vi state chiedendo: se andate a fare shopping e partecipare a la connessione wifi gratuita, è lei che sta acquistando per i prodotti o si diventa il prodotto appena sei arrivato nel raggio d'azione dei loro punti di accesso?

lunedì 24 marzo 2014

OData muove in avanti

Mi piace armeggiare intorno con OData . E dal momento che un certo gigante del settore ha spinto lo sviluppo JavaScript aperto sui propri tecnologie di gran lunga superiori , ho cercato di avvolgere la mia mente intorno a quella lingua usando il mio vecchio amico OData . La funzione di jQuery getJSON aiuta a lavorare con OData , ma è ancora JavaScript .
(Non fatemi parlare su JavaScript . Realtà, sto iniziato , così mi mando le ragioni per odiare la lingua e io li metto in un futuro " 10 motivi per odiare JavaScript " post . Dovrebbe essere abbastanza facile . )
Comunque, tornando al punto : OData sta marciando elegantemente in avanti , con la versione 4.0 essendo questa settimana stata approvata dal consorzio OASIS standard internazionale . Ha percorso una lunga strada da quando è stato introdotto dal gigante del settore Microsoft nel maggio 2011.
In particolare , OData 4.0 e 4.0 OData JSON Format sono stati approvati come standard , con OData 4,0 ATOM essere avanzata e si diresse verso sanzione ufficiale .
" OData fornisce un modo per abbattere i silos di dati e aumentare il valore condiviso dei dati con la creazione di un ecosistema in cui i consumatori di dati possono interagire con i produttori di dati in modi potenti , consentendo a più applicazioni per rendere il senso di un più ampio insieme di dati ", ha spiegato OASIS nel suo annuncio .
Per me , che dice : " OData è un modo semplice per accedere a tutti i tipi di interesse pubblico e privato di dati RSS e presentare le informazioni in visualizzazioni freschi e così via. " È possibile perdersi per ore solo esplorando la quantità incredibile di dati generati dal governo federale , come ad esempio , "Job Openings and Labor Turnover Survey , " per un esempio che è appena successo a catturare la mia attenzione .
Tutti i tipi di chicche sono confezionati in v4.0 , come miglioramenti Entity Data Model , un migliore supporto per i servizi distribuiti , schema dinamico e un modello asincrono per le richieste di dati di lunga durata , per citarne solo alcuni .
Microsoft all'inizio di questo mese ha ottenuto un salto sul sostegno v4.0 , con le librerie . NET core, un client OData e una biblioteca WebAPI pre-release .
" Questo è un momento incredibilmente emozionante per Open Data , come i prodotti e le biblioteche sono rapidamente rev'ing per sostenere v4.0 OData , " ha detto Michael Pizzo di Microsoft nel suo annuncio che elencava tutte le bontà che ho citato qui e di più . "Il supporto per la costruzione di OData client e server V4.0 - compliant in Java , così come consumare OData V4.0 da parte dei clienti JavaScript , è già in corso in Apache Olingo progetto incubatore open source . "
Yi Ding ieri ha fornito alcuni aggiornamenti di stato per le librerie che supportano v4.0 . Ding ha notato che le librerie Java saranno parte del progetto Olingo , che dovrebbe essere completata nel secondo trimestre di quest'anno . Una libreria JavaScript di base , Data.js , sarà anche parte di quel progetto . E il lavoro è stato fatto per accogliere gli sviluppatori C + + , con una biblioteca di anteprima client dovrebbe essere disponibile questo mese . Restate sintonizzati .

Corso Visual Studio - Corso asp.net
Corso C# - Corso PHP - Corso Joomla - Corsi asp.net - Corso Java

venerdì 21 marzo 2014

Formazione della prossima generazione di sviluppatori di essere attenti alla sicurezza in FireBootCamp di SSW

Sentito parlare di FireBootCamp di SSW prima? E 'come quei campi di boot che vedete giù le spiagge locali e parchi ogni mattina, sapete, quelli in cui un gruppo di (apparentemente) partecipanti disposti sono incessantemente martellato da un sergente istruttore-come personal trainer per 30 minuti di sangue, sudore e lacrime (presumo). Ma a differenza di questa folla, la gente FireBootCamp Non poi asciugamano fuori e freddo per il resto della giornata, invece lo fanno, giorno dopo giorno, settimana dopo settimana per un intero bimestre livello di pieno assalto mondo reale coder formazione.
L'idea del FireBootCamp è che è intenso allenamento per aspiranti sviluppatori di software su tutti i buoni pezzi di tecnologie e pratiche di sviluppo Microsoft. La gente va in con un'esperienza molto limitata (o forse nessuno) nel lavorare con questi strumenti e poi venire con una vasta gamma di competenze che hanno affinato durante la costruzione di software real con il supporto professionale di ogni passo del cammino.
Una delle cose che mi piace davvero il modo SSW ha affrontato questo è che hanno ottenuto vari esperti in materia a parlare di parti specifiche dei processi software edificio. Sto parlando di cose come capire l'ottimizzazione dei motori di ricerca, alle prese con API Web e diciamocelo, la cosa più importante di costruire software (ok, una molto importante), la sicurezza. Mi voltai di scatto per una chiacchierata che è stato registrato e pubblicato , che sono felice di condividere con voi qui. (Per inciso, io amo queste impostazioni più intime dove si può avere un po 'di divertimento e di impegnarsi direttamente con le persone, spero vi piaccia!)

mercoledì 19 marzo 2014

Nuovo corso Pluralsight: Web Security e OWASP Top 10 - "The Big Picture"

E ora per la mia quarta rata Pluralsight: più OWASP ! Aspetta - non è stato fatto questo già?! Sì e no.
Il mio primo corso dal mese di aprile dello scorso anno è stato OWASP Top 10 Rischi applicazioni Web di sicurezza per ASP.NET e come suggerisce il titolo, contiene un mucchio di roba su come OWASP applica ai ASP.NET. In realtà esso contiene tanta roba che è oltre 8 ore di formazione approfondita per gli sviluppatori su (quasi) tutto quello che c'è da sapere per proteggere le loro applicazioni web. NET. A detta di tutti, il corso è stato estremamente popolare e ha costituito la base per molti un set predefinito di organizzazione delle risorse di formazione per sviluppatori. E 'anche valutato molto bene - mese su mese il audience sta salendo ed è valutato 4,8 su 5 dalle centinaia di persone che hanno avuto il tempo di segnare esso.
Il grande cambiamento con questo ultimo corso è che è stato progettato per attirare un pubblico molto più ampio sia in termini di profondità (dettaglio del codice) e ampiezza (range di stack tecnologici). In realtà Pluralsight mi ha avvicinato per creare questo corso basato su richiesta popolare di una risorsa "Big Picture" che potrebbe essere consumato non solo da coloro che scrivono il codice, ma dai loro dirigenti e manager di loro manager e fondamentalmente chiunque abbia un interesse acquisito nel la sicurezza delle loro attività web. Si può vivere in PowerPoint e Outlook, e questo sarà ancora un senso!
Il modo in cui ho deciso di avvicinarsi a questo è quello di attenersi alle illustrazioni e spiegazioni di livello superiore di ciascun rischio. Ho usato l'edizione 2013 del Top 10 questa volta (il corso precedente era l'edizione 2010, anche se il contenuto è molto simile) e ho rotto ciascuno dei Top 10 rischi in quattro parti. Mi spiego meglio:
In primo luogo, io do una panoramica dei rischi spiegare i vettori di attacco, le debolezze di sicurezza e gli impatti tecnici. Questa è uscito da materiale di OWASP e aiuta a contestualizzare la gravità relativa di ogni rischio. Ho anche delineare uno scenario di attacco di altissimo livello. Ecco come si presenta per l'iniezione:
Panoramica Injeciton

martedì 18 marzo 2014

Ho messo il mio sito Azure nella posizione sbagliata, e adesso?!

Io ero piuttosto orgoglioso del mio piccolo sforzo settimana scorsa nella produzione Greatest Demo Azure del mondo e da tutti i conti, è stato eccezionalmente bene ricevuto (ehi, cosa ti aspettavi da una delle demo del mondo?!) Comunque, questo fine settimana sono tornato in e ha preso uno sguardo a ciò che lo Stato avevo lasciato il mio abbonamento Azure e ho visto questo:
Sito unico in esecuzione in modalità standard
Vedete il problema? No? Che ne dici di adesso:
Altri siti web che funzionano in Ovest Regione Uniti

venerdì 28 febbraio 2014

Nuovo. NET Compiler Hits CTP 2

Si andrà a sostituire il compilatore JIT64, permettendo programma si avvia più velocemente.
Nuovo, 64-bit Just-In-Time (JIT) di Microsoft ha raggiunto la prossima pietra miliare nel suo sviluppo, con il rilascio della seconda Community Technology Preview (CTP).
CTP 2 di RyuJIT stata proposta sul NET Framework blog.oggi. RyuJIT sostituisce il compilatore JIT64 vecchio, e in ultima analisi aiutare i programmi compilare ed eseguire più velocemente, con una migliore velocità di compilazione e una maggiore qualità del codice.
RyuJIT CTP1 "ha ricevuto una risposta tonante", secondo l'autore del blog, Mani Ramaswamy, Program Manager per il NET dinamica del codice Execution Team.. E 'stato rilasciato lo scorso settembre, di superare alcuni limiti del compilatore precedente, il blog afferma che "il JIT a 64 bit attualmente in NET non è sempre veloce a compilare il codice, significa che è necessario fare affidamento su altre tecnologie come NGen. o sfondo JIT per ottenere all'avvio del programma veloce ".
Il CTP 2 iterazione del RyuJIT "... genera il codice che è mediamente migliore rispetto al JIT64 esistente, mentre continua a mantenere la velocità 2X vince JIT64," gli stati del blog. Si aggiunge anche nuove funzionalità: chiamate tail "opportunistiche" e Edit & Continue. La squadra. NET Code Generation ha anche fatto CTP 2, più veloce e più ottimizzato, così come la fissazione tutti i bug che è stato trovato o segnalati. "... A questo punto, RyuJIT non ha bug conosciuti," bloggato Ramaswamy.
Un problema che alcuni sviluppatori avevano con CTP 1 era che funzionava solo su Windows 8.1 (e Windows Server 2012 R2). Gli sviluppatori resteranno infelici, come CTP 2 ha le stesse limitazioni.
RyuJIT CTP 2 è disponibile per il download gratuito . Gli sviluppatori che utilizzano dovrebbe ricordare che non è pronto per la produzione ancora, quindi non dovrebbe essere usato in tale ambiente. Nessuna data è stata data o implicita nel blog per quando anteprime future del compilatore sarebbero disponibili.

martedì 5 novembre 2013

Come costruire (e come non costruire) una funzione sicura "ricordati di me"



Ecco lo scenario - un utente accede al tuo sito web, torna domani e ... deve eseguire nuovamente il login.L'idea del "ricordati di me" - e diciamocelo, tutti abbiamo visto questo prima - è che il loro stato autenticato viene mantenuto al di là del campo di applicazione immediata di utilizzo. Che cosa questo significa è che si può chiudere il browser, spegnere il PC poi tornare domani o la prossima settimana o il mese prossimo o comunque molto più tardi si determina è un lasso di tempo ragionevole e il sito lo sa ancora chi sono e li offre tutte le stesse caratteristiche che avevano quando hanno lasciato.
Sto parlando di questo ragazzo poco qui:
"Resta collegato" da Facebook
Sembra facile, vero? Può essere, ma come vedrete non è inoltre raro fare un pasticcio assoluto di esso e anche quando non lo fanno bene, c'è una fila di persone pronte a dirvi come si è, infatti, non abbastanza giusto . Cominciamo con il proprio roba sbagliata e lavorare da lì.

Anti-modelli

Questo sembra ovvio, no? Voglio dire l'attuazione di una funzione di "ricordati di me" è abbastanza fondamentale, non è il genere di cose facilmente ottenuto sbagliato, no? Pare di no.
Vorrei condividere due anti-pattern e vedremo i problemi con loro prima di parlare di come farlo nel modo giusto. Il primo esempio viene fornito per gentile concessione di Black & Decker, che sarebbe la stessa B & D di recente ho scritto in sicurezza è difficile, l'insicurezza è facile . Ecco l'idea quando si effettua il login:
Accesso a Black & Decker
Questo è tutto abbastanza standard, il bit interessante viene dopo l'accesso Diamo uno sguardo ai biscotti:
Black & Decker biscotti
Questo è abbastanza impressionante serie di biscotti, ma è quelli evidenziati che sono veramente interessanti. Questi cookies non otterranno impostare se non si seleziona la casella "Ricordami" così la loro funzione è puramente password potrebbero tornare in seguito. Il mio indirizzo e-mail è abbastanza chiaramente in là, ma che non è la mia parola d'ordine, invece sembra essere una sorta di fortezza impenetrabile di crittografia ... appendere - che è la codifica Base64! La cosa di codifica Base64 è che è perfettamente completato da Base64 di codifica che significa che si può staccare, per un posto comebase64decode.org e fare questo:
Base 64 decodifica il cookie Black & Decker
Ora, non tutti usano Base64 come mezzo di "crittografia" (sì, alcune persone veramente fare questo ), e in effetti si tratta di un modo perfettamente legittimo di rappresentare i dati in un formato ASCII, la vera storia qui però è che questa è la mia password seduto lì nel mio browser in testo normale. Vi chiederete - perché questo è un problema? E 'nel proprio browser, giusto? In che modo un utente malintenzionato ottiene?
Ho intenzione di parlare di due modi molto semplici e il primo si riferisce al collegamento in precedenza circa l'insicurezza essere facile. Black & Decker erano esposti i registri ELMAH e in quei registri di stato ogni eccezione non gestita server interno, da qualche parte a nord di 50.000 di loro al momento ho riferito a loro. Quando ELMAH registra un'eccezione si registra anche tutte le intestazioni di richiesta che significa che i cookie sono registrati. Che si combinano con l'enorme numero di eccezioni non gestite essere generate dal sistema e ora avete un tesoro di credenziali utente. Sì, dovrebbero avere assicurato il loro log ELMAH correttamente per cominciare, ma si tratta di un buon esempio di come si può essere facilmente annullata da una semplice configurazione errata.
Ecco un altro:
Accesso a Aussie Agricoltori diretto
Questo è Aussie Agricoltori diretto ed è una abbastanza tipico log vedendo in forma. Facciamo il login, dirgli di "ricordati di me", poi dare un'occhiata ai biscotti:
Aussie Farmers cookie diretti
Oddio, di nuovo stesso problema, ma senza alcuna codifica Base64. In realtà questo è particolarmente grave perché si può fare cose come questa:
Biscotto impropriamente codificate su Aussie coltivatori diretti
XSS tuo biscotto JSON? Certo! L'altra peculiarità è che cambiando la password non cambia il cookie in modo da tornare al sito in seguito e si tenta di accedere in voi con quello vecchio. Oops.
Aussie Gli agricoltori diretti non hanno esposto i registri ELMAH (essendo sorta di PHP aiuta in questo!) Ma hanno altri rischi, quali XSS (per inciso, questo è stato divulgato in modo responsabile e il rischio sommariamente respinto - più volte). L'altra cosa su entrambi i siti di cui sopra è che quei biscotti che tengono le password non vengono contrassegnati come HttpOnly, si può vedere questo nella seconda colonna da destra nelle liste dei cookie. Che cosa questo significa è che lo script client può accedere a quei biscotti che significa che se si può ottenere un pezzo di XSS sul sito - così come è possibile sul sito Agricoltori australiano - è possibile rubare i cookie contenenti le password se è possibile ottenere un cliente di caricare il carico utile XSS (e ci sono molti modi per farlo). L'attributo HttpOnly manca è sciatto per conto di entrambi i siti, ma il nocciolo della questione è la memorizzazione delle password nei cookies che poi li rende vulnerabili tramite altre sviste.
C'è una ragione di più di fondamentale importanza perché entrambe queste pratiche sono negligenti, che stanno proteggendo le credenziali dei clienti utilizzati su altri siti. Ogni volta che un cliente che utilizza la funzione "ricordati di me" su uno dei siti di cui sopra fa una richiesta, c'è una buona possibilità che stanno inviando il nome utente e la password per la posta elettronica, il loro eBay o la propria banca attraverso il filo, a volte in pianura testo, a volte accessibile tramite script client, sempre seduto lì non protetto nel browser. password riutilizzo è dilagante e mentre quei dannati gli utenti dovrebbero prendere qualche sanguinosa responsabilità (sto parafrasando qui!), noi - come sviluppatori - dobbiamoriconoscere che siamo protezione molto più di nostro sito quando gestiamo credenziali.
Così che dovrebbe stabilire se vi sia un vero e proprio fraintendimento di come la funzione "ricordati di me" dovrebbe essere costruito, andiamo ora passare sulle buone pratiche.

Una implementazione di riferimento del campione

Uno dei mantra si sente spesso nel mondo della sicurezza è "non rotolare il proprio - utilizzare ciò che è già stato dimostrato di essere robusto". Questo è molto spesso applicato alla crittografia e schemi di autenticazione, ma in questo caso si può estendere questo per la caratteristica "ricordati di me", al fine di iniziare con una buona implementazione di riferimento prima di approfondire i dettagli.
In un nuovo sito Web ASP.NET MVC 4 provisioning con Visual Studio 2012 si ottiene questo diritto fuori dalla scatola:
Accesso a un'applicazione di esempio ASP.NET
Altri quadri hanno altri modi standard di implementazione di questa funzione, ma questo è un compito facile per me fare riferimento. Quando abbiamo Login con i campi come sopra (cioè non chiedendole di ricordarsi di me), risultati di autenticazione riusciti nel seguente biscotto da restituire:
path = /; HttpOnly
Questo è semplicemente un cookie di autenticazione e nel mondo senza stato che è HTTP è l'unico piccolo pezzo di dati che lega tutte le richieste altrimenti del tutto indipendenti da una persona insieme.Ogni volta che questo unico-a-me cookie viene inviato, il sito web sa che sono io e che ho già autenticato. Lo possiamo vedere po 'più chiaramente quando lo guardiamo nella raccolta Cookies di Chrome:
I cookie provenienti da un'applicazione di esempio ASP.NET senza la casella "Ricordami" controllati
Per inciso, il secondo cookie è un token antifalsificazione per prevenire attacchi CSRF e non ha nulla a che vedere con il nostro stato autenticato. Oltre a questo, non ci sono altri biscotti.
Vediamo ora il login e chiedere al sito di ricordare me, ecco la risposta di biscotto:
expires = Tue, 02-Jul-2013 00:27:05 GMT; path = /; HttpOnly
Aha - si vede che?! Si diventa più chiaro quando lo vedi suddiviso in Chrome:
I cookie provenienti da un'applicazione di esempio ASP.NET con la casella "Ricordami" controllati
Ora abbiamo una scadenza del cookie, che è di 48 ore da oggi al contrario di non avere scadenza del cookie che significa che verrà scartata quando il browser viene chiuso. Diamo uno sguardo più da vicino a questo.

Guardando auth cookie di scadenza

Questo è in realtà un ridicolmente facile costruire la sicurezza ed è solo alla luce degli esempi precedenti che mi piacerebbe anche pensare che vale la pena scrivere, ma qui siamo. In questa implementazione, il "Remember Me" si riduce semplicemente a quando il cookie di autenticazione scade, perché quello che stai facendo veramente qui è il controllo per quanto tempo si desidera che qualcuno a rimanere connesso per, è così semplice.
Nel precedente esempio, il default ASP.NET di utilizzare un cookie di sessione o in altre parole, un cookie che non ha una data di scadenza esplicita e sarà quindi forzatamente scade quando il browser viene chiuso. Questo è un approccio, un altro è impostare esplicitamente un breve periodo di scadenza in modo che, anche se il browser viene lasciata aperta l'utente verrà automaticamente disconnesso dopo un periodo di tempo. Naturalmente è anche possibile controllare questo comportamento sul server e si può anche tenere estendere la durata di un cookie di autenticazione se il sistema viene utilizzato attivamente dal server aumentando la data di scadenza sulla risposta.
Ricordando qualcuno può essere semplice come mantenere vivo il cookie auth. Quanto tempo dovrebbe essere mantenuto in vita per? L'esempio sopra il default è due giorni che è probabilmente un po 'corto per molti usi legittimi della funzione (anche se è facilmente configurabile in ASP.NET), prova a Facebook e anche se avrai i cookie che durano per un anno. Durata inferiore significa meno rischi ma più inconveniente, durata maggiore rende più facile per l'utente, ma aumenta la finestra di potenziale attacco. Diamo un'occhiata a questo rischio in modo più dettagliato.

Sfruttando stato di autenticazione di lunga durata

Mentre non si dispone dell'autenticazione, la sessione non può essere dirottato. Lo so, roba perspicace!Ma sul serio, prendere un caso come Aussie Agricoltori diretto di cui sopra; che cookie scadrà tra sei mesi e combinato con il fatto che non è contrassegnato come HTTP solo e che non hanno difetti XSS nel sito c'è ora una mezza finestra anno in cui solo a seguito di una link potrebbe causare me a consegnare inavvertitamente le mie credenziali per un attaccante. Se questo periodo è stato, diciamo, un mese sì, avrei ancora alcuni gravi difetti nel loro design, ma poi la finestra di opportunità per un attaccante è stato appena tagliato.
D'altra parte, Black & Decker ha un breve periodo di scadenza di una settimana rispetto così nel loro caso con i registri ELMAH a vista, sì, ci fu una serie di brutti errori da parte loro, ma a meno che qualcuno si era connesso con il "ricordati di me" casella evidenziata nella scorsa settimana e ha causato un'eccezione non gestita, le credenziali non sarebbero stati messi in mostra pubblica. Ok, se siete sul sito per cominciare c'è una buona possibilità che stai già effettuato l'accesso (almeno rispetto al caso di agricoltori in cui non si dovrebbe andare consapevolmente nessuna parte nei pressi del sito di perdere la tua password), ma si può vedere come tale profilo di rischio cambia con il periodo di scadenza dei cookie.
Naturalmente alla base di tutto questo è che il cookie auth deve essere attentamente tutelato; attributi HttpOnly e sicuro sono un must assoluto. Tutte le minacce classiche dirottamento restano pertinenti, ma poi di nuovo, ma si sezionare i questa funzione si sta andando a finire con una dipendenza biscotto quindi si sta andando ad avere bisogno di guardare molto, molto attentamente quei biscotti.
In definitiva si tratta di un compromesso che ha bisogno di prendere in considerazione fattori come il valore di un attaccante di dati dell'utente sul sito, la barriera che non viene autenticato pone a un utente di ritorno e il profilo di sicurezza del resto del sito. Per esempio, Facebook ha alcuni dati molto utili di carattere sociale e gli utenti si aspettano un basso attrito (anche senza processo-attrito) al ritorno, più che hanno fatto enormi investimenti nel loro profilo di sicurezza. Aussie Farmer'S, d'altra parte, contiene i dati di identificazione personale degli utenti più informazioni finanziarie al tempo stesso un servizio che le persone si aspettano per l'autenticazione (servizi di pagamento) hanno ancora una scarsa conoscenza di importanti concetti di sicurezza. Sono profili di rischio molto differenti e che dovrebbero essere molto diverse strategie di scadenza del cookie auth.

Rafforzare l'approccio

Ci saranno persone che guardano l'approccio cookie di autenticazione e roteare gli occhi in preda alla disperazione. La cosa di sicurezza è che c'è sempre un modo migliore a seconda del tempo / denaro / complessità che sei disposto ad aggiungere e c'è anche sempre qualcuno pronto a dirti che hai sbagliato!Utilizzando il cookie auth scadenza come punto di partenza, diamo un'occhiata ad alcuni possibili modi di rafforzare l'approccio.
Un argomento contro la lunga scadenza del cookie auth è che stanno efficacemente mantenendo l'utente autenticato e al rischio di attacchi come CSRF o clickjacking. Ovviamente l'applicazione deve esporre altri rischi in ordine per un utente malintenzionato di sfruttare la lunga durata dei cookie, ma l'intera difesa in profondità l'argomento viene in su di nuovo. Un'alternativa è quella di avere un biscotto dedicato calettata contro l'utente che dopo convalida l'autenticità di esso con il server, possono poi avviare una nuova sessione autenticata il loro ritorno. La sessione originale può quindi scadere rapidamente, il trucco è quello di ripristinare una nuova quando l'utente torna con il "ricordati di me" cookie dedicata e comprende alcuni convalida supplementare nel processo.
Un modo per fornire un'ulteriore convalida è includendo l'indirizzo IP dell'utente / user agent / altro segno distintivo del "ricordati di me" cookie. La logica è che questo offre una certa difesa contro dirottamento del cookie. Il problema, naturalmente, è che ci sono casi in cui tali cambiamenti uso legittimo. Nel mondo mobile, in particolare, non è raro per tornare a un sito con un IP diverso. Anche nel mondo delle connessioni fisiche non si può necessariamente fare affidamento su l'ISP fornisce un indirizzo IP statico. Per quanto riguarda gli interpreti, con browser come Chrome e Firefox l'aggiornamento a quello che sembra come ogni altro giorno, a meno che non sei un po 'selettivi su ciò che gli attributi della stringa user agent che stai memorizzare e confrontare che sta per essere un approccio rischioso. Le stesse difese intorno utilizzando attributi utente e uniche per aggiungere sicurezza sono spesso discussi nel contesto di sessione e cookie auth e mentre sono sicuro che ci sono casi di utilizzo validi per questo (torna al settore bancario di nuovo), non posso dire di ' ve effettivamente visto nel luogo in uno qualsiasi dei siti che ho provato prima. C'è probabilmente una buona ragione per questo ...
A mitigazione più pragmatico è quello di separare ancora il cookie auth da un "ricordati di me" cookie dedicato e utilizzare quest'ultimo per ri-autenticare l'utente , ma imporre alcune restrizioni . La realtà è che il processo di persistenza dello stato automaticamente autenticato di qualcuno - attraverso qualsiasi mezzo - introduce compromessi al modello di sicurezza. A mitigazione potrebbe essere quella di richiedere un utente automaticamente ri-autenticato per fornire espressamente le proprie credenziali di nuovo prima di visualizzare alcune categorie di dati o l'esecuzione di determinate attività. Questo non è inaudito anche al di fuori del campo di applicazione del "ricordati di me", si potrebbe vedere che durante l'esecuzione di attività di alto valore, come il bonifico bancario. In questo caso, stiamo dicendo che l'utente autenticato è più a rischio perché c'è più probabilità che non sono chi dicono di essere (cioè qualcun altro si è seduto al PC ed efficace highjacked una sessione).
L'altra tempra possiamo applicare a questo approccio è di assicurare che il cookie utilizzato per ricordare all'utente viene resettato dopo che è stata utilizzata. Questo significa anche invalidarla sul lato server in modo ci deve essere sia l'unicità e la persistenza del valore del cookie, ad esempio un nonce persisteva sia nel database e il cookie. Questo ha il vantaggio di garantire che, se il cookie viene ottenuto da un utente malintenzionato ha ha solo un unico ambito l'uso - e questo è se l'utente non può utilizzare legittimamente prima di loro. C'è un po 'di buona articolo qui che parla di alcune mitigazioni a questo modello e di nuovo, ci sono casi d'uso in cui questo può essere utile, ma che si sta per investire ulteriore sforzo costruirlo e ci sono casi in cui sarà utenti legittimi disagi (cioè cercando di ricordare te sullo stesso sito su più PC).
L'ultima cosa degna di nota è che gli stessi principi di gestione degli account che devono essere considerati per le sessioni autenticate attivi sono rilevanti nel "ricordati di me" contesto. Ad esempio, sono più sessioni autenticate contemporaneamente consentite da quello utente? Se l'utente cambia la password ti è scollegare le altre sessioni? Può un amministratore di terminare la sessione autenticata? Ci sono tutti i tipi di problemi che vengono in su che sono in realtà parte della discussione su come sessioni autenticate sono verificati e gestiti, la discussione qui è solo su come ripristinare quello.

Quando non si deve permettere "ricordati di me"? (E alcune alternative intermedia)

A volte semplicemente non ha senso per consentire a un utente autenticato di rimanere autenticato per lunghi periodi di tempo. Bancario, ad esempio, è il caso d'uso stereotipato per quando si desidera forzare una nuova autenticazione al più presto possibile in quanto i rischi sono troppo significativi per lasciare le sessioni del browser non utilizzati autenticate in giro il posto.
Ma vi è in realtà un po 'di terra di mezzo che può essere presa qui:
Una casella "ricordati di me" sul sito web American Express
Questo non è del tutto quello che sembra - quando si torna dopo una sessione scaduta, dove lei ha chiesto al sito di "Remember Me", otterrete questo:
Il sito American Express pre-popolare il nome utente sul ritorno
Ho non offuscato il nome utente, il nome utente come appare sopra le stelle sono memorizzati in un cookie che dura per tre mesi insieme ad alcuni altri dati che identificano inevitabilmente l'utente.Francamente, non vedo un sacco di valore in questo, ricordando il nome utente di solito non è il problema!
Ma, inoltre, non deve essere tutto o niente, non c'è via di mezzo. Ad esempio, il punto che ho fatto in precedenza su ri-autenticare prima di processi chiave vengono eseguite se la sessione fosse stata ripresa da una funzione di "ricordati di me". E 'un po' il meglio dei due mondi.

In conclusione ...

Questa è una di quelle caratteristiche che sembra una buona idea, al momento (e talvolta lo è) e di solito è molto facile da ottenere, almeno sufficientemente giusto per ogni uso. Francamente, è ancora un po 'sconcertante come sbagliato i due esempi precedenti si sono particolarmente se si considera che sarebbe stato sufficiente per estendere semplicemente la durata del cookie che già hanno!
L'altro punto di togliere da questo post di là solo la meccanica della funzione "ricordati di me": così la sicurezza è un multi-tiered, bestia come interdipendenti. Potreste essere in grado di cavarsela con le credenziali in cookie di per sé, ma che si combinano con la situazione ELMAH o mancanti solo HTTP attributi e difetti XSS e improvvisamente un sciocche seppur pratica relativamente innocuo diventa un rischio serio. Di che si trattava "difesa in profondità" di nuovo?!