sicurezza web: Atte...
 
Notifiche
Cancella tutti

sicurezza web: Attenzione al SHA1!


vic
 vic
Illustrious Member
Registrato: 2 anni fa
Post: 6373
Topic starter  

La riservatezza sul web puo' essere conseguita criptando.

Anzitutto la comunicazione in se'. In secondo luogo i documenti.

L'idea del criptaggio e' vecchia come il cucu'.
C'era il metodo usato da Giulio Cesare. C'era anche quello praticato dai Gesuiti. Per esempio ha destato un certo scalpore pochi anni fa la scoperta di scritti sul Peru' incaico, redatti dal gesuita meticcio Blas Valera. Scritti che hanno dovuto essere decriptati per venir letti. La chiave di decriptaggio venne scovata da un ricercatore in biblioteca.

Oggigiorno del criptaggio si occupano i matematici per la parte teorica e i programmatori di computer per la messa in pratica degli algoritmi matematici.
Alla base dei moderni ragionamenti sul criptaggio sta l'idea che e' estremamente difficile, anche per un supercomputer, scomporre un numero intero piuttosto lungo frutto del prodotto di due numeri primi, anch'essi piuttosto lunghetti.

Per motivi pratici, negli algoritmi di criptaggio, vengono impiegate le cosiddette funzioni di hashing.
Sostanzialmente ad un messaggio vien fatto corrispondere un lungo numero, una stringa di caratteri se si vuole. La proprieta' richiesta ad una funzione hash e' che a due messaggi diversi devono corrispondere due hash diversi.
Se per caso, e puo' succedere, due messaggi diversi hanno un hash identico, si parla di collisione. Quindi una buona funzione di hashing riduce le collisioni al minimo.

Fatto sta che i certificati per comunicare in modo sicuro sul web usano per lo piu' un algoritmo di hashing noto come SHA1.

Ahinoi, pare che questo SHA1 abbia i giorni ormai contati, in quanto sarebbe ormai alla portata di (quasi) chiunque dotato di un buon computer, di generare degli hash SHA1 che vanno in collisione.

Percio' cominciano a girare sul web i consigli di passare a SHA2 o a SHA3. Consigli destinati ai big players del web.

Su questa faccenda fa il punto un articolo di Ars Technica:
http://arstechnica.com/security/2015/10/sha1-crypto-algorithm-securing-internet-could-break-by-years-end/


Citazione
Truman
Membro Moderator
Registrato: 2 anni fa
Post: 4113
 

Una risposta potrebbe essere questa:
https://it.wikipedia.org/wiki/HMAC
In pratica allo hash si aggiunge una chiave crittografica, preferibilmente che cambi con alta frequenza.


RispondiCitazione
polm
 polm
Trusted Member
Registrato: 2 anni fa
Post: 78
 

@truman, la risposta c'è già ed è applicata dai "big players": usare SHA2.
Dove SHA1 usa 160 bit di "impronta" (digest), SHA2 usa 256 o più bit.
In sostanza, molti client (browser, ad esempio) e server sono già compatibili con SHA2.
Dal 2017 dovranno esserlo tutti, perché tutti i certificati digitali dovranno utilizzare SHA2.


RispondiCitazione
Truman
Membro Moderator
Registrato: 2 anni fa
Post: 4113
 

@truman, la risposta c'è già ed è applicata dai "big players": usare SHA2.
Dove SHA1 usa 160 bit di "impronta" (digest), SHA2 usa 256 o più bit.
In sostanza, molti client (browser, ad esempio) e server sono già compatibili con SHA2.
Dal 2017 dovranno esserlo tutti, perché tutti i certificati digitali dovranno utilizzare SHA2.

Io parlavo di sicurezza informatica, non di commercio. Certamente è interesse commerciale aumentare la lunghezza delle chiavi e vendere nuovi prodotti. Ma è business prima che sicurezza.


RispondiCitazione
polm
 polm
Trusted Member
Registrato: 2 anni fa
Post: 78
 

