menu di navigazione del network

Firma Elettronica per Web Service

Salve a tutti. Sto sviluppando un servizio che consenta l’invio del DAS Elettronico. Superato lo scoglio del certificato server, mi trovo davanti il seguente errore:

“Nessuna firma creata perché nessuna parte del messaggio corrispondeva alla specifica della parte del messaggio fornita.”

Da quanto capisco, la firma digitale applicata al documento XML non è valida.
Ho provato diverse strade, firmando il documento con un certificato rilasciato dall’agenzia delle Dogane, firmando l’XML con Dyke (quindi con una firma acquistata), inviando il documento senza firma.
L’errore è sempre lo stesso.
Utilizzo la libreria “XadesNet” per la firma del documento, ho provato sia con Xades che con Cades, ma niente. Qualcuno di voi che ci è passato prima di me avrebbe qualche dritta?

Devi firmare il file xml con una firma XaDES-DES embedded. Dyke non ci riesce (dike pro invective si). Usa File Protector (infocamere).
Il certificato di firma deve essere emesso da una CA certificata (non dogane) e risiedere su dispositivo sicuro. Ad esempio va bene la CNS o la usb di firma Aruba.

Se leggi le istruzioni noterai che la firma deve essere embedded (cioè inserita nel xml a livello di nodo della root ed ha anche un altro paio di “ristrettezze”. Dalla tua descrizione è chiaro che la firma non è embedded.

Perfetto, proverò in giornata… Che tu sappia, c’è un modo per integrare questa firma da codice? Senza fare affidamento ad un programma esterno (ovviamente ho sia il dispositivo che la password per la firma).

Per il DAS elettronico devo usare due firme (una per la trasmissione certificata al webservice e la seconda è la firma XADES del XML contenuto nella trasmissione stessa). Personalmente riesco ad eseguire il tutto anche in maniera completamente trasparente all’utilizzatore, ma dipende anche dal sistema di sviluppo che utilizzi.
Al limite ti puoi appoggiare a librerie esterne.

La trasmissione certificata avviene senza problemi (ho a disposizione il certificato di autenticazione), solo che non è propriamente una “firma”, bensì un canale HTTPS (generato basandomi sul certificato, appunto) tra client e server (almeno per come l’ho capito io).

So che è troppo da chiedere, ma avresti un esempio pratico? Anche degli input su eventuali librerie, anche privatamente.

Grazie mille

Aggiornamento: Confrontando un file firmato correttamente con uno firmato da me, la firma è praticamente identica. Ho provato a mandare entrambi, ma la risposta è sempre la stessa. Ho creato a MANO un file XML fittizio, che però è coerente con le specifiche, e niente. Ho provato a chiamare il “WelcomeTest”, ma niente. Sempre questo errore che neanche si capisce cosa significhi.
Oltre a @col.Straker che mi ha già dato una preziosa mano, qualcuno che si sia scontrato con questo errore saprebbe darmi una mano? Anche a capire cosa significa, visto che boh, non si capisce bene.

Aggiornamento. Il problema era dovuto alla protezione dell’endpoint, che era settata su “None”, mentre deve essere impostata su “Sign”. Ora restituisce l’errore che non riesce a impostare una comunicazione SSL/TSL sicura perchè il certificato non risulta attendibile, solo che non specifica se si tratta del certificato client (che ho generato da Desktop Dogane secondo le istruzioni e risulta valido) o del certificato server, che non si riesce a bypassare neanche con la ValidationCallback… Se qualcuno ha qualche suggerimento, è ben accetto…

Il problema è nel certificato di trasmissione.
Infatti ottieni lo stesso errore anche se mandi un welcomeTest senza XML (giusto per dimostrare che la firma del XML in questo caso non c’entra)
Come hai generato il certificato di trasmissione?
Deve essere generato seguendo le istruzioni delle dogane (in sostanza deve contenere la loro chiave pubblica e la chiave pubblica del gestore delegato)

Il certificato lo genero tramite l’applicazione “Desktop Dogane”, effettuando l’accreditamento direttamente presso i loro uffici. Potresti mandarmi il link delle dogane che indica la procedura corretta per ottenere questo benedetto certificato? Dal loro sito non trovo niente che possa essermi d’aiuto.

Non esiste un link con la procedura corretta in quanto per accedere alle istruzioni devi prima eseguire il login con SPID. Comunque riassumo tutta la procedura (testata e funzionante).

  1. Procedere alla nomina del Gestore. In sostanza il rappresentante della ditta si collega al portale (Area Riservata / Dogane / Accesso per utenti esterni con credenziali / SPID) tramite SPID (quello delle Poste o altro SPID) e nomina un Gestore delle autorizzazioni ai servizi digitali (può essere persona terza o meglio ancora se stesso), Se persona terza bisognerà fare un MAU (Modello Autorizzativo Unico, con copia carta identità etc).
  2. Il Gestore delegato richiede per il soggetto obbligato (aka ditta) l’autorizzazione a due servizi che ovviamente vanno delegati a persona fisica: a) “DAS - Movimenti ad accisa assolta” e b) “Gestione Certificati”
  3. Se Gestore = Rappresentante fiscale le autorizzazioni sono praticamente immediate, ed a questo punto abbiamo una persona fisica che è il Gestore Delegato che ha (almeno) le due autorizzazioni base che gli consentono di gestire (inviare / ricevere) i DAS elettronici e l’autorizzazione a gestire i certificati.
  4. Ricevute le autorizzazioni, la persona fisica Gestore Delegato accede al portale col proprio SPID (se Gestore=Rapp.Fisc tecnicamente siamo già dentro il portale con SPID) e va in Area Riservata / Dogane / Servizi online / Interattivi dove teoricamente è possibile selezionare “Gestione Certificato”. Dico teoricamente in quanto talvolta questa voce appare alcune ore dopo la richiesta di autorizzazione, talvolta bastano pochi minuti… mistero.
  5. Quando finalmente compare Gestione Certificato, in quella sezione compaiono le istruzioni su come generare il Certificato (di trasmissione). Fino a alcune settimane fa per generare il certificato bisognava armarsi di OpenSSL e digitare svariate righe dal prompt di OpenSSL. Ora invece le istruzioni consigliano l’uso di un programma (di cui purtroppo non ricordo il nome) con interfaccia grafica che rende la generazione del certificato moooolto più agevole. In sostanza si genera una request (req.der) ed una chiave key.der, si esegue l’upload del req.der sul portale il quale (se tutto è corretto) fa apparire il pulsante “Richiedi certificato”. Cliccare su Richiedi certificato, girare un po’ i pollici e poi clicchiamo su “Scarica certificato” ed otteniamo un file dal nome certificato_AUTH_<p.ivaDitta>-EST.cer. Si trasforma il file .cer in un .pem (sempre col programmino indicato dalle dogane, o con OpenSSL per gli smanettoni) ed infine generiamo il nostro benedetto certificato .p12 “unendo” il .pem con la nostra chiave (key.der) generata al punto 1.
  6. Il certificato p12 così ottenuto va installato come certificato utente, ed ora potete procedere alla trasmissione.
    Per la firma XaDES, ripeto, non ho trovato altra soluzione che utilizzare la CNS o chiavette USB (ma se qualcuno trova altre soluzioni, ben vengano)

Sei il mio salvatore. Dovrò sentire il mio cliente e farlo dotare di SPID e poi fare tutta questa procedura… Con la speranza che le cose non cambino di nuovo… Grazie mille!!!

Finalmente la luce… Ho eseguito l’accesso tramite la CNS, che funziona bene come lo SPID, e dalla sezione “Mio Profilo” ho creato il Gestore, richiesto le autorizzazioni (mi sono uscite tutte, anche quelle sull’energia elettrica ecc ecc) e autorizzate.
Tuttavia, nonostante compaia la sezione “Gestione Certificati” nel menu “Interattivi”, cliccandoci esce una pagina bianca, senza nessun link. Sicuramente, come indicato da Stefano, c’è da attendere.
Vedremo domani mattina.

Grazie per l’info “CNS funziona bene come lo SPID”. Non lo avevo mai provato.

E’ stato uno sparo nel buio, in realtà… Nel documento delle Dogane era specificato sia lo SPID che la CNS, ho voluto provare… Speriamo che domani mattina riesca ad andare avanti

Aggiornamento: Ho creato il famoso file p12 seguendo le istruzioni sul sito (nessun programma esterno però, ho usato OpenSSL come indicato dal sito delle dogane), ma provando ad utilizzarlo, restituisce sempre lo stesso errore di certificato non valido. Inoltre, sempre nella stessa sezione, c’era la possibilità di scaricare un certificato chiamato “CADoganeMonopoli.pem”, ma non ho trovato nulla nessuna info sul suo utilizzo o funzionalità…