s-perdura. especificacions tècniques dels serveis web (ws)€¦ · 3 consulteu: etsi ts 101 903,...

18
S-Perdura. Especificacions tècniques dels serveis web (WS) Creat per: Consorci AOC Versió: 1.0 Codi de referència: D1301 N-S-Perdura/Manuals Data: 17/04/2012

Upload: others

Post on 02-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

S-Perdura. Especificacions tècniques dels serveis web (WS)

Creat per: Consorci AOC Versió: 1.0 Codi de referència: D1301 N-S-Perdura/Manuals Data: 17/04/2012

Page 2: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 2/18

Índex

1 Introducció al servei S-PERDURA .............................................................................. 3 1.1 Manteniment i preservació de les signatures electròniques mitjançant el seu completat a la modalitat d’arxiu (AdES-A) ............................................................................ 3

2 Objectiu ....................................................................................................................... 5 2.1 Abast ........................................................................................................................... 5 2.2 Operacions disponibles del servei web ....................................................................... 5 2.3 Formats i tipus de signatura suportats ........................................................................ 5

3 Especificacions del servei web .................................................................................... 7 3.1 Requisits previs ........................................................................................................... 7 3.2 Definició del procés de completat de signatures electròniques .................................. 7

3.2.1 Conèixer la data de caducitat de les signatures electròniques originals ........... 7 3.2.2 Creació petició de completat de les signatures originals a la modalitat d’arxiu (AdES-A) ..................................................................................................................... 8

3.3 Diagrama de flux ......................................................................................................... 9 3.4 Exemples de peticions WS .......................................................................................... 9

3.4.1 Petició de validació i data de caducitat de la signatura original (sense completat) .................................................................................................................. 10 3.4.2 Petició de completat de la signatura a la modalitat d’arxiu i data de caducitat signatura completada (AdES-A) ................................................................................ 14

Page 3: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 3/18

1 Introducció al servei S-PERDURA

L'S-PERDURA és un servei del Consorci AOC que permet mantenir la fiabilitat i la validesa de les signatures electròniques al llarg del temps, mitjançant un procés d’actualització o completat de les signatures originals. Aquest procés d’actualització és el més adient per a protegir la signatura electrònica de la possible obsolescència dels algorismes i de la caducitat dels certificats que es van utilitzar en el moment de signar. També permet obtenir informació essencial sobre les signatures (estat, data en què caducarà, si té segell de temps, format, dades bàsiques del signatari, etc.). Ara bé, cal tenir present que la responsabilitat de la custodia de les signatures completades recau en l’usuari del servei. L’S-PERDURA permet a les administracions públiques gestionar i preservar les seves signatures electròniques a través de dues modalitats diferents:

1

Una aplicació web de preservació de signatures electròniques accessible des de la plataforma EACAT. Està pensada per a aquells documents electrònics signats que es troben desats en unitats de xarxa i que es volen preservar de forma manual.

Completat de les signatures electròniques mitjançant uns serveis web. És el més adient per a aquelles signatures electròniques que es troben arxivades/desades en aplicacions corporatives (gestors documentals, etc.) i que el procés de completat/preservació es vol fer d’una forma automàtica i desatesa.

1.1 Manteniment i preservació de les signatures electròniques mitjançant el seu completat a la modalitat d’arxiu (AdES-A)

Aquesta estratègia consisteix en garantir la perdurabilitat i fiabilitat de les signatures electròniques al llarg del temps mitjançant el completat de les originals a la modalitat d’arxiu (AdES-A). Aquest procés de completat inclou els següents passos:

La verificació de la signatura electrònica original validant la integritat de la signatura, el compliment dels estàndards XAdES, CAdES o PAdES i les referències que conté.

La realització d'un procés de completat de la signatura que consisteix en l’obtenció i emmagatzemament de les referències a certificats (incloent el certificat del signatari i de la cadena de certificació) i informació de l’estat dels certificats, ja sigui les llistes de certificats revocats o les respostes del servei OCSP.

I finalment, la generació d’un segell de data i hora associat a les referències als certificats i a les informacions de l’estat.

