È Git crowdsourcing di attacchi crittografici?

48

Un hash crittografico strong rende improbabili le collisioni. Molti protocolli crittografici si basano su questo fatto. Ma Git sta usando gli hash SHA-1 come identificatori di oggetti. Quindi ci sono molti di hash già calcolati là fuori nei repository Git pubblici del web, insieme ai dettagli su come riprodurli.

C'è qualche attacco noto su qualche protocollo in cui questo potrebbe essere sfruttato? Qualcosa del tipo "beh, posso fare qualcosa di male se sostituisco questo testo in chiaro con un altro testo in chiaro con lo stesso hash SHA-1, quindi invece di calcolare una collisione ci tornerò su google". Naturalmente, lo spazio di tutti gli hash sono ancora lontani da quelli coperti da Git commit, ma comunque, immagino che tutto il commit di Git possa ammontare a un bel po 'di ore di CPU degli hash SHA-1. Non sono sicuro che tale ipotesi sia giustificata, però.

Per quanto posso vedere, un simile attacco funzionerebbe solo se l'hash è visibile, il testo semplice da cui è stato generato non lo è, ma un testo cifrato generato da è, e un testo diverso può anche essere crittografato . Quindi sembra che potrebbe essere applicato ad alcuni protocolli basati su chiave pubblica, in cui è possibile crittografare ma non decriptare. Inoltre, non si ha il controllo sul testo in collisione, quindi cose ovvie come mettere il proprio nome come beneficiario di alcune transazioni finanziarie non funzionerà. Ci sono scenari in cui tale collisione di hash crowd-sourced potrebbe causare seri problemi con probabilità non trascurabile?

    
posta MvG 12.12.2014 - 11:27
fonte

3 risposte

50

Git sta crowdsourcing della produzione di pre-immagini SHA-1? Non in misura significativa.

Github non dice quanti comandi sta monitorando, ma probabilmente non è superiore a qualche miliardo. Per fare un confronto, ci sono 1.461.501.637,330,902,918,203,684,832,716,283,019,655,932,542,976 possibili hash SHA-1, quindi le probabilità di trovare un testo in chiaro che corrisponde ad un hash arbitrario di interesse sono effettivamente inesistenti.

    
risposta data 12.12.2014 - 13:03
fonte
13

Probabilmente potresti calcolare i tuoi hash SHA1 più velocemente da piccoli testi arbitrari piuttosto che raccogliere gli hash che qualcun altro ha calcolato. Ma ci sono molti possibili digest di SHA1, circa altrettanti atomi nel mondo. Questo dimostra la sfida se si desidera mantenere un elenco di tutti i digest conosciuti e cercare tale elenco.

    
risposta data 12.12.2014 - 17:40
fonte
10

La quantità di sforzo umano che è andato a calcolare ognuno di quegli hash SHA-1 trovati in Git è significativo. E questo significa che il numero di hash calcolati in quel modo è abbastanza limitato.

Se vuoi trovare collisioni, hai bisogno di zero sforzi umani per hash e pochissimo tempo speso al computer per ogni hash.

Bitcoin potrebbe essere l'unico sistema con una potenza di calcolo sufficiente per eseguire le operazioni di crittografia 2 ^ 80 necessarie per trovare una collisione SHA-1 attraverso la forza bruta. Sebbene la maggior parte di questa potenza di calcolo sia l'hardware specializzato che fa solo SHA-2 e non può essere riproposto per calcolare SHA- 1 hash.

Fornisce ancora un'idea della scala di dispiegamento necessaria per un tale attacco di forza bruta. Bitcoin ha dimostrato che le operazioni di crittografia 2 ^ 80 sono fattibili. E solo per questo motivo, dovremmo passare agli hash più forti rispetto a SHA-1 ASAP.

Se il bitcoin fosse basato su SHA-1, si sarebbe già verificata una collisione. E quello sarebbe stato dalla forza bruta senza nemmeno sfruttare alcuna debolezza in SHA-1. Questo perché bitcoin non fa quasi altro che eseguire hash di calcolo tutto il tempo, e ha hardware specializzato per farlo.

L'attuale funzione di hash utilizzata in bitcoin ha un output maggiore di SHA-1, quindi molto probabilmente non c'è stata una collisione. Inoltre avrebbe richiesto un design diverso per essere in grado di scoprire se si fosse verificata una collisione perché il bitcoin che esiste oggi scarta immediatamente la maggior parte degli hash, quindi anche se si fosse verificata una collisione non lo sapremmo.

    
risposta data 13.12.2014 - 17:36
fonte

Leggi altre domande sui tag