it.phhsnews.com


it.phhsnews.com / Che cos'è SHAttered? SHA-1 Collision Attacks, Explained

Che cos'è SHAttered? SHA-1 Collision Attacks, Explained


Il primo giorno del 2016, Mozilla ha interrotto il supporto per l'indebolimento della tecnologia di sicurezza chiamata SHA-1 nel browser web Firefox. Quasi immediatamente, hanno annullato la loro decisione, in quanto avrebbe ridotto l'accesso ad alcuni siti Web meno recenti. Ma nel febbraio 2017, i loro timori si sono finalmente avverati: i ricercatori hanno rotto SHA-1 creando il primo attacco di collisione nel mondo reale. Ecco cosa significa tutto questo.

Che cos'è SHA-1?

Lo SHA in SHA-1 sta per Secure Hash Algorithm e, in poche parole, puoi pensare ad esso come a una specie di problema matematico o metodo che confonde i dati inseriti in . Sviluppato dalla NSA degli Stati Uniti, è un componente fondamentale di molte tecnologie utilizzate per crittografare importanti trasmissioni su Internet. Metodi di crittografia comuni SSL e TLS, di cui potresti aver sentito parlare, possono utilizzare una funzione di hash come SHA-1 per creare i certificati firmati che vedi nella barra degli strumenti del browser.

Non approfondiremo la matematica e l'informatica di una qualsiasi delle funzioni SHA, ma ecco l'idea di base. Un "hash" è un codice univoco basato sull'input di qualsiasi dato. Anche una piccola stringa di lettere casuali immessa in una funzione di hash come SHA-1 restituirà un lungo numero di caratteri, rendendo (potenzialmente) impossibile riportare la stringa di caratteri ai dati originali. Questo è il modo in cui la memorizzazione delle password di solito funziona. Quando si crea una password, l'immissione della password viene sottoposta a hash e archiviata dal server. Al tuo ritorno, quando digiti la password, viene nuovamente cancellata. Se corrisponde all'hash originale, si presume che l'input sia lo stesso e ti sarà concesso l'accesso ai tuoi dati.

Le funzioni di hash sono utili principalmente perché rendono facile capire se l'input, ad esempio, un file o una password, è cambiato. Quando i dati di input sono segreti, come una password, l'hash è quasi impossibile da invertire e recuperare i dati originali (noto anche come "chiave"). Questo è un po 'diverso da "crittografia", il cui scopo è scrambling dei dati allo scopo di decodificarlo in seguito, usando cifrari e chiavi segrete. Gli hash servono semplicemente a garantire l'integrità dei dati, per assicurarsi che tutto sia lo stesso. Git, il software di controllo e distribuzione delle versioni per il codice open source, usa gli hash SHA-1 proprio per questo motivo.

Si tratta di molte informazioni tecniche, ma per dirla semplicemente: un hash non è la stessa cosa della crittografia, dal è usato per identificare se un file è cambiato .

Come questa tecnologia mi influenza?

Supponiamo che tu debba visitare un sito web in privato. La tua banca, la tua e-mail, persino il tuo account Facebook: tutti usano la crittografia per mantenere privati ​​i dati che tu li hai inviati. Un sito Web professionale fornirà la crittografia ottenendo un certificato da un'autorità fidata, una terza parte, fidata per garantire che la crittografia sia al livello, privata tra il sito Web e l'utente e non essere spiata da nessun'altra parte. Questa relazione con la terza parte, denominata Autorità di certificazione o CA , è cruciale, poiché ogni utente può creare un certificato "autofirmato": puoi persino farlo da solo macchina che esegue Linux con Open SSL. Per esempio, Symantec e Digicert sono due aziende CA conosciute.

Esaminiamo uno scenario teorico: How-To Geek vuole mantenere le sessioni degli utenti registrati private con la crittografia, quindi fa appello a una CA come Symantec con un Richiesta firma certificato o CSR . Creano una chiave pubblica e chiave privata per crittografare e decifrare i dati inviati su Internet. La richiesta CSR invia la chiave pubblica a Symantec insieme alle informazioni sul sito web. Symantec controlla la chiave contro il suo record per verificare che i dati siano invariati da tutte le parti, poiché qualsiasi piccola modifica nei dati rende l'hash radicalmente diverso.

Quelle chiavi pubbliche e certificati digitali sono firmati da funzioni hash, perché l'output di queste funzioni sono facili da vedere. Una chiave pubblica e un certificato con un hash verificato da Symantec (nel nostro esempio), un'autorità, assicurano all'utente di How-To Geek che la chiave è invariata e non inviata da qualcuno malintenzionato.

Poiché l'hash è facile da monitorare e impossibile (alcuni direbbero "difficili") da invertire, la firma hash corretta e verificata significa che il certificato e la connessione possono essere considerati attendibili e che i dati possono essere accettati per essere inviati crittografati da un capo all'altro . Ma cosa succede se l'hash non era in realtà unico ?

Che cos'è un attacco di collisione ed è possibile nel mondo reale?

Potresti aver sentito parlare del "problema del compleanno" in matematica , anche se potresti non sapere come è stato chiamato. L'idea di base è che se raccogli un gruppo abbastanza grande di persone, è molto probabile che due o più persone abbiano lo stesso compleanno. Più in alto di quanto ci si aspetterebbe, infatti, abbastanza da sembrare una strana coincidenza. In un gruppo di 23 persone, esiste il 50% di probabilità che due condividano un compleanno.

Questa è la debolezza intrinseca di tutti gli hash, incluso SHA-1. In teoria, la funzione SHA dovrebbe creare un hash univoco per qualsiasi dato inserito, ma man mano che il numero di hash aumenta, diventa più probabile che coppie di dati diverse possano creare lo stesso hash. In questo modo è possibile creare un certificato non affidabile con un hash identico a un certificato attendibile. Se ti hanno fatto installare quel certificato non affidabile, potrebbe mascherarlo come affidabile e distribuire dati dannosi.

Trovare gli hash corrispondenti in due file è chiamato un attacco. È noto che almeno un attacco di collisione su larga scala è già avvenuto per gli hash MD5. Ma il 27 febbraio 2017, Google ha annunciato SHAttered, la prima collisione mai realizzata per SHA-1. Google è stato in grado di creare un file PDF con lo stesso hash SHA-1 di un altro file PDF, pur avendo contenuti diversi.

SHAttered è stato eseguito su un file PDF. I PDF sono un formato di file relativamente lento; possono essere apportate molte piccole modifiche a livello di bit senza impedire ai lettori di aprirle o causare differenze visibili. I PDF sono spesso usati anche per fornire malware. Mentre SHAttered può lavorare su altri tipi di file, come ISO, i certificati sono rigidamente specificati, rendendo improbabile un simile attacco.

Quindi, quanto è facile questo attacco da eseguire? SHAttered si basava su un metodo scoperto da Marc Stevens nel 2012 che richiedeva oltre 2 ^ 60,3 (9,223 quintilioni) di operazioni SHA-1: un numero sbalorditivo. Tuttavia, questo metodo è ancora 100.000 volte meno operazioni di quanto sarebbe necessario per ottenere lo stesso risultato con la forza bruta. Google ha scoperto che con 110 schede grafiche high-end che lavorano in parallelo, ci vorrebbe circa un anno per produrre una collisione. Il noleggio di questo tempo di calcolo da Amazon AWS costerebbe circa $ 110.000. Tieni presente che quando i prezzi diminuiscono per le parti del computer e puoi ottenere più energia per meno, gli attacchi come SHAttered diventano più facili da ottenere.

$ 110.000 possono sembrare molto, ma è nel regno dell'accessibilità per alcune organizzazioni, che significa che i cybervilliani della vita reale potrebbero creare firme digitali di documenti, interferire con i sistemi di controllo di versioni e versioni di backup come Git e SVN, o far apparire legittimo un ISO Linux dannoso.

Fortunatamente ci sono fattori attenuanti che impediscono tali attacchi. SHA-1 è usato raramente per le firme digitali. Le autorità di certificazione non forniscono più certificati firmati con SHA-1 e sia Chrome che Firefox hanno abbandonato il supporto per loro. Le distribuzioni Linux in genere vengono rilasciate più frequentemente rispetto a una volta all'anno, rendendo impossibile per un utente malintenzionato creare una versione malevola e quindi generare un riempimento con lo stesso hash SHA-1.

D'altra parte, alcuni attacchi basati su SHAttered sono già accadendo nel mondo reale. Il sistema di controllo versione SVN usa SHA-1 per differenziare i file. Il caricamento dei due PDF con hash SHA-1 identici in un repository SVN causerà il danneggiamento.

Come posso proteggermi dagli attacchi SHA-1?

Non c'è molto da fare per l'utente tipico. Se stai usando il checksum per confrontare i file, dovresti usare SHA-2 (SHA-256) o SHA-3 piuttosto che SHA-1 o MD5. Allo stesso modo, se sei uno sviluppatore, assicurati di utilizzare algoritmi di hashing più moderni come SHA-2, SHA-3 o bcrypt. Se sei preoccupato che SHAttered sia stato utilizzato per fornire due file distinti con lo stesso hash, Google ha rilasciato uno strumento sul sito SHAttered che può controllarti.

Crediti immagine: Lego Firefox, un sacco di hash, per favore non danneggiare l'autore del Web sconosciuto, Google.


Come trovare un elenco di ogni app che hai installato da Google Play

Come trovare un elenco di ogni app che hai installato da Google Play

Se hai avuto uno smartphone per un ragionevole periodo di tempo, probabilmente hai installato e disinstallato più app di quello che ti interessa ricordare. Ecco come accedere a un elenco di tutte le app che hai installato sul tuo telefono Android nel corso del tempo. Questa funzione è incorporata nel Google Play Store, quindi puoi dare una sbirciatina all'intero elenco da qualsiasi dispositivo connesso al tuo account Google.

(how-top)

Come costruire il tuo computer, Terza parte: Preparare il BIOS

Come costruire il tuo computer, Terza parte: Preparare il BIOS

Quindi hai accuratamente selezionato alcune parti e costruito un computer, ma in realtà non fa nulla ... ancora . Prima di saltare all'installazione del sistema operativo, dobbiamo dare un'occhiata al BIOS e prepararlo per il nostro sistema operativo. BIOS sta per "Basic Input-Output System." È un piccolo programma che è memorizzato su un piccolo chip di memoria nella scheda madre e viene eseguito sul computer prima del sistema operativo, impostando tutto e consentendo di modificare le impostazioni di base.

(how-top)