Cal tenir present, que tot i haver completat la signatura a la modalitat d’arxiu, la perdurabilitat i fiabilitat de la signatura no és per sempre i caldrà tornar a sol·licitar la seva preservació - això és, actualitzar el segell de data i hora, afegint una nova baula a la cadena d’evidències electròniques - abans que caduqui el certificat de l’autoritat de segellament de data i hora que va realitzar el segell anterior; de forma que sempre sigui possible determinar en quin moment es va realitzar la signatura i, conseqüentment, verificar que el certificat del signatari era vàlid en aquell moment

2.

1 Per a més informació consulteu a:

http://www.aoc.cat/index.php/ezwebin_site/Inici/SERVEIS/Gesti%C3%B3-interna/S-Perdura/Qu%C3%A8-%C3%A9s 2 Un altre motiu per sol·licitar el completat d’una signatura electrònica és la possible

obsolescència dels algorismes utilitzats en els certificats digitals que es van emprar per

Page 4: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 4/18

La finalitat és que la fiabilitat i validesa de les signatures electròniques associades a un document es pugui assegurar per mitjans tècnics validables automàticament, sense necessitat de recórrer a altres mecanismes alternatius i externs a la pròpia signatura que aportin indicis rellevants sobre la fiabilitat de la signatura (metadades, informes pericials...).

generar la signatura electrònica i/o segell de data i hora, produïda per l’increment de la capacitat computacional i la debilitat de les funcions matemàtiques en les que se sustenten.

Page 5: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 5/18

2 Objectiu

El present document té com a objectiu definir el flux que s’ha de seguir per preservar correctament les signatures electròniques mitjançant el completat a la modalitat d’arxiu (AdES-A) d’una forma desatesa i massiva a través dels serveis web corresponents. A més a més, inclou exemples de les crides dels serveis web que s’han d’utilitzar, tant en tecnologia Java com en .NET.

2.1 Abast L’ús dels serveis web del segell de preservació que es descriuen en aquest document són els més adients per aquelles signatures electròniques que es troben arxivades/desades en aplicacions corporatives de les administracions públiques catalanes (gestors documentals, gestors d’expedients, etc.) i que el procés de completat es vol fer d’una forma automàtica i desatesa.

2.2 Operacions disponibles del servei web

Les operacions que es poden utilitzar són les següents:

el completat de les signatures electròniques originals a la modalitat d’arxiu

conèixer la data en que caducarà la signatura, ja sigui l’original, prèvia validació, o la completada/preservada. En aquesta operació es contemplen els següents casos d’ús:

o Si només es vol saber la data de la signatura original, prèvia validació de la mateixa:

Si la signatura té segell de data i hora retorna la data de caducitat del certificat de l’autoritat de segellament de data i hora

Si la signatura no té segell de data i hora retorna la data de caducitat del certificat del signatari

o Si es desitja saber la data de caducitat de la signatura completada/preservada retorna la data de caducitat del certificat de l’autoritat que ha emès el darrer segell.

2.3 Formats i tipus de signatura suportats El completat de les signatures electròniques a la modalitat d’arxiu (AdES-A) només es pot realitzar en aquelles que compleixen els estàndards XAdES i CAdES, ja siguin del tipus independent (detached), embolcallant (enveloping) i/o incrustada (enveloped).

3

La resta de formats, les anomenades signatures bàsiques, ja sigui CMS o XMLDsig no es poden completar a la modalitat d’arxiu per raons tècniques intrínseques al seu format. Les signatures PAdES

4, tot i està en un format avançat i susceptibles de ser completades a

la modalitat d’arxiu, no s’inclouen ja que el servei Validador del Consorci AOC no les suporta a dia d’avui. En la següent taula queda ben resumit els formats i tipus suportats pel S-PERDURA:

3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS

101 733, CAdES (CMS Advanced Electronic Signatures). 4 Consulteu: ETSI TS 102 778, PAdES (PDF Advanced Electronic Signatures).

Page 6: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 6/18

