OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: [OASIS Issue Tracker] Commented: (OFFICE-3028) Update digitalsignatures for better XaDeS support

    [ http://tools.oasis-open.org/issues/browse/OFFICE-3028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=22541#action_22541 ] 

David LeBlanc commented on OFFICE-3028:

Just got back from consulting with one of our XML experts, and got the following feedback:

It is not feasible to make an XPath with includes some number of parent nodes, but excludes a specific child node, which would be needed to exclude the <SignatureValue> element.

It is feasible to make an XLST transform which does this. So we then have two possible routes from here:

1) Allow XLST transforms in general. This then has these implications:
  a) Phone-home web bugs, where the XLST is located at some arbitrary URL
  b) An XLST could go recursive, and there is no way to analyze the XLST to determine if it will ever complete, resulting in local denial of service.
  c) The XLST itself would need to be included in the archive, and signed.
  d) The XLST then becomes part of determining the overall signature, and can easily result in things not being signed that you think are signed, which violates the intent of signing everything (or even just content and formatting). Analyzing an XLST to determine if it removed other elements isn't practical.

Due to issues (a) and especially (b) and (d), I strongly recommend against taking this option.

2) Defining an ODF-specific transform which removes only the SignatureValue node for this specific Signature element.

Option 2 is certainly feasible, but I think we then need to examine the real need for this. Nothing creates signatures with these properties today. If one wants to lock down the archive, the really correct way to do it is with an external signature, which is the topic of ETSI TS 102 918 (Electronic Signatures and Infrastructures (ESI); Associated Signatures).

Because there is a defined way to accomplish the desired goal, which is to sign the entire archive, including archive metadata, then I would recommend against trying to provide for a signature which signs its own container file.

In addition, the way that XAdES is meant to work is this:

A file gets signed by the user to level BES/EPES. A daemon or a second user then comes along and appends a timestamp, taking it to XAdES-T. Another daemon comes along perhaps a month later, and appends additional information, taking the signature to XAdES-X-L. One or more years later, an archival timestamp is added, which preserves the signature indefinitely, even if the original algorithms are defeated.

If an internal signature were present that signed the whole file, any such daemons would then have to know about that signature, be able to properly detect it, and avoid updating the file. This would then mean that over some (possibly short) time period, the signatures would then become invalid. To make matters worse, the internal signature itself couldn't be updated, and it would degrade as well. This is completely contrary to several regulatory requirements, especially in the EU.

When an external signature is used, then that external signature can be kept updated properly by a daemon, and the enclosed signatures are then known to be valid, which does not cause a problem.

In short, I recommend that we:

1) Only allow canonicalization tranforms.
2) Require that the documentsignatures.xml file must not be signed by signatures contained within that file.

