我正在开发一个XML签名模块,至少由于时间戳我投票支持标准(XAdES)并实现它。
我能够深入了解某人可能拥有的角色列表。
但似乎标准中没有角色名称的定义?
对我来说,实际问题是:是否有签名? XAdES子树支持添加任意注释文本?人们想在签名时添加一些评论。标准是否预示了什么?
答案 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;。如果你可以不使用自定义信息类型 - 那就去吧。