Qualche tempo addietro fa chi scrive questo post ha assistito, nell’orrore, ad una riunione dedicata alla descrizione dell’apertura di un nuovo portale internet realizzato, su commissione di un Consorzio (non diremo quale), esclusivamente per l’inserimento, lo scambio ed il monitoraggio di dati aziendali relativi alla produzione delle stesse. Perché nell’orrore ci chiederemo? Il fatto è che il mio occhio è subito, volente o nolente, caduto sull’uso dell’obsoleto protocollo HTTP che, alla fine del 2017, dal punto di vista di un tecnico della sicurezza, non dovrebbe nemmeno essere contemplato. Così, dando il beneficio del dubbio e pensando che, magari, fosse una cosa fatta tanto per la presentazione e che non avrebbe riguardato il lancio del sito stesso, ho chiesto: “Ma, scusate, una domanda relativa alla sicurezza ed al login: avete intenzione di mantenere il protocollo HTTP oppure di passare all’HTTPS?” (ovviamente nessuno dei presenti alla suddetta riunione, tranne si spera i tre informatici presenti, sapeva nulla di questi protocolli e nessuno ha nemmeno pensato di chiedere spiegazioni in merito). La risposta, un po’ sorniona, è arrivata dopo un’iniziale moto di sorpresa mista a panico: “Beh, sì, è stata fatta la richiesta per l’HTTPS, stiamo aspettando, anche perché a me, sa, piace di più il formato”. Alché il sedicente informatico si è sentito rispondere e sottolineare che il problema non era il formato ma la facilità, per chiunque si potesse connettere alla rete aziendale, di leggersi nomi utente, passwords e di conseguenza tutti gli altri dati caricati con il semplice utilizzo di un programma gratuito per l’analisi del traffico di rete. La discussione è caduta lì: lasciata affondare come una palla di piombo nel mare dell’ignoranza generale troppo concentrata sulla bella grafica e su dove cliccare col mouse per risalire ai propri archivi con un “Ah sì, sì, beh certo, arriverà”.
Questo è successo a dicembre: il portale in questione, ora, è online e viene utilizzato regolarmente (poiché così imposto alle aziende) con il datato protocollo HTTP.
A questo punto però abbiamo deciso di scrivere un post dedicato proprio all’importanza dell’uso del protocollo HTTPS e dei certificati SSL sperando, in qualche modo, di sensibilizzare i nostri lettori in materia.
Iniziamo, quindi, col dire che anche un utente comune dovrebbe essere interessato a questa tematica per la sicurezza e la protezione dei propri dati personali. L’estate scorsa avevamo dimostrato, per esempio, come fosse possibile e semplice collegarsi ad una rete Wi-Fi pubblica e, con l’aiuto di un programma gratuito, sfruttare le falle di siti di tipo HTTP per leggere facilmente nomi utenti e password di chi si connetteva ai suddetti sulla medesima rete (qui il post citato).
Prima di immergerci nelle specifiche tecniche, quindi, vediamo come controllare subito se un sito si può considerare o meno affidabile. Nell’immagine qui sotto vediamo, sulla nostra sinistra, la copia della home page di questo blog, codexsprawl, dove in alto possiamo notare un lucchetto con la scritta in verde “Secure | https:” questo significa che la pagina è protetta e sicura; non solo, se abbiamo ancora qualche dubbio, cliccando su tale iscrizione comparirà anche una finestrella su cui selezionare, sotto “Certificate” la dicitura “Valid” che ci mostrerà tutte le specifiche del certificato SSL in uso (come vedremo ce ne sono di diversi tipi): potremo così controllare sia che il nome del dominio coincida con quello segnalato nel certificato sia che quest’ultimo sia stato generato da un’autorità sicura ed abbia una firma digitale valida. Il certificato, infatti, viene utilizzato per associare una chiave pubblica con una collezione di componenti che permettano l’identificazione del proprietario (esso include numero seriale, informazioni identificative, algoritmi informativi, date e firme dell’autorità specifica): meccanismo che dovrebbe aiutare lo stesso utente nella selezione dei siti.
Nell’immagine, invece, alla nostra destra vediamo un sito (che non è lo stesso menzionato ad inizio articolo bensì un altro), di cui abbiamo deciso di non rivelare il nome, dove troviamo la scritta in grigio “Non sicuro” dove, oltretutto, l’utente ha la possibilità di accedere con login e password: qui non sono presenti certificati il che significa che non esiste una chiave di criptaggio che nasconda i dati che l’utente andrà ad inserire.
Questo piccolo dettaglio non è trascurabile poiché nel momento in cui un utente qualsiasi decida di inserire i propri dati du un sito oppure comprare su internet qualcosa, via e-commerce, e non sia presente alcun certificato SSL (e quindi che tale sito non sia un HTTPS ma solo un HTTP) questa persona rischierà l’eavesdropping (o intercettazione, termine che deriva dal verbo inglese “origliare” e che indica l’atto di “ascoltare” conversazioni altrui e di registrare tutte le informazioni utili) della propria sessione di pagamento da parte di qualche malintenzionato cosicché, senza troppi sforzi, questi riesca ad ottenere i dati in transito e quindi non solo nome utente e password ma anche la specifiche della carta di credito del malcapitato (questo tipo di attacco viene denominato MITM, ovvero man-in-the-middle).
L’acronimo SSL, utilizzato per indicare i Secure Sockets Layer, viene genericamente utilizzato anche per indicare impropriamente i TLS (Transport Layer Security). L’SSL (oggi giunto alla versione 3.0), infatti, è stato sviluppato a metà anni Novanta da Netscape imponendosi presto come un non-open-community protocol (protocollo non aperto alla comunità) standard nel meccanismo di scambio dati. Essendo un non-open-community protocol la comunità tecnologica non può espandere le funzionalità di tale protocollo modificandolo: qui si pone la piccola differenza che intercorre tra SSL e TSL; quest’ultimo, infatti, è un protocollo open-community e, quindi, più estensibile e retrocompatibile (ovvero compatibile con versioni datate dello stesso SSL).
L’SSL è, in realtà, composto da due protocolli di criptaggio che si trovano in due diversi “piani alti” del modello OSI (a cui abbiamo dedicato un intero articolo qui), ovvero in quelli dedicati a trasporto e sessione che, oltretutto, sono considerati i più delicati dal punto di vista della sicurezza poiché la maggior parte di attacchi ai sistemi si concentrano proprio su questi livelli. Ci troviamo quindi nel passaggio che avviene tra applicazione ed applicazione (e vice versa) e tra computer e computer. Generalmente una pagina internet, come per esempio quella per accedere alla nostra casella e-mail oppure quella di un negozio e-commerce, presenta due porzioni, ovvero quella pubblica e quella sicura. Il momento in cui decidiamo di autenticarci come utenti ci viene richiesta un nome utente ed una password. Quando passiamo dalla pagina pubblica di tale sito a quella sicura il server del suddetto inizia le operazioni per richiamare i protocolli SSL e proteggere la comunicazione che abbiamo richiesto di aprire con il sito. In particolare, ci troviamo in quella che viene denominata handshake phase (fase della stretta di mano) in cui il server del sito che ci richiede l’autenticazione invia un messaggio al client indicandogli la richiesta di stabilire una sessione sicura; questi invierà quindi i propri parametri di sicurezza così da permettere al server di controllare i parametri cercandone la presenza di un accordo o match nella lista dei certificati di cui può fidarsi. A questo punto, per stabilire un canale sicuro, il client genera una chiave che permette un criptaggio di tipo simmetrico per la sessione in uso e la invia al web server (questo tipo di crittografia è molto veloce a livello computazionale rispetto a quella asimmetrica e può essere difficile da decodificare se la chiave è abbastanza forte. In compenso però richiede un meccanismo sicuro per lo scambio delle chiavi e più utenti avranno accesso a questo tipo di dati più chiavi dovranno essere distribuite). I dati viaggiano attraverso uno spazio invisibile generato dal flusso d’informazioni in pacchetti criptati, quindi protetti da un sistema che li cifra e decifra (qui un po’ d’informazioni sulla storia di questa materia) grazie all’SSL. Questi mantiene la comunicazione aperta finché una delle due parti non decide di disconnetterla.
I PUNTI DEBOLI
A questo punto, dopo aver descritto ampiamente l’importanza del protocollo HTTPS e del suo certificato SSL, soffermiamoci sui loro punti deboli premettendo una piccola cosa: il fatto che tali sistemi di sicurezza abbiano le proprie debolezze non significa che un utente non debba tener conto delle loro forze e cercare di usufruirne poiché sarà sempre più facile trovare on-line un ladruncolo annoiato che si diverta a rubare i dati di persone ignare solo perché “serviti su un piatto d’argento” che non un hacker che sia in grado di superare i vari sistemi di protezione.
Allo stesso tempo, il protocollo SSL può essere utilizzato da un malintenzionato per il proprio traffico così da trasferire pacchetti infetti criptati all’interno di un sistema compromesso.
Non solo, l’SSL provvede alla sicurezza della connessione, ovvero protegge i dati durante la trasmissione ma non dopo che questi sono stati ricevuti. Questo significa che grazie al protocollo se noi trasmettiamo i nostri dati bancari all’account della nostra banca tale comunicazione è protetta dopodiché è responsabilità della banca stessa (e non dell’SSL) il mantenimento della protezione dei dati e delle informazioni che le abbiamo inviato on-line.
Inoltre, come vedremo nel paragrafo successivo, non esiste un solo tipo di certificato SSL bensì tre i quali offrono diversi livelli di sicurezza soprattutto per quanto riguarda il cliente che si connette ad essi.
ACQUISIZIONE CERTIFICATI SSL: COME SCEGLIERE QUELLO PIÙ ADATTO ALLE NOSTRE ESIGENZE, COME RICONOSCERLI, QUALI SONO I PIÙ SICURI E PERCHÈ
È possibile acquisire certificati SSL autorizzati sia gratuitamente che a pagamento ma quali sono le differenze a qual è, effettivamente, la nostra necessità nel momento in cui vogliamo applicarli al nostro sito personale o a quello della nostra azienda?
Innanzitutto, ricordiamoci che prima di acquisire un certificato SSL il nostro dominio deve risultare già registrato per dare la possibilità al CA, ovvero all’Autorità Certificativa (Certificate Authority) di verificare che il suddetto dominio sia di nostra proprietà.
Esistono tre principali tipologie di certificato SSL che abbiamo elencato qui dal più debole al più fidato:
- DV (Domain Validated), è il certificato più semplice e con meno pretese che si può acquisire anche gratuitamente ideale per coloro che hanno, per esempio, blog, newsfeed, piccole aziende, o piccoli siti che comunque non sfruttano l’e-commerce.
Qui, l’autorità controlla che il proprietario abbia il controllo amministrativo del dominio.
Il certificato non dà però la certezza, a colui che si connette al sito, che questi sia effettivamente di proprietà della persona o compagnia che lo ha richiesto. Questo significa che qualcuno potrebbe fingersi, per esempio, di essere l’aziendaX, creare un sito a nome della suddetta oppure persino copiare la pagina web originale pretendendo d’essere tale aziendaX, e quindi spingendo l’utente a fidarsi ed inserire i propri dati.
A colpo d’occhio i certificati DV ed OV si presentano sul nostro browser allo stesso modo ma controllando, eventualmente, le specifiche dei suddetti possiamo riconoscerli. Cosa vuol dire questo? Semplice, i siti che hanno acquisito solo certificati DV nei dettagli degli stessi (v. immagine precedente su come visualizzarli) sarà assente sia il nome dell’organizzazione (O) che dell’unità organizzativa (OU) a cui è stato rilasciato. Inoltre, dando un’occhiata ai dettagli ed alla voce “soggetto” mancheranno tutte le informazioni relative all’azienda come il luogo della propria sede. Nella schermata sottostante vi mostriamo un esempio di come un certificato SSL DV viene visualizzato: Un’altra cosa da aggiungere, possiamo notare che l’autorità qui nominata per il rilascio degli SSL è Let’s Encrypt la quale offre gratuitamente tali certificati. Qui, è possibile infatti acquisire in modo semplice ed automatico solo ed esclusivamente di tipologia DV (Domain Validated). - OV (Organization Validated), invece, è un certificato in cui l’autorità verifica che colui che ha richiesto il suddetto sia effettivamente la persona o azienda in questione legittimandola. Questo, però e logicamente, implica un tantino di burocrazia in più e della documentazione da presentare che nel caso del certificato DV non si rende necessaria: la convalida delle informazioni richiede, infatti, del tempo (generalmente da 1 a 3 giorni).
Questo tipo di certificato è consigliato per le medie imprese ed organizzazioni che richiedono l’utilizzo di dati sensibili; lo stesso google.com ha un certificato di questo tipo come mostrato nell’immagine sottostante e, come possiamo notare, alla voce “soggetto” qui vengono associate le informazioni dell’azienda stessa.In questo caso, però, parliamo di un certificato SSL a pagamento (mentre il DV è possibile acquisirlo gratuitamente come detto poc’anzi) ed il suo costo varia ma si aggira attorno ai 70 – 90 euro annui.
I siti con offerte migliori sono in questo caso GoDaddy (88 euro per il primo anno e successivamente 188 euro), Comodo (con 174 euro l’anno), Register (con 95 euro annui) - EV (Extended Validation), questo è il certificato SSL più sicuro, più semplice da riconoscere per l’utente e consigliato a banche, aziende e-commerce et similia, ma è anche il più costoso dei tre citati (tra i 150-300 euro annui) e poche aziende effettivamente lo utilizzano proprio a causa del suo prezzo. Paypal, per esempio, ente conosciuto proprio grazie alla sicurezza delle transazioni che offre all’utente utilizza l’SSL EV.
Come già accennato, è facile per l’utente riconoscere questo certificato: appena avuto accesso alla pagina web richiesta nell’URL, infatti, non sarà presente solo la scritta verde “Secure” (o Sicuro) oppure il lucchetto verde ma anche il nome della ditta in verde, seguito dalla sigla dello stato a cui appartiene (nel caso di Paypal, US); inoltre, aprendo subito la pagina informativa troveremo la convalida di vari dati specifici dell’azienda.Anche qui GoDaddy è una delle autorità che presentano offerte più basse per quanto riguarda i prezzi dei certificati SSL EV (nel momento in cui scriviamo, infatti, il sito presenta un’offerta per il solo primo anno che si aggira attorno ai 94 euro ma che negli anni successivi aumenterà a 188 euro circa).
Per concludere, ricordiamoci che i certificati SSL influenzano anche, dal punto di vista SEO, il ranking (piazzamento) del nostro sito nei motori di ricerca come Google i quali privilegiano coloro che presentano le certificazioni.
Lascia un commento