Sviluppo software per la firma digitale con smart card

30/09/2021
2 minutes
una mano che inserisce una carta in un lettore di smart card

Il primo progetto come sviluppatore software potrebbe non essere una passeggiata, sopratutto se devi sviluppare un software per la firma digitale, motivo per cui è di fondamentale importanza il team di sviluppo e le persone con cui collabori. Fortunatamente, durante la mia esperienza in Major Bit Consulting, azienda di Roma di consulenza ICT, ho incontrato ottimi colleghi.

Il progetto consisteva nella creazione di un'applicazione desktop per Windows, in grado di gestire e monitorare lo stato delle firme digitali applicate ai diversi documenti, per migliorare la trasparenza ed il livello di collaborazione del personale.

Tabella dei contenuti

Obiettivi del cliente

In questo caso il principale obiettivo del cliente era semplificare e velocizzare il processo di approvazione dei documenti nella sua totalità.
Il software ideale doveva avere un interfaccia grafica intuitiva e familiare, per facilitarne l'adozione e l'utilizzo fin dalle prima installazioni.
Per evitare di applicare firme senza essere autorizzati, di fondamentale importanza controlli di sicurezza per l'autenticazione all'interno del software, grazie all'utilizzo di smart card già in dotazione al personale.
Nel caso in cui l'utente ha dei documenti che lo riguardano, li può aprire, leggere, verificare quali altri colleghi sono coinvolti e se hanno già firmato o meno il documento.

Soluzione proposta

Analisi delle esigenze e pianificazione

L'azienda di consulenza informatica in cui lavoravo ha quindi offerto una soluzione software che rispondesse ai loro specifici requisiti:

  • Interfaccia utente intuitiva da sviluppare con Windows Forms, tecnologia di Microsoft e quindi in linea con l'ambiente già familiare al personale.
  • Autenticazione robusta con smart card per l'autenticazione.
  • Firma digitale e gestione dello stato permettendo di conoscere lo stato delle firme degli altri interessati al documento.

Con il team abbiamo quindi suddiviso il lavoro in task ed ognuno di noi si è focalizzato su una specifica parte, seppur condividendo le informazioni fra noi ed aiutandoci a vicenda.

Fasi del progetto

Sviluppo dell'interfaccia grafica
  1. Progettazione di un'interfaccia user-friendly con Windows Forms.
  2. Prototipazione grafica e validazione con il cliente.
Implementazione delle funzionalità
  1. Integrazione del modulo di autenticazione con smart card.
  2. Sviluppo del sistema di firma digitale per documenti PDF.
  3. Implementazione della funzione di monitoraggio dello stato di firma.
Testing e consegna
  1. Test approfonditi per garantire la sicurezza e la funzionalità.
  2. Correzione di eventuali bug e ottimizzazione del codice.
  3. Consegna del software e formazione del personale.

Tecnologie utilizzate

  • C#: Linguaggio di programmazione principale.
  • Windows Forms: Framework per l'interfaccia grafica in ambiente desktop Windows.
  • PKCS#11: Interfaccia di programmazione standard per l'interazione con smart card.
  • iTextSharp: Libreria per la gestione dei PDF e delle firme digitali.

Risultati e benefici

Il software sviluppato, semplificando il processo ed aggiungendo interoperabilità, ha migliorato significativamente l'efficienza del processo di firma digitale all'interno della Marina Militare. Il personale ha trovato l'interfaccia grafica intuitiva e facile da usare. Mentre l'integrazione delle smart card ha garantito un alto livello di sicurezza. La possibilità di monitorare lo stato delle firme ha aumentato la trasparenza e migliorato la collaborazione tra i membri del team.

Conclusione

Questo progetto di sviluppo software personalizzato ha dimostrato l'importanza di una gestione strutturata e di un approccio collaborativo. Il successo dell'iniziativa ha rafforzato la reputazione di Major Bit Consulting come azienda di sviluppo software affidabile e innovativa, aprendo la strada a future collaborazioni con la Marina Militare Italiana.