martedì 18 dicembre 2018

Tutti pazzi per la fibra (e il 5G)

A metà anni '90, forse nel 1997, all'incrocio davanti a casa dei miei genitori un giorno iniziò un cantiere, uno dei tanti: la particolarità di questo è che il "buco" rimase aperto 3 mesi in cui non si vide nessuno a lavorarci. Sapemmo poi che si trattava del Progetto Socrate, ossia il primo tentativo, dell'allora monopolista Telecom, di cablaggio in fibra ottica per la cosiddetta banda larga. Appena aperto il buco, il progetto fu sospeso (e poi annullato) perché era stata sviluppata la tecnologia ADSL, che sfruttava il doppino telefonico già presente in tutte le case. Oggi, sempre davanti a casa dei miei genitori, un cantiere (stranamente veloce) stende cavidotti per la fibra ottica, che peraltro arriva già a 200 metri in uno dei cabinet TIM.
Sempre in tema di banda larga, l'asta di assegnazione per le frequenze del 5G, ossia la prossima tecnologia di connettività dati per i dispositivi mobili, ha ottenuto un introito del 50% superiore rispetto al previsto. Insomma, banda larga per tutti.

Ma cos'è 'sta banda larga, e come la utilizziamo (e utilizzeremo)?

Il termine banda larga è usato come sinonimo di internet veloce, dove veloce significa che i dati fluiscono in quantità maggiore a parità di tempo. L'unità di misura è il bit per second (bit al secondo), indicato come bps. Le velocità attuali, come molte altre unità di misura, necessitano dei moltiplicatori standard:
  • k, ossia kilo, che corrisponde a mille
  • M, ossia Mega, che corrisponde ad 1 milione
  • G, ossia Giga, che corrisponde ad 1 miliardo
  • T, ossia Tera, che corrisponde a 1000 miliardi
