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. ...

L' Approccio teorico alla Consulenza

Supponiamo che Tizio e Caio si rivolgono al consulente Sempronio per farsi risolvere 2 problemi simili ma non uguali :

Problema 1 : Tizio chiede a Sempronio la realizzazione di un programma che dato un numero pari in input \(2n\) , produca in output, se esiste, il più piccolo numero primo \(p\) , tale che \(2n-p\) sia primo.

Problema 2 : Caio chiede a Sempronio la realizzazione di un programma capace di produrre in output, dato un numero pari in input \(2n\), il più piccolo numero primo \(p\), tale che \(2n-p\) sia primo.

I due problemi sono evidentemente diversi e di ciò ne sono consapevoli sia Sempronio che Tizio (che per fortuna è un cliente ragionevole o colto), ma non Caio. Caio pretende da Sempronio che lo rifornisca dello stesso "prodotto" pensando che questo sia risolutivo per il problema.

Il comportamento di Sempronio rispetto alle richieste ossessive di Caio, può essere triplice:

a) comportamento onesto e remunerativo
b) comportamento onesto e non remunerativo
c) comportamento disonesto e remunerativo ...

Il paradosso del Superenalotto

Per puro diletto matematico, oggi voglio regalare uno spunto di riflessione a tutti gli appassionati del gioco del superenalotto e non perchè sono contrario al gioco, o voglio allontanare la gente da questa perversa macchina mangia soldi, ma perchè credo che come per il tabacco, l'alcool o qualunque altro vizio umano, è fondamentale "conoscere per deliberare". Mostrerò una teoria statistica nota come "paradosso del compleanno" applicata alle estrazioni delle sestine. Il paradosso spesso viene citato nella sua formulazione didattica: "In un gruppo di 23 persone, la probabilità di trovare almeno 2 persone con lo stesso compleanno è pari al 50%". Ma, come si legge perfettamente da wikipedia, "il paradosso non è da intendersi nel senso di una contraddizione logica (antinomia), ma nel senso che la verità matematica contraddice l'intuizione naturale. Molte persone stimano che questa probabilità cresca molto più lentamente con la numerosità del gruppo. In particolare sembra quasi assurdo che bastino 50 persone per avere una probabilità prossima al 100%", più semplicemente si chiama paradosso, ma non lo è in quanto è un paradosso solo intuitivo ma non teorico. ...