DIMATEK3.9 la firma digitale a 256 bit

martedì 6 luglio 2010
Franco Spinella
Responsabile Ricerca e Sviluppo , Dinasty of Freedom DOF
VIMODRONE, Italia
DataFlex Italia comunica la disponibilità della nuva versione (release candidata) 3.9 per il supporto delle firme e delle impronte a 256bit.

Le nuove normative che entreranno in vigore da settembre obbligano a chi vuole fare archiviazione sostitutiva e firmare legalmente i documenti ad utilizzare degli algoritmi più sicuri a 256bit. Dalla versione 3.9 Dimatek supporta questa modalità.

DCPM del 30 marzo 2010
Da settembre entrerà in vigore il DCPM del 30 marzo 2010 che prevede nuove regole per l'archiviazione Sostitutiva a norme di legge.

ALGORITMI PER LA GENERAZIONE E VERIFICA DELLA FIRMA DIGITALE

Funzioni di HASH

Le applicazioni di generazione e verifica della firma digitale per la sottoscrizione dei documenti informatici e quelle di generazione e verifica della marca temporale devono utilizzare la funzione di hash "dedicated hash-function 4", corrispondente alla funzione SHA-256.

Per la generazione e la verifica della firma digitale conforme alla specifica ETSI TS 101 733 si deve utilizzare il metodo di sottoscrizione sha256-with-rsa che in dimatek è definito come szOID_RSA_SHA256RSA

Le firme di cui all'articolo 3, comma 2 devono utilizzare il metodo di sottoscrizione ecdsa-with-Sha256 che in dimatek è definito come szOID_ECDSA_SHA256


Per creare una impronta o una firma utilizzando un algoritmo a 256 bit con Dimatek è sufficiente impsotare correttamente l’inizializzazione della sessione di Firma utilizzando la funzione DMTCREATE. Questa funzione che è fondamentale dato che crea l’handle di sessione da utilizzare con quasi tutte le funzioni Dimatek,
Per gestire l’impronta (e anche la firma) a 256 Bit basta impostare correttamente il 4to parametro della funzione
fUseEnhancedProvider che è 2. Questo parametro è stato variato da Boolean a Integer dato che ora può assumenbre 3 diversi valori.

Nel caso degli algoritmi a 256 devi passare il valore 2 che equivale a -Enhanced RSA AES Sha-256. Anche se non obbligatorio è consigliabile anche che l’ultimo parametro sia TRUE per utilizzare le funzioni a basso livello se supportate dal CSP. Normalmente se supporta gli algoritmi a 256 supporterà anche le funzioni a basso livello

Ecco un esempio C# che restituisce una impronta a 256 bit soyttoforma di stringa esadecimale:

ghDimatecObj= (dmtcreate(0,"MY","c:\windows32\system32\bit4ipki.dll",2,true)) ;

CDIMATECLIBRARY.ghDimatecObj = CDIMATECLIBRARY.dmtCreate(null,"MY","c:\windows32\system32\bit4ipki.dll",2,TRUE);

int HashResult = CDIMATECLIBRARY.dmtHash(CDIMATECLIBRARY.ghDimatecObj,"c:mydoc.tif","", szOutputHexHash,",CDIMATECLIBRARY.DMT_CALG_SHA256,false);

Nota: per poter utilizzare la firma a 256 bit è necessario che il certificato sia stato creato utilizando lo stesso algoritmo sha-256. In caso contrario la Firma fallisce e occorre usare sempre lo Sha-1
0
ritiene ritengono interessante questa discussione