L’argomento è ampiamente trattato sui manuali scolastici, ma proviamo a fare un riassunto delle problematiche, problematiche di sicurezza, implicazioni anche etiche, vantaggi e svantaggi soprattutto in funzione delle domande che possono uscire all’esame di stato quando si parla di queste due tematiche.
Indice dei contenuti
Autenticazione, identificazione, autorizzazione.
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: pincopallino@mail.tv è 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 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, come 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. Una riflessione con il lettore: internet funziona perché è libero e ognuno è libero di essere o fare quello che vuole. Sarebbe lo stesso se non fosse più anonimo?
Autorizzazione?
Autenticazione con coppia username/password
L’autenticazione con password è in assoluto la più diffusa, vuoi per la comodità, vuoi anche per le performance 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 e-commerce preferito. Al termine di una autenticazione con successo, siamo “autorizzati” 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 engineering che mette in pericolo le nostre chiavi di accesso.
Il Single Sign On (SSO)
TO DO
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. Esempi di funzioni di hash sono MD5 (non ritenuto più sicuro) e SHA nelle sue diverse versioni più robuste.
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 ma proviamo a sintetizzarlo. 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. In raltà questo protocollo non agisce a livello servizio della pila iso/osi ma scende nei livelli più bassi. Banalizziamo un po’ i passaggi o fasi di come un client/server instaurino un canale sicuro:
- Il client chiede al server un certificato. Il certificato viene cquistato dal server per garantire la sua “identità”. Se il certificato non è correttamente depositato, il server viene ritenuto “non sicuro/affidabile” e i bowser possono richiedere se tu voglia o meno continuare una navigazione non sicura.
- Se il certificato è corretto, il client utilizza tale certificato e la chiave pubblica del server per scambiare un messaggio crittografato quindi con chiave asimmetrica pubblica/privata
- Il contenuto del messaggio in realtà è una password simmetrica da utilzzare nei successivi passaggi per inviare e crittografare le informazioni sensibili. Abbiamo già visto come infatti gli algoritmi a chiave simmetrica siano più veloci di quelli a chiave asimmetrica ma inaffidabili qualora si debba scambiare la password in un canale pubblico.
- I due peer client e server hanno la chiave, decidono quindi quali algoritmi di crittografia e di hash utilizzare per inviarsi i dati e controlalre che non ci siano manomissioni.
- La comunicazione è ora pronta e compare una s davanti al protocollo http e spessocolora di verde quella zona del browser.
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 (obsoleti ora) oppure su smartphone tramite una app, o via mail o via sms. 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 tipo iride, impronte digitali, dna, o la semplice fisionomia del volto, che può essere utilizzato per rinforzare l’accesso al telefono o altro dispositivo. Ovviamente al momento è pessochè diffusa l’impronta digitale su tutti i 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, inserendo numeri e/o caratteri di una immagine o di riconoscere determinati oggetti all’interno di una immagine, dopo un certo numero di tentativi 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. Altra tecnica per evitare questo complesso problema è quella di utilizzare le “query preparate”. Con una sorta di parametrizzazione a run-time e query precompilata precedentemente, si impedisce di ricalcolare la query con caratteri anomali.
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. Trova applicazione anche in quelle cablate. Il classico modo per usufruire di questa tecnologia è attraverso un “captive portal”. E’ una tecnologia di autenticazione molto utilizzata nelle rete wifi anche pubbliche, dove è possibile accedere alla navigazione wifi registrandosi e autenticandosi con una opportuna form web. Il login con Radius consente di identificare chi è nella rete aziendale e cosa sta facendo con un notevole incentivo alla sicurezza. Nel login con Wi-Fi e SSID/Password, non sappiamo quali siano gli utenti reali collegati.
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 (leggi qui).
Buone pratiche
Infine qualche buona pratica sulla questione di autenticazione (che abbiamo approfondito qui). 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 sia attiva l’autenticazione doppia dobbiamo scegliere con cura le password da utilizzare.
- Utilizzare combinazioni di caratteri, numeri, caratteri speciali come []£$%&/()?^*§°(), lettere maiuscole e minuscole
- Non utilizzare sempre la stessa password per tutti i siti web. Se la rubano su uno, siete nei guai su tutti gli altri
- Occhio alle domande di recupero delle password. Contengono spesso dati sensibili facilmente rintracciabili sui social tipo “qual è il nome del tuo gatto” e magari sui social si ha il profilo aperto con le foto e commenti sul vostro gatto
- Non usare date di nascita o parole singole del vocabolario
- Non siate pigri, create password complesse di almeno 8 caratteri e cambiatele spesso, almeno ogni 6 mesi o un anno!
Ultima modifica 24 Aprile 2024