Il rapporto tra struttura, semantica, design, funzionalità e l’uso degli standard è fondamentale per costruire applicazioni web sicure e accessibili.

Ridurre la complessità, semplificare la struttura e aderire agli standard può aiutare a minimizzare gli errori, ridurre la superficie di attacco e migliorare la manutenibilità del codice.

I 3 pilastri del Design Web

Il design (che non è disegno/grafica, ma PROGETTAZIONE STRUTTURALE) di applicazioni web di qualità poggia pitagoricamente su 3 pilastri:

  • Sicurezza by design
  • Privacy by design
  • Accessibilità (& Usabilità) by design

Interconnessioni e vantaggi

Questa triade DEVE viaggiare insieme, perché:

  1. senza security: no privacy, no forms, no motori di ricerca, no passaggio di dati;
  2. senza privacy (ed esposizione minima): no sicurezza del dato, no semplicità e no accessibilità;
  3. senza accessibilità: no accesso di molti utenti, no esperienza positiva di moltissimi altri;

Disconnessioni e svantaggi

Se non fai bene i compiti a questo livello, hai:

  1. problemi di accesso e quindi calo reputazionale e disvalore del brand, problemi legali, abbandono dell’utenza
  2. problemi di sicurezza e quindi – oltre ai punti precedenti – anche crisi, emergenza, spese, programmazione
  3. problemi di soddisfazione e quindi calo reputazionale e disvalore del brand, ancora

Come scritto in un altro articolo,

L’accessibilità (con l’usabilità), la Privacy e la Sicurezza Informatica sono interconnesse in molti modi nel contesto dello sviluppo web e delle applicazioni Internet: TUTTE mirano a creare un ambiente digitale più sicuro, inclusivo ed efficace per le persone che devono interagire con esso.

Legame tra accessibilità e sicurezza:

  1. Autenticazione e identificazione sicure: Le tecniche di autenticazione devono essere accessibili per garantire che tutti gli utenti, inclusi quelli con disabilità, possano accedere in sicurezza ai loro account senza compromettere la sicurezza. Ad esempio, l’uso di autenticatori biometrici come il riconoscimento facciale o delle impronte digitali può aiutare gli utenti con limitazioni fisiche o visive.
  2. Design inclusivo per prevenire errori: Un design web accessibile aiuta a prevenire errori di utente che possono compromettere la sicurezza. Ad esempio, fornire feedback visivi e auditivi chiari può ridurre il rischio che gli utenti commettano errori che potrebbero esporre dati sensibili.
  3. Protezione contro attacchi automatizzati: Gli strumenti di accessibilità possono aiutare a proteggere contro attacchi automatizzati come lo “scraping” web o attacchi di forza bruta. Un sito ben progettato che è accessibile tende ad implementare migliori pratiche di programmazione, che come ricaduta probabile (non certa, lo ammetto!) possono includere protezioni aggiuntive.
  4. Conformità e responsabilità: La conformità agli standard di accessibilità spesso si sovrappone con le migliori pratiche di sicurezza. Ad esempio, entrambi richiedono attenzione ai dettagli e all’integrità del design, che può prevenire vulnerabilità di sicurezza.
  5. Privacy e controllo dei dati: Assicurare l’accessibilità include fornire agli utenti il controllo su come i loro dati vengono visualizzati e utilizzati (si pensi agli attacchi alla supply chain, messi nero su bianco in contesti ben organizzati lato GDPR) il che è anche un principio fondamentale della privacy dei dati.

In pratica, migliorare l’accessibilità può anche rafforzare la sicurezza, poiché entrambi richiedono un’attenzione alla struttura, al design e alla funzionalità che può ridurre le vulnerabilità e migliorare l’esperienza complessiva dell’utente.

Un legame profondo

Molti di questi elementi di progettazione sicura, rispettosa ed inclusiva, elementi interagiscono e contribuiscono a un ambiente digitale più sicuro:

1. Struttura e Semantica

La struttura e la semantica di un sito web o applicazione riguardano l’uso corretto dei markup HTML e delle best practise di programmazione. L’uso di elementi HTML semantici non solo migliora l’accessibilità, ma anche la leggibilità del codice, rendendo più facile per gli sviluppatori comprendere e mantenere il sito. Una struttura chiara aiuta a prevenire errori di sviluppo che potrebbero introdurre vulnerabilità di sicurezza.

