IPmotive

Seal&Shot: Strumenti per applicare la tecnologia a chiave pubblica a servizi web e mobile

Il progetto mira a creare un set di strumenti utili per semplificare l’applicazione della tecnologia a chiave pubblica per funzioni di firma digitale e autenticazione in applicazioni e servizi su web o con app su desktop e dispositivi mobili

I principali strumenti sperimentali da realizzare e che sono oggetto del progetto di R&S sono:

  • Soluzione xApp da utilizzare in alternativa ad applet Java che non sono più supportati dai browser più diffuci
  • Soluzione xSeal per il riconoscimento guidato e paperless nel rilascio di certificati digitali
  • Soluzione xShot di Firma digitale one-shot con On-Time-Password

Contesto di riferimento

L’evoluzione sia tecnologica che di mercato nel settore della Identità Digitale sta comportando difficoltà nell’adeguamento delle architetture dei sistemi informatici e delle procedure che da molti anni sono ormai assestate e consolidate.

Evoluzione tecnologica

Negli ultimi anni il plug-in del browser Java, nato come tecnologia minimamente invasiva per eseguire applicazioni native all’interno del browser, ha dimostrato di essere un serio problema per garantire la sicurezza dei sistemi informatici ed è stato un diffuso canale di ingresso per gli attacchi con malware e per altri meccanismi malevoli.

Microsoft, Mozilla e Google hanno tutti rimosso il supporto per le applet Java nei propri browser, lasciando Internet Explorer e Safari come le uniche alternative per coloro che necessitano di applicazioni Java nel proprio browser.

Per anni, le applet Java sono state l’unico modo per supportare la firma digitale online e l’autenticazione avanzata tramite smartcard e lettori USB. Da qui nasce la necessità di trovare una nuova tecnologia che sia compatibile con tutti i browser e sistemi operativi, preservando la sicurezza dell’utente finale.

Evoluzione di mercato

Il rilascio della Identità Digitale a persone fisiche viene effettuata dagli uffici di registrazione dei TSP (Trusted Service Provider) abilitati da Enti governativi (in Italia l’ AGID) a compiere tale operazione. Avviene applicando un protocollo ben definito soggetto ad approvazione e verifica da parte dell’Ente governativo e deve essere conforme alla normativa vigente e al regolamento europeo eIdas.

Negli ultimi anni, anche grazie all’evoluzione tecnologica, si rendono disponibili procedure più automatizzate che riducono, e in alcuni casi annullano, l’impiego di copie cartacee e anche l’intervento di un operatore. Questo consente di velocizzare l’operazione evitando lunghe attese degli utenti nei periodi di punta, la saturazione degli uffici di registrazione dei TSP, e anche una riduzione dei costi. Tuttavia, gli automatismi devono essere introdotti garantendo un inalterato livello di sicurezza e anzi migliorarlo ove possibile. In questo senso le verifiche e le approvazioni da parte degli Enti governativi sono abbastanza severe e mettono in difficoltà i TSP nell’introdurre modifiche per automatizzare i processi.

L’Identità Digitale è applicata ormai in molti contesti e sempre più specie nelle transazioni su web. Un contesto di utilizzo tipico è quello in cui un fornitore di servizi (bancari, assicurativi, telecomunicazione …) presenta una offerta online per raccogliere adesioni da nuovi clienti. L’accettazione dell’offerta comporta la sottoscrizione di un contratto e non sempre il nuovo cliente possiede o ha dimestichezza della firma digitale. Piuttosto che finalizzare il contratto in tempi lunghi con l’invio di copie cartacee da firmare tramite il,servizio postale, diventa notevole la possibilità di rilasciare “al volo” una identità digitale al nuovo cliente che quindi può immediatamente firmare digitalmente la proposta di contratto. Le procedure per il rilascio di credenziali di identità da utilizzare una sola volta (“one-shot”) per una specifica sessione on-line, sono già utilizzate da qualche anno ma soffrono di essere complesse, instabili, e spesso al limte della conformità alle normative.

Finalità

Con Seal&Shot la Ipmotive intende mettere a disposizione, di integratori di sistema e delle aziende che operano sul mercato ID, un set di strumenti pronti all’uso che consentono una semplice e immediata soluzione con caratteristiche altamente innovative alle evoluzioni tecnologiche e di mercato esposte in precedenza.

In particolare Seal&Shot trova applicazione per:

  1. Sostituire la tecnologia basata su Applet Java e ActiveX per le operazioni di firma e autenticazione su web attraverso un browser.
  2. Migliorare le procedure di rilascio dei certificati digitali introducendo elementi automatici che riducono o annullano l’intervento di operatori.
  3. Dare supporto alle operazioni di rilascio certificati digitali per operazioni di firma e autenticazione che tipicamente vengono eseguite una sola volta (one-shot) su transazioni web nelle quali ad esempio viene proposto a un nuovo potenziale cliente la sottoscrizione di un contratto o di un accordo con una procedura interamente paperless e pienamente conforme alle normative.

Architettura di progetto

Modulo xApp

xApp fornisce un’architettura completa per gestire la firma digitale, l’autenticazione forte e la comunicazione con un dispositivo crittografico nelle applicazioni web senza fare affidamento sulle tecnologie Java. La soluzione xApp può essere integrata in qualsiasi applicazione web esistente con il minimo sforzo.

La soluzione xApp consente a un’applicazione web di interagire con qualsiasi dispositivo crittografico (smartcard o token) fornendo funzionalità crittografiche sia di alto livello (ad es. firma di un PDF) che di basso livello (ad es. firma grezza, generazione di certificati/coppie di chiavi, ecc. ) semplicemente utilizzando una libreria JavaScript e le API esposte.

Si compone dei seguenti due componenti:

    • xApp Server (Connector): un server leggero da installare sulle macchine server nello stesso dominio dell’Applicazione Web, disponibile per Linux e Windows. Questo server, che ospita la componente di backend, viene utilizzato per stabilire il canale di comunicazione dalle pagine web esposte dal Web Server del cliente verso il client xApp.
    • xApp Client: un’applicazione leggera da installare sulla workstation dell’utente finale disponibile per Windows, MacOS e Linux. Gestisce la connessione con la smartcard o il token ed esegue le operazioni di firma digitale e/o di autenticazione.

High level architecture

La soluzione xApp si basa sulla tecnologia Web Intent API. Web Intent è un sistema RPC (Remote Procedure Call) estremamente leggero che consente a un’applicazione Web di richiamare un client per eseguire un’azione specifica.

Le principali caratteristiche sono:

    • Java VM non necessaria: xApp elimina la necessità di applet Java, il cui utilizzo è deprecato, o di qualsiasi altro componente aggiuntivo di terze parti.
    • Indipendenza dal browser: un unico agente utente e un’unica installazione per funzionare contemporaneamente con ogni browser per un’esperienza utente fluida.
    • Indipendenza dalla piattaforma: può essere sviluppato con il linguaggio Python, il codice può essere eseguito su qualsiasi piattaforma Windows, Linux e Mac con la stessa esperienza utente.
    • Maggiore sicurezza: i Web Intent sono interamente gestiti lato client con un elevato grado di controllo sulla sicurezza e sulla privacy dei dati scambiati.

È possibile aumentare il numero di istanze Connector in esecuzione per gestire carichi di lavoro più elevati. Il bilanciamento del carico tra più nodi può essere ottenuto definendo una configurazione di Web Server ad hoc.

Modulo xSeal

L’architettura xSeal consente l’utilizzo e la integrazione di una soluzione di firma one-shot per la dematerializzazione del processo di registrazione di una nuova richiesta di Identità Digitale nel Credential Management System (CMS) di un Trusted Service Provider (TSP)

Tipicamente la sottoscrizione di una nuova richiesta di certificato, sia esso CNS, Firma o Firma Remota, necessita, tra i vari step, di compilare e firmare dei moduli cartacei. Con l’integrazione della firma one-shot, si elimina la necessità di stampare tali moduli e rendere digitale l’intero processo.

Il sistema è in grado di gestire i flussi per l’identificazione dell’utente e l’emissione di un’identità digitale attraverso differenti modalità di riconoscimento alternative:

    • Modalità di persona;
    • Modalità remota con CNS/CIE;
    • Modalità remota con webcam.

Prendendo ad esempio la modalità di identificazione di persona e sulle modifiche che verranno apportate al processo con l’integrazione della firma one-shot, l’architettura per l’integrazione della firma one-shot all’interno di un CMS di un TSP deve prevedere il completo disaccoppiamento della nuova funzionalità dalle logiche core del CMS, ed anche dal server di Certification Authority (CA) del TSP, attraverso l’uso della componente middleware di idempotenza (MW).

Il MW, in aggiunta a rendere idempotente la comunicazione tra il CMS e la CA, farà da intermediario tra il CMS e la soluzione di Firma Remota prevista nell’architettura di CA InfoCamere.

Le comunicazioni tra i componenti coinvolti vengono descritte nello schema di alto livello presentato sotto.

Modulo xShot

xShot è la soluzione per le firme elettroniche basate sull’emissione di un certificato monouso. La soluzione è basata su una API che può essere utilizzata come parte della applicazione per web.

La soluzione assicura che nessun dato sensibile debba essere inviato lontano da dove risiedono, poiché solo gli hash dei documenti da firmare vengono trasmessi al servizio di firma. La firma dei documenti avviene mediante la creazione di certificati digitali monouso, che sono creati al momento dell’operazione di firma per un uso immediato per firmare elettronicamente uno o più documenti.

Le firme elettroniche possono includere un timestamp, che fornisce la firma del documento corredata di una data e un’ora affidabile.

L’API è fornita con un modulo chiamato One-Shot Optimizer, un sistema server che espone una interfaccia RESTful attraverso la quale le applicazioni sono in grado di effettuare le loro richieste di firma elettronica.

One-Shot Optimizer esegue il carico di lavoro computazionalmente più pesante del processo di firma, riducendo così il traffico di dati sulla rete locale ed eseguendo la maggior parte dell’elaborazione su un hardware crittografico. I documenti da firmare vengono pre-elaborati nel computer del client o del server web e non vengono inviati a xShot. Ciò che viene inviato è una rappresentazione estratta dal documento, creata con un algoritmo hash.

xShot a sua volta si interfaccia con la CA di un TSP che emette certificati digitali. Il ruolo degli operatori di registrazione (RAO) è comunque fondamentale nel processo in quanto gestiscono la richiesta di nuovi certificati digitali ricevuta da nuovi utenti. I certificati emessi possono essere utilizzati per firmare elettronicamente i documenti.

I certificati One-Shot Signature vengono generati “al volo” ogni volta che un nuovo set di documenti richiede una firma. Attraverso il servizio One-Shot Signature il gestore del servizio web opera come  RAO, fornendo i dati identificativi di ciascun utente e richiedendo la generazione di certificati di firma. Una volta forniti i dati di registrazione dell’utente e il certificato è pronto per essere emesso, l’utente finale avvia la generazione del certificato digitale. Questa azione completa la procedura di firma.

Le firme elettroniche vengono eseguite da xShot che richiede l’operazione alla CA dove le chiavi di firma vengono generate e archiviate nel sistema QSCD (Qualified Electronic Signature Creation Device) del TSP.