Algoritmi di Hash

Le funzioni di Hash sono delle particolari classi di funzioni non invertibili, ovvero che non permettono di ritornare al dato di partenza.

L’utilità di questa classe di funzioni sono principalmente due:

  • Permettono la conservazione sicura di informazioni di cui non abbiamo necessità di riavere in chiaro ma di cui è sufficiente fare un confronto fra il valore memorizzato ed il risultato della funzione di hash di un valore appena inserito. L’utilizzo più frequente si ha con le password, è possibile memorizzare in maniera sicura l’hash della password, l’autenticazione avviene per confronto fra l’hash memorizzato e l’hash calcolato sul  valore immesso dall’utente al momento. La corrispondenza fra i due valori ci permette di dire che la password è corretta, pur non conoscendo il valore originale della password memorizzata, tuttavia un accesso abusivo al database degli utenti non permette di conoscere automaticamente le password memorizzate.
  • Garantiscono l’integrità di un documento, infatti una alterazione in un qualsiasi punto di un documento comporta una importante alterazione del suo hash, questo permette di individuare rapidamente una sua alterazione.

La caratteristica che deve fornire un buon algoritmo di Hash è il bassissimo livello di collisioni, ovvero partendo da due input differenti arrivare al medesimo output, situazione che si potrebbe avere in alcuni casi, ma deve essere limitata.

Gli algoritmi più usati per calcolare l’hash sono: MD5, SHA1, SHA2.

10 Novembre 2016

Crittografia a chiave asimmetrica

La crittografia a chiave asimmetrica è una tecnica che utilizza una coppia di chiavi, entrambe le chiavi possono essere usate sia per cifrare, che per decifrare il messaggio cifrato cocomputer-1294045_640n l’altra chiave.

Una delle due chiavi viene definita chiave privata, mentre la seconda è detta chiave pubblica.

Crittografando un messaggio con la chiave privata, oltre alla confidenzialità ed all’integrità del messaggio, che sono proprietà attribuibili a qualsiasi tipo di crittografia, viene conferita anche la proprietà di firma, poichè solo il proprietario della firma è a conoscenza di quella chiave ed il destinatario sa che quella chiave pubblica decifra solo i messaggi firmati con la chiave privata di quella coppia.

La chiave pubblica può essere utilizzata anche per cifrare un messaggio, che potrà essere decifrato solamente utilizzando la sua chiave privata, mentre un’altra persona che è a conoscenza della chiave pubblica non è in grado di decifrarlo.

L’algoritmo più famoso di crittografia che implementa la crittografia asimmetrica è RSA.

Rispetto la crittografia simmetrica è meno importante il problema di come scambiare la chiave in sicurezza, tuttavia ha un costo computazionale più elevato ed è più lento nella crittografia.

8 Novembre 2016

Crittografia a chiave simmetrica

La crittografia a chiave simmetrica è una tecnica di crittografia che prevede l’utilizzo della medesima chiave per crittografare e decrittare un contenuto.

La crittografia a chiave simmetrica, è in grado di fornire al messaggio la caratteristica di confidenzialità ed integrità, ma non capace di definire con certezza l’autore del messaggio.key

Questa tecnica gode di alcune interessanti caratteristiche:

  • Velocità in fase di elaborazione
  • Costo computazionale molto basso
  • Algoritmi molto semplici da implementare con possibilità di realizzare sistemi hardware per effettuare la crittografia

Tuttavia la confidenzialità del messaggio è garantita solo dalla chiave, nel caso venisse scoperta il dato non sarebbe più protetto. Il problema si pone in particolare quando è necessario trasmettere la chiave in modo che diversi interlocutori possano trasferire fra di loro in maniera “sicura” le informazioni.

Solitamente per questo utilizzo si utilizzano degli algoritmi a chiave asimmetrica, tramite cui avviene lo scambio delle chiave, e poi si procede con la trasmissione del messaggio crittografato con un algoritmo a chiave simmetrica, molto più veloce.

Gli algoritmi a chiave simmetrica DES, 3DES ed AES sono fra i più famosi ed utilizzati. In particolare AES ha ancora delle proprietà di sicurezza che lo rendono estremamente costoso in termini di tempo computazione tentarne un attacco.

7 Novembre 2016

Integrità

L’integrità è una caratteristica essenziale dell’informazione che implica che l’informazione conservata sia: attendibile, coerente, ed accurata, ovvero che non è stato alterata o pencil-1203977_640manomessa e che i processi che la elaborano abbiano eseguito coerentemente le operazioni di aggiornamento quando i dati vengono processati.

Per garantire l’integrità occorre impedire accessi abusivi che possano alterare l’informazione memorizzata, verificare che le eventuali copie dell’informazione siano ancora coerenti dopo una elaborazione, e che le informazioni mostrate siano complete rispetto alle esigenze dell’utente.

Possono essere utilizzati dei meccanismi crittografici per evidenziare manomissioni di una informazione.

 

28 Ottobre 2016

Confidenzialità

La confidenzialità è una caratteristica che si vuole fornire ad una informazione, per cui il contenuto rimane riservato alle sole persone autorizzate.secret-1142327_640

Gli aspetti da valutare per garantire la confidenzialità sono principalmente tre: la conservazione “sicura” del dato, lo scambio “sicuro” dell’informazione fra persone autorizzate e l’accesso “sicuro” a persone autorizzate.

Per fornire ai dati di un sistema informatico la confidenzialità tipicamente si utilizzano meccanismi crittografici.

27 Ottobre 2016