2. Design

Il design influisce sulla sicurezza e l’accessibilità in vari modi. Un design intuitivo e coerente riduce il rischio che gli utenti commettano errori che potrebbero esporli a rischi di sicurezza. Ad esempio, un design chiaro dei form che indica chiaramente quali campi sono obbligatori può prevenire l’inserimento di dati errati o sensibili nei campi sbagliati.

3. Funzionalità

Le funzionalità devono essere progettate considerando sia l’accessibilità che la sicurezza (informatica e del dato). Funzionalità accessibili e sicure garantiscono che tutte le operazioni possano essere eseguite in modo sicuro da tutti gli utenti.

4. Uso degli Standard

Aderire agli standard di sviluppo web, come quelli definiti dal W3C, inclusi HTML, CSS, e WAI-ARIA, è cruciale. Gli standard aiutano a garantire che il codice sia compatibile con una vasta gamma di tecnologie, comprese quelle assistive, e che le misure di sicurezza siano adeguate e aggiornate.

5. Riduzione della Complessità

Semplificare il codice, riducendo le funzionalità non necessarie, eliminando il codice obsoleto o inutile, e modularizzandolo con classi, funzioni condivise, include, aiuta a ridurre la superficie di attacco e l’efficacia manutentiva.
Un codice più semplice è più facile da testare e meno probabile che contenga vulnerabilità nascoste.
Anche la documentazione chiara del codice e dei processi può ridurre gli errori e migliorare la sicurezza.

Conclusione

Incorporando questi principi nella progettazione e nello sviluppo, si può costruire un’infrastruttura web che non solo è più accessibile e facile da usare per tutti gli utenti, ma è anche intrinsecamente più sicura e rispettosa di dati, privacy e loro conservazione.

L’integrazione di accessibilità, usabilità, privacy e sicurezza dal principio del processo di sviluppo riduce la necessità di costose riscritture o correzioni di sicurezza post-lancio, risultando in un prodotto migliore e più sicuro a lungo termine.

L’accessibilità (con l’usabilità), la Privacy e la Sicurezza Informatica sono interconnesse in molti modi nel contesto dello sviluppo web e delle applicazioni Internet: TUTTE mirano a creare un ambiente digitale più sicuro, inclusivo ed efficace per le persone che devono interagire con esso.

Superficie di attacco e obiettivi

Superficie di attacco nel combattimento

Nelle arti marziali, posizionarsi “di taglio” rispetto all’avversario serve a ridurre la superficie corporea esposta agli attacchi, minimizzando le opportunità che l’avversario ha di colpire efficacemente. Allo stesso modo, ridurre la superficie di attacco in sicurezza informatica o la superficie di esposizione nella gestione della privacy aiuta a proteggere risorse e dati da accessi o attacchi non autorizzati.

Questo approccio olistico e strategico di “riduzione della superficie esposta”, sia nel digitale che nel fisico, è fondamentale per mantenere una posizione di difesa forte e resiliente. Implementare misure che limitano proattivamente l’esposizione può significativamente migliorare la sicurezza e la privacy di un sistema o di un’organizzazione.

Superficie di attacco in sicurezza informatica & privacy

Il concetto di “superficie esposta” o “superficie di attacco” in sicurezza informatica e privacy può essere paragonato efficacemente alle strategie utilizzate nelle arti marziali, se osserviamo la posizione di combattimento. In entrambi i campi, l’obiettivo è ridurre l’area attraverso cui potenziali attacchi possono essere portati, aumentando così la propria difesa.

#image_title

#image_title

Superficie di attacco in accessibilità & usabilità

#image_title

#image_title

Nella combinazione accessibilità+usabilità, a sua volta, l’obiettivo è ridurre la superficie dell’applicazione, dell’esposizione – che qui è cognitiva – dell’utente: insomma il concetto KISS “Keep It Simple Stupid!” (che potrei tradurre – in maniera molto libera ma efficace – con “Palla Casa Albero”) o quello più chic di “less is more”, ricordando che lo stesso Donald Norman ne “Il computer invisibile” disse che l’interfaccia migliore è quella di cui non ti accorgi.

