Giovedì, 09 Gennaio 2020 12:33

L'autenticazione e la sua sicurezza

Scritto da

L'argomento è ampiamente trattato sui manuali scolastici, ma proviamo a fare un riassunto delle problematiche, vantaggi e svantaggi soprattutto in funzione delle domande che possono uscire all'esame di stato.

Autenticazione vs Identificazione

Prima di addentrarci nelle problematiche dell'autenticazione, vale la pena differenziare il problema dell'autenticare un utente online per permettergli, ad esempio, di accedere ad alcune funzionalità di un qualsivoglia sito web, quanto quello di identificare una persona, un utente, che sia proprio quella fisicamente nella realtà. Ad esempio ho un account sui social ma la mia username è pippo e la foto del profilo è un gattino: mi autentico magari a quel profilo social ma non compare in alcun modo che è di alfredo centinaro. Stessa cosa per la mail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. è una mail dal nome bislacco che non identifica la mia persona ma nulla mi vieta di usarla per scrivere agli amici. Di certo un account che identifica la persona che lo possiede è la mail PEC, la posta elettronica certificata che si ottiene dopo essersi verificati di persona alla posta con documento di riconoscimento, ma è una casella il cui contenuto ha valore legale davanti al giudice. Una mail inviata o ricevuta non può essere artefatta, negata, ripudiata davanti ad un giudice, mentre una mail classica è discrezionale. 

Il problema dell'identificazione è un problema non solo informatico ma soprattutto di privacy a tutto tondo, anche di etica, di morale, di come le informazioni utilizzate e relative ad una identità fisica possono o non possono essere utilizzate, salvate, gestite dalla rete. Basti pensare a che cosa accadrebbe se alla nostra identità fossero legate e visibili i miei acquisti online, le mie preferenze di siti web, preferenze sessuali, fede religiosa o altri dati sensibili. Troppo complesso già pensare a quanti vasi di pandora si scoprirebbero sul territorio "franco" e libero di internet. 

 

Autenticazione con coppia username/password

L'autenticazione con password è in assoluto la più diffusa, vuoi per la comodità, vuoi anche per le performace che una chiave simmetrica consente. La utilizziamo tutti i giorni per loggarci sulla nostra casella email con username e password o sul nostro sito di ecommerce preferito. Al termine di una autenticazione con successo, siamo "autoirizzati" ad utilizzare determinate funzionalità precedentemente precluse.  Un problema tecnologico, pressoché irrisolvibile, è che impossibile "identificare" l'utente, la persona dietro l'inserimento delle credenziali, da qui il problema di autenticare sul web e identificare nella vita reale, due concetti differenti e difficili da integrare anche per motivi di privacy non di poco conto. C'è poi l'annoso problema delle password rubate o condivise in modo poco consono, per poi arrivare al problema del phishing o del social engeneering che mette in pericolo le nostre chiavi di accesso.

 

Le funzioni di hash

Uno dei principali delle password è quello di doverle conservare in un database per poi confrontarle con la richiesta di autenticazione di un utente. Qui si genera un problema di privacy non indifferente  che da sempre è noto agli sviluppatori web. Le password sono chiavi fortemente personali, spesso utilizzate anche per gestire account diversi. Un sistemista o un malintenzionato che riuscisse ad ottenere e visualizzare password salvate in chiaro, potrebbe usarle per alterare, manomettere un account utente, usare la password o altre informazioni analoghe sensibili su altri siti web o sistemi di autenticazione del soggetto malcapitato. Ecco perchè per salvare le password, un sistema informatico serio ed affidabile (e non è da sottovalutare), non salva la vostra password in chiaro in fase di registrazione, ma la sua impronta, attraverso una funzione di hash che genera una sequenza univoca e di lunghezza fissa di caratteri a fronte della vostra e solo la vostra password. In questo modo, ad esser salvata sul database non è la password ma la sua impronta, che può essere usate per confrontare l'autenticazione dell'utente ma da cui è impossibile risalire alla password iniziale. Sentiamo, purtroppo spesso, come alcuni siti web anche piuttosto famosi, non abbiano utilizzato queste tecniche commettendo anche reati annessi.

 

SSL/TLS

Fa parte di un nuovo protocollo che rende sicure le nostre transazioni online, solitamente mentre stiamo navigando in siti web dove ci logghiamo con credenziali username/password. Il protocollo è approfondito nei manuali e nelle pagine di questo sito. Banalmente, crea un canale sicuro tra client e server per permettere di scambiare una funzione di hash ed una password simmetrica che permette alla comunicazione di viaggiare crittografata e integra.

 

Autenticazione doppia

Una pratica sempre più diffusa è quella di usare una autenticazione doppia: bene conoscere la password ("Qualcosa che so") ma per essere sicuro che la password non sia stata intercettata o caduta in cattive mani viene chiesto anche un secondo codice univoco temporaneo su un dispositivo portatile ("Qualcosa che ho"), in genere o un generatore di codice portatile oppure su smartphone tramite una app. In questo modo, anche se un maleintenzionato scopre la nostra password, non potrà, si spera, avere contemporaneamente anche il nostro smartphone col codice temporaneo usa e getta OTP, One Time Password.  Esiste una terza tipologia di autenticazione da abbinare che è quella "Qualcosa che sono", ovvero una qualche misura biometrica, iride, impronte digitali, dna, che può essere utilizzato per rinforzare l'accesso. Ovviamente al momento è diffusa l'impronta digitale su alcuni dispositivi mobili.

 

Captcha

Non serve esattamente nella fase di autenticazione ma incontriamo i captcha spesso quando ci logghiamo sui siti web. Non sono elemento di sicurezza ma servono solo per verificare che sia un utente umano ad inserire la password piuttosto che un software che prova a forza bruta ad inserire username e password a caso per accedere abusivamente nel nostro account. E' pur sempre consigliato inserirlo nei nostri applicativi. Molti siti web richiedono di risolvere un captcha dopo un certo numero di tentaivi di login falliti.

 

SQL Injection

Le SQL Injection sono attacchi informatici che sfruttano form o campi di input/immissione dati per scalare permessi a vario titolo o reperire o alterare dati del database. Non sono correlati direttamente quindi al login, ma poiché l'autenticazione si effettua sempre attraverso campi di input e si interagisce col db, è bene prevenire questo genere di attacchi con le opportune contromisure. Che sia usto PHP o altro linguaggio, esistono infatti funzioni per "ripulire" i dati immessi nei vari campi. In PHP abbiamo visto le funzioni mysql_real_escpe_string(), stripslashes() e trim(), che elimina caratteri speciali, apici o spazi rispettivamente nei dati immessi.

 

802.1x, Radius AAA, Kerberos

L'accesso a sistemi informatici o reti aziendali intranet parte di utenti avviene tipicamente con protocolli di tipo client-server quali i protocolli AAA (esempi visti a lezione RADIUS e citato Kerberos) in una comunicazione tra il client e il server di autenticazione "centralizzato" sfruttando una delle modalità/tecniche di autenticazione viste in questo articolo. Il protocollo 802.1x, ampiamente trattato sui libri di testo, è divenuto lo standard di autenticazione per le reti LAN wireless e trova applicazione anche in quelle cablate.

 

Identificazione/autenticazione su beni fisici

Identificare dei beni o delle merci è problema non indifferente. Esistono da sempre tecniche che conosciamo come i codici a barre ma si stanno diffondendo sempre più sistemi altamente tecnologici come banner olografici o con stampe con particolari tipi di inchiostri UV o a micro-rilievo, per poi passare agli RFID wireless, veri e propri trovati tecnologici che stanno rivoluzionando i magazzini automatizzati.

 

Buone pratiche

Infine qualche buona pratica sulla questione di autenticazione. E' chiaro che tra quelle viste, a più sicura e semplice da usare è quella doppia con combinazione Password/PIN. E' molto difficile da violare, anche se non impossibile, ma da garanzie piuttosto elevate di sicurezza, al di la della scomodità di dover aver un cellulare dietro o altro dispositivo. La biometria con impronte digitali e il "chi sei" non è purtroppo sempre utilizzabile per limiti fisici al momento. Certamente anche nel caso non ia attiva l'autenticazione doppia dobbiamo scegliere con cura le password da utilizzare. 

1. Utilizzare combinazioni di caratteri, numeri, caratteri speciali come []£$%&/()?^*§°(), lettere maiuscole e minuscole

2. Non utilizzare sempre la stessa password per tutti i siti web. Se la rubano su uno, siete nei guai su tutti gli altri

3. Occhio alle domande di recupero che contengono dati sensibili facilmente rintracciabili sui social tipo "qual è il nome del tuo gatto" e poi su instagram avete il profilo aperto con le foto e commenti sul vostro gatto

4. Non usare date di nascita o parole singole del vocabolario

5. Non siate pigri, create password complesse di almeno 8 caratteri e cambiatele spesso, almeno ogni 6 mesi o un anno!

Letto 93 volte
Prof. Alfredo Centinaro

Docente di "Scienze e tecnologie informatiche", "Tecnologie e progettazione di sistemi informatici", "Sistemi e Reti" presso IIS Alessandrini-Marino (Teramo), consulente e sviluppatore web. Ha collaborato per anni come sviluppatore presso MHT - Treviso, assistente Sistemi ed elaborazione dell'informazione in UniTE Corso di laurea in Scienze del turismo culturale, tutor presso Telecom Italia Learning Services (L'Aquila)

Altro in questa categoria: « Le tecnologie Wireless
Joomla SEF URLs by Artio