XAdES是否支持评论字段?

时间:2016-10-07 08:19:27

标签: xml x509certificate sign xades4j

我正在开发一个XML签名模块,至少由于时间戳我投票支持标准(XAdES)并实现它。

我能够深入了解某人可能拥有的角色列表。

但似乎标准中没有角色名称的定义?

对我来说,实际问题是:是否有签名? XAdES子树支持添加任意注释文本?人们想在签名时添加一些评论。标准是否预示了什么?

3 个答案:

答案 0 :(得分:0)

我认为你是正确的,标准上没有角色名称的定义。

关于"评论"你想要添加,这似乎是特定于应用程序的东西。因此,我建议使用ds:Object元素,将您的内容放入其中,并对其进行签名。在xades4j中,您可以使用EnvelopedXmlObject执行此操作。

答案 1 :(得分:0)

我找到了问题的一部分答案:

看起来XAdES似乎没有预见到使用的评论/原因标签。所以不是Dsig。因此,人们可能被迫发明自己的东西。另外,要为另一个<Object>标记创建自己的架构。

但是Dsig中有一个隐藏的功能:标记<SignatureProperties>

https://blogs.msdn.microsoft.com/shawnfa/2005/11/03/adding-signatureproperties-to-signedxml/排除。 xsd中存在基本未连接的指定类型<SignatureProperties>。这意味着要在<Object>标记内使用,以提供“标准化”信息。

退回:仍然没有标准化的 ID 用于标准字段,例如原因

答案 2 :(得分:0)

我使用当前的MS-Office版本找到了另一个有趣的关注评论/原因。例如。一个 OfficeOpenXML 作为文件格式。

office blog中所述,他们确实决定使用 XAdES 。因此,查看已签名和未压缩的docx文件会提供一个_xmlsignatures/sig1.xml文件,其中的内容部分如下所示:

<Object Id="idOfficeObject">
    <SignatureProperties>
        <SignatureProperty Id="idOfficeV1Details" Target="#idPackageSignature">
            <SignatureInfoV1 xmlns="http://schemas.microsoft.com/office/2006/digsig">
                <SetupID/>
                <SignatureText/>
                <SignatureImage/>
                <SignatureComments>bfghfghf</SignatureComments>
                <WindowsVersion>6.1</WindowsVersion>
                <OfficeVersion>15.0</OfficeVersion>
                <ApplicationVersion>15.0</ApplicationVersion>
                <Monitors>3</Monitors>
                <HorizontalResolution>1920</HorizontalResolution>
                <VerticalResolution>1200</VerticalResolution>
                <ColorDepth>32</ColorDepth>
                <SignatureProviderId>{00000000-0000-0000-0000-000000000000}</SignatureProviderId>
                <SignatureProviderUrl/>
                <SignatureProviderDetails>9</SignatureProviderDetails>
                <SignatureType>1</SignatureType>
            </SignatureInfoV1>
        </SignatureProperty>
    </SignatureProperties>
</Object>
<Object>
    <xd:QualifyingProperties xmlns:xd="http://uri.etsi.org/01903/v1.3.2#" Target="#idPackageSignature">
        <xd:SignedProperties Id="idSignedProperties">
            <xd:SignedSignatureProperties>
                <xd:SigningTime>2016-10-11T11:35:03Z</xd:SigningTime>
                <xd:SigningCertificate>
                    <xd:Cert>
                        <xd:CertDigest>
                            <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                            <DigestValue>YBmOrWhKAPGgIl1wrGEI0NrC92Q=</DigestValue>
                        </xd:CertDigest>
                        <xd:IssuerSerial>
                            <X509IssuerName>CN=xxxxxxx DC=xxx, DC=xxx, DC=org</X509IssuerName>
                            <X509SerialNumber>1225454644xxx099413888</X509SerialNumber>
                        </xd:IssuerSerial>
                    </xd:Cert>
                </xd:SigningCertificate>
                <xd:SignaturePolicyIdentifier>
                    <xd:SignaturePolicyImplied/>
                </xd:SignaturePolicyIdentifier>
            </xd:SignedSignatureProperties>
            <xd:SignedDataObjectProperties>
                <xd:CommitmentTypeIndication>
                    <xd:CommitmentTypeId>
                        <xd:Identifier>http://uri.etsi.org/01903/v1.2.2#ProofOfOrigin</xd:Identifier>
                        <xd:Description>Hat dieses Dokument erstellt und genehmigt</xd:Description>
                    </xd:CommitmentTypeId>
                    <xd:AllSignedDataObjects/>
                    <xd:CommitmentTypeQualifiers>
                        <xd:CommitmentTypeQualifier>bfghfghf</xd:CommitmentTypeQualifier>
                    </xd:CommitmentTypeQualifiers>
                </xd:CommitmentTypeIndication>
            </xd:SignedDataObjectProperties>
        </xd:SignedProperties>
        <xd:UnsignedProperties>
          ...
        </xd:UnsignedProperties>
    </xd:QualifyingProperties>
</Object>

我们认识到这一点:

  • 签名中嵌入了一个对象
  • 一个已签名的属性(idOfficeV1Details)在自定义命名空间中自定义。
  • 但它包含明文注释。
  • <xd:CommitmentTypeIndication>
  • 还有更多内容
  • 它有<xd:CommitmentTypeQualifier>bfghfghf</xd:CommitmentTypeQualifier>重复评论。

因此可以假设:&#34;也许仅仅包含CommitmentTypeQualifier作为评论/原因的容器就足够了,而且它就是&#34;。如果你可以不使用自定义信息类型 -​​ 那就去吧。