Calcolo Hash Fattura (SHA-256)

di il
6 risposte

Calcolo Hash Fattura (SHA-256)

Ciao a tutti!
Avrei una domanda dato che mi ci sto scontrando da un bel po' di tempo.
Avete idea di come lo SdI calcoli l'hash (SHA-256) di una fattura?
Perchè calcolando lo sha-256 senza toccare il file si ottiene lo stesso risultato riportato nel file metadati di risposta dello sdi solo nel 75% dei casi.
Modificando i terminatori di linea in modalità unix (con solo '\n' e senza '\r') la percentuale si alza ad un 85%.
Tuttavia dovrebbe essere SEMPRE lo stesso corretto.
Avete una vaga idea di come il file venga modificato per il calcolo dell'hash?

Grazie mille!

6 Risposte

  • Re: Calcolo Hash Fattura (SHA-256)

    Non mi risulta quanto affermato, a me risulta un match del 100% tra file inviato e metadato.
    Anzi, faccio appositamente ricalcolare "live" l'hash prima di creare il report di conservazione.

    Non è che, per caso, "confondi" quelle con firma?
  • Re: Calcolo Hash Fattura (SHA-256)

    +m2+ ha scritto:


    Non mi risulta quanto affermato, a me risulta un match del 100% tra file inviato e metadato.
    Anzi, faccio appositamente ricalcolare "live" l'hash prima di creare il report di conservazione.

    Non è che, per caso, "confondi" quelle con firma?
    Effettivamente tutte quelle che non matchano hanno firma XAdES.
    Per queste fatture è necessario rimuovere la firma e calcolare l'hash normalmente?

    Per tutte le altre "basta" cambiare i terminatori di linea in formato unix?

    Scusa ma non riesco a trovare da nessuna parte delle descrizioni riguardo al calcolo dell'hash.
  • Re: Calcolo Hash Fattura (SHA-256)

    forons ha scritto:



    Effettivamente tutte quelle che non matchano hanno firma XAdES.
    Per queste fatture è necessario rimuovere la firma e calcolare l'hash normalmente?

    Per tutte le altre "basta" cambiare i terminatori di linea in formato unix?

    Scusa ma non riesco a trovare da nessuna parte delle descrizioni riguardo al calcolo dell'hash.
    Perdonami ma sono un po' confuso.
    Se spedisci il file X, senza firma, con firma CAdES, con firma XAdES o quello che vuoi, avrai un certo hash supponiamo "ABCD".
    Quello troverai menzionato nei metadati, "ABCD".
    Se invece generi il file XML con hash "ABCD", poi ci apponi una firma, esso (ovviamente) cambierà poniamo in "CDEF".
    Se spedisci il file firmato con hash "CDEF" (tu o "qualcuno", tipo un servizio cloud o quello che ti pare) ovviamente il metadato riporterà "CDEF".

    Non c'entrano nulla i terminatori di linea: più probabilmente devi trovare il file effettivamente spedito e non quello originale, se vuoi riconciliare gli hash.

    Spero di essere stato chiaro.
  • Re: Calcolo Hash Fattura (SHA-256)

    +m2+ ha scritto:


    Perdonami ma sono un po' confuso.
    Se spedisci il file X, senza firma, con firma CAdES, con firma XAdES o quello che vuoi, avrai un certo hash supponiamo "ABCD".
    Quello troverai menzionato nei metadati, "ABCD".
    Se invece generi il file XML con hash "ABCD", poi ci apponi una firma, esso (ovviamente) cambierà poniamo in "CDEF".
    Se spedisci il file firmato con hash "CDEF" (tu o "qualcuno", tipo un servizio cloud o quello che ti pare) ovviamente il metadato riporterà "CDEF".

    Non c'entrano nulla i terminatori di linea: più probabilmente devi trovare il file effettivamente spedito e non quello originale, se vuoi riconciliare gli hash.

    Spero di essere stato chiaro.
    Ok, mi stai dicendo che se invio un file X (a prescindere da come sia fatto e firmato) con hash 'ABCD', il metadato riporterà come hash 'ABCD'.
    Anche io mi aspetterei questo comportamento

    picture.jpeg
    picture.jpeg

    Questo però è un esempio di quello che mi succede :
    1. Stampo l'hash contenuto nei metadati restituiti dallo sdi
    2. Calcolo lo SHA del file inviato -> non matcha
    3. Trasformo i terminatori da '\r\n' a '\n'
    4. Calcolo lo SHA della fattura con i nuovi terminatori -> matcha

    Lo sha del file modificato matcha, mentre l'altro no.
    Questo è un caso, altre volte non matcha nemmeno cambiando i terminatori .

    Ti viene per caso in mente qualche idea/consiglio?
  • Re: Calcolo Hash Fattura (SHA-256)

    La chiave è fattura.xml nel tuo esempio.
    evidentemente conservi un file diverso da quello spedito.
    i terminatori non c'entrano assolutamente nulla
    Ti metto un paio di esempi fatti col mio programmino, del quale ovviamente so ogni singolo bit.

    Da dove salta fuori fattura.xml?
    Allegati:
    21468_09d86b80be234abf1cf878a17e0b1bc7.jpg
    21468_09d86b80be234abf1cf878a17e0b1bc7.jpg

    21468_9ec3d72d281d05c7dea27c177f613df0.jpg
    21468_9ec3d72d281d05c7dea27c177f613df0.jpg
  • Re: Calcolo Hash Fattura (SHA-256)

    Nello screenshot il primo dato, in rosso, è ricalcolato col bottone, non è quindi "salvato", proprio per essere sicuro al 101% che corrisponda sempre a quello dei metadati.
Devi accedere o registrarti per scrivere nel forum
6 risposte