Un po’ come il breve, divertente racconto di Foster Wallace “Questa è l’acqua”, in cui due pesci si incontrano e uno chiede “come è l’acqua?” e l’altro non si era nemmeno accorto che ci era immerso.

E un po’ come per noi l’aria…

I metodi di lavoro sono comuni

  • una progettazione (design) rigorosa: chi fa cosa, come, quando, dove e perché (ruoli, permessi, azioni);
  • formazione continua e consapevolezza distribuita a ogni livello del team di lavoro;
  • adozione di standard open e condivisi (controllo del dato, interoperabilità, strutture aperte, indipendenza dal fornitore);
  • standard con ampia, solida community internazionale (vitalità nel tempo, affidabilità, valore dei partecipanti, solidità di progetto);
  • design partecipativo, che coinvolge da subito destinatari e soggetti interessati;
  • controllo, valutazione e rivalutazione continua in ambiti di design iterativo (A/B), test & manutenzione/evoluzione;

Un rapporto “trigonometrico”

Il rapporto tra accessibilità, sicurezza e privacy nei siti web e nelle applicazioni web è un argomento molto rilevante e complesso. Queste tre aree, pur essendo distinte, si intrecciano spesso nel processo di sviluppo e hanno implicazioni importanti l’una sull’altra.

Accessibilità e Sicurezza informatica

La sicurezza e l’accessibilità sono due componenti fondamentali che possono sembrare in conflitto ad uno sguardo superficiale, ma in realtà possono rafforzarsi reciprocamente se gestite correttamente.

Ad esempio, un sito web sicuro deve proteggere gli utenti da minacce esterne come attacchi informatici (HTTPS contro attacchi “man in the middle”, sicurezza dei form, crittografia dei dati, ecc.), mentre un sito accessibile deve garantire che tutti gli utenti, inclusi quelli con disabilità, possano navigare e utilizzare il sito senza ostacoli.

Un sito sicuro che utilizza CAPTCHA, per esempio, può presentare sfide per le persone con disabilità visive. Tuttavia, esistono alternative di verifica accessibili, come le “challenge” basate su audio o su logica, che mantengono la sicurezza senza escludere le persone con disabilità, fornendo alternative equivalenti.

Accessibilità e Privacy

La privacy riguarda la protezione dei dati personali degli utenti e la garanzia che queste informazioni non vengano esposte senza consenso.

L’accessibilità influisce sulla privacy nel senso che le tecnologie assistive usate da alcuni utenti possono interagire con i dati in modi che necessitano considerazioni di privacy speciali.

Ad esempio, un lettore di schermo può dover annunciare informazioni sensibili ad alta voce, il che potrebbe essere un problema in ambienti pubblici.

È importante quindi implementare soluzioni che proteggano la privacy degli utenti senza compromettere l’accessibilità, come auricolari o soluzioni che passino dai device personali degli utenti come il telefono.

Inoltre, banalmente, non esiste privacy per le persone che non riescono ad accedere da sole a uno strumento, percorso, operazione, quindi sono di fatto obbligate a servirsi di terzi: quante volte una persona non vedente si è dovuta far leggere (in ambienti aperti e quindi senza la dovuta privacy) ad alta voce un modulo di una banca o anche solo il proprio estratto conto, perché la banca in quesitone non aveva previsto documentazione elettronica accessibile?

Sicurezza informatica e Privacy

Quando si sviluppano applicazioni che sono sia sicure che rispettose della privacy, è fondamentale considerare come i dati sono raccolti, conservati e gestiti. L’integrazione di misure di sicurezza robuste come HTTPS, cifrature end-to-end, e politiche di gestione dati chiare, riduzione della superficie di attacco con reti sicure, valutazione del rischio condivisa con i fornitori (i cosiddetti “attacchi alla chain supply”), backup multipli, frequenti, geodistribuiti e politiche di disaster recovery congrue e puntali, può aiutare a proteggere la privacy degli utenti. Allo stesso tempo, è cruciale assicurarsi che queste misure non precludano l’accesso ai servizi da parte di utenti con disabilità.