Guarda che si parla sempre di sicurezza informatica!
Cosa c'entra vendere nuovi prodotti?
Se i certificati digitali... quelli che, fondamentalmente, garantiscono l'identificazione di un soggetto, usano un algoritmo di hashing inadeguato... la sicurezza è in qualche modo compromessa.

Quella che hai postato tu è una tecnica di autenticazione e non un algoritmo di hashing (è una tecnica, appunto, che usa un algoritmo di hashing).
La sua "forza", tra le altre cose, risiede anche nella forza dell'algoitmo di hashing
utilizzato. E dunque: HMAC-MD5 è meno robusto di HMAC-SHA1, che è meno robusto di HMAC-SHA2, etc.


RispondiCitazione
Truman
Membro Moderator
Registrato: 2 anni fa
Post: 4113
 

Guarda che si parla sempre di sicurezza informatica!
Cosa c'entra vendere nuovi prodotti?
Se i certificati digitali... quelli che, fondamentalmente, garantiscono l'identificazione di un soggetto, usano un algoritmo di hashing inadeguato... la sicurezza è in qualche modo compromessa.

Quella che hai postato tu è una tecnica di autenticazione e non un algoritmo di hashing (è una tecnica, appunto, che usa un algoritmo di hashing).
La sua "forza", tra le altre cose, risiede anche nella forza dell'algoitmo di hashing
utilizzato. E dunque: HMAC-MD5 è meno robusto di HMAC-SHA1, che è meno robusto di HMAC-SHA2, etc.

Molti anni fa la CocaCola veniva venduta in bottiglie da 20 cl, adesso la bottiglia standard è 2 l. Questo è il commercio, al venditore conviene più vendere bottiglie da due litri che bottiglie da un quinto di litro.
Quando vedo comportamenti analoghi in altri settori provo a valutare se ci sia una spinta dei venditori per incrementare il business vendendo paure.
1) si instillano paure
2) si propongono soluzioni preconfezionate
3) si rifila al consumatore ingenuo la soluzione predisposta per il massimo profitto.
Incidentalmente, questo metodo è usatissimo anche in campo medico.

Nel merito, l'hash raramente viene usato da solo, ma solitamente viene usato in algoritmi più complessi per obiettivi precisi, per esempio autenticare un messaggio. Per tale scopo specifico (come giustamente noti) sono possibili scelte diverse da quella preconfezionata.
Se poi tale scelta conviene all'utente è una valutazione da fare caso per caso. Comunque HMAC ha delle complessità di implementazione ma anche minore sensibilità a eventuali backdoors lasciate volutamente a disposizione di precise agenzie. Ecco perchè qualche big player potrebbe averlo preferito.


RispondiCitazione
polm
 polm
Trusted Member
Registrato: 2 anni fa
Post: 78
 

Capisco la metafora, anche se non credo sia la stessa cosa.
La spinta a modificare l'algoritmo di hashing nei certificati digitali riguarda una piccola frazione dei "consumatori", i quali (forse) devono rinnovare il certificato.

Però in tutto questo non capisco davvero cosa c'entri HMAC!
Non è una alternatina all'hashing, è una tecnica di autenticazione nello scambio di messaggi che usa l'hashing: MD5, SHA1, SHA2, ...

Da wikipedia (TLS):

Il funzionamento del protocollo TLS può essere suddiviso in tre fasi principali:

- Negoziazione fra le parti dell'algoritmo da utilizzare
- Scambio delle chiavi e autenticazione
- Cifratura simmetrica e autenticazione dei messaggi

Nella prima fase, il client e il server negoziano il protocollo di cifratura che sarà utilizzato nella comunicazione sicura, il protocollo per lo scambio delle chiavi e l'algoritmo di autenticazione nonché il Message authentication code (MAC). L'algoritmo per lo scambio delle chiavi e quello per l'autenticazione normalmente sono algoritmi a chiave pubblica o, come nel caso di TLS-PSK, fanno uso di una chiave precondivisa (Pre-Shared Key). L'integrità dei messaggi è garantita da un algoritmo di hash che usa un costrutto HMAC per il protocollo TLS o una funzione pseudorandom non standard per il protocollo SSL.

