Da zero a Iper: impariamo insieme il web

condividendo si impara

Al riparo da siti ingannevoli grazie ai certificati digitali

2021-09-20 21:33:49

La trasmissione sicura dei dati non è sufficiente a garantire la sicurezza delle transazioni online. Serve anche verificare l'identità dell'interlocutore.

(copertina: disegno vettore creato da freepik - it.freepik.com)

Sinora, nella nostra esplorazione del mondo della crittografia sul web abbiamo imparato come proteggere le informazioni delicate che i nostri utenti mandano al nostro sito. 

Abbiamo visto come permettere ai nostri interlocutori di cifrare i messaggi che ci mandano attraverso una chiave pubblica che rende impossibile la comprensione del contenuto a chiunque non possegga la nostra chiave privata.

Abbiamo anche scoperto come possiamo rendere molto più efficiente la comunicazione mantenendo la massima sicurezza possibile combinando la cifratura a chiave pubblica con quella a chiave segreta.

Tutto questo però ancora non basta a garantire la sicurezza dei dati. 

Scusi, ma lei chi è? Truffe, identità inventate o impersonate online

In effetti tutte le tecniche viste sinora servono solo per la confidenzialità della trasmissione dei dati ma non garantiscono l'identità dell'interlocutore, e così a volte succede che credenziali di accesso a social network o e-banking finiscano in pasto a criminali che hanno semplicemente clonato una pagina di accesso (login), oppure che vengano messi online degli e-commerce che vendono prodotti inesistenti di ditte altrettanto inventate.

Come fare in modo quindi che i nostri utenti, non solo sappiano di poterci trasmettere in modo sicuro i loro dati, ma anche possano essere sicuri che siamo dei destinatari attendibili, che la nostra attività esiste davvero e che non stiamo impersonando qualcun altro? 

Favorisca il certificato digitale

Per fortuna ci vengono in soccorso le autorità di certificazione, dette certificate authority o CA: delle compagnie che si sono specializzate nel verificare l'identità dei soggetti operanti nel web e nel rilasciare dei certificati digitali che confermano al browser dei nostri utenti che il sito che stanno visitando appartiene veramente a noi e che la nostra identità è attendibile. 

Per ottenere il certificato dobbiamo contattare l'autorità e fornire tutte le prove richieste per dimostrare in maniera sufficiente sia che la nostra attività esiste nel mondo reale sia che il dominio del sito in questione ci appartiene per davvero. 

In caso di problemi col certificato, o di assenza dello stesso, il browser dei nostri utenti visualizzerà un messaggio di errore che li scoraggerà dal continuare la navigazione sul nostro sito. 

I campi più importanti di un certificato digitale

Il certificato digitale contiene parecchie informazioni ma le più significative dal punto di vista della sicurezza sono:

  • l'emittente (issuer): identifica l'organizzazione che ha rilasciato il certificato e viene usato dal sistema che lo riceve per determinare se il certificato è attendibile 
  • il periodo di validità: i certificati hanno un termine di scadenza che permette di avere sempre nuove verifiche e dati aggiornati periodicamente
  • il soggetto del certificato: il proprietario del sito certificato
  • la chiave pubblica del soggetto
  • la firma digitale dell'autorità che ha emesso il certificato (abbiamo parlato di come funziona la firma digitale in questo video)

Qualcuno però potrebbe obiettare, a ragione, che così come si fanno siti posticci si potrebbero creare delle false autorità che li certifichino...

Le basi della fiducia nelle CA

Ci sono due grandi gruppi di autorità certificanti di cui i nostri sistemi si possono fidare: 

  1. Quelle che abbiamo creato noi stessi per proteggere le comunicazioni fra collaboratori nella rete aziendale interna, dette autorità private, e che non vengono riconosciute dai sistemi esterni;
  2. Una lisa di autorità riconosciute come attendibili dai produttori di browser e che si trova nelle impostazioni di sicurezza dei nostri programmi di navigazione. Queste autorità si occupano dei certificati su Internet e sul web in generale. Chi utilizza chrome potrà consultare la lista accedendo alle impostazioni > privacy e sicurezza > sicurezza > gestisci certificati

Basare la fiducia in un numero limitato di autorità potrebbe, però, creare dei colli di bottiglia in quanto la massa di certificati da gestire può facilmente superare la capacità della singola CA. 

Le gerarchie di CA

Per evitare che il sistema subisca forti rallentamenti le autorità iniziali, chiamate anche autorità radice, possono delegare il loro compito ad altre autorità secondarie, che su chrome vengono chiamate intermedie, le quali a loro volta possono delegare e via dicendo.

Le autorità di grado inferiore vengono sempre certificate da quelle di grado superiore per cui controllando i certificati rispettivi il nostro browser è in grado di risalire la catena fino ad una delle autorità radice salvate nelle impostazioni. 

Qualora questo non fosse possibile ecco che verrebbe visualizzato un messaggio di errore che avviserà i navigatori che il processo di verifica dell'identità del sito è fallito. 

Che fare se un certificato deve essere revocato?

In alcuni casi potrebbe essere necessario revocare un certificato digitale. Ad esempio nel caso in cui la chiave privata del soggetto del certificato sia stata accidentalmente esposta o che ci sia stato un errore nel processo di certificazione.

In questo caso, una volta emesso, il certificato non può più essere cancellato prima della sua scadenza e per questo le autorità tengono una lista separata di certificati revocati (Certificate Revocation List, CRL) che deve essere consultata dal browser assieme al certificato fornito dal sito.

Let's encrypt: un servizio di base per tutti

Le autorità di certificazione si finanziano offrendo i loro servizi professionali e completi a pagamento.

In certe situazioni i costi potrebbero, però, diventare un ostacolo per chi ha piccole attività e presenze online e necessita esclusivamente di servizi di base che gli permettano di gestire correttamente le proprie comunicazioni e certificare il proprio sito.

Tanto più che l'offerta di una navigazione con comunicazioni cifrate spesso è un fattore importante per il posizionamento dei siti nei risultati dei motori di ricerca come Google. 

Per questo è nata Let's encrypt: una CA non profit, sponsorizzata da molti importanti attori e anche colossi del web, che permette di implementare la comunicazione sicura e ottenere certificati validi gratuitamente.

In questo modo anche i piccoli gestori di siti potranno contribuire a rendere Internet un po'più sicuro per gli utenti.

Detto questo, se si desidera nel tempo rendere sempre più professionale la propria attività e persenza online ecco che si giustificherà un investimento ulteriore.  

Come contribuire allo sviluppo del nostro gruppo di studio

Se ritenete utile e interessante questo progetto potete contribuire al suo sviluppo e alla sua continuazione condividendo questo canale con chi pensate che possa essere interessato a fare questo percorso insieme a noi e imparare a creare siti web a partire da zero.

V'invito anche a valutare la possibilità di diventare finanziatori di questa spedizione nel mondo del web con un contributo a vostra scelta utilizzando gli strumenti offerti da Cam.TV, per esempio attraverso l'opzione sostieni sotto ai contenuti oppure nella pagina del canale.

Approfitto dell'occasione per ringraziare di cuore tutte le persone che hanno già contribuito!

Vi ringrazio per il tempo che avete passato con me e vi auguro un iper-buona vita online e offline!

E non dimentichiamoci che condividendo si impara!!

Linkoteca

Sito di FreeCodeCamp (il nostro quaderno degli esercizi) 

Invito a "Siamo Iper!": il nostro canale Telegram per le chat vocali di gruppo

Lo scopo e la filosofia di Iper

Come si colloca ciò che impariamo nel più vasto mondo del web

La magia dell'ipertesto

Il browser va all'asilo. Che cos'è un linguaggio di markup

Il browser va a teatro: la struttura di base di una pagina web

Qualche strumento per trasformare il canale in un gruppo di studio interattivo

Esercizi pratici: le basi dell'HTML

HTML 5 e la struttura logica delle pagine web

HTML: impariamo ad aggiungere un'immagine a una pagina web

Facciamo insieme qualche esercizio su FreeCodeCamp (attenzione! spoiler soluzioni!)

 Come funzionano i link: le ancore che ci collegano al web
HTML: come inserire delle liste nelle nostre pagine web 
Quaderno degli esercizi HTML: link liste e inserimento dati
HTML: i tipi di visualizzazione predefiniti degli elementi
HTML: esercizi pratici con soluzioni (spoiler alert!!!)
Il protocollo HTTP: il browser va all'osteria
Introduzione ai formulari web 
Input: un elemento fondamentale dei formulari web 
Formulario web: costruiamo alcuni campi di input utente
Web form: terminiamo la carrellata degli elementi principali

Trattiamo con rispetto i dati dei nostri utenti

Mettiamo in partica i formulari

Tls: ricevere dati dai nostri utenti in maniera sicura

Crittografia: la scrittura nascosta (parte 1)

Crittografia parte 2: la firma digitale

Trasmissioni sicure e veloci abbinando i metodi di cifratura

18