> Update digital signatures for better XaDeS support
> --------------------------------------------------
>                 Key: OFFICE-3028
>                 URL: http://tools.oasis-open.org/issues/browse/OFFICE-3028
>             Project: OASIS Open Document Format for Office Applications (OpenDocument) TC
>          Issue Type: Improvement
>          Components: Part 1 (Schema), Part 3 (Packages), Public Review, Security
>    Affects Versions: ODF 1.2 CD 05
>            Reporter: Cherie Ekholm 
>            Assignee: David LeBlanc
>             Fix For: ODF 1.2 CD 06
> David LeBlanc's proposal for updating digital signature support:
> A summary of the changes:
> Part 1, section 3.16:
> Modified to read:
> An OpenDocument document that is stored in a package may have one or more digital signatures applied to the package.
> Document signatures shall be stored in a file called META-INF/documentsignatures.xml in the package as described in section 2.4 of the OpenDocument specification part 3.
> A document signature shall be considered to be valid only if the "XML Digital Signature" contained in documentsignatures.xml is valid.
> Document signatures shall contain a <ds:Reference> element for each file within the package, with the exception that a <ds:Reference> element for the file containing the signature is omitted. If non-standard files are added to the package, then it is implementation-specific whether <ds:Reference> elements for the additional files shall be required. An implementer may also choose to support a partial document signature which may contain <ds:Reference> elements for only some of the files within the package or portions of files.
> Part 3:
> Addition of xades to the namespace table
> Packages, Digital Signatures section:
> Added "A full document signature shall be stored in a file called META-INF/documentsignatures.xml, as described in part 1, section 3.16." to be consistent with part 1.
> <dsig:document-signatures> section:
> Changed:
> In particular, consumers may require that a digital signature references all files contained in a package.
> To:
> In particular, consumers may require that a digital signature references all files contained in a package, excepting the META-INF/documentsignatures.xml file, which cannot be included because a signature cannot sign itself.
> I didn't touch the next 2 paragraphs, but these are a problem due to the encryption conundrum.
> <ds:Signature> section:
> This is long, and I'll wait for Cherie here. Basically, it puts into standards language the what I suggested in e-mail previously, and specifies the current signature implementation of (IIRC) Open Office as the standard, and adds in the information needed to do XAdES such that everyone can interoperate.
> Copied from David's editted document, the section would read:
> The <ds:Signature> element is defined by the [xmldsig-core] specification. A producer may use the XAdES extensions as specified in ETSI TS 101 903 v1.3.2 [XAdES], or later versions of the XAdES specification. Each <ds:Signature> element shall contain an Id attribute specifying a unique value.
> A <ds:KeyInfo> element, as specified in [xmldsig-core], section 4.4 shall be included. The <ds:KeyInfo> element shall contain an <ds:X509Data> element containing at least an <ds:X509IssuerSerial> element specifying the issuer and serial number of the signing certificate, and an <ds:X509Certificate> element specifying the full signing certificate. Additional <ds:X509Certificate> elements may be placed in the <ds:X509Data>, or may be placed in the <xades:CertificateValues> element of the XAdES <ds:Object>, as defined in [XAdES] section 7.6.1. The additional certificates should represent the entire primary certificate chain used at signing time.
> <ds:Reference> elements contained within a <ds:SignedInfo> element shall be resolved according to the following specification:
> 1.	A <ds:Reference> element which refers to a file contained within the package shall have a Type attribute with a value of "http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.html";. The <ds:Reference> URI for files contained within the package shall be Relative IRI references contained within the element or any of its descendant elements shall be resolved as defined in section 3.7, except that the base URI for resolving relative IRIs shall be the package base IRI.
> 2.	A <ds:Reference> to an <ds:Object> element contained within this <ds:Signature> element shall have a Type attribute with a value of "http://www.w3.org/2000/09/xmldsig#Object";. The <ds:Reference> URI for an <ds:Object> element shall be considered to be relative to the <ds:Signature> element.
> 3.	A <ds:Reference> element which refers to the XAdES SignedProperties element (if present) shall be as specified in [XAdES] section 6.3.1.
> 4.	A <ds:Reference> element with a Type attribute value other than those specified previously should be considered to be external to the package.
> Any <ds:Reference> elements contained within a <ds:Manifest> element, which is in turn contained within a <ds:Object> element, shall be considered to be implementation specific.
> The only permitted <ds:Transform> elements which apply to files contained within the archive shall be canonicalization transforms, as specified in [xmldsig-core], section 6.5.
> The signing time shall be recorded using one or more of the following approaches:
> 1.	An <ds:Object > element containing a <ds:SignatureProperty> element with:
> a.	An Id attribute with a value containing a unique identifier.
> b.	A Target attribute corresponding to the Id attribute of the <ds:Signature> element.
> c.	A <date> element from the namespace "http://purl.org/dc/elements/1.1/"; containing the time in UTC format.
> 2.	A <xades:SigningTime> element as specified in [XAdES] section 7.2.1.
> If an <ds:Object> containing XAdES elements is present, then a document compliant with this specification uses the following options:
> 1.	The <xades:SignedSignatureProperties> element shall contain a <xades:SigningCertificate> property as specified in [XAdES] section 7.2.2.
> 2.	A <xades:SigningTime> element shall be present as specified in [XAdES] section 7.2.1.
> 3.	) If any timestamp elements of type XAdESTimeStampType are present, such as the <xades:SignatureTimeStamp> or <xades: SigAndRefsTimestamp> elements, the time stamp information shall be specified as an EncapsulatedTimeStamp element containing DER encoded ASN.1. data.
> 4.	) If references to validation data are present, the <xades:SigAndRefsTimestamp> element as specified in [XAdES] sections 7.5.1 and shall be used.
> 5.	There shall be a <ds:Reference> element specifying the digest of the SignedProperties element, as specified in [XAdES], section 6.2.1. This <ds:Reference> element shall be contained within the <ds:SignedInfo> element of the <ds:Signature> element.
> Oh - as I was reviewing this, I noticed that I forgot to add language to support the XAdES CounterSignature element, which itself contains one or more Signatures, each of which may also have a CounterSignature. We need to make sure that restrictions on the <ds:Signature> element do not preclude using them differently in a CounterSignature.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]