Lezione del 19**/04/2024**
Per ora ci siamo focalizzati sulla confidenzialita’, pero’ vogliamo andara a garantire anche l’integrita’ in questo momento.

Questo e’ un problema fino a che il destinatario non puo’ verificare l’integrita’ e peggio ancora se l’attaccante sa la struttura del messaggio per cui puo’ introdurre modifiche mirate.

Per fare questo devo usare un meccanismo di digest.

sempre i soli discorsi sul digest
Per fare questo uso una funzione hash che sia economica da usare, perche’ non voglio impiegarci troppo tempo. L’idea e’ avere computazioni che sia poco onerose. La funzione deve essere uniderizionale, resistente a collisioni (non ci deve essere un messagggio m’ che hashato mi dia lo stesso hash di m). Deve essere fortemente resistente alle collisioni si dice, ovvero praticamente impossibile trovare collissioni. Che funzioni si usano? Tipicamente le funzioni della famiglia SHA. La famiglia SHA1 non e’ considerata sicura, ma la famiglia SHA2 ha dato vita a dei SHA che ancora sono utilizzati regolarmente oggi, come SHA256.
Non abbiamo alcuna forma di autenticazione, l’HASH non e’ una firma. Se genero un digest non sto autenticando nulla. Dobbiamo combinare hashing e cifratura per andare a fare firme.
Dobbiamo usare i MAC, che e’ come fare hash(messaggio + chiave segreta) = MAC. E’ una sequenza di byte di lunghezza fissa e mi fornisce informazioni di autenticazione.

Il destinatario si ricalcola il MAC e alla fine e’ tranquillo rispetto al fatto che sia andato tutto bene in termini di comunicazione. Ovviamente assumiamo che la chiave non sia compromessa.
Ci sono diversi tipi di mac, solitamente sono bastate su cifrari a blocchi.
Solitamente si usano funzioni basate su hash = HMAC

poi parla dell’hashing delle password in /etc/shadow per migliore sicurezza. Si fa cosi’ anche nei database oggi giorno, meglio non andare mai a salvare le password in chiaro da nessuna parte.
Non usare schemi di cifratura arbitrari o schemi hash insicuri. Solitamente le hash hanno all’interno anche del salt, per aggiungere un po’ di rumore, non salviamo solamente la pw hashata. Il salt viene memorizzato in chiaro, perche’ mi serve per andare a verificare il risultato delle funzione hash, cioe’ mi server per fare login materialmente.