Il contesto normativo

  • In Italia, per gli atti pubblici telematici, è richiesto un formato specifico di PDF noto come PDF/A (A sta per “Archivio”).
  • La versione adottata più recente è la PDF/A-3, basata su PDF 1.7, mentre la versione PDF/A-1, la più attualmente diffusa, è più datata e si basa su PDF versione 1.4.
  • Questo formato è una versione del PDF standardizzata (ISO 19005), pensata per l’uso nell’archiviazione a lungo termine di documenti elettronici.
  • Il PDF/A assicura che il documento possa essere riprodotto esattamente nello stesso modo, indipendentemente dal software o sistema operativo utilizzato in futuro.
  • Questo requisito è stabilito dal DPCM del 3.12.2013, che definisce le specifiche tecniche per la formazione, la trasmissione e la conservazione dei documenti informatici.
  • Il formato PDF/A è regolato a livello europeo e viene adottato negli stati membri per la pubblicazione di documenti ufficiali.
  • Le pubblicazioni nel “Gazzetta Ufficiale” dell’Unione Europea, ad esempio, sono realizzate in formato PDF/A per garantire la loro validità legale nel tempo.
  • Questa pratica assicura che i documenti pubblicati siano autentici e non alterabili, incrementando la sicurezza e la fiducia nei documenti elettronici ufficiali.

PDF/A è uno standard internazionale (ISO19005), sottoinsieme dello standard PDF, appositamente pensato per l’archiviazione nel lungo periodo di documenti elettronici.

Tale standard garantisce che il documento sia visualizzabile sempre allo stesso modo, anche a distanza di tempo e con programmi software diversi.

Caratteristiche del formato PDF/A:

  1. Conservazione a lungo termine:
    il formato è progettato per garantire che i documenti rimangano leggibili e inalterati per lungo tempo, eliminando le dipendenze da software esterni per la visualizzazione dei contenuti.
  2. Completa autosufficienza:
    i file PDF/A devono essere completamente autosufficienti, il che significa che tutto ciò che è necessario per visualizzare il documento correttamente è incorporato nel file stesso. Questo include font, colori e altre informazioni.
  3. Restrizioni:
    Il formato vieta l’uso di caratteristiche non fisse come i collegamenti esterni e gli elementi esecutivi (ad esempio, JavaScript), che potrebbero non essere disponibili o funzionanti nel futuro.
  4. Standardizzazione:
    Il PDF/A segue gli standard ISO 19005-1:2005 per il PDF/A-1, ISO 19005-2:2011 per il PDF/A-2, e ISO 19005-3:2012 per il PDF/A-3.
    Come sopra accennato, il PDF/A-1 si basa sul formato PDF 1.4, il PDF/A-2 e il PDF/A-3 su PDF 1.7.

Applicazione negli atti pubblici telematici:

  • Per gli atti pubblici telematici, come documenti ufficiali, contratti, comunicazioni legali e documentazione amministrativa, l’uso del formato PDF/A è preferito o richiesto per garantire l’integrità e la conservazione del documento nel tempo.
  • Le versioni PDF/A-1, PDF/A-2 e PDF/A-3 sono comunemente utilizzate, con PDF/A-3 che permette di incorporare altri formati di file all’interno del documento PDF, rendendolo utile per applicazioni che richiedono l’incorporamento di dati in formati originali.

Implementazione e verifiche:

  • Per creare un documento in formato PDF/A, è possibile utilizzare numerosi strumenti di creazione PDF che supportano questa normativa, come Adobe Acrobat Pro, LibreOffice, o altri software specifici di gestione documentale che includono l’opzione di salvataggio in formato PDF/A.
  • È importante verificare che il documento rispetti le specifiche PDF/A utilizzando strumenti di validazione disponibili (tantissimi on line, PDF Forge uno di più noti, e poi naturalmente Adobe Acrobat Pro, i vari software specializzati per gestire i PDF, o se devo solo fare il check se lo è o meno, senza dover correggere la cosa, mi basta verificare sulle proprietà del documento), garantendo così che il file sia conforme agli standard richiesti per gli atti pubblici telematici in Italia.