LABORATORIO · OSSERVA LE GARANZIE
La verifica diventa visibile
Non una simulazione del risultato: questi tre esperimenti usano le operazioni crittografiche offerte dal browser tramite Web Crypto. Non richiedono account e il codice del laboratorio non invia i dati in rete.
Prerequisiti: lezioni 06, 07 e 10. Usa messaggi di prova. Le chiavi restano nel contesto della pagina: ricaricarla o passare a un altro materiale le perde. Il laboratorio non è un formato per archiviare segreti reali.
Verifica della disponibilità delle API crittografiche…
1. Stessi byte, stessa impronta
Il testo viene convertito in byte UTF-8 e passato a SHA-256. L’uscita è mostrata in esadecimale, cioè con le cifre 0–9 e A–F: ogni coppia rappresenta un byte.
Prova: cambia solo a in A, poi torna ad abc. L’impronta cambia nel primo caso e torna identica nel secondo. Non è una firma: non è stata utilizzata alcuna chiave.
2. Cifrare e rilevare una modifica
Al primo uso si genera una chiave AES a 256 bit, non esportabile tramite le normali operazioni Web Crypto. Ogni cifratura usa un nuovo nonce casuale di 96 bit. GCM produce un tag di 128 bit, che il browser aggiunge alla fine del cifrato.
- Cifra e decifra senza cambiare niente: deve riapparire il messaggio originale.
- Premi «Altera un byte», poi verifica: l’autenticazione deve fallire.
- Cifra di nuovo, cambia solo i dati associati e verifica: anche questo deve fallire.
- Cifra due volte lo stesso testo: nonce e cifrati saranno normalmente diversi.
Perché il messaggio di errore non rivela la causa precisa?
Chiave sbagliata, nonce cambiato, tag alterato e dati associati diversi possono far fallire lo stesso controllo di autenticazione. Non si deve utilizzare un eventuale chiaro parziale. Il laboratorio mostra un esito comune per un fallimento del controllo.
3. Firmare non nasconde le parole
Si genera una coppia ECDSA P-256. La chiave privata firma; la pubblica verifica. La firma resta separata dal testo e non lo rende segreto. Questa prova non include certificato, identificazione del titolare o servizio qualificato.
Prova: firma, verifica, modifica «001» in «002», verifica ancora. Poi ripristina il testo e prova un’altra chiave pubblica. Una verifica positiva riguarda sempre la combinazione di messaggio, firma e chiave.
Il confine di questo laboratorio
Le operazioni vengono eseguite nel browser, ma una pagina ostile potrebbe leggere gli input e usare le chiavi disponibili. «Non esportabile» limita l’esportazione tramite API, non rende sicuro un dispositivo compromesso. Nessuna chiave viene salvata dal codice in localStorage; gli eventuali progressi didattici sono gestiti dalla piattaforma School.
Riferimento dell’API: W3C Web Cryptography API. Per ragionare sugli esiti: esercizi con soluzioni.