-----------------------------------

Acquista i software ArcGIS tramite Studio A&T srl, rivenditore autorizzato dei prodotti Esri.

I migliori software GIS, il miglior supporto tecnico!

I migliori software GIS, il miglior supporto tecnico!
Azienda operante nel settore GIS dal 2001, specializzata nell’utilizzo della tecnologia ArcGIS e aderente ai programmi Esri Italia Business Network ed Esri Partner Network

-----------------------------------



lunedì 12 dicembre 2011

Fidarsi è bene ma con checksum è meglio!

Con la versione 10 il software ESRI è distribuito tramite la CDN di Akamai. Sebbene sia ancora disponibile la possibilità di richiedere il software su supporto DVD, è innegabile il vantaggio di poter scaricare il software direttamente sul proprio computer. E' altrettanto vero che l'operazione di scaricamento potrebbe durare anche molte ore se non si ha a disposizione una connessione veloce; qui infatti ci viene incontro il Download Manager che ci permette di mettere in pausa o fermare il download e riprenderlo più tardi, scaricare più file simultaneamente e recuperare il download corrente su una perdita di connessione o da crash di sistema.
Se tuttavia non si vuole utilizzare il Download Manager (ad esempio non accettiamo di installarlo), è possibile scaricare direttamente l'immagine del software. Così facendo è consigliabile, una volta scaricato il file, controllarne la checksum.


La checksum, cioè somma di controllo, viene utilizzata per verificare l'integrità di un dato o di un messaggio che potrebbe subire alterazioni. Una somma di controllo potrebbe sommare tutti i bit del dato e verificare se la somma dei bit trasmessi corrisponda a quella calcolata prima del trasferimento.  Se due o più input hanno la stessa somma, quindi la stessa checksum, si parla di collisione. Minore è la probabilità di collisione, migliore è la qualità dell'algoritmo di controllo per verificare l'integrità del dato in sicurezza. Pertanto è importante utilizzare algoritmi con strutture matematiche complesse per impedire a malintenzionati di calcolare checksum che determinino collisioni. Quando scarichiamo file da internet, è buona pratica verificare  la checksum per poter assicurare che i dati scaricati siano corretti e per garantirne l'autenticità. In genere per la checksum (digest nel caso specifico) vengono utilizzati algoritmi di hash crittografati, come MD5 e SHA-1 che comunque non sono esenti da collisioni.
Qui possiamo vedere una panoramica sulle funzioni hash e degli attacchi ai quali potrebbero essere soggetti: collisione hash, attacco del compleanno, attacco preimmagine, tabella arcobaleno, attacco del canale laterale e attacco a forza bruta.

Con c# possiamo facilmente calcolare la checksum (MD5) di un file:

            using (FileStream file = new FileStream(txtFile.Text, FileMode.Open))
            {
                    byte[] retVal;    
                    using (MD5 md5 = new MD5CryptoServiceProvider()) 
                    {
                             retVal = md5.ComputeHash(file);
                             txtMD5.Text= BitConverter.ToString(retVal).Replace("-"""); // hex string
                    }     
            }

Qui potete scaricare la soluzione.
Controllo di un file scaricato con verifica del checksum (MD5) dichiarato:

Esito positivo


Esito negativo: