In BreveLe XML Signature sono le firme digitali progettate per essere utilizzate nelle transazioni XML definite dal W3C.
A causa della complessità dei calcoli richiesti dagli algoritmi a chiave pubblica, le specifiche di XML Signature prevedono che non tutto il messaggio venga criptato dalla chiave privata, ma soltanto una sua "impronta digitale", chiamata "digest". Poichè l’algoritmo utilizzato per ricavare il digest è sensibile a qualsiasi cambiamento effettuato sul documento originario, chi lo riceve può avere la garanzia che esso non è stato modificato durante la trasmissione ricalcolandone il digest e confrontandolo con quello generato dal mittente. Il destinatario può inoltre controllare la validità della firma fornendola ad un algoritmo di verifica insieme al digest del messaggio e alla chiave pubblica del mittente. Attraverso questi due controlli è possibile autenticare e stabilire l’integrità del messaggio. DescrizioneXML-Signature è una Recommendation del W3C, World Wide Web Consortium, sviluppata congiuntamente con IETF, Internet Engineering Task Force, rilasciata nel febbraio 2002, che descrive come garantire l’integrità e l’autenticazione, sia del documento che del mittente, per vari tipi documenti, tra cui quelli XML, mediante l’apposizione della firma digitale. La caratteristica distintiva di XML-Signature è quella di poter intervenire anche solo su parti di documenti XML. Creazione e verifica della firmaNella creazione della firma digitale non viene criptato l’intero documento ma ne viene creata una sintesi, chiamata digest, prodotta da un algoritmo, chiamato funzione hash, che riceve in input il documento ed è in grado di produrre una stringa che lo identifica in maniera univoca. La funzione è molto sensibile ad ogni minimo cambiamento del documento e quindi differenti versioni produrranno digest diversi. Esempi di algoritmi di hashing utilizzabili sono Message-Digest Algorithm e Secure Hashing Algorithm. La firma, perciò, non è un altro che un digest criptato.
Il destinatario, per controllare la validità della firma. decripta la firma digitale ed ottiene il digest originario del documento che è stato spedito; calcola poi il digest del documento che gli è arrivato e lo confronta con quello ricevuto. |