Tipus i format de signatura Preservació (completat a la modalitat d’arxiu)

Signatura bàsica CMS Independent (detached)

No

Signatura bàsica CMS incrustada (attached)

No

Signatura bàsica CMS incrustada PDF No

Signatura bàsica CMS Independent (detached) amb segell de data i hora

No

Signatura bàsica CMS incrustada (attached) amb segell de data i hora

No

Signatura bàsica CMS incrustada PDF amb segell de data i hora

No

Signatura bàsica XMLDsig embolcallant (enveloping)

No

Signatura bàsica XMLDsig incrustada (enveloped)

No

Signatura bàsica XMLDsig Independent (detached)

No

Signatura avançada XAdES embolcallant (enveloping)

Si

Signatura avançada XAdES incrustada (enveloped)

Si

Signatura avançada XAdES Independent (detached)

Si

Signatura avançada CAdES Independent (detached)

Si

Signatura avançada CAdES incrustada (attached)

Si

Signatura avançada CAdES incrustada PDF

No

Signatura avançada PAdES en un PDF No

Tiquet de la plataforma de validació de CATCert

Si, sempre i quan la signatura que està inclosa dins del tiquet estigui en un format

avançat

Page 7: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 7/18

3 Especificacions del servei web

3.1 Requisits previs Per poder utilitzar correctament les crides del servei web és imprescindible que l’aplicació client estigui ja integrada amb el Validador del Consorci AOC. Per a més informació sobre com integrar-se amb aquesta plataforma consulteu a: http://www.aoc.cat/index.php/ezwebin_site/Inici/SERVEIS/Serveis-de-signatura-electr%C3%B2nica-i-seguretat/Validador Les urls del servei són les següents:

Entorn URL del servei

Preproducció http://psisbeta.catcert.net/psis/catcert-test/dss

Producció http://psis.catcert.net/psis/catcert/dss

3.2 Definició del procés de completat de signatures electròniques

Els passos que s’han de seguir per sol·licitar el completat d’una signatura electrònica a la modalitat d’arxiu són els següents:

3.2.1 Conèixer la data de caducitat de les signatures electròniques originals

Aquests passos són opcionals però molt recomanables per saber l’estat de les signatures electròniques arxivades en l’aplicació corporativa. L’objectiu és saber la data de caducitat del certificat del signatari o del segell de temps que es van utilitzar en el moment de generació de la signatura:

Primer de tot, cal esbrinar si la signatura electrònica arxivada en l’aplicació corporativa ha caducat o no. Per fer-ho cal sol·licitar la data de caducitat de la signatura mitjançant la crida del WS corresponent (mireu punt 3.4.1)

Un cop rebuda la petició, S-PERDURA verificarà la signatura i si aquesta és vàlida retornarà la data de caducitat de la signatura original:

o Si la signatura incorpora un segell de data i hora vàlid retornarà la data de caducitat d’aquest.

o Si la signatura no incorpora un segell de data i hora retornarà la data de caducitat del certificat del signatari

5.

Si la signatura no és vàlida no retornarà cap data.

Aquesta data de caducitat s’hauria de desar com a metadada de la signatura en l’aplicació corporativa ja que s’utilitzarà com a data per sol·licitar el completat de la signatura a la modalitat d’arxiu.

5 Tingueu en compte que aquelles signatures que no incorporen segell de data i hora, a

excepció de les signatures del tipus AdES-BES sense segell de data i hora, no es podran completar i per tant la data que retorna de caducitat del certificat del signatari no servirà per programar el completat.

Page 8: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 8/18

3.2.2 Creació petició de completat de les signatures originals a la modalitat d’arxiu (AdES-A)

La petició de completat/preservació de la signatura és pot sol·licitar en qualsevol, però us recomanem:

crear la petició de completat de la signatura electrònica original a la modalitat d’arxiu entre 2-3 mesos abans de la data de caducitat que ens va retornar en el seu moment S-PERDURA. En la mateixa petició de completat es pot sol·licitar que S-PERDURA retorni la data de caducitat de la signatura completada. Cal tenir en compte que només es podran completar aquelles signatures que estiguin en un format avançat (AdES) (mireu punt 3.4.2) i que siguin vàlides.