Quindi non che HMAC sostituisca SHA1. E dunque: o ti tieni SHA1 (se pensi che vada ancora bene), oppure usi SHA2.

(Poi possiamo discutere che in realtà questi problemi non esistono, che sono pompati per infondere allarmismo... ma questo è un altro discorso)


RispondiCitazione
Truman
Membro Moderator
Registrato: 2 anni fa
Post: 4113
 

Facciamo così: io vado e mi ristudio il tutto (potrei aver sbagliato a mischiare autenticazione con hash).
Se ne hai voglia fallo anche tu e ne riparliamo alla prima occasione.


RispondiCitazione
vic
 vic
Illustrious Member
Registrato: 2 anni fa
Post: 6373
Topic starter  

@Truman

Se vai a ripercorrere la recente evoluzione delle tecniche di (de)criptaggio, tieni d'occhio l'evoluzione nel tempo.

Cosi' a naso, ho l'impressione che agli small players, cioe' al pubblico, sia stata sottratta un po' di competenza sugli algoritmi di (de)criptaqggio.

Nel mondo Mac, per esempio, quando ancora vigeva il sistema operativo classico, diciamo dal 7.1 al 9.2, era possibile generare le proprie chiavi private e pubbliche addirittura a 4096 bit.

Erano i tempi in cui gli USA proibivano l'esportazione degli algoritmi stessi, che in realta' vennero contrabbandati (le sorgenti) con un escamotage, li copiarono su carta, visto che la legge proibiva il trasferimento per via elettronica.

Bruce Schneier, famoso guru del sistema PGP era favorevole a renderlo open source.

Poi col passar del tempo arrivo' per il Mac il sistema operativo basato su Unix. Contemporaneamente, senza dir niente, spari' il PGP open. Come contropartita emerse GPG, la versione di PGP per il mondo Linux, e quindi buona pure per il Mac.

Senonche', se si guarda attentamente, il GPG e' una versione "antica" del PGP. Contiene sistemi di hashing superati ed ignora quelli piu' recenti usati in PGP. Tradotto: nelle mani del mondo open lasciano degli algoritmi piuttosto obsoleti ma fan sparire dalla circolazione pubblica gli algoritmi piu' aggiornati.

In contemporanea i media, penso a certe rubriche radiofoniche per i consumatori, quando trattano il tema sicurezza nel web, invitano ad usare password lunghe non semplici. Ma si guardano bene dall'invitare ad usare PGP o GPG, insomma a criptare sul serio i propri documenti. Ne' ricordano di consigliare l'uso di email tramite canali sicuri.

E' un po' sospetto anche tutto questo accento messo sul sistema a chiave doppia: privata + pubblica. Infatti per noialtri small players spesso e' piu' che sufficiente un sistema normale a chiave unica, tipo l'algoritmo Idea, per citarne uno.

Guarda che caso, algoritmo a disposizione sui vecchi Mac ma sparito con l'avvento di OS X.

Non me la tolgo dalla testa l'impressione che ci sia una volonta' di non divulgare troppo la conoscenza sui sistemi di (de)criptaggio.

Fammi sapere alla prossima occasione se arrivi alla stessa conclusione oppure no.

Un saluto.

vic

-- PS --
Mi sto pure rendendo conto che i certificati elettronici sono un trucco, stile cavallo di Troia, per obbligare gli utenti ad aggiornare il software.

E' una forma di estorsione elettronica il fatto di bloccarti un programma che fino a ieri funzionava benissimo. Il certificato non piu' valido e' la giustificazione che va a pennello.
Se poi magari gli mandi a dire che a te non interessa aggiornare niente perche' usi macchine "antiche" ti rispondono: ci dispiace.

Il mondo dei cerificati e' poco chiaro, sembra una cupola mafiosa che trasmette dall'alto al basso la cosiddetta fiducia (thrust). Il bello e' che anche ditte importanti e di una certa reputazione finiscono ad usufruire dei servizi di oscure ditte emanatrici di certificazioni elettroniche. Guarda un po', praticamente tutte statunitensi.


RispondiCitazione
polm
 polm
Trusted Member
Registrato: 2 anni fa
Post: 78
 

Boh, io vedo un po' di confusione.

Senonche', se si guarda attentamente, il GPG e' una versione "antica" del PGP. Contiene sistemi di hashing superati ed ignora quelli piu' recenti usati in PGP. Tradotto: nelle mani del mondo open lasciano degli algoritmi piuttosto obsoleti ma fan sparire dalla circolazione pubblica gli algoritmi piu' aggiornati.

https://www.gnupg.org/features.html

http://www.gpg4win.org/features.html

Vecchio in che senso? Implementa OpenPGP e X.509, gli standard attualmente utilizzati da tutti.
(Come hashing, GPG usa SHA1, che è vecchiotto appunto, ma mica perché non può usare SHA2)

In contemporanea i media, penso a certe rubriche radiofoniche per i consumatori, quando trattano il tema sicurezza nel web, invitano ad usare password lunghe non semplici. Ma si guardano bene dall'invitare ad usare PGP o GPG, insomma a criptare sul serio i propri documenti. Ne' ricordano di consigliare l'uso di email tramite canali sicuri.

Ma sicurezza rispetto a cosa, scusa? Rispetto alla NSA? Perché da quel lato non hai speranza... rassegnati (a meno che non fai come in Cina, dove nelle istituzioni pubbliche/private "sensibili" è semplicemente proibito avere il PC attaccato ad una presa di rete e avere schede di rete wireless.)

Per il resto, ormai moltissime interazioni con la Rete sono realizzate automaticamente via TLS (vedi il suffisso: "https" sulla barra indirizzi del browser). Poi, è chiaro, che se Google, Apple, Microsoft e Cisco ti vogliono fregare, lo fanno!

E' un po' sospetto anche tutto questo accento messo sul sistema a chiave doppia: privata + pubblica. Infatti per noialtri small players spesso e' piu' che sufficiente un sistema normale a chiave unica, tipo l'algoritmo Idea, per citarne uno.

Ma son due cose diverse!

https://it.wikipedia.org/wiki/Differenza_tra_cifratura_simmetrica_e_asimmetrica

Come fai a implementare firma digitale e autenticazione con una chiave simmetrica? Non è questione di small o big players, è che per cifrare messaggi/dati si usa (di norma) una chiave simmetrica, per garantire l'autenticità serve una chiave pubblica/privata e dei centri di Certificate Authority che le rilascino e ne garantiscano la validità.

Se tu e il tuo amico vi volete scambiare dati, non c'è mica problema: vi spedite via posta (quella vera) la chiave simmetrica e via a cifrare. Oppure: utilizzate l'algoritmo Diffie-Hellman per scambiarvi al volo una chiave simmetrica e via a cifrare. Oppure vi generate da soli le coppia Pubblica/Privata e vi scambiate le pubbliche, e a quel punto vi scambiate quello che volete e via a cifrare.

Ma quando il tuo browser si collega a Google, come cavolo fa a sapere che sta parlando effettivamente con un server di Google? Applica il protocollo TLS, che per prima cosa autentica Google usando un certificato che contiene la chiave pubblica di Google, che, appunto, è pubblica e depositata presso un'autorità di certificazione, la quale garantisce, appunto, che è proprio Google!
Poi browser e server completano il protocollo e si scambiano, tra le altre cose, la chiave simmetrica (tipicamente AES) e cominciano a scambiarsi dati.

Poi, possiamo fare tutti i discorsi che vogliamo su una gestione poco trasparente dell'intera questione sicurezza. O che quello o quell'altro big player prema per utilizzare/ostacolare quello o quell'altro standard. O che quello che fanno in qualche oscura stanzetta (magari a Tel Aviv) sia "qualche passo avanti" a ciò che sappiamo io, tu, truman e chiunque altro...
ma non è che ogni modifica o adozione di uno standard sia farina del diavolo!


RispondiCitazione
Condividi: