Cominciano ad arrivare. Ho prenotato un volo per Budapest (per un meeting del gruppo di lavoro di ENISA sulle microimprese), e mi è arrivata dalla una fattura elettronica. Non una fattura in PDF da stampare, ma una vera fattura elettronica. Vale la pena di citare buona parte della mail che mi è arrivata:
Gentile Cliente,
La ringraziamo per aver scelto ….
Allegato alla presente e-mail troverà una fattura elettronica emessa dalla …. in base alla Sua prenotazione, conformemente alla legge ungherese.
La fattura originale si trova nel file con estensione .mssign. Se desidera verificare l’autenticità della fattura può farlo utilizzando il programma MultiSigno Verify che può essere scaricato gratuitamente da qui …
Informazioni sulla tecnologia e disposizioni di legge ungheresi inerenti alla fatturazione in formato elettronico
* Il file con estensione .mssign allegato all’e-mail è la fattura elettronica emessa da …. Hungary secondo le disposizioni di legge ungheresi rilevanti (Legge sulla fatturazione in formato elettronico 2001./XXXV.; Legge sulla contabilità del 2004; Decreto del Ministero delle Finanze 20/2004.)
* La fattura elettronica allegata è un file di formato speciale che contiene:
– la grafica delle fatture tradizionali emesse dalla …. Hungary in formato pdf, conformemente ai requisiti ungheresi di formato delle fatture previsti dalla legge 1992/LXXIV
– la firma della fattura creata con tecnologia PKI (Public Key Infrastructure) conformemente alle sopra citate leggi ungheresi.
* La firma è effettuata per conto della …. Hungary con il “certificato di legittimazione” della persona a cui sono stati conferiti i poteri di firma dalla …. Hungary. Il file della fattura elettronica contiene anche la “traccia di certificazione completa” del certificato usato per la firma e delle liste di certificazioni revocate (LCR) rilevanti.
* Ulteriori informazioni sulla procedura di firma e sul file della fattura firmata sono disponibili sul sito web della … da qui: Pratiche di firma <http://…/downloads/Signature_Policy_IT.pdf>
* Se la fattura deve essere utilizzata a fini contabili, il destinatario è vincolato a conservare la fattura elettronica nello stesso modo in cui conserverebbe una fattura cartacea.
Qui si pongono due diversi problemi. Il primo è ovviamente di validità generale del documento: la normativa italiana mi consente di accettare una fattura elettronica emessa in conformità alla normativa ungherese? Il problema naturalmente mi interessa come impresa ma meno come informatico, e lo passerò pari pari al mio commercialista, che ne sarà certamente felice… 😉
Io mi interesso della parte informatica, ed in particolare della validità della firma. Si tratta infatti di stabilire se una firma elettronica apposta ad una fattura in Ungheria sia valida e verificabile in Italia, tenendo conto del fatto che la Certification Authority è appunto ungherese. Si presentano due ordini di problemi. Il primo è di nuovo legale: la CA ungherese soddisfa i requisiti posti dalla legge italiana, che fanno sì che io poi possa accettare la firma su un documento in Italia? Secondo la normativa italiana, per quanto ho capito, la risposta è certamente sì se la fattura è stata sottoscritta con firma elettronica qualificata.
Si pongono quindi diversi problemi: il primo è capire se il certificatore emette certificati qualificati. Esaminando a mano il file si dovrebbe trattare della Magyar Telekom, chedal sito di FESA risulta effettivamente emettere certificati qualificati, ma naturalmente il sito di FESA, per quanto autorevole, non ha l’ufficialità necessaria per dare garanzie dal punto di vista legale. Esistono dei campi all’interno del certificato che lo dichiarano qualificato, ma naturalmente questi campi sono affidabili solo se il certificatore è già stato accettato come qualificato, quindi fino a quel punto non fanno testo. Quindi il problema di assicurarsi che il certificatore sia accettabile rimane.
Il secondo problema è ottenere il certificato della CA (e quindi la sua chiave pubblica) con cui verificare i certificati emessi. Anche qui, non basta andare sul sito suo o di qualcun’altro, perché non è un canale affidabile a meno di avere a priori una qualche chiave con cui verificare l’informazione fornita… per intenderci, in Italia sarebbe la chiave con cui il CNIPA firma l’elenco dei certificatori accreditati, pubblicata in Gazzetta Ufficiale. Tutti questi meccanismi di trust infatti si basano su una chiave iniziale scambiata attraverso canali “affidabili” (nel caso del CNIPA, la Gazzetta Ufficiale) e su una catena initerrotta di garanzie, in questo caso costituita dalla firma dei certificati. Per poter seguire la catena e quindi verificare il documento, bisogna avere la chiave iniziale.
Quindi abbiamo diversi problemi: capire se la Certification authority è accettabile secondo la nostra normativa, ottenere il certificato della CA attraverso un canale affidabile, e infine gestire il formato del documento e del certificato, che possono non essere quelli abituali per l’Italia, per quanto anche qui ci siano dei limiti di accettabilità posti dalla normativa.
Per primi consideriamo i problemi tecnici: senza risolvere questi non si accede alle informazioni e quindi non si possono affrontare gli altri. La fattura che mi è arrivata è in formato XAdES, e io non ho nessun tool per trattare questo formato. Non solo, ma contrariamente alle mie aspettative non sono riuscito a trovare niente di facilmente scaricabile che fosse adatto. Questo è il problema di avere tanto a che fare con i contesti più avanzati, che uno finisce per convincersi che determinati strumenti siano comuni solo perché ne sente parlare da anni; il meglio che ho trovato sono delle librerie, ma di scrivermi del codice per leggere una fattura al momento non ho proprio tempo.
La mail che ho ricevuto mi propone una soluzione a questo problema: mi propone infatti di scaricare un programma per la verifica dal loro sito, un programma dal nome MultiSignoVerifySetup_EN.exe Naturalmente inorridisco all’idea di scaricare un eseguibile che mi viene indicato in una mail e installarlo, e figuriamoci cosa succederebbe se una pratica di questo tipo diventasse prassi… ma il problema principale è naturalmente che eseguire un programma ottenuto in questo modo, che mi risponda “va tutto bene”, non costituisce certamente una verifica affidabile del certificato, dato che: non so da dove viene il programma (di fatto viene da chi mi potrebbe potenzialmente fornire un certificato non valido), non so sulla base di quali parametri/normativa/altro il programma svolge la sua attività, e come al solito non so come è stato ottenuto il certificato della CA.
Su questo genere di problemi sto lavorando, guarda caso, con Infocert nel progetto europeo R4eGov. In particolare in questa fase ci stiamo occupando di uno strumento pensato proprio per affrontare questi problemi, ovvero le Trust-service Status List, definite nello standard ETSI TS 102 231. Si tratta essenzialmente di una versione evoluta dell’elenco dei certificatori prodotto da organismi quale il CNIPA, pensato per essere prodotto ad esempio proprio da organismi di questo tipo. Si tratta quindi sempre di un elenco non solo di certificatori, ma più genericamente di “trust services”, che possono essere servizi di timestamping ecc. Per ogni servizio sono elencate le informazioni che permettono di valutare se in un determinato contesto può essere considerato trusted. Nel caso della CA ad esempio, si può sapere se effettivamente produce certificati qualificati (potrebbe avere un’altra entry nella lista in cui è descritto un suo diverso servizio di emissione di certificati non qualificati), se è accreditata ecc. Una entry naturalmente permette di accedere al suo certificato. La Trust-service Status List (TSL) permette quindi di ottenere attraverso un “canale sicuro” (la TSL è naturalmente firmata) il certificato delle CA che si considerano trusted o conformi ad una normativa. In più, la TSL può sostanzialmente “linkare” altre TSL, per cui un’agenzia di un paese potrebbe potenzialmente linkare le TSL di altri paesi (ma naturalmente, questa non sarebbe solo una scelta tecnica, dato che al centro del meccanismo ci sono principi di fiducia e di delega). Infine, la TSL è strutturata (XML, tanto per cambiare) e quindi può essere gestita con strumenti standard e uniformi nei diversi paesi. Il meccanismo permetterebbe quindi di superare molti dei problemi di interoperabilità fra paesi diversi.
Intanto io però ho per le mani la mia fattura elettronica, e per leggerci qualcosa mi sono scaricato il programma che mi hanno suggerito… che ho installato in una macchina virtuale usa-e-getta, si intende 😉 Il simpatico programmino mi informa così che il certificato non è qualificato, precludendomi la via facile per accettare la fattura. Mi tocca così avventurarmi nella normativa sulla fatturazione elettronica, e in particolare (spero) nel D. L. 20 febbraio 2004 n. 52 – Attuazione della direttiva 2001/115/CE che semplifica ed armonizza le modalità di fatturazione in materia di IVA. Il quale all’art. 3 dice:
La trasmissione per via elettronica della fattura, non contenente macroistruzioni ne’ codice eseguibile, e’ consentita previo accordo con il destinatario. L’attestazione della data, l’autenticità dell’origine e l’integrità del contenuto della fattura elettronica sono rispettivamente garantite mediante l’apposizione su ciascuna fattura o sul lotto di fatture del riferimento temporale e della firma elettronica qualificata dell’emittente o mediante sistemi EDI di trasmissione elettronica dei dati che garantiscano i predetti requisiti di autenticità e integrità. Le fatture in lingua straniera devono essere tradotte in lingua nazionale a richiesta dell’amministrazione finanziaria e gli importi possono essere espressi in
qualsiasi valuta purché’ l’imposta sia indicata in euro.
Ne deduco quindi che io potrei secondo la normativa italiana rifiutare la fattura elettronica, ma non chiarisce ovviamente, a me non giurista, se chi la emette che opera secondo la normativa ungherese può invece insistere per inviarmela.
Dice però che la fattura, anche in assenza di firma qualificata, potrebbe essere accettata se è stata trasmessa mediante sistemi EDI di trasmissione elettronica dei dati che garantiscano i predetti requisiti di autenticità e integrità. E chi lo decide se i requisiti sono garantiti (che poi si direbbe soddisfatti, penso)? L’Agenzia delle Entrate quando mi contesta la fattura, ad esempio? Mah… mi dovrò informare.
C’è però un altro punto interessante. Il programmino mi dice che il “Root Certificate” non è stato accettato, e anzi me lo segnala in rosso, il che è giusto. Visto che sto sperimentando, provo ad accettarlo. Il programmino si connette ad Internet (e se fosse un trojan sarebbe felice di avere questa scusa per farsi abilitare sul personal firewall) e scarica il certificato… ma a questo punto, sorpresa: mi compare la finestra del sottosistema di Windows che gestisce le CA, che mi conferma che è un certificato che non ho accettato come affidabile: a quanto pare il programmino si appoggia a quel sottosistema per decidere se la CA è stata accettata, non usa un proprio database. A questo punto, incuriosito, esporto il certificato e lo importo in Windows, e come mi aspettavo… adesso il programmino considera valida la CA (che sto usando per validare una fattura elettronica, non per navigare in Internet). Quindi considererebbe valida una fattura firmata con un certificato di Verisign, di quelli che ti danno sulla base di un indirizzo di posta elettronica? O una CA qualsiasi che io ho accettato per motivi miei? E comunque, alla fine la scelta di accettare la CA l’ho fatta io a mano, niente canali sicuri né garanzie sulle caratteristiche di conformità della CA. Mah… Chiaramente è una questione che dipende dalla normativa ungherese,il programma verificherà in base a quella, magari nel documento ci sono delle macro che lo invaliderebbero secondo la normativa italiana, e magari a lui invece la cosa non interessa minimamente. O magari è un difetto del programmino (la cui licenza peraltro fa riferimento a Kopint Datorg), ma penso comunque che quando le fatture elettroniche si diffonderanno ci saranno cose interessanti. Sarebbe meglio essere preparati.
Alcuni commenti a questo post interessante:
– una fattura elettronica è valida per tutti i paesi dell’UE se chi la emette rispetta le proprie norme nazionali. Potrebbe essere anche non firmata (es. paesi nordici) o firmata con certificato non qualificato (es. Francia). Purtroppo chi verifica ha tutti i problemi evidenziati…
– la TSL risolverà parte dei problemi, a breve uscirà una nuova versione che sarà utilizzata dagli stati membri dell’UE a partire dal prossimo anno. Però funzionerà solo per le firme qualificate: dove non c’è obbligo di firmare le fatture con firma qualificata saremo nelle stesse condizioni di prima
– il destinatario di una fattura elettronica deve dare il proprio consenso per ricevere una fattura elettronica, questo vale per tutta Europa. Se la si tratta come fattura elettronica occorre anche utilizzare la conservazione sostitutiva… Per la massima tranquillità potrebbe essere utile avvisare il mittente che la fattura inviata viene considerata “invio con canale elettronico di fattura cartacea”, stamparla e conservarla come se fosse arrivata su carta (immagino che con buon senso il commercialista abbia fatto così).