Tanto per fissare le idee: i primi modem andavano a 56 kbps, utilizzando sostanzialmente la capacità normale dei doppini telefonici; l'ADSL arriva fino a 7 Mbps (oggi fino a 20) sfruttando capacità oltre quelle normali dei doppini; la fibra ottica va nell'ordine dei Gbps (nella pratica è molto variabile a seconda di come è fatto il cavo, il tipo di luce, etc.). Nel mobile, il 4G viaggia nell'ordine dei 50 Mbps col 5G che potrebbe arrivare a 400 e oltre (teorici). Il Tbps è attualmente appannaggio solo dei laboratori di ricerca.
Quello che occorre sapere è che la velocità effettiva che ognuno di noi sperimenta a casa sua (o sul suo smartphone) dipende anche dalla lunghezza dei cavi (o dalla distanza in linea d'aria) rispetto all'ultimo ripetitore di segnale: questo semplicemente perché i segnali che codificano i bit si attenuano all'aumentare della distanza, e ciò corrisponde ad una diminuzione della velocità (capire il perché richiede nozioni di elettromagnetismo e teoria dei segnali). La fibra ottica ha in proporzione un'attenuazione molto inferiore rispetto al doppino in rame, ed è il motivo per cui viene utilizzata per le grandi distanze; ovviamente ha un costo molto superiore (ed è delicatissima). Questo è il motivo per cui la fibra ottica non arriva quasi mai dentro casa, ma si ferma negli armadi (o centraline) stradali: stendere un cavo in fibra fin dentro ogni appartamento ha costi esorbitanti rispetto ad utilizzare il già presente doppino. D'altra parte, su distanze brevi (diciamo entro i 500 metri), con le tecniche attuali il doppino è in grado di supportare velocità di tutto rispetto, superiori ai 30 Mbps fino a circa 100 per distanze brevissime (qualche decina di metri). Ecco perché oggigiorno il metodo più comune di portare la banda larga a casa è il misto fibra-rame: i cavi in fibra ottica arrivano fino agli armadi stradali, dove i segnali delle varie utenze vengono ridistribuiti sui singoli doppini, ognuno dei quali avrà una lunghezza che determina le prestazioni effettive.


A proposito dei costi, bisogna evidenziare che pure gli apparati di rete che si trovano nelle centrali, centraline ed armadi hanno differenze significative a seconda delle tecnologie che possono supportare. Questo è principalmente il motivo per cui in Italia la banda larga stenta ad arrivare in alcune zone, che sono poi quelle a minore densità abitativa (tipicamente disagiate anche per altri servizi): i ritorni economici non giustificano gli investimenti. Questo problema non si è risolto nell'epoca dell'ADSL, mentre ora è lo Stato a finanziare i lavori di cablaggio in fibra ottica delle zone a minore ritorno economico per gli operatori, anche perché la banda larga è ritenuta indispensabile per lo sviluppo economico italiano al pari di altre infrastrutture più tradizionali. A vegliare su tutto c'è l'Agenzia Garante per le Comunicazioni, che tra le altre cose ha sul suo sito una mappa degli accesi internet disponibili e delle velocità teoriche raggiungibili (per verifiche più di dettaglio, a livello di singolo numero civico, ho trovato utile quest'altro sito).


D'altra parte, la velocità è davvero così importante? Risposta breve: dipende... ☺
La realtà è che per visualizzare un testo bastano pochi kbps; per una foto qualche centinaio di kbps; per video "normali" (tra questi includiamo anche la fastidiosissima pubblicità e quelli fatti dagli smartphone), 1 Mbps. I servizi realmente bisognosi di tanta banda (cioè velocità) in ambito casalingo sono:
  • Media streaming in alta definizione (la tv via web)
  • Videogiochi online
  • Videoconferenza in alta definizione (Skype ed affini)
Tanto per dare un'idea, nei giorni scorsi, e più di una volta, una ADSL da 10 Mbps ha sostenuto contemporaneamente due streaming in diretta (sport, ovviamente...) di cui uno in alta definizione. Inoltre, a differenza di ciò che qualche volta viene detto, la domotica, IoT, telemedicina, telelavoro, etc, per non parlare dei social, non hanno bisogno di alte velocità, quanto invece di affidabilità (e questo è più funzione dell'operatore, ossia dell'Internet Service Provider).
Ma allora perché la banda (ultra)larga è così importante oggi? In realtà, non lo è, ma lo sarà probabilmente a breve. Cisco stima, sulla base della tendenza attuale, che nei prossimi 5 anni transiterà su internet la stessa quantità di dati che è transitata dall'inizio fino a oggi. Una buona ADSL è ancora una soluzione più che accettabile (a meno di esigenze particolari), certo è "a scadenza", cioè non lo sarà più tra pochi anni, ma nel frattempo speriamo la fibra, o gli altri metodi alternativi, siano arrivati dappertutto.


Ancora niente banda larga via cavo? Esiste l'alternativa senza. A parte le già citate 4G e 5G per i dispositivi mobili (il cui problemi principali sono la copertura non completa, e la condivisione della banda), esistono tecnologie per collegamenti fissi che utilizzano collegamenti via radio. Necessitano di un'antenna che punti verso il ripetitore; a prezzi ragionevoli si hanno offerte con velocità intorno ai 30 Mbps (anche in questo caso, conta la distanza). Il problema di questa tecnologia è la necessità della vista libera tra antenna e ripetitore, il che rende il servizio non sempre disponibile (banalmente, se la casa è dietro un'altura o esposta dal lato sbagliato), e potrebbe non diventarlo a causa di eventi naturali, come la crescita degli alberi.



sabato 20 ottobre 2018

Tutta colpa dell'Algoritmo

"Facebook cambia algoritmo", "Algoritmo impazzito", "Twitter sconfessa l'algoritmo": sono solo alcuni (estratti di) titoli di notizie recenti che hanno a che fare il mostro dei nostri tempi: l'algoritmo. Pochi giorni fa, ad un convegno in tema di privacy, una stimatissima professoressa di Diritto ha confessato che deve farsi aiutare dai tecnici a capire cosa vuol dire che "si è perso il controllo dell'algoritmo". Ne ha ben ragione: non ne ho idea neanch'io, di cosa vuol dire. Ma alla fine, cos'è 'sto algoritmo?
Dal Dizionario della lingua Italiana di De Mauro:
matematica: insieme di regole per la risoluzione di un calcolo numerico; gener., procedimento matematico
informatica: insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema
Le parole su cui bisogna soffermarsi sono: regole, procedimento, risoluzione. Lo scopo di un algoritmo è trovare la soluzione di un problema; è composto da un procedimento e delle regole. Tutto qui; ma per capire meglio, guardiamolo un algoritmo (ho scelto quello che era mitico all'università, il bubble sort, che è il più efficiente tra i procedimenti di ordinamento):



In pratica, presa una sequenza di elementi, si procede a scambiare ripetutamente quelli che non rispettano l'ordinamento, finché non si arriva alla sequenza ordinata. Facile no?
In realtà, quello che mi preme sottolineare è che un algoritmo non è altro che un procedimento logico per risolvere un problema. Niente di più. Un frutto dell'ingegno umano. Che poi deve diventare qualcosa di realmente utilizzabile, tipicamente un programma software: il che vuole dire che qualcuno, che non è quasi mai chi ha "inventato" l'algoritmo, lo traduce in un linguaggio di programmazione, diventando, appunto, il programma (o parte di esso). In realtà, vale anche il viceversa: ogni programma non è altro che l'implementazione di uno o più algoritmi, che magari esistono solo nella testa del programmatore.
Ovviamente niente vieta che un algoritmo possa essere sbagliato (cioè non risolve correttamente il problema), o che lo sia il corrispondente programma (cioè il software non fa quello che prevede l'algoritmo); ma se si effettuano i dovuti controlli, la questione è marginale.
Che c'azzecca tutto ciò con gli algoritmi che impazziscono? Niente, appunto. Un algoritmo (o il computer attraverso il programma) fa ciò che gli viene detto. Il risultato è sbagliato se l'algoritmo (o il corrispondente programma) è sbagliato. Punto. A parte questo, non esistono algoritmi buoni o cattivi: buono o cattivo è lo scopo, o il risultato, dell'algoritmo.

Fin qui la teoria; la pratica è un po' più complicata. Perché gli algoritmi che, secondo alcuni, impazziscono, sono enormemente più complessi dell'esempio che ho proposto; ed è piuttosto comune (mi rifiuto comunque di considerarlo normale) che i suoi errori siano evidenziati in situazioni estreme, tipicamente dati enormi o molto diversi da quelli attesi da chi ha sviluppato l'algoritmo.
Gli algoritmi sono diventati famosi, uscendo dalle buie stanze dei nerd, con l'informatizzazione di massa, e da quando hanno iniziato ad avere effetti sulla vita dell'uomo comune: oggi vanno per la maggiore quelli che, a seconda dello scopo (o meglio, della tipologia di scopo) prendono il nome di Big Data, Intelligenza Artificiale, Machine Learning, e compagnia bella. Tutta roba bellissima per chi la studia, un po' meno per chi la subisce. Intanto perché l'abuso di questi algoritmi ci limita la libertà di scelta (vedi i risultati dei motori di ricerca: quelli che dovrebbero essere i più pertinenti sono scelti in base a criteri che non possiamo controllare); e poi perché molte volte nemmeno è chiaro come e perché si usano queste tecniche avanzatissime.

Facciamo un altro esempio, e lo prendiamo dal mondo dello sport, in particolare dalla pallavolo (chi mi conosce non ne resterà stupito). Esiste da anni la "moviola" in campo, per diverse situazioni; per stabilire la palla dentro o fuori, esistono in realtà due tecniche, una "reale" (telecamere ad alta velocità e risoluzione poste in corrispondenza alle linee) ed una "virtuale" (ricostruzione tridimensionale della traiettoria del pallone, lo stesso metodo usato nel tennis, cosiddetto occhio di falco).

 

Nessun dubbio che l'algoritmo alla base di "occhio di falco" sia corretto; tuttavia, basandosi sulla ricostruzione della traiettoria nello spazio a partire dalle immagini riprese da apposite telecamere che coprono tutto il campo (una tecnica, chiamata motion tracking, usata da più di 20 anni nel cinema, per esempio così fu generato Gollum nella trilogia del Signore degli anelli), richiede un'attentissima calibrazione e posizionamento per garantire precisione. Ma se hai una tecnica più semplice, e che non ti lascia nessun tipo di dubbio, perché usare un artificio, per quanto bellissimo e precisissimo? Eppure la prima viene utilizzata nelle competizioni italiane, e la seconda in quelle internazionali, ormai da diversi anni!

In conclusione, fermo restando che non sono gli algoritmi ad impazzire (è sempre e solo l'intelligenza umana a venire meno), è la dipendenza da essi il vero male della nostra società iperconnessa. Dove non portino effettivo beneficio per la comunità, è nostro dovere difenderci rifiutandoli, invece di lamentarci o, peggio, adeguandoci passivamente.

N.B. Il post è nato da un'idea di qualche giorno fa, ma non è un caso che sia stato scritto il giorno della finale del campionato mondiale femminile di pallavolo... serviva anche a smaltire la delusione della sconfitta (che non ha avuto nulla a che fare con decisioni arbitrali).

martedì 18 settembre 2018

La maggiore età online è 14 anni (forse)

Forse non tutti sanno che 2 settimane fa è stato pubblicato in Gazzetta Ufficiale (e quindi sta entrando in vigore) un decreto legislativo che complementa la normativa Europea sulla privacy (il Regolamento UE 679/16, meglio noto come GDPR). Tra i tanti tecnicismi del decreto, c'è un elemento che interessa gli adolescenti ed i loro genitori: è stata fissata a 14 anni (invece dei 16 come da Regolamento) l'età dalla quale i minori possono esprimere autonomanente il consenso per il trattamento dei loro dati personali nei servizi online. Poiché mi è capitato di leggere interpretazioni fuorvianti in passato, cercherò di fare chiarezza sul significato e le conseguenze di questa norma.

Il consenso è uno dei 6 presupposti su cui è possibile basare un trattamento lecito di dati personali; gli altri 5, dal punto di vista dei comuni cittadini, rappresentano tutti quei casi in cui il trattamento è indispensabile o comunque non lesivo dei nostri diritti. Quindi il consenso è l'unico caso in cui, sostanzialmente, abbiamo la possibilità di scegliere se accettare il trattamento o no. Nel mondo online è il presupposto più utilizzato, perché i servizi online (sembra incredibile, vero???) non sono indispensabili alla nostra vita. Poiché il consenso ha ovviamente un valore anche legale, sarebbe indispensabile la maggiore età per poterlo esprimere, ma in questo caso il legislatore ha tenuto in debito conto la realtà, cioè il fatto che i minori sono tra i maggiori utilizzatori di questi servizi, e quindi ha abbassato l'età per poter esprimere il consenso, prevedendo contemporaneamente alcune tutele aggiuntive, tra cui che la relativa informativa sul trattamento dei dati sia particolarmente chiara e concisa.
Cosa succede prima dei 14 anni? Semplicemente che è necessario il consenso (o l'autorizzazione) anche di chi esercità la responsabilità genitoriale. La norma prevede anche che il gestore del servizio verifichi l'età del minore e l'identità del genitore (evidentemente anche a Bruxelles hanno capito che accà nisciun è fess!).

Su quest'ultimo argomento voglio spendere altre due parole. Google ha trovato un metodo ingegnoso per verificare che il consenso accessorio dei genitori sia effettivo: richiede di utilizzare una carta di credito a nome del genitore su cui viene effettuata una pre-autorizzazione di un centesimo, che poi, dopo l'autorizzazione, viene restituito. Bene benissimo, se non fosse che (hoplà) Google ha ottenuto i dati di una carta di credito valida (non che faccia addebiti fraudolenti, intendiamoci!).

Il problema è che molti gestori, soprattutto extraeuropei (leggi: USA), se ne fregano e utilizzano un metodo molto più semplice: fissano nelle proprie condizioni di utilizzo l'età minima per iscriversi a 16 anni per tutti, così nessuna verifica è necessaria (la norma, infatti, per i maggiori di 16 anni non prevede verifiche di età). Tagliando di fatto fuori i minori proprio da tutti quei servizi che invece vanno tanto di moda, ma dall'altra parte confidando sul fatto che tanto il modo di iscriversi lo trovano lo stesso, come peraltro avvenuto finora, potendo così trattare dati personali di minori come se fossero maggiorenni.

Cari genitori, come vedete la legge non intende impedire le pratiche diventate ormai di uso quotidiano anche tra i giovanissimi, però è necessario che partecipiate alla vita online dei vostri figli, e non solo al momento dell'iscrizione al social: controllando loro, ovviamente, ma controllando anche come i diversi gestori di servizi utilizzano i vostri dati, e facendo di conseguenza le opportune scelte consapevoli. Lo ribadisco ancora una volta: utilizzare quella particolare chat "perché ce l'hanno tutti" è stupido, le alternative esistono e potete imporle, vedrete che piano piano diventeranno di uso comune; altrimenti, non cambierà mai nulla.

giovedì 30 agosto 2018

Lasciami il tuo computer e diventerà mio

Nel lontanissimo (in termini tecnologici) anno 2000, un certo Scott Culp della Microsoft scrisse un articolo in cui definiva le 10 immutabili leggi della sicurezza; la numero 3 recita:
Se una persona disonesta ottiene accesso fisico illimitato al tuo computer, quello non è più il tuo computer.
Nel mio lavoro, ma anche nell'ambito privato, ho notato che questo tema sia particolarmente ostico agli utenti digitali "normali", probabilmente perché le pratiche basilari di sicurezza (tipicamente: la password, ed i permessi sui file) sono considerate sufficienti ed un fastidio già considerevole. In questo post cercherò di spiegare il senso pratico della legge sopra riportata e perché lasciare incustodito il proprio computer è sempre una pessima idea, al di là dei danni economici di un possibile furto.

Prima di tutto spieghiamo cosa intende dire la suddetta legge. Accesso fisico illimitato significa che la persona disonesta ha la possibilità di toccare "con mano" il computer e farci quello che vuole senza che nessuno lo ostacoli; non è più il tuo computer significa che, se riotterrai la disponibilità del computer, potresti trovarlo in qualsiasi condizione (vedremo dopo cosa significa) e soprattutto tutti i tuoi dati potrebbero essere stati violati e/o distrutti. Anche se le tecniche sono un po' diverse, quanto detto vale anche per smartphone e tablet, mentre nel seguito mi riferirò solo ai computer tradizionali (fissi, portatili, server), quelli con mouse e tastiera, per intenderci.

Veniamo a cosa posso fare se ho il "tuo" computer a mia completa disposizione.
Per prima cosa, posso spegnerlo: ho la possibilità di staccare l'alimentazione e, nel caso di portatili, di togliere la batteria (se è interna, è solo questione di un po' di tempo in più). Questo già significa che se il computer stava facendo qualcosa di importante, ti causo un disservizio.

Una volta spento, potrei staccare il disco fisso interno e quindi leggerlo o sovrascriverlo utilizzando un altro computer. Infatti, con un altro computer tutti i permessi eventualmente impostati sui file possono essere banalmente modificati dall'amministratore (che non sei più tu); e questo indipendentemente dal fatto che tu abbia utilizzato o no una buona password.

In realtà, non è nemmeno necessario staccare il disco, può tranquillamente rimanere dov'è: infatti io farò ripartire il "tuo" computer utilizzando però un mio drive USB con un sistema operativo alternativo di cui io sono l'amministratore. A quel punto ciò che posso fare è, semplicemente, tutto. Qualche esempio?
  • Posso cambiare le password (senza bisogno di conoscerle) del "tuo" sistema operativo, così posso poi riavviare il computer ed impersonare te o l'amministratore;
  • Posso leggere o modificare i file, indipendentemente dai permessi presenti sul "tuo" sistema operativo;
  • Posso clonare l'intero disco (ogni singolo bit), con una tecnica che praticamente è quella usata per le indagini giudiziarie, così potrò poi leggere i tuoi file con calma e senza che tu nemmeno lo sappia;
  • Posso collegarmi ad internet con il tuo provider e commettere atti illegali che risulteranno essere stati commessi da te;
  • Posso sostituire completamente il sistema operativo e tutti i dati, così che dopo non riuscirai più ad utilizzare il "tuo" (ex) computer;
  • Posso inserirti programmi (tipicamente, malevoli per te) a mio piacimento.

È bene precisare che quando dico "leggere i tuoi dati", mi riferisco, anche in questo caso, a tutto: password, numero della carta di credito, la cronologia della navigazione internet, i file che hai scaricato, le tue foto più intime... Evito di spiegare cosa succede se tra le password trovo quelle dei tuoi servizi internet (posta, social, disco remoto, etc): diciamo che anche quelli diventano non più tuoi.

Inoltre, il drive USB che citavo prima non è roba da hacker "cattivo": esso conterrebbe esattamente gli stessi strumenti che uso da anni per cercare di risolvere i malfunzionamenti dei computer. Non sono gli strumenti ad essere buoni o cattivi, ma l'uso che se ne fa.

Vuoi difenderti? Beh, intanto dovresti utilizzare una password anche nel BIOS (anche se ora si chiama UEFI) per avviare il computer, o anche solo per far avviare un sistema operativo diverso; ma comunque io sarò in grado di resettare il BIOS/UEFI e quindi cancellarti la password. Comunque non è banale e quindi è una misura semplice ed efficace per moltissimi casi.
Poi dovresti evitare di far ricordare le password dei vari servizi al browser e agli altri programmi... lo so, è tanto comodo, ma anche per i disonesti! E si, dovresti uscire tutte le volte e reinserire la password tutte le volte; oppure usare l'autenticazione a 2 fattori (il riconoscimento biometrico, invece, può non essere una buona soluzione).

Ma se vuoi davvero difenderti, ci sono solo 2 tecniche efficaci: la crittografia ed il backup. Con la prima ti proteggi dalla lettura dei dati che reputi "sensibili" (cioè, quelli che non vuoi far conoscere agli altri), con il secondo dalla distruzione dei dati. Ovviamente, per essere veramente efficaci queste 2 tecniche devono essere utilizzate con le giuste modalità. Per fare qualche esempio: la crittografia è inutile se la chiave si può trovare sullo stesso disco dove si trovano i dati protetti; la copia di backup (aggiornata!) deve trovarsi dove il malintenzionato non possa realmente accedere. Ma su questi argomenti ho già scritto (prova anche a vedere la sezione Suggerimenti) e continuerò a scrivere, vista la loro importanza.

Tutto chiaro, no? La sicurezza fisica dei computer non è secondaria a quella logica, su cui tanti spesso si soffermano, perché se è vero che è meno probabile (davvero?) venga violata per via della necessità dell'accesso, appunto, fisico, è anche vero che le conseguenze della violazione sono potenzialmente molto peggiori.

AGGIORNAMENTO: mi sono imbattuto in questo articolo che mina pure le certezze sulla crittografia come arma fondamentale contro i furti di dati; in realtà confermando anche il fatto che se la chiave è a disposizione "da qualche parte" che non sia la mia testa, un modo per recuperarla lo trovano sempre...

lunedì 30 luglio 2018

Aiuto, non ci sono più siti sicuri!

Pochi giorni fa è stata rilasciata la versione del browser Chrome che implementa la già annunciata funzionalità di segnalazione per i siti che non usano HTTPS.
Sul web molti siti specializzati (un esempio) ne hanno parlato, ma omettendo le informazioni basilari, per aiutare a capire l'importanza di questa scelta: ci provo io.

HTTP e HTTPS
HTTP (HyperText Transfer Protocol) è il protocollo di comunicazione su cui si basa il web, ossia internet come è conosciuta da tutti: i siti "parlano" con i browser utilizzando HTTP come linguaggio. HTTP è bidirezionale, nel senso che permette di inviare dati anche dal browser al server: funzionalità che viene usata per inviare i nostri parametri al server in modo da ottenere una risposta personalizzata.
HTTPS è la versione sicura, cioè crittografata, di HTTP. Il che vuol dire che HTTP invia i dati, in entrambe le direzioni, in chiaro, quindi facilmente leggibili (credetemi, l'intercettazione delle comunicazioni è banale).

La Crittografia di HTTPS
La crittografia trasforma un dato comprensibile in uno incomprensibile, tramite complesse funzioni matematiche. Mentre le funzioni sono sempre le stesse, ciò che rende unica ogni trasformazione è l'utilizzo di un altro dato, detto chiave, unico. Con la chiave si effettua sia la cifratura che la decifratura, il che vuol dire che la chiave deve essere conosciuta sia dal mittente che dal ricevente una comunicazione, e da nessun altro, altrimenti chiunque è in grado di decifrare la comunicazione. Questa modalità è scomoda perché mittente e destinatario devono scambiarsi la chiave in modo sicuro, e soprattutto ogni coppia mittente-destinatario deve avere chiavi diverse.
Per fortuna esistono metodi di cifratura con 2 chiavi diverse (ma correlate l'una all'altra): una deve essere tenuta segreta e l'altra può essere liberamente divulgata, semplicemente perché la cifratura avviene con una chiave e la decifratura con l'altra. Ebbene, HTTPS usa questa modalità: il server ha la chiave privata, ed il browser ha la chiave pubblica, che si scarica prima di iniziare a comunicare.


Riservatezza
Il difetto della chiave pubblica è che è, appunto, uguale per tutti, per cui chiunque sarebbe in grado di decifrare le comunicazioni provenienti dal servizio: per renderla univoca, si aggiunge un codice di sessione (creato alla prima comunicazione tra il server ed ogni singolo browser); in questa maniera, HTTPS è in grado di scambiare dati mantenendo la riservatezza degli stessi.

Autenticazione
Il fatto che il servizio possegga una chiave unica, creata appositamente e tenuta segreta comporta una seconda caratteristica: la corrispondente chiave pubblica funziona solo e esclusivamente con quel servizio, per cui il browser è sicuro di comunicare proprio con quel servizio e con nessun altro: potrei quindi autenticare il servizio.
Purtroppo, poiché la chiave pubblica è fornita dal servizio stesso, a meno di non fidarsi ciecamente, non possiamo essere sicuri che il servizio sia effettivamente quello che dichiara di essere. Per cui la vera autenticazione di un servizio ha bisogno di un ulteriore passaggio: la chiave pubblica, prima di essere utilizzata, viene a sua volta autenticata (e firmata digitalmente) da una entità terza, che effettua dei controlli per verificare che il servizio (in realtà, il proprietario, azienda o persona che sia) sia realmente chi dichiara di essere.

Siti sicuri e non sicuri
Il browser è in grado di riconoscere la firma digitale della chiave pubblica: quindi, se riconosce la firma come valida, e la chiave pubblica funziona rispetto al servizio (e quindi alla sua chiave privata), si è certi che stia parlando proprio col servizio (sito) giusto, quindi sicuro. In tutti gli altri casi, è considerato non sicuro.
Quindi i fornitori di siti hanno tutti gli interessi a farsi considerare sicuri, per le ragioni suddette: per un discorso di reputazione possono voler essere riconosciuti con certezza (es. un giornale online); per un discorso di segretezza delle informazioni (es. tutti i casi in cui si usano password); per entrambe (es. banca online).

Altre considerazioni
Tutto a posto? Ovviamente no. Ecco alcune questioni a cui fare attenzione.
  • Un sito non sicuro può non essere un problema: dipende dalla criticità delle informazioni che tratta.
  • Le chiavi possono avere una scadenza: se non vengono rinnovate in tempo, il sito può improvvisamente essere considerato non sicuro, pur essendolo fino a poco prima. La comunicazione rimane cifrata, ma non si può più fare completo affidamento sull'identità del servizio.
  • I criminali informatici cercano continuamente metodi per ingannarci e farci considerare come sicuro un sito che non lo è. Un metodo divertente ed esemplificativo è questo. Inoltre, l'iconcina del lucchetto non è sufficiente perché banalmente falsificabile.
  • La segnalazione di sito sicuro può essere assolutamente valida anche per siti con nomi simili a quelli più famosi: quindi, sempre occhio al nome del servizio nella barra degli indirizzi! Se notate qualcosa di strano, verificate che il proprietario del sito sia chi vi aspettate, e non qualcun altro.
  • Tutti i metodi crittografici sono comunque vulnerabili al cosiddetto attacco a forza bruta, ossia cercare di trovare le chiavi semplicemente provando tutte le combinazioni possibili; per questo motivo la lunghezza della chiave è un fattore determinante (all'aumentare della lunghezza, il numero di tentativi aumenta in maniera esponenziale).
  • Una pagina web può essere composta di parti diverse, che possono provenire da siti differenti (questo post ne è un esempio); ognuna di queste parti può utilizzare HTTPS oppure HTTP semplice, per cui la sicurezza complessiva potrebbe essere compromessa. In realtà i browser segnalano anche questa situazione (in particolare, pagine miste HTTP e HTTPS sono viste con sospetto).

Quindi: bisogna (tanto per cambiare) usare la testa. Mai e poi mai accedere al proprio conto corrente online (è solo un esempio) senza l'indicazione di sito sicuro; negli altri casi, cliccando sull'indicazione, è possibile avere i dettagli della segnalazione, e sulla base di quella decidere se andare avanti o no; e comunque si può considerare la reputazione di un sito anche sulla base dell'utilizzo e della relativa manutenzione dei certificati necessari all'HTTPS.
Anche gli altri browser permettono di fare le stesse verifiche, semplicemente (al momento) non danno l'indicazione nella stessa maniera come ora ha introdotto Chrome. Quest'ultimo ha "solo" fatto la scelta di spingere l'adozione di HTTPS anche nei casi in cui finora non se ne era sentita la necessità.

domenica 20 maggio 2018

In principio fu il Social Engineering

Profilazione, Big Data, pubblicità personalizzate, tutti temi molto in voga da qualche anno a questa parte, hanno un antenato comune: L'Ingegneria Sociale, dall'inglese Social Engineering. Per capire il significato di questa espressione bisogna tenere a mente che l'inglese "Engineering" ha un'accezione molto più estesa del corrispettivo italiano "Ingegneria": mentre quest'ultimo si riferisce quasi esclusivamente alla ben nota facoltà universitaria, cioè l'insieme delle capacità di trasformare le conoscenze in ambito scientifico e tecnologico in prodotti e servizi disponibili alla collettività, il termine inglese comprende anche le varie branche tecniche non necessariamente di livello universitario. Nel caso specifico, si intende la capacità di studiare il comportamento di qualcosa per intuirne il funzionamento interno; solo che il "Social" che viene prima ci precisa che il qualcosa sono le persone.

Di per sé, è una tecnica non recente, ma ovviamente l'avvento dell'informatica di massa l'ha resa particolarmente efficiente per via del numero elevato di elementi che possono esserne bersaglio, e la possibilità di effettuarla da lontano e in completo anonimato. In questa fase, la tecnica si poteva effettivamente considerare un attacco informatico, nel senso che c'era qualcuno che tramite azioni mirate ed ingannevoli cercava di indurre il malcapitato di turno a dare informazioni che altrimenti avrebbe tenute riservate, oppure a fare azioni a profitto dell'attaccante. Da quando poi c'è stato l'avvento dei social network, il fenomeno è esploso, tanto da specializzarsi in varie branche con scopi diversi e da diventare la fonte delle maggiori ricchezze moderne; ma in questo caso l'attacco mirato da parte di un malfattore è stato sostituito da una generale induzione alla condivisione selvaggia dei fatti propri attraverso prodotti e servizi apparentemente innocui ed utili (ogni riferimento a fatti reali è puramente... voluto!).

Cerchiamo di capirci meglio, andando nel concreto di qualche situazione.
Gli scopi più comuni sono:
  • Furto d'identità
  • Furto di password per accessi fraudolenti
  • Ricatto
  • Influenzare i comportamenti futuri

L'esempio più comune è il phishing, cioè la mail che induce ad inserire le proprie credenziali di accesso ad un servizio in un falso sito, per poi utilizzarle nel sito vero (se si parla della vostra banca, potete immaginare da soli l'effetto); sempre in tema di mail, esse sono il veicolo più utilizzato per la diffusione dei ransomware, cioè quei virus che cifrano i dati e richiedono un riscatto per la decifratura, attraverso allegati il cui presunto contenuto viene in qualche modo a scatenare il nostro interesse. Il più pericoloso attacco di questo tipo, soprattutto se perpetrato verso minori, è carpire la fiducia per poi abusarne (il termine non è scelto a caso: i casi di cronaca sono terrificanti).

Il vero scopo del post però è quelli di mettere in guardia rispetto alle tecniche passive, cioè a quelle che fanno uso dei dati che noi stessi rendiamo pubblici attraverso la nostra normale attività online.
L'esempio più lampante sono le innumerevoli foto fronte/retro postate sui social network delle carte di credito, così da rendere visibili tutti i dati che vi sono riportati: avete mai pensato che sono esattamente i dati che vengono richiesti quando fate un pagamento online? Quindi: foto postata, acquisto fraudolento in 5, 4, 3, 2, 1... (non ci credete che qualcuno sia così stupido? c'è un account twitter che retweeta questi geni...).
Simile è il caso del nostro codice fiscale, che racconta di noi tutti i dati anagrafici (e il furto d'identità è servito; per questo non vi lamentate quando vi chiedono la fotocopia della carta d'identità, e magari evitate di postarne una foto!).
Infine, i fatti recenti dimostrano che anche solo i like/mi piace/retweet e compagnia cantante forniscono indicazioni estremamente precise sulla nostra personalità, che poi vengono utilizzate per indirizzare i nostri comportamenti futuri, a partire dagli acquisti per finire al voto elettorale, attraverso informazioni personalizzate (e intendo: espressamente indirizzate ad una determinata persona).

Altra possibilità è quella di incrociare informazioni da fonti differenti: a me è capitato in più di un caso di intuire informazioni di persone che seguo su Twitter, ma che non conosco assolutamente di persona, basandomi solo su ciò è all'interno dei loro post (casi reali: ho trovato il cognome di un utente che aveva fornito solo il nome; per un altro ho capito dove vive; non si contano i casi di intuizione delle tendenze politiche). Ma il caso più comune e secondo me pericoloso è quello di fornire involontariamente indicazioni di quando si è lontani da casa (tipicamente, quando si è in vacanza, ma non solo), postando selfie appena scattati da cui è evidente risalire al luogo in cui ci si trova, che chiaramente non è quello in cui si vive; tenendo conto che ormai con l'intelligenza artificiale è possibile riconoscere posti anche molto poco comuni e da pochi, apparentemente insignificanti, dettagli.

L'errore più grave che si può commettere è quello di pensare che tutto ciò non riguardi noi: i malintenzionati non vanno per bersagli precisi, ma cercano nel mucchio di cui noi tutti facciamo parte. Il mio consiglio, prima di condividere anche la più più innocente delle informazioni, è chiedersi: a che scopo può essere utilizzata a mio danno? Ricordandoci poi che internet non dimentica.

P.S. Mai, MAI, MAI utilizzare informazioni personali per scegliere le vostre password!!!

sabato 5 maggio 2018

Ci aggiorniamo?

Qualche settimana fa, non ricordo qual era il motivo, mi sono sentito dire: "Io gli aggiornamenti (dello smartphone) non li faccio mai". Mi è caduta la mascella, anche perché la persona in questione gode della mia stima, per cui non mi aspettavo un'affermazione così assurda. Però poi, com'è mio solito, questo mi ha fatto riflettere alla ricerca delle possibili motivazioni di una tale posizione.

Per poterci capire, è necessaria un po' di nomenclatura, anche perché in questo caso si usano termini inglesi.
La parola italiana aggiornamento, riferita a programmi, app, firmware o sistemi operativi (quindi: qualsiasi tipo di software), viene usata in corrispondenza a due parole inglesi: update e upgrade. La differenza di significato tra le due parole, semplificando un po' tutta la questione, sta nel tipo di aggiornamento: update si riferisce alle minor release, upgrade alle major release. Release viene spesso tradotta con versione, ma l'accezione del termine inglese è migliore, nel senso che fa riferimento al processo di sviluppo del software che, ad un certo punto, permette il rilascio al pubblico (o ai clienti) di una versione, appunto, pronta per l'uso. Ciò che è diverso è il tipo di aggiornamento: con la minor release (spesso identificata numericamente dopo la major release) si fanno aggiustamenti di problemi o qualche piccola miglioria nell'usabilità; la major release comporta significative novità, spesso con l'aggiunta di nuove funzionalità o la revisione più o meno completa di quelle esistenti.
Per fare un esempio pratico: quando dopo il nome del software c'è una versione come 4.13, il 4 è la major release e il 13 la minor; un update porterà alla versione 4.14, un upgrade alla 5.0. Purtroppo non c'è uno standard ed ogni produttore di software utilizza il suo sistema di numerazione, spesso rispondente più a logiche commerciali che tecniche; ma in qualche maniera si ritorna sempre ai due concetti appena esposti.

Torniamo al tema principale, che è: ma gli aggiornamenti vanno fatti? A questa domanda posso rispondere solo in un modo:
SI!
ed il motivo è semplice: gli aggiornamenti risolvono problemi, più o meno gravi, magari invisibili ai più ma sfruttabili dai malintenzionati o che potrebbero causare perdite di dati. Infatti gli aggiornamenti dei software sono considerati uno dei capisaldi per la sicurezza informatica.
Tuttavia un po' di attenzioni da prestare ci sono.

Minor release
Sono i più frequenti; anche qui, non esistono standard, ognuno fa come gli pare, però possiamo dire che ce ne sono diversi all'anno. Contenendo risoluzioni di problemi, sono importantissimi; tuttavia, una buona norma che suggerisco è di aspettare qualche giorno da quando escono, perché purtroppo capita troppo spesso che siano essi stessi affetti da problemi, e l'attesa permette agli addetti ai lavori di accorgersene e di rimediare.
Normalmente questo tipo di aggiornamenti impiegano poco tempo ad applicarsi e magari nemmeno richiedono il riavvio, ma ci sono notevolissime eccezioni, per cui anche piccoli aggiornamenti richiedono tempi esagerati (chiedere a Microsoft...).

Major release
Contenendo grosse novità, sono aggiornamenti grandi e poco frequenti; diciamo una volta l'anno (o anche meno). Comportano tempi abbastanza lunghi, almeno rispetto alle minor release: per i sistemi operativi, anche una o due ore, quindi è bene pianificare bene quando farli per non bloccare attività. Ma il consiglio principale è di evitare la primissima versione (quella spesso identificata come X.0), e di aspettare direttamente almeno la seconda (X.1), perché anche se approfonditamente testate (cosa non più così vera, purtroppo), contengono sempre problemi di gioventù, che vengono appunto risolti rapidamente ed inclusi nelle prime minor release.
Comunque sia, gli upgrade non sono, in generale, obbligatori: anzi, spesso sono deleteri se introducono problemi di compatibilità o utilizzo eccessivo di risorse hardware, quindi consiglio di valutarli volta per volta. Occhio ai software commerciali: l'upgrade potrebbe non essere incluso nella licenza, o in caso di abbonamento, è necessario averlo attivo.

Backup
Paura da aggiornamento? No, non è giustificata, ma nemmeno così campata per aria; per cui avere un modo di poter tornare indietro, se qualcosa va storto, non è per niente sbagliato. Alcuni sistemi operativi (Windows) hanno meccanismi interni; per altri casi esistono meccanismi esterni; in altri casi ancora (smartphone), non ne conosco. In ogni caso, i tempi complessivi dell'operazione si allungano, ma ritengo sia un investimento conveniente. Non è possibile trattare il tema in questo stesso post, lo farò prossimamente.

Consigli finali

  1. Impostate la notifica automatica della disponibilità degli aggiornamenti, non l'installazione automatica: così potete pianificare quando farli, nel momento più comodo a voi.
  2. Sia che facciate o no i backup dei software prima degli aggiornamenti, abbiate sempre un'alternativa se qualcosa va storto, il che significa un altro computer o un altro smartphone per le attività urgenti.
  3. Non rimandate troppo per pigrizia, che poi il ritardo si paga...
  4. Non sapete che pesci prendere? Chiedete consiglio o aiuto a qualcuno che ne capisce!
E il backup dei dati? No, non c'entra niente. Quello va fatto sempre. Comunque. A prescindere.