Covid19: autocertificazione digitale dall’ingegno sardo
Conosciamo tutti le restrizioni ministeriali per evitare il contagio da Covid-19. Sappiamo tutti che per uscire è necessaria l’autocertificazione e avere un valido motivo: lavoro, spesa, imminente necessità. Molte persone hanno presentato difficoltà per stampare l’autocertificazione, nasce in risposta una web-app. Arriva così la prima autocertificazione digitale, creata dal giovane programmatore sardo Cristian Pibia.
Per ottenerla è necessario collegarsi al sito web dal proprio smartphone e aggiungere la pagina alla schermata Home. E’ inoltre presente una guida per Android e iOS. Una volta aggiunta, accedervi è facilissimo proprio dalla Home del tuo smartphone.
Funzionalità ACS
La web-app ACS all’avvio presenta la schermata qui sotto:
Come spiegato nel quotidiano locale Casteddu Online da Cristian Pibia che ha realizzato l’app non solo in 10 ore ma senza alcun scopo di lucro e non diffondendo i dati, senza venderli a terze parti. L’applicazione è gratuita e i dati sono criptati con chiave AES-256, accessibili solo alle Forze dell’Ordine. Infatti alla fine della compilazione, sarà generato un PDF che presenta in basso a sinistra un QRcode tramite il quale le Forze dell’Ordine verificheranno il tutto.
Come compilare l’autocertificazione digitale?
All’apertura della pagina infatti viene chiesto di selezionare la tipologia di utente: “Privato cittadino” e “Pubblico Ufficiale”.
Nella modalità “Privato cittadino” devono essere inseriti i dati anagrifici, un inserimento molto semplice se accompagnato dalla compilazione automatica dei moduli di Google. Infatti l’applicazione nasce appunto per agevolare non solo chi non ha la stampante ma anche chi non ha un computer, specialmente gli anziani.
Una volta compilato, si verrà reindirizzati in una pagina per compilare l’autocertificazione digitale. La compilazione, completamente guidata, chiede le città di provenienza e destinazione e il motivo del trasporto.
Successivamente sarà necessario cliccare sul tasto “Crea Certificato” che troveremo sotto in un elenco dal quale sarà possibile scaricarlo.
Selezionando il profilo “Pubblico Ufficiale” viene presentato il messaggio qui sotto. Vi invitiamo per tanto di non compilare questa parte, poiché riservata alle sole Forze dell’Ordine per poter comprovare l’autocertificazione. Chiunque lo faccia sarà punito.
Vi invitiamo a restare a casa e seguire i provvedimenti ministeriali, regionali e comunali sulle restrizione per prevenire il contagio da Covid-19, spostandoci solo per i motivi concessi e portando con sè l’autocertificazione. Ormai non abbiamo più scuse per non presentarla.
Chiave AES-256
La web-app è stata creata criptando i dati con modalità AES-256, cosa si intende? Si tratta di un algoritmo di crittografia con cifratura a blocchi, conosciuto anche come Rijndael. Questo algoritmo è una rete a sostituzione e permutazione che applica alla regola il principio di Shannon per la confusione e diffusione del messaggio originale.
AES-256 è una specializzazione dell’algoritmo Rijandael, teoricamente diversi ma in lato pratico intercambiabili. In AES il blocco ha dimensione fissa a 128 bit con chiave a 128, 192 o 256 bit. Nel caso della web-app per il Covid-19 la chiave è a 256 bit.
AES utilizza matrici 4×4 byte (states), creata dividendo il numero di bit del blocco in input per 32, tale numero sarà il numero di colonne. La cifratura avviene su 4 semplici passi illustrati qui sotto.
- AddRoundKey in cui si combina con uno XOR ogni byte della tabella con la chiave. Con il Key Scheduler si genera una chiave di sessione a ogni iterazione, con la quale si effettuerà l’operazione XOR.
- SubBytes dove ogni byte della tabella è inserito nella S-Box (operazione di sostituzione) e messo nella tabella di output. La S-Box è costruita combinando la funzione inversa nel campo 28 con una sua trasformazione invertibile. Questa conferisce non linearità all’algoritmo ed è scelta con cura per non possedere punti fissi.
- ShiftRows che consente di scambiare le colonne in ogni riga della matrice ma scegliendo un criterio differente per ogni riga (prima invariata, seconda shift di una posizione a sinistra, terza shift 2, quarta shift 3). L’ultima colonna della matrice in ingresso formerà la diagonale della matrice in uscita.
- MixColumns che prende i 4 byte di ogni colonna e li combina con trasformazione lineare invertibile.
Per approfondire sulla crittografia nel periodo del #iorestoacasa:
[amazon box = “8867414607, 8817125393, 8820366908, 8850330650, 8850321686”]