S-PERDURA processarà la petició de completat i, si la signatura és vàlida, retornarà una resposta (en XML) que inclourà la signatura completada/preservada a la modalitat d’arxiu. Aquesta resposta o bé la signatura completada s’han d’arxivar en l’aplicació corporativa. Finalment, i com a praxis molt recomanable, es pot procedir a eliminar la signatura original per facilitar la seva gestió. Addicionalment, si s’ha demanat a la petició, també retornarà la data de caducitat de la signatura completada. Aquesta data s’hauria de desar com a metadada en l’aplicació corporativa per si cal repetir el procés en el futur

Caldrà repetir el procés fins a la foliació de l’expedient i/o transferència del document electrònic signat a un repositori digital de confiança.

Page 9: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 9/18

3.3 Diagrama de flux

3.4 Exemples de peticions WS A continuació us adjuntem alguns exemples dels dos tipus de peticions que es poden utilitzar per preservar una signatura electrònica ja sigui en codi Java, Visual Basic i C#:

Page 10: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 10/18

Petició de la data de caducitat d’una signatura

Petició de completat d’una signatura a la modalitat d’arxiu.

En el següent enllaç us podeu descarregar tots els exemples de peticions WS en funció del tipus i format de signatura: http://www.aoc.cat/index.php/ezwebin_site/Inici/SERVEIS/Gesti%C3%B3-interna/S-Perdura/Com-utilitzar-ho

3.4.1 Petició de validació i data de caducitat de la signatura original (sense completat)

3.4.1.1 VerifyRequest.xml

Exemple de la petició:

3.4.1.2 VerifyResponse.xml

Exemple de la resposta que retorna S-PERDURA:

Page 11: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 11/18

3.4.1.3 Exemple de petició WS en codi Java

Exemple de codi Java per a realitzar una petició de validació de signatura XAdES Enveloping, demanant com a paràmetre opcional l’atribut de la signatura “SignatureExpirationDate”.

// Signatura a verificar

String signature = readXmlFile("XAdES_idCAT_Enveloping.xml");

// Inicialització del client

digitalSignatureServiceClient proxy = new

digitalSignatureServiceClient();

SOAPport port =

proxy.getdssPortSoap("http://psis.catcert.net/psis/catcert/dss");

// Creació del missatge DSS

VerifyRequestDocument requestDocument =

VerifyRequestDocument.Factory.newInstance();

VerifyRequest request = requestDocument.addNewVerifyRequest();

request.setProfile("urn:oasis:names:tc:dss:1.0:profiles:XSS");

// Creació de l'element amb la signatura XAdES

Page 12: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 12/18

SignatureObjectType signaturetype =

SignatureObjectType.Factory.parse(signature);

request.setSignatureObject(signaturetype);

// Creació de l'element amb els paràmetres opcionals a consultar

(data de caducitat)

OptionalInputs optInputs = request.addNewOptionalInputs();

ReturnSignatureInfo ri = optInputs.addNewReturnSignatureInfo();

AttributeType caducitat = ri.addNewAttributeDesignator();

caducitat.setName("urn:oasis:names:tc:dss:1.0:profiles:XSS:signature

Attributes:SignatureExpirationDate");

// Execució del servei

VerifyResponseDocument responseDocument=

port.verify(requestDocument);

// Mostrem el valor de la data en la qual caduca la signatura

System.out.println(responseDocument.getVerifyResponse().getOptionalO

utputs().getSignatureInfoArray(0).getAttributeArray(0).getAttributeV

alueArray(0).getDomNode().getFirstChild().getNodeValue());

3.4.1.4 Exemple de petició WS en codi C#

Exemple de codi C# per a realitzar una petició de validació de signatura XAdES detached amb un resum criptogràfic (hash), demanant com a paràmetre opcional l’atribut de la signatura “SignatureExpirationDate”.

// Dades de prova

// Signatura CMS detached i document a validar

String signaturaXAdES = "C:\\ xadesDetached-signature.xml";

String document_hash = "C:\\hash.txt";

// Inicialització del client

digitalSignatureService proxy = new digitalSignatureService();

proxy.Url = "http://psis.catcert.net/psis/catcert/dss";

// Composició del missatge

// Creació dels elements amb la signatura a validar i el hash del

document a validar

// Hash del document

DigestMethodType digestMethod = new DigestMethodType();

digestMethod.Algorithm = "http://www.w3.org/2000/09/xmldsig#sha1";

DocumentHash[] hashes = new DocumentHash[1];

hashes[0] = new DocumentHash();

hashes[0].DigestMethod = digestMethod;

hashes[0].DigestValue = utils.Base64File(document_hash);

hashes[0].RefURI = "DetachedObjectReference-1";

InputDocuments docs = new InputDocuments();

docs.Items = hashes;

SignatureObjectType signatureType = new SignatureObjectType();

signatureType.Any = utils.XMLFile(signaturaXAdES);

// Creació del missatge DSS i selecció de profile

VerifyRequest request = new VerifyRequest();

request.Profile = "urn:oasis:names:tc:dss:1.0:profiles:XSS";

request.InputDocuments = docs;

request.SignatureObject = signatureType;

//OptionalInputs

Page 13: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 13/18

OptionalInputs optInputs = new OptionalInputs();

ItemsChoiceType6[] types6 = new ItemsChoiceType6[1];

object[] items = new object[1];

AttributeDesignator[] ads2 = new AttributeDesignator[1];

types6[0] = ItemsChoiceType6.ReturnSignatureInfo;

items[0] = ads2;

AttributeDesignator Nom2 = new AttributeDesignator();

Nom2.Name =

"urn:oasis:names:tc:dss:1.0:profiles:XSS:signatureAttributes:Signatu

reExpirationDate";

ads2[0] = Nom2;

optInputs.Items = items;

optInputs.ItemsElementName = types6;

request.OptionalInputs = optInputs;

utils.ShowRequest(request);

VerifyResponse response = proxy.verify(request);

3.4.1.5 Exemple de petició WS en codi VisualBasic

Exemple de codi VB per a realitzar una petició de validació de signatura XAdES detached amb un resum criptogràfic (hash), demanant com a paràmetre opcional l’atribut de la signatura “SignatureExpirationDate”.

'Inicialització del client

Dim proxy As New digitalSignatureService

proxy.Url = "http://psis.catcert.net/psis/catcert/dss"

'Hash del document

Dim digestMethod As New DigestMethodType

digestMethod.Algorithm = "http://www.w3.org/2000/09/xmldsig#sha1"

Dim hashes(1) As DocumentHash

hashes(0) = New DocumentHash

hashes(0).DigestMethod = digestMethod

hashes(0).RefURI = "DetachedObjectReference-1"

hashes(0).DigestValue = Base64File("C:/temp/hash.txt")

Dim docs As New InputDocuments

docs.Items = hashes

'Signatura

Dim signatureType As SignatureObjectType = New SignatureObjectType

signatureType.Any = XMLFile("C:/temp/XAdES-T_hash.xml")

‘Demanar la data d’expiració

Dim optInputs As OptionalInputs = New OptionalInputs

Dim items(0) As Object

Dim types6(0) As ItemsChoiceType6

types6(0) = ItemsChoiceType6.ReturnSignatureInfo

Dim ads(0) As AttributeDesignator

Dim nom As New AttributeDesignator

nom.Name =

”urn:oasis:names:tc:dss:1.0:profiles:XSS:signatureAttributes:Signatu

reExpirationDate"

ads(0) = nom

items(0) = ads

optInputs.Items = items

Page 14: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 14/18

optInputs.ItemsElementName = types6

Dim request As VerifyRequest = New VerifyRequest

Dim response As VerifyResponse = New VerifyResponse

request.InputDocuments = docs

request.SignatureObject = signatureType

request.Profile = "urn:oasis:names:tc:dss:1.0:profiles:XSS"

request.OptionalInputs = optInputs

response = proxy.verify(request)

3.4.2 Petició de completat de la signatura a la modalitat d’arxiu i data de caducitat signatura completada (AdES-A)

3.4.2.1 VerifyRequest.xml

Es recomana crear la petició de completat de la signatura electrònica a la modalitat d’arxiu entre 2-3 mesos abans de la data de caducitat que ens va retornar en el seu moment S-PERDURA. En la mateixa petició es pot demanar que retorni la data de caducitat de la signatura completada/preservada:

3.4.2.2 VerifyResponse.xml

Exemple de la resposta que retorna S-PERDURA:

Page 15: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 15/18

3.4.2.3 Exemple de petició WS en codi Java

Exemple de codi Java per a realitzar una petició de validació de signatura XAdES Enveloping, demanant com a paràmetre opcional el completat a la modalitat AdES-A i la data de caducitat de la signatura preservada.

// Signatura a verificar

String signature = readXmlFile("XAdES_idCAT_Enveloping.xml");

String signature =

Utils.readXmlFile("cat\\cert\\docs\\XAdES\\XAdES_Enveloping.xml");

// Inicialització del client

digitalSignatureServiceClient proxy = new

digitalSignatureServiceClient();

SOAPport port =

proxy.getdssPortSoap("http://psis.catcert.net/psis/catcert/dss");

// Composició del missatge

// Creació del missatge DSS

VerifyRequestDocument requestDocument =

VerifyRequestDocument.Factory.newInstance();

VerifyRequest request = requestDocument.addNewVerifyRequest();

request.setProfile("urn:oasis:names:tc:dss:1.0:profiles:XSS");

// Creació de l'element amb la signatura XAdES

SignatureObjectType signaturetype =

SignatureObjectType.Factory.parse(signature);

request.setSignatureObject(signaturetype);

// Creació de l'element amb els paràmetres opcionals a consultar

OptionalInputs optInputs = request.addNewOptionalInputs();

ReturnUpdatedSignature rt =

optInputs.addNewReturnUpdatedSignature();

rt.setType("urn:oasis:names:tc:dss:1.0:profiles:XAdES:forms:ES-A");

Page 16: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 16/18

// Creació de l'element amb el paràmetre SignatureExpirationDate a

consultar

ReturnSignatureInfo ri = optInputs.addNewReturnSignatureInfo();

AttributeType caducitat = ri.addNewAttributeDesignator();

caducitat.setName("urn:oasis:names:tc:dss:1.0:profiles:XSS:signature

Attributes:SignatureExpirationDate");

// Execució del servei

VerifyResponseDocument responseDocument=

port.verify(requestDocument);

3.4.2.4 Exemple de petició WS en codi C#

Exemple de codi C# per a realitzar una petició de validació de signatura XAdES detached amb un resum criptogràfic (hash), demanant com a paràmetre opcional el completat a la modalitat AdES-A i la data de caducitat de la signatura preservada.

// Dades de prova

// Signatura CMS detached i document a validar

String signaturaXAdES = " C:\\docs\\xadesDetachedHashPreCalculat-signature.xml";

String document_hash = " C:\\docs\\hash.txt"; // Inicialització del client

digitalSignatureService proxy = new digitalSignatureService();

proxy.Url = "http://psis.catcert.net/psis/catcert/dss";

// Composició del missatge

// Hash del document

DigestMethodType digestMethod = new DigestMethodType();

digestMethod.Algorithm = "http://www.w3.org/2000/09/xmldsig#sha1";

DocumentHash[] hashes = new DocumentHash[1];

hashes[0] = new DocumentHash();

hashes[0].DigestMethod = digestMethod;

hashes[0].DigestValue = utils.Base64File(document_hash);

hashes[0].RefURI = "DetachedObjectReference-1";

InputDocuments docs = new InputDocuments();

docs.Items = hashes;

SignatureObjectType signatureType = new SignatureObjectType();

signatureType.Any = utils.XMLFile(signaturaXAdES);

// Creació del missatge DSS i selecció de profile

VerifyRequest request = new VerifyRequest();

request.Profile = "urn:oasis:names:tc:dss:1.0:profiles:XSS";

request.InputDocuments = docs;

request.SignatureObject = signatureType;

//OptionalInputs

OptionalInputs optInputs = new OptionalInputs();

ItemsChoiceType6[] types6 = new ItemsChoiceType6[2];

object[] items = new object[2];

types6[0] = ItemsChoiceType6.ReturnUpdatedSignature;

ReturnUpdatedSignature ri = new ReturnUpdatedSignature();

ri.Type = "urn:oasis:names:tc:dss:1.0:profiles:XAdES:forms:ES-A";

items[0] = ri;

AttributeDesignator[] ads2 = new AttributeDesignator[1];

Page 17: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 17/18

types6[1] = ItemsChoiceType6.ReturnSignatureInfo;

items[1] = ads2;

AttributeDesignator Nom2 = new AttributeDesignator();

Nom2.Name =

"urn:oasis:names:tc:dss:1.0:profiles:XSS:signatureAttributes:Signatu

reExpirationDate";

ads2[1] = Nom2;

optInputs.Items = items;

optInputs.ItemsElementName = types6;

request.OptionalInputs = optInputs;

utils.ShowRequest(request);

VerifyResponse response = proxy.verify(request);

3.4.2.5 Exemple de petició WS en codi VisualBasic

Exemple de codi VB per a realitzar una petició de validació de signatura XAdES detached amb un resum criptogràfic (hash), demanant com a paràmetre opcional el completat a la modalitat AdES-A i la data de caducitat de la signatura preservada.

'Inicialització del client

Dim proxy As New digitalSignatureService

proxy.Url = http://psis.catcert.net/psis/catcert/dss

'Hash del document

Dim digestMethod As New DigestMethodType

digestMethod.Algorithm = "http://www.w3.org/2000/09/xmldsig#sha1"

Dim hashes(1) As DocumentHash

hashes(0) = New DocumentHash

hashes(0).DigestMethod = digestMethod

hashes(0).RefURI = "DetachedObjectReference-1"

hashes(0).DigestValue = Base64File("C:/temp/hash.txt")

Dim docs As New InputDocuments

docs.Items = hashes

'Signatura

Dim signatureType As SignatureObjectType = New SignatureObjectType

signatureType.Any = XMLFile("C:/XAdES-T_hash.xml")

'Completar

Dim optInputs As OptionalInputs = New OptionalInputs

Dim items(1) As Object

Dim types6(1) As ItemsChoiceType6

types6(0) = ItemsChoiceType6.ReturnUpdatedSignature

Dim update As ReturnUpdatedSignature = New ReturnUpdatedSignature

update.Type = "urn:oasis:names:tc:dss:1.0:profiles:XAdES:forms:ES-A"

items(0) = update

types6(1) = ItemsChoiceType6.ReturnSignatureInfo

Dim ads(0) As AttributeDesignator

Dim nom As New AttributeDesignator

Page 18: S-Perdura. Especificacions tècniques dels serveis web (WS)€¦ · 3 Consulteu: ETSI TS 101 903, XAdES (XML Advanced Electronic Signatures) i ETSI TS 101 733, CAdES (CMS Advanced

29/03/12 S-Perdura_especificacions_WS_20120411.doc

S-Perdura. Especificacions tècniques dels serveis web (WS)

pàg 18/18

nom.Name =

"urn:oasis:names:tc:dss:1.0:profiles:XSS:signatureAttributes:Signatu

reExpirationDate"

ads(0) = nom

items(1) = ads

optInputs.Items = items

optInputs.ItemsElementName = types6

Dim request As VerifyRequest = New VerifyRequest

Dim response As VerifyResponse = New VerifyResponse

request.InputDocuments = docs

request.SignatureObject = signatureType

request.Profile = "urn:oasis:names:tc:dss:1.0:profiles:XSS"

request.OptionalInputs = optInputs

Dim y As String

y = MessageToString(request)

Console.WriteLine(y)

response = proxy.verify(request)