Tra SPID e Privati non mettere il dito.

Per esperienza diretta posso dire che lo SPID di livello 2 e 3 è un metodo di autenticazione abbastanza robusto, anzi talmente robusto, che a volte è anche una scocciatura eseguire i doppi o tripli passi necessari per l'autenticazione, dato che il livello 2 prevede oltre alla password anche un codice OTP inviato direttamente nello smartphone del titolare del profilo e il livello 3 addirittura fa uso di certificati elettronici oltre al PIN.

La polemica innescata dall'ipotesi del ministro dell'innovazione, quindi, non può essere mossa da un punto di vista dell' ignoranza tecnico-informatica e in particolare di sicurezza informatica o di privacy, perchè semplicemente non sussiste!

Tra l'altro ritengo personalmente, che le questioni sulla privacy non tengano conto di rischi ben più gravi. Ad esempio, andare ad installare un'estensione appartenemente innocua su un browser (es. un estensione che permette di scaricare video youtube) o un app su un telefonino è meno rischioso di usare la stessa password su più siti purchè questa risulti cifrata? Assolutamente NO. Il punto è che le app possono nascondere dei keylogger, che solo una doppia o tripla autenticazione come lo SPID può metterli fuori uso. E quanti di noi sono certi che le nostre password non sono memorizzate in chiaro ma sono cifrate nei database dei siti e-commerce? (visto ancora il livello di arretratezza dei siti web e i mancati aggiornamenti spesso non fatti da anni dai titolari!) ...

L' invarianza nel posizionamento

C'è chi pensa che l'attività di ottimizzazione o visibilità nei motori di ricerca consista nello studiare come generare la causa "posizionamento" per ottenere l'effetto "aumento delle visite/visualizzazioni". Io invece capovolgo causa ed effetto e dico che sono sempre le visualizzazioni a determinare il posizionamento.

Chissà quanti algoritmi di information retrival saranno stati inventati dai motori di ricerca nel corso degli anni. Decine e decine, se non centinaia e con le tecniche più disparate, e continui aggiornamenti: reti neurali, regole statistiche o proabilistiche, logica fuzzy, Nearest Neighbors, tecniche di machine learning, ecc. ecc.

Insomma i tecnici si saranno sbizzarriti, sfornando sempre nuovi algoritmi. Algoritmi che o sono complessi da capire, o a volte restano "segreti industriali" generando nei SEO una corsa a capirne il funzionamento, partendo dai risultati. ...

L' Elaborazione dell' Entropia

Come suggeriva De Crescenzo, in uno dei suoi libri, per frenare l'entropia, sarebbe opportuno non agitare col cucchiaino lo zucchero immerso nel caffè ma aspettare che questo si sciolga da solo. Un bel suggerimento per garantire la segretezza!

Cos'è l'entropia ? Nell'ambito della teoria dell'informazione, l'entropia misura l'informazione generata dall'alterazione di uno stato d'ordine di una sorgente. Più precisamente, data una variabile aleatoria che descrive un fenomeno, l'entropia è il valore atteso delle autoinformazioni (o quantità di incertezza) di tutti gli eventi in cui può manifestarsi il fenomeno.

E' una definizione tanto complessa quanto affascinante, ma si può spiegare con un esempio banale:

Se una moneta è posta su un tavolo ed è ferma, noi la vediamo in ordine e con una faccia ben nota rivolta verso l'alto e l'altra in contatto col tavolo. Non aggiungiamo quindi nulla di nuovo a quello che sappiamo già e cioè non aggiungiamo informazione al nostro stato di consapevolezza del fenomeno osservato. ...

Relazione tra sicurezza e consapevolezza

Una continua evoluzione dei livelli di protezione non sempre è sintomo di sicurezza, ma al contrario può rappresentare un senso diffuso di insicurezza. Parlo di sicurezza informatica e cerco di spiegare questo concetto in modo semplice: Che la sicurezza sia un miraggio ne sono consapevoli i più grandi esperti in materia, tanto che nei corsi accademici si insegna sempre che la sicurezza è un processo e non un prodotto.

Un processo che si pone come obiettivo quello di rendere quanto più difficile all'attaccante di potersi intrufolare e violare i sistemi, ma non di ottenere il 100% del risultato. Ora siamo sicuri che un aumento dei livelli di sicurezza è sintomo di sicurezza? Se la sicurezza è un miraggio, come dice Bruce Schneier, allora ciò deve farci capire che ogni nuova misura intrapresa è consapevolezza di nuova insicurezza.

Fino a qualche tempo fa, per effettuare operazioni di online banking, bastava un nome utente ed una password, inviati tramite una connessione protetta da protocollo https e certificato ssl. Spesso, però, gli attacchi informatici non sono scongiurati dalla sola robustezza dei metodi crittografici matematici. Il pericolo, spesso, si insinua nei comportamenti errati umani (es. usare password ricorrenti su più server).

Da qui, si sono introdotte nuove misure: impronte digitali, sms otp, spid ecc. ecc. non sanno più quali diavolerie inventarsi.

Recentemente anche poste italiane ha dichiarato che <<"si adeguerà alle indicazioni fornite dalla Direttiva Europea (UE) 2015/2366 sui servizi di pagamento (Payment Services Directive o “PSD2”). Oltre al nome utente e a una password più complessa vi sarà richiesto di inserire il vostro codice Poste ID o la vostra impronta digitale in App Postepay">>. ...

Una società sotto controllo

In questi giorni sono continuamente bombardato da input socio-ambientali che mi ricordano il grande dilemma della sicurezza informatica: e cioè trovare il giusto compromesso tra privacy e progresso sia commerciale che tecnologico.

Mi sto rendendo conto che la stragrande maggioranza della popolazione se posta davanti all'ipotesi di essere tenuta sotto controllo da parte di un grande fratello, si sente ovviamente "attaccata" e sarebbe contraria a strumenti di rastrellamento dei dati personali (salvo poi dover accettare forzatamente per usufruire di certi servizi aziendali) e magari ritiene che sia corretto avere una tutela legale della propria riservatezza, ma contemporaneamente delega ad altri il controllo di sicurezza, non presta attenzione alle azioni che intraprende, nè valuta i rischi quando è attratta da qualcosa di innovativo (come i bimbi quando vedono un giocattolo nuovo, che lo vogliono e basta!).

L'entrata in vigore del GDPR ha creato non pochi disagi alle aziende, le quali se potessero, eliminerebbero tutti i balzelli burocratici relativi alla privacy. Tuttavia, attraverso delle azioni virali le aziende riescono ad escogitare sempre nuovi sistemi per strappare dati ed elaborare informazioni e previsioni. Dall'altra parte abbiamo una platea di comuni cittadini che alla prima App che invecchia la faccia non presta attenzione a chi conferisce i propri dati e nel caso specifico la forma del viso e accetta, accetta, accetta qualunque cosa pur di provarla (Io no! non sono un accept man, ma questo non significa che non uso la tecnologia!)

Appena 24 ore fa, si è diffusa la notizia che dietro a quella app ci sia nientemeno che l'ombra della Russia e dei servizi segreti, e cioè che l'app sia forse uno strumento per rastrellare dati per il riconoscimento facciale e creare un'enorme mole di dati per l'addestramento di intelligenze artificiali, visto che i server dell'azienda che ha diffuso l'app, si trovano a San Pietroburgo. ...

Il paradosso logico del Debunking

Ho cercato di formalizzare il meccanismo che sta dietro al paradosso del debunking, cioè il modello logico che permette di confondere le idee all'opinione pubblica iniettando fake news che insabbiano verità scomode e devo dire che questo meccanismo lo ritrovo in quasi tutte le ipotesi di complotto in circolazione, ciò mi fa presumere che il modello funziona. Vediamo un pò:

Siano :
\(T\): una tesi vera da negare all'opinione pubblica
\(O\): un insieme di persone (immaginiamola come l'opinione pubblica)
\(I\): una tesi falsa diffusa come vera e tale che \(I \implies \neg T \)

Definiamo anche il predicato \(C(x,K)\) come segue:
\[C(x,K) = \{\mbox{x crede che K è vera}\}\]

1° fase:
Si diffonde la tesi falsa \(I\) con l'obiettivo di raggiungere lo scopo che
\[\forall x \in O:C(x,I) \implies I \implies \neg T \]

2° fase:
Finchè regge la fase 1 non si prendono provvedimenti, almeno che qualcuno scopra che \(I\) è falsa e riesce a dimostrarla senza possibilità di smentita. In tal caso accade che qualcuno comincia a pensare che :

\[\neg I \implies \neg \forall x \in O:C(x,I) \overset{\mbox{?}}{\implies} T \]

Quando accade ciò, si mette a rischio l'insabbiamento della verità, quindi, è urgente prendere provvedimenti, partendo proprio da questo primo passaggio errato ma possibile (nel senso che la negazione di \(I\) porta a rivalutare \(T\) a tal punto da considerarla una conseguenza, anche se logicamente è errato!) ...

DOM senza restrizioni

Come qualunque altro sviluppatore web mi sono imbattutto nel classico problema dell'accesso al DOM di una risorsa web di un differente dominio rispetto all'applicazione che stavo sviluppando. Le modalità di accesso ai nodi (o tag) di una pagina di un sito esterno, attraverso automazioni di eventi applicati su iframe o finestre popup in genere sono soggette a forme di protezione da parte dei browser e dei domini stessi che ospitano la pagina. Tali misure però sono aggirabili, perchè anche se le indicazioni sono date dai server, l'implementazione è lasciata ai browser e questi, se opportunamente configurati, possono ignorarle.

Armato di buona volontà, e scelto Chrome come browser di lavoro per aggirare le politiche CORS (Richieste HTTP da domini incrociati), ho trovato online una configurazione che faceva al caso mio, ma lungi da farla funzionare senza adottare ulteriori accorgimenti: ho dovuto penare per arrivare alla soluzione completa e funzionante!

Pertanto, con questo articolo, voglio fornire ai lettori la soluzione chiavi in mano, funzionante e testata alla versione attuale del browser (la 69) per facilitare il lavoro a chi necessita dello stesso strumento. ...

Connessioni tra SEO e livello di trasporto TCP

Tutti i consulenti SEO sono consapevoli, più o meno, dell'importanza della velocità di caricamento di un sito web. Sanno che questo fattore influisce sia sulla riduzione del tasso di abbandono dei visitatori, sia sul buon esito della scansione degli spider-bot dei motori di ricerca. Ma perchè ? Cosa c'è dietro a questa ossessione per la velocità ? Un "mistero" che aleggia nientemeno che su un algoritmo usato per il controllo della congestione a livello di trasporto del protocollo TCP può influire addirittura sulla SEO ? ebbene si !

E' un argomento ostico, ma chi avrà la pazienza di seguirmi in questo articolo, sicuramente alla fine ne capirà qualcosa in più e avrà sprecato bene il suo tempo. Andiamo con ordine: La comparsa di reti telematiche sempre più veloci, non solo a livello di reti cablate ma anche mobile (pensiamo al 4G, e a breve il 5G) sta spingendo inevitabilmente l'utenza a ricercare delle esperienze di navigazione altrettanto veloci. Secondo Google, nel caso delle connessioni mobile (che in genere sono più lente di quelle cablate), l'utenza si aspetta in media una risposta per ogni richiesta web non superiore ad 1 secondo.

Tale secondo però è così suddiviso:

  • 300 ms di ritardo per questioni di risoluzioni DNS degli hostname in indirizzi IP, per la natura fisica della rete sottostante, interferenze o rumori di fondo ecc.
  • 300 ms per instaurare la connessione TCP
  • 200 ms per ricevere la prima porzione di codice html, quello iniziale senza interruzioni per perdita di dati
  • 200 ms di ritardo concesso al browser per il rendering della pagina.

Nei 200 ms necessari per ricevere il codice html iniziale si dovrebbe concentrare la trasmissione dei contenuti web che i professionisti SEO chiamano "above the fold", ossia quei contenuti che ricoprono lo spazio visibile in alto nella finestra del browser e a primo impatto per l'utente. Per evitare, dunque, che l'utente abbandoni il sito è fondamentale fornirgli senza perderere troppo tempo (e quindi nei tempi previsti come indicato sopra) i primi contenuti (rilevanti e possibilmente attraenti) e far in modo che, tutto il contenuto in fondo alla pagina sia eventualmente caricato in un secondo momento, magari con delle chiamate asincrone.

I 200 ms indicati da Google, in realtà non sono scelti a caso, e non sono neanche un puro capriccio degli utenti. Se da una parte l'utente pretende velocità, dall'altra ci sono limiti tecnologici che gli utenti devono inevitabilmente accettare. Citerò un valore che probabilmente nella pratica risulta già superato, ma è prassi riferirsi alle statistiche note e scientificamente accettate fin quando queste non vengono aggiorante alla situazione attuale.

Tutto nasce da un rapporto sullo stato di Internet risalente al 2010 ("The State of the Internet, 3rd Quarter 2009", Akamai Technologies, Inc., January 2010) secondo il quale si può assumere come valore medio di RTT delle connessioni TCP il valore di 200 ms.
Il Round Trip Time (o RTT) è il tempo massimo che deve impiegare un segmento TCP per viaggiare da un nodo della rete ad un altro, e restituire una notifica, o ACK al mittente per avvisare dell'avvenuta ricezione. Se l'ACK non viene ricevuto entro il tempo di RTT, il segmento di dati è andato perduto, e il mittente è obbligato a rispedirlo. Un segmento TCP è un insieme di pacchetti TCP che a loro volta possono contenere porzioni di codice html, in caso di contenuti web. In seguito a quel famoso rapporto sullo stato di salute di internet, gli esperti informatici hanno previsto di ampliare il numero di pacchetti per segmento portandoli da 2 o 3 (come erano previsti inizialmente nel protocollo TCP), a 10 adeguandoli cosi ai nuovi valori RTT medi rilevati che dimostrano un minor rischio di perdita dei pacchetti TCP.

Di fatto, se un sito web è ospitato da un server moderno che implementa questa caratteristica, potrebbe servire segmenti TCP di 10 pacchetti x 1460 byte (dimensione del campo dati di un pacchetto base TCP) = 14,6 KB. ...