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

Rispondere a