Il 16 gennaio 2012 17:54, Luca 'remix_tj' Lorenzetto <[email protected]> ha scritto: > Salve a tutti, > > per un applicazione interna abbiamo bisogno di mantenere l'hash di > alcuni file che vengono archiviati in una zona del filesystem che > chiamiamo "cassaforte". [...] > > Volevo quindi chiedere: ha senso usare qualcos'altro (ad esempio > qualche libreria java) che calcoli hash come sha512 oppure può essere > garantita altrettanta sicurezza salvando due hash fatti calcolare a > OpenSSL (ad esempio sha1 ripemd160)? > Quale è la possibilità di trovare una collisione per entrambi gli algoritmi?
Nel caso di algoritmi di famiglie diverse (ovvero che non presentano metodologie di applicazione simili, dato che potrebbero essere vulnerabili a tipologie simili di attacchi) la probabilità di trovare una collisione comune a due algoritmi è uguale al prodotto delle probabilità di trovarne una separatamente per ciascuno di essi. E dato che stiamo parlando di probabilità nell'ordine di 10^(-antani), dove 'antani' è un intero positivo "abbastanza grande", almeno se gli algoritmi non sono rotti, la probabilità scende parecchio. Personalmente per controlli di integrità ritengo che due hash diversi per algoritmi che presentano collisioni non troppo semplici da generare siano sufficienti nella maggior parte dei casi, dato che per recuperare una doppia collisione devi, nel subset delle collisioni ricavate hashando col primo algoritmo, trovare un cleartext che generi *contemporaneamente* una collisione anche sul secondo. Praticamente impossibile. Dato che però gli algoritmi si rompono, a volte anche mostrando proprietà imprevedibili, e che i cicli macchina al giorno d'oggi sono economici, se vuoi andare sul sicuro/paranoico usa tre o quattro algoritmi diversi e dovresti essere al sicuro anche dall'utente malicious, a livello di collisioni. C
________________________________________________________ http://www.sikurezza.org - Italian Security Mailing List
