Author Archive for gialloporpora

Come selezionare il testo nelle pagine di Spotify e altri siti

Probabilmente qualcuno avrà notato che in molti siti, uno fra tutti è Spotify, quando si seleziona del testo questo non può più essere copiato, o meglio non può proprio essere selezionato.

Questo a causa di una specifica di CSS3 che introduce una nuova proprietà, ancora sperimentale e non adottata da tutti i browser o adottata con differenti specifiche, che consente al web developer di decidere se l’utente può selezionare il testo di ogni elemento HTML. Questo potrebbe anche essere utile se si usa con attenzione questa proprietà per non far selezionare la fuffa di vario genere (intestazione, elementi social, vari link interni), permettendo di copiare solo il testo dell’articolo. Purtroppo però, come uno può anche immaginare, è molto più probabile che venga usata esattamente per l’obiettivo opposto e cioè quello di non far selezionare il contenuto “interessante” e proteggerlo dai vari copia/incolla.

Per fortuna, in Firefox, però, è sempre possibile fare un reset di questa proprietà tramite il file userContent.css e far diventare tutto selezionabile. Per selezionare il testo delle pagine di Spotify per esempio, includere questo codice:

@-moz-document domain(spotify.com){
    *{
        -moz-user-select: text !important;
    }

Riavviare e aprire, ad esempio, questa pagina.

Per maggiori informazioni su questa proprietà di selezione testo e la sua implementazione sui vari browser web, visitare questa pagina su MDN.

Come attivare OAuth2 per i vecchi account GMail in Thunderbird

AGIORNAMENTO: contrariamente a quanto detto inizialmente, è possibile utilizzare OAuth2 solo con account Imap e non con account POP3 (Bug 1174505).

Due giorni fa, , è stato rilasciato Mozilla Thunderbird 38.0.1. Una delle principali novità di questa versione è il supporto al protocollo di autenticazione OAuth2 (bug 849840) come riportato nelle note di versione:

GMail supports OAuth2 authentication, removing the need to manually select "allow less secure applications" in Google options for the account. (bug 849540)

Ciò significa che i nuovi account GMail che verranno creati in Thunderbird utilizzeranno il nuovo protocollo per effettuare l’accesso a GMail. Chi però, come il sottoscritto, ha un account GMail configurato da tempo in Thunderbird, dovrà modificare manualmente la configurazione dell’account per sfruttare OAuth2. Di seguito viene spiegato come fare.

Logo di OAuth via Wikipedia

Che cos’è OAuth2 ?

OAuth2 è la versione 2.0 del protocollo sviluppato da Blaine Cook e Chris Messina, con tale protocollo un’applicazione può accedere e utilizzare un servizio online senza comunicare la password. In pratica (leggere l’articolo di Wikipedia per maggiori dettagli) viene rilasciato un token crittografico che consente all’applicazione di accedere senza dover fornire la password, una specie di cookie di sessione. Al primo utilizzo verrà richiesto di effettuare il login presso il servizio di cui si vogliono utilizzare i dati (esempio la mail di Google, Twitter, ecc.) e di autorizzare l’applicazione a effettuare delle operazioni per proprio conto. A questo punto verrà rilasciato un token che l’applicazione salverà e che utilizzerà per accedere al servizio in futuro. In questo modo non sarà più necessario fornire la password per utilizzare l’applicazione. La maggiore sicurezza sta nel fatto che l’applicazione non conosce la password e non ha un accesso completo al proprio account GMail e che le autorizzazioni di accesso possono sempre essere revocate accedendo all’account GMail. Ora, nel caso di un client di posta affidabile come Thunderbird che salva le password in locale con le protezioni di vario livello (account utente di sistema ed eventuale master password) questo potrebbe non sembrare un gran vantaggio, però si pensi a le migliaia di app che vengono create ogni giorno da aziende software o sviluppatori semisconosciuti che vogliono, ad esempio, accedere al proprio account per scaricare la posta o, più semplicemente, per accedere ai soli contatti della rubrica. L’affidabilità di queste famigerate app non è così conprovata e dargli la propria password (con cui potrebbero fare qualunque cosa anche eliminare l’account) non è molto sicuro, molto meglio concedergli un accesso “temporaneo” che può essere sempre revocato in futuro se si dovesse scoprire che queste app hanno dei comportamenti non desiderati.

Inoltre, si può in questo modo definire una serie di autorizzazioni, ad esempio prevedere delle autorizzazioni diverse per un’app che voglia solo accedere e salvare i contatti email e un’app che voglia invece avere pieno accesso alle email, inviarle, salvarle e così via. In qualunque caso, questi permessi potranno sempre essere revocati a discrezione del proprietario dell’account o di chi conosce la password :-P.

Come attivare OAuth2 in Thunderbird?

In Thunderbird, se viene creato un nuovo account di posta GMail questo utilizzerà di default la modalità di autenticazione OAuth2, però se, come nel mio caso, si ha un vecchio profilo con degli account GMail già configurati (non importa se POP3 o Imap) sarà necessario effettuare manualmente la modifica. La cosa è molto semplice.

Andare in Strumenti → Impostazioni account → Nome account → Impostazioni server; e alla voce Protocollo di autenticazione selezionare OAuth2 (dovrebbe essere impostata su password normale).

Ritaglio del pannello Impostazioni account di Thunderbird con in evidenza la voce Protocollo di autenticazione OAuth2

La stessa cosa bisogna farla per il server SMTP, sempre dal pannello Impostazioni account selezionare Server in uscita (SMTP), fare doppio clic sul server GMail e effettuare la modifica. Salvare e provare a scaricare la posta o inviare una mail.

Al primo utilizzo Thunderbird aprirà una finestra con la pagina di Google dove sarà possibile effettuare il login e dare il consenso.
A questo punto è anche possibile cancellare le password salvate da Thunderbird per l’account GMail (Strumenti → Opzioni → Sicurezza → Mostra password).

La password servirà nel caso si cambi dispositivo o vi ci si sposti fuori dall’area geografica in cui è stato consentito l’accesso, questo perché GMail richiederà un’ulteriore autorizzazione per confermare che siate realmente voi e che non sia qualche ostile che voglia accedere impropriamente all’account.

Disattivare il supporto per le “App meno sicure”

Questa è un’operazione facoltativa e, anzi, è meglio riflettere bene prima di effettuarla.

Da metà luglio 2014 Google ha deciso che la l’unica modalità di accesso ai suoi server è OAuth2, però, essendo ancora molti client di posta e altre applicazioni non aggiornati per utilizzare questa specifica, ha previsto di “concedere” il vecchio accesso tramite password attivando un’opzione denominata “Supporto App meno sicure”. In realtà ha fatto anche di più, attivando automaticamente questa opzione a tutti coloro che in quella settimana avevano scaricato la posta via POP3 o Imap, questo per evitare un sacco di richieste di assistenza.

ù

Infatti, con questa opzione disattivata (il default per chi crea una nuova casella di posta GMail o per chi in quella settimana non abbia consultato la posta via IMap o POP3) senza effettuare la modifica di cui sopra non sarà più possibile scaricare la posta. Non sarà nemmeno possibile utilizzare applicazioni che non supportino OAuth2, ad esempio estensioni che sincronizzano la rubrica di GMail o altre applicazioni di vario genere che si utilizzano per leggere la posta. Per questo è necessario assicurarsi di non utilizzare tali applicazioni prima di disattivare il supporto alle app meno sicure. Nel caso non si usino altre applicazioni che non siano Thunderbird, potete accontentare Google e disattivare il supporto a queste app meno sicure visitando questa pagina.

Personalmente credo che se per un anno si è utilizzato un account GMail nell’inconsapevolezza di utilizzare “un’app meno sicura” senza problemi, si possa continuare a farlo, anche perché è quello che si fa implicitamente con qutti le altre caselle di posta non GMail.

È altresì vero però che ci sono dei reali vantaggi di sicurezza nell’utilizzare OAuth2, quindi si scelga pure liberamente cosa fare.

[Indovinello] Vediamo chi sa piegare un foglio di carta…

questo indovinello mi è venuto in mente dopo aver visto una conferenza su TED e l’ho messo sul mio profilo Facebook, però ho visto che sembra più complicato di quanto io pensassi e quindi, visto che passavo di qua per aggiornare WordPress, lo condivido anche qui.

Lo scopo dell’indovinello non è quello di stabilire l’esatta distanza in millimetri, metri o chilometri, ma di scegliere una delle dieci opzioni fra quelle proposte (una è corretta).

L’indovinello

Supponendo di avere un foglio di carta dello spessore di un decimo di millimetro (è lo spessore di un normalissimo foglio di carta) “abbastanza grande” da poter essere piegato per 50 volte, a quale delle seguenti grandezze si avvicina lo spessore del blocco dopo la cinquantesima piega?

Possibili risposte

  1. spessore di una moneta (qualche millimetro)
  2. una sigaretta (qualche centimetro)
  3. l’altezza di una persona adulta
  4. la torre Eiffel (324 metri)
  5. il monte Everest (8848 metri)
  6. il fiume Po (650 chilometri)
  7. un giro del mondo (40000 chilometri)
  8. la distanza Terra Luna (384000 chilometri)
  9. la distanza Terra Sole (150 milioni di chilometri)
  10. un anno luce o più (circa 63000 volte la distanza Terra Sole o più)

Per determinare l’esatto spessore raggiunto probabilmente serve una calcolatrice, siccome è sufficiente indovinare l’ordine di grandezza, si può fare anche a mente facendo una buona approssimazione, comunque Google è anche un’ottima calcolatrice.

Se qualcuno obietta, a ragione, che l’ingegneria dei materiali non ci consente di piegare 50 volte un foglio di carta, può continuare segando il blocco di carta e mettere le due metà una sopra l’altra.

Soluzione

Brendan, addio e grazie per tutto il pesce

In questi giorni la nomina di Brendan Eich ad amministratore delegato (CEO) di Mozilla Corporation e le successive dimissioni hanno generato molte discussioni in rete e sui media tradizionali. In questo breve articolo vorrei riassumere come si sono svolti i fatti e, soprattutto, ricordare quanto importante sia stato il contributo di Brendan per il progetto Mozilla e per tutto l’open Web in generale, tanto importante da non poter essere dimenticato o cancellato da una, sciocca e pretestuosa, polemica. Sciocca e pretestuosa è la polemica, non la questione sul matrimonio fra persone dello stesso sesso che invece è un tema molto importante e molto delicato che proprio per questo non voglio assolutamente affrontare su questo blog che non ha mai trattato simili argomenti. Ci sono luoghi più adatti a farlo.

Qui sono disponibili, in italiano, le FAQ sui principali eventi che hanno riguardato la vicenda.

Foto di Brendan Eich
Il 24 marzo 2014, dopo un anno in cui la poltrona era vacante, Brendan Eich, già direttore tecnico (CTO) in Mozilla, viene nominato nuovo amministratore delegato di Mozilla Corporation, la società commerciale controllata da Mozilla Foundation e responsabile dello sviluppo di Firefox. Nella stessa seduta viene ufficializzato l’addio al consiglio Mozilla di Gary Kovacs e Ellen Siminoff, che da tempo avevano reso pubblica la propria volontà di lasciare il consiglio non appena fosse stato nominato un nuovo amministratore delegato. Un terzo membro, John Lily, in disaccordo con la scelta di nominare Brendan CEO, per motivi legati alla gestione commerciale e finanziaria della società e che nulla hanno a che vedere con le opinioni personali di Eich, decide egli stesso di abbandonare il consiglio.

La reazione nella community Mozilla alla nomina di Eich come CEO è stata molto positiva: un fondatore – che ha sempre sostenuto l’open Web e la privacy – e un programmatore software – inventore fra l’altro di JavaScript – al comando e non un Marchionne a 32 o 64 bit.

Ben diversa è stata la reazione nella comunità LGBT americana che non ha gradito tale nomina a causa di una vecchia vicenda balzata alle cronache nel marzo 2012 quando sono stati resi pubblici i nomi dei donatori che avevano sostenuto la Proposition 8, un referendum per abrogare la legge californiana che permetteva il matrimonio fra persone dello stesso sesso e alla quale Eich aveva contribuito con una donazione di 1000 $. Molti siti a sostegno della causa omosessuale hanno quindi iniziato a esporre banner per boicottare Firefox, alcuni dipendenti di Mozilla Foundation hanno iniziato una protesta su Twitter e alcuni sviluppatori indipendenti hanno fatto sapere che non avrebbero più sviluppato codice per Firefox o app per il Marketplace Mozilla.

Brendan Eich con un post sul suo blog ha tenuto a sottolineare che le sue idee personali non avrebbero in nessun modo inciso nelle sue valutazioni come dirigente. Nessuno infatti aveva mai avuto nulla da ridire sul rispetto e il trattamento riservato da Eich ai dipendenti LGBT di Mozilla, prima o dopo il diffondersi della notizia nel 2012, anzi questo è stato motivo di sorpresa perché nessuno poteva immaginare che Eich sostenesse una tale causa. In molte interviste ha ribadito di voler proseguire come CEO e anche persone che biasimavano – avendo tutto il diritto di farlo – la sua presa di posizione del 2008 erano concordi nell’affermare che doveva essere giudicato sui fatti.

La polemica è continuata per una decina di giorni finché Brendan Eich, resosi conto di essere diventato un peso per Mozilla, ha deciso di dimettersi dalla carica di amministratore e abbandonare Mozilla:

I may get to it, but not working at Mozilla. Ive resigned as CEO and Im leaving Mozilla to take a rest, take some trips with my family, look at problems from other angles
I encourage all Mozillians to keep going. Firefox OS is even more daunting, and more important. Thanks indeed to all who have supported me, and to all my colleagues over the years, at Mozilla, in standards bodies, and at conferences around the world. I will be less visible online, but still around.

Credo che lavorerò per questo obiettivo, ma non in Mozilla. Ho dato le dimissioni da CEO e lascerò Mozilla per prendermi una pausa, viaggiare assieme alla mia famiglia e guardare le cose da una prospettiva diversa.
Incorraggio tutti i mozilliani a andare avanti. Firefox OS è una sfida ancora più difficile e più importante. Ringrazio tutti coloro che mi sono stati vicini e tutti i colleghi che hanno lavorato con me in questi anni in Mozilla, all’interno delle commissioni per gli standard web e nelle conferenze in giro per il mondo. Sarò meno visibile online ma sempre in circolazione.

La presidente della fondazione Mozilla (che controlla la società commerciale) Mitchell Baker ha ufficializzato l’abbandono di Brendan Eich come CEO con delle scuse alla comunità e l’impegno a “fare meglio” in futuro:

We didn’t act like you’d expect Mozilla to act. We didn’t move fast enough to engage with people once the controversy started. We’re sorry. We must do better.

Non ci siamo comportati come ci si sarebbe aspettati da Mozilla. Non ci siamo mossi abbastanza velocemente per comprendere e entrare in contatto con le persone appena la polemica è iniziata. Siamo dispiaciuti. Dobbiamo fare meglio.

Personalmente non mi interessa molto la questione sul matrimonio fra persone dello stesso sesso, almeno non mi interessa parlarne qui sul blog, sono molto più interessato al fatto che una delle figure storiche e più importanti abbia abbandonato per sempre Mozilla, lasciando un grande vuoto (non solo affettivo ma anche effettivo: ora Mozilla è senza CEO e senza CTO).

Di seguito un breve riassunto di cosa ha fatto Brendan Eich per Mozilla e più in generale per l’open Web. Ringrazio @prometeo per tutte le informazioni tecniche riportate qui di seguito.

Dopo aver lavorato per Silicon Graphics e MicroUnity Systems Engineering, nell’aprile del 1995 Brendan Eich entra in Netscape communication per lavorare all’omonimo browser.
In dieci giorni, per rispettare le scadenze di uscita della versione 2.0 di Netscape, ha sviluppato, col nome iniziale di Mocha, il linguaggio ora noto come JavaScript, nome che venne scelto per scimmiottare quello che ai tempi era il linguaggio a oggetti più diffuso, Java, con cui però non ha nulla in comune, anzi questa scelta è troppo spesso motivo di confusione tra gli utenti.

Ogni volta che fai clic su un Mi piace, ogni volta che vedi la pagina modificarsi, ogni volta che dei contenuti dinamici si caricano, ogni volta che usi un’app e in generale ogni volta che usi un browser questo è possibile grazie a JavaScript.

Quando nel 1998 il team responsabile dello sviluppo del browser Netscape, che nel frattempo era stato assorbito da Aol, decideva di staccarsi da Aol per proseguire in modo indipendente abbracciando la filosofia dell’open source e dell’open Web, Brendan fu uno dei leader della scissione e lavorò gratuitamente assieme a Mitchell Baker per rendere tutto ciò possibile.

Quel team si chiamava Mozilla, nome che deriva dalla storpiatura dell’inglese “Mosaic Killer”. Mosaic era infatti, a quei tempi, il principale rivale di Netscape come browser web.
Di seguito ha migliorato il linguaggio JavaScript e, come membro del W3C, lavorato alla standardizzazione di JavaScript con il nome di ECMAScript (pessimo nome poco noto e che difatti nessuno utilizza).
Ha riscritto più volte il motore JS di Mozilla e ha supervisionato la nascita e l’evoluzione dei vari compilatori JIT1 per JS (SpiderMonkey, TraceMonkey, JägerMonkey, ecc.). Insieme a Ben Goodger ha orchestrato la nascita di Phoenix, diventato poi Firefox.

Più di recente è stato la mente dietro Rust, il linguaggio sviluppato da Mozilla in collaborazione con Samsung, che dovrebbe essere usato per scrivere un nuovo motore di rendering per il mobile molto più sicuro di quelli odierni.

Quindi, da mozilliano, da geek, da sostenitore dell’open Web e dell’open source:<script type="text/javascript">document.write("Addio e grazie per tutto il pesce, Brendan");</script>


  1. l’engine JavaScript è quel programma interno del browser che analizza il codice Javascript e produce il risultato desiderato. I compilatori JIT sono dei compilatori a runtime, cioè dei programmi che convertono il codice in linguaggio macchina o altro linguaggio di basso livello durante l’esecuzione e non, come i normali compilatori, in una sessione separata effettuata appositamente per produrre l’eseguibile. SpiderMonkey è il nome in codice del motore (engine) JavaScript di Firefox e TraceMonkey e JägerMonkey sono i nomi in codice dei compilatori JIT di SpiderMonkey. 

Heartbleed: il peggior bug di sempre

AGGIORNAMENTO: l’articolo è stato aggiornato aggiungendo i link alle possibili minacce lato client di Heartbleed.

Questa settimana si è parlato molto di questa falla che affligge l’implementazzione di Heartbeat in OpenSS. La falla è talmente grave che si è guadagnata un bel nome tutto suo – e non l’anonimo CVE-2014-0160 – e persino un sito web dedicato. Ecco cosa ne pensa uno dei maggiori esperti di criptografia e sicurezza a livello mondiale, Bruce Schneier:

“Catastrophic” is the right word. On the scale of 1 to 10, this is an 11. L’aggettivo giusto è: catastrofico. In una scala da 1 a 10, questo vale 11.

Ma vediamo di cosa si tratta di preciso.

Che cos’è Heartbleed?

Prima vediamo di capire che cosa sono OpenSSL e heartbeat. OpenSSL è una libreria opensource che implementa un insieme di tecnologie criptografiche ed è molto utilizzata dai server web per gestire le connessioni https. Il protocollo https è quello che permette uno scambio sicuro dei dati fra il client [leggi browser, programma di posta, app, eccetera). Quando ci si collega via https il server fornisce una chiave pubblica al programma che la utilizza per cifrare tutti i dati inviati. Anche in caso che un terzo malintenzionato (di solito il povero Eve) riesca a venire in possesso di quei dati (password, cookie di sessione, eccetera) esso non potrà mai decifrarli. Solo il sito che ha la chiave privata è in grado di decifrare i dati. Inoltre, il protocollo https garantisce in modo inequivocabile che il sito sia veramente chi dica di essere, se il programma non valida la connessione (non mostra il lucchetto), significa che è in corso una frode web.

OpenSSL è il software opensource (lato server) che rende tutto ciò possibile. Può ovviamente essere scaricato e utilizzato per effettuare diverse operazioni come la cifratura di file, calcolarne l’impronta digitale (hash), effettuare operazioni sulle chiavi, visualizzare informazioni sui certificati e effettuare conversioni fra vari formati di certificati e dati criptografici. Non è comunque un software a portata di tutti.

heartbeat (battito cardiaco) è una specifica illustrata nella RFC 6520 e serve per mantenere attiva una connessione fra client e server anche se non ci sono dati da scambiare. Essa serve a entrambi per confermare che la controparte sia ancora connessa e funzionante, insomma per vedere se il loro cuore batte ancora o no.

heartbeat funziona nelle due direzioni, però per capire come funziona l’attacco possiamo limitarci al caso in cui sia il client (leggi bot maligno) a fare la richiesta e il server con la versione vulnerabile di OpenSSL a rispondere. Nella specifica è indicato che il client debba fornire al server questi due dati:

  1. un payload (dati che vengono inviati)
  2. la dimensione del payload

e il server deve restituire, fondamentalmente, il payload. Se ciò avviene il client sa che la connessione è ancora attiva.

Heartbleed (emorragia cardiaca) è un bug nell’implementazione di OpenSSL di questa caratteristica. In pratica OpenSSL invece di rimandare indietro il payload ricevuto dal client rimanda indietro dei dati a caso presi dalla memoria. Questo avviene quando un client “mente” inviando un payload di, ad esempio, 1 byte e dicendo al server “ti ho inviato 64kb” (che è la massima dimensione possibile per il messaggio). A questo punto il server, invece di rimandare al mittente il byte dicendogli “sei un bugiardo”, riempie il messaggio di ritorno con 64kb presi a caso in memoria. In altre parole è possibile interrogare il server e farsi dare 64kb di dati immagazzinati in memoria. Questi dati possono essere le password (in chiaro) degli utenti, i cookie di sessione, dati riservati dei pagamenti in-app e le chiavi private con cui il server decifra il traffico, “sicuro”, in entrata.

Ma se questo non bastasse, questo tipo di connessioni non vengono registrate dal server. Non è quindi possibile né conoscere chi ha rubato i dati e nemmeno conoscere se dei dati sono stati rubati! Il furto perfetto. Nessun indizio viene lasciato. Credo che questo basti per spiegare perché si tratti di una minaccia di livello 11. Una backdoor perfetta: difficile da scoprire, infatti, a meno di analizzare il codice riga per riga, questo tipo di attacco non risulta nei log dei server che non possono nemmeno rendersi conto di essere stati violati. e per fortuna che OpenSSL è opensource :-).

Il dubbio, dopo le notizie fatte trapelare da Edward Snowden nell’ultimo anno, che sia una backdoor messa lì da qualcuno (leggi, un nome a caso, NSA) è forte. Però probabilmente si tratta di un semplice errore di programmazione di cui si conoscono gli autori. A proposito invito a leggere [questo interessante articolo su Lega Nerd.

È sviluppato da 15 sviluppatori “volontari”, che non hanno budget ne le risorse adeguate per manutenere e gestire una cosa di questo livello. Inoltre, non è assolutamente nato per fare quello che fa oggi. E dall’industria di settore, sopratutto quelle 3 o 4 aziende che emettono il 90% dei certificati al mondo (e che si stanno strofinando le mani per il business della riemissione, altri soldi per loro) non scuciono un soldo per lo sviluppo dello stesso.

Se volete sapere se un sito che state visitando è vulnerabile sfruttando hearbleed, questa estensione per Firefox permette di visualizzare un bel avviso nella pagina.

Oltre alla vulnerabilità dei server Trend Micro riporta che la versione 4.1.1 di Android è stata distribuita con il modulo Heartbeat attivo di default ed è possibile sfruttare Heartbleed per carpire le informazioni personali degli smartphone con questo sistema operativo.

XKCD

Chiudo traducendo la, [bellissima, vignetta][5] di XKCD di martedì.

Vignetta XKCD

Al passaggio del mouse: [Ne ho viste cose che voi umani non potete immaginare] Ho guardato alcuni dei dati dei siti vulnerabili e erano, mostruosi. Ho visto, senza che nessuno se ne accorgesse, email, password, i suggerimenti per recuperarle, chiavi SSL e cookie di sessione, server famosi pieni di indirizzi IP dei visitatori. Navi da combattimento in fiamme al largo dei bastioni di Orione,raggi C balenare nel buio vicino alle porte di Tannhäuser. [E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia.] Probabilmente è ora di sistemare OpenSSL.

Megan: heartbleed deve essere il peggior bug di sicurezza web di sempre Cueball: Peggiore finora. Dacci tempo. Megan: Intendo dire: questo bug non è solo un problema di vulnerabilità della criptografia. Megan: Permette ai visitatori dei siti di farsi dare una raccolta di dati a caso dalla memoria. Megan: Non riguarda solo le chiavi. Riguarda il traffico dati. Riguarda le mail, le password e le nostre fiction erotiche. Cueball: È tutto compromesso? Megan: Beh, l’attacco è limitato ai dati salvati nelle memorie dei computer. Cueball: Quindi la carta è sicura. E anche le tavolette d’argilla. Megan: Anche la nostra immaginazione. Cueball: Capisco, noi staremo bene.

AGGIORNAMENTO: Come segnalato da @Emanuele nei commenti questa vignetta di XKCD spiega in modo molto semplice di cosa si tratta.

Vignetta XKCD

Link utili

[

Tra i mari e fiumi navigando su gelide acque con pesci colorati

Qualcuno si starà chiedendo se l’autore del post, cioè il sottoscritto, faccia uso di sostanze stupefacenti durante la scrittura dei post. Tranquilli, non è questo il motivo per il titolo di questo post. Che cosa significa il titolo, allora?

Risposta: nulla è un esperimento di pigreliano (vedi sotto).

Il pigreliano è una parola che ho appena inventato per tradurre l’inglese pilish. E che cos’è il pilishπ

Da questo articolo di Alex Bellos sul Guuardian, il pilish è una forma stilistica di scrittura che impone di utilizzare delle parole la cui lunghezza sia esattamente quella delle cifre del π. Come tutti sanno, π è quel, fantastico, numero irrazionale trascendente che (che lo sia non è semplicissimo da dimostrare, però credeteci sulla fiducia) misura la semicirconferenza di raggio unitario.

3.1415926535897932384626433832795028841971693993751058209749445923

quindi, in pigreliano la prima parola dovrà essere lunga 3 caratteri, la seconda un carattere, la terza 4 caratteri e così via. Solo per gioco ho provato a creare una frase in italiano di senso compiuto usando le prime 11 cifre decimali (che sono le uniche che riesco a ricordare a memoria :-P) e il risultato è il titolo di questo post.

Tra = 3
i = 1
mari = 4
e = 1
fiumi = 5
navigando = 9
su = 2
gelide = 6
acque = 5
con = 3
pesci = 5
colorati = 8 (la prima versione su twitter era con cangianti ed è sbagliata perché io ricordo a memoria la versione arrotondata per eccesso con il 9 al posto dell'8)

Se qualcuno riesce a fare meglio del sottoscritto, i commenti sono i benvenuti :-D. Se poi riuscite addirittura a scrivere un vero racconto, come ha fatto Mike Keith (fare riferimento all’articolo del Guardian), beh, siete dei geni!

Altri esempi notevoli di frasi in pilish si possono trovare nella pagina di Wikipedia in inglese.

Un altro link simpatico (via @verascienza), se come me amate il π, questo sito vi permette di ricercare un qualunque numero (ad esempio la data di nascita) nelle prime 200 milioni di cifre del π, dicendovi esattamente la posizione e il numero di occorenze della stessa. Nel mio caso, la mia data di nascita è contenuta 4 volte, prima occorrenza alla posizione 10671962

purtroppo questo post è in ritardo di tre giorni, infatti il 14 marzo, nei paesi anglosassoni che scrivono la data in formato Middle Endian, sarebbe stato il π day (3/14). Quindi, anche se in ritardo, buon π day a tutti 😀

Il prossimo anno sarà il 3/14/15, quindi un super π day. Speriamo per quel giorno di aver trovato una frase che utilizzi almeno una ventina di cifre 😀

Che cos’è il codec HDvid per Firefox, Chrome o IE? Risposta: un malware

La scorsa settimana un amico mi ha chiesto se installare o meno un fantomatico HDvid codec per guardare in streaming una serie tv online. Risposta veloce: NO!.

In pratica, da una settimana, in tutti i siti che propongono i link per guardare gli streaming delle serie TV o di alcuni film, viene chiesto di installare questo codec per poter accedere al video. Visitando una di quelle pagine ho notato che tutti i link proposti rimandano a siti in cui si chiede di installare codesto codec, in passato invece c’erano anche dei collegamenti a siti in cui il solo plugin Flash era sufficiente, senza dover installare ulteriori, inutili, codec. La giustificazione per installare il codec HDvid è che con questo codec ogni filmato sarà visibile in alta qualità. Già questo dovrebbe far riflettere: nessun codec può riprodurre un file in HD se non è stato codificato a monte in HD.

Questo è il tipico messaggio che appare quando si visita uno di quei siti:

Aggiorna il tuo HDvid Codec per Firefox per poter guardare questo video online.

Al posto di Firefox apparirà il nome del browser in uso: i malware non fanno alcuna distinzione di sesso, razza, religione, convinzioni politiche o browser usato, per loro tutto va bene. Di solito cliccando sul link si viene rimandati alla pagina di download. In alcuni siti può pure aprirsi direttamente la pagina di download quando si schiaccia il pulsante Play nel riproduttore in Flash.

Cercando un po’ con Google appaiono vari risultati, in tutti più o meno si dice che si tratta di malware (cosa che uno può intuire anche senza cercare con Google :-) ). Questo è il risultato della query a WhoIS per il dominio da cui viene scaricato il codec:

Risultato della query a WhoIS per il dominio hdvid-codec.com

ora è noto a tutti i marinai di diffidare da chi batte bandiera panamense, direi che possa valere lo stesso per un navigatore del Web.

Se ciò non fosse sufficiente a convincersi della natura maliziosa di quel file eseguibile, questo è il risultato di VirusTotal del file che ho scaricato e che sarebbe il codec per Firefox:

HDvid-codec-FF.exe
SHA1: de9a8dc706f63c36441db3406e82a93650587d93
SHA256: 87082e5a663a00dd8b4d51dd261d0660173c18649dd7ce82e1ab2c2145f19005
Rilevato come malware da:
GData   NSIS.Adware.OneClickDownloader.B    20140317
Kingsoft    Win32.Troj.Generic.a.(kcloud)   20140317
Malwarebytes    PUP.Optional.OneClickDownloader.A   20140317`

Rapporto VirusTotal “`

Quindi, concludendo, quel file è un malware e non va assolutamente installato. Più in generale: mai installare codec proposti da siti che propongono materiale illegale.

Se per sbaglio avete già installato quella schifezza, consiglio di provare a rimuoverlo utilizzando uno dei tre software che riescono a identificarlo come minaccia. Personalmente non conosco GDATA e Kingsoft e consiglio Malwarebytes che può essere scaricato gratuitamente.

diff.py un piccolo script in Python che esporta il diff in formato HTML

Ieri mentre stavo leggendo la documentazione di Python per capire come funziona il nuovo sistema di formattazione delle stringhe e cercare di passare un po’ alla volta tutti i miei, piccoli, script alla 3.0 mi sono imbattuto per caso in uno script molto interessante che se ne sta tranquillo in tools/scripts/. Lo script si chiama diff.py e fa quello che ci si aspetta dal nome, analogamente al comando diff con una utile funzione aggiuntiva e cioé l’esportazione del diff in formato HTML.

Leggere un diff in formato HTML fa una grossa differenza, nel senso che è molto più leggibile e consultabile.

Il comando da dare per ottenere il file diff in formato HTML è il seguente:

f.py file1 file2 -m > diff.html

Spiegazione

  • file1 – È il file con le ultime modifiche.
  • file2 – È il vecchio file.
  • -m – È l’opzione che indica allo script di produrre un output in formato HTML.
  • > diff.html – Di default lo script scrive il codice HTML a schermo, per salvarlo in un vero file html serve specificare il dispositivo di output (un file in questo caso).

Una utile opzione che l’altro diff (io uso quello incluso in Cygwin) non ha (anche se ha altre opzioni in più che mancano a questo semplice script, mai usate peraltro). Ovviamente si può usare su tutti sistemi operativi con Python installato (su Linux dovrebbe essere installato di default, credo). Essendo basato su librerie standard non dovrebbe essere difficile “compilarlo” usando py2exe o simili.

Qui metto un esempio dell’output prodotto.

Probabilmente ci sono altri tool che fanno lo stesso lavoro, però visto che è incluso di default come interfaccia alle librerie difflibs di Python tanto vale farne uso.

Riporto di seguito l’help del comando (diff.py --help):

`\ Usage: diff.py [options] fromfile tofile

Options: -h, –help show this help message and exit -c Produce a context format diff (default) -u Produce a unified format diff -m Produce HTML side by side diff (can use -c and -l in conjunction) -n Produce a ndiff format diff -l LINES, –lines=LINES Set number of context lines (default 3)“

Versione quasi portabile di Firefox UX

Da tempo mantengo una versione quasi portabile di Firefox UX (User eXperience version), cioé che contiene tutte le modifiche più innovative ed estreme – a volte molto spiazzanti – all’interfaccia.

È un’anteprima non stabile (paragonabile a una nightly) e dunque va utilizzata con cautela. questo pacchetto è fatto appositamente per evitare di complicarsi troppo la vita con profili e impedire che per errore si avvii Firefox UX con il normale profilo utente e quindi danneggiarlo.

Non è una vera versione portabile perché è semplicemente il contenuto dell’installer con l’aggiunta di alcuni file ripacchettizzati sottoforma di archivio 7z. Però è quanto basta per dare un’occhiata ai nuovi pasticci fatti all’interfaccia del povero Firefox nel tentativo di farlo diventare un browser che assomigli alla versione mobile.

Utilizzo

  1. Scaricare l’archivio 7z e scompattarlo in una cartella a propria scelta (ad esempio %programfiles%\firefox-ux)
  2. Creare un collegamento al file launcher.bat contenuto nella cartella principale
  3. Copiarlo sul Desktop o e usarlo per avviare la versione UX

NOTA: è assolutamente importante utilizzare il launcher.bat per avviare Firefox UX altrimenti esso utilizzarà il normale profilo utente come se si eseguisse una normale installazione.

Il launcher.bat serve solamente per avviare Firefox utilizzando il profilo incluso nella sottocartella profile contenuta nella cartella principale (%ProgramFiles%\firefox-ux nel mio caso).

Aggiornamento

Di solito creo il pacchetto appena esce una nuova build (circa ogni 6 settimane), in ogni caso si può provare ad aggiornare direttamente utilizzando il sistema di autoaggiornamento di Firefox (se funziona). In caso ciò non fosse possibile sarà sufficiente riscaricare il nuovo pacchetto e estralo nella stessa cartella sovvrascrivendo i file.

Nell’archivio 7z ho incluso un file timestamp.txt in cui è riportata la data di creazione del pacchetto. Se la nuova versione di Firefox UX è già uscita e non è ancora stato aggiornato potete lasciare un commento e vedrò di crearla al volo.

Firefox UX è rilasciato solo in lingua inglese, in ogni caso nel pacchetto ci sono anche i dizionari della lingua italiana. Se volete che le pagine web vi parlino in italiano, modificate questa preferenza in about:config:

general.useragent.locale

a it.

Download

File 7x con Firefox UX Digest MD5 e SHA1 (For paranoids but not androids)

Thunderbird come evitare il circolo vizioso “Re: R:” negli oggetti delle mail

Purtroppo molti client di posta o servizi di webmail hanno il brutto vizio di localizzare l’indicatore di risposta (o anche quello di inoltro) negli oggetti delle email, come risultato si ottengono delle email di risposta con un oggetto sempre crescente e, a mio avviso, molto fastidioso. In altre parole si cominciano a vedere delle cose del genere Re: R: Re: R: Re: nell’oggetto che ne diminuiscono la leggibilità.

Questo è un errore di quei client che localizzano (sbagliando) l’indicatore di risposta. Lo standard a riguardo è molto chiaro:
RFC 4096 – Policy-Mandated Labels Such as “Adv:” in Email Subject Headers

reply, the field body MAY start with the string “Re: ” (from the Latin “res”, in the matter of) followed by the contents of the “Subject:” field body of the original message. If this is done, only one instance of the literal string “Re: ” ought to be used since use of other strings or more than one instance can lead to undesirable consequences.

Per questo motivo in Thunderbird 3 è stata introdotta una preferenza per evitare questo inconveniente quando si ricevono email da client che non rispettano lo standard e fanno quel che gli pare. La preferenza è modificabile solo dall’editor di configurazione avanzata e si chiama mailnews.localizedRe e va impostata inserendo delle parole (separate da virgole) di tutte le istanze da ignorare a inizio oggetto e da considerare comre Re:.

Nello specifico caso dell’italiano va impostata con il valore R (tutto maiuscolo e senza i due punti) per eliminare l’indicatore R: che viene usato da Outlook Express e molte webmail. Per farlo:

  1. Strumenti -> Opzioni -> Avanzate -> Editor di configurazione avanzata;
  2. cercare la preferenza mailnews.localizedRe;
  3. fare doppio clic sulla preferenza e impostare il valore desiderato (separare con virgole se si ricevono anche mail in altre lingue da client non standard);
  4. chiudere tutto cliccando su Ok per confermare le modifiche appena effettuate.

Da questo momento in poi Thunderbird sostituirà tutti gli R: trovati a inizio oggetto con il classico – e standard – Re:. La modifica verrà apportata solo alle mail che si riceveranno in futuro, per sistemare anche l’archivio delle mail ricevute è necessario ricostruire gli indici della cartella.

Si può ricostruire l’indice di una singola cartella facendo clic col tasto destro su di essa e selezionando Proprietà e eseguire l’operazione Ripara cartella. Per cancellare gli indici di tutte le cartelle consiglio d:

  1. chiudere Thunderbird;
  2. avviare una ricerca file con lo strumento di ricerca del proprio sistema operativo a partire dal profilo di Thunderbird per tutti i file con estensione msf e cancellarli. Quindi riavviare Thunderbird.

In windows questo si traduce in: Windows+F (Start -> Trova) -> Tutti i file e le cartelle, cercando *.msf a partire da %appdata%\thunderbird (cancellerà tutti gli indici dei profili in uso).

Good mail to everyone :-D.