我有一份政府签发的文件,格式如下(由于包含一些个人信息,因此被删减了很多),其中包含一个 doc/docx 文件和一个以 base64 编码的证书:
<?xml version="1.0" encoding="UTF-8"?>
<gov.il:SignedRoot xmlns:gov.il="http://www.gov.il/xmldigsig/v_1_0_0" version="1.0.0">
<gov.il:SigningAppInfo>
<gov.il:ApplicationName>Sign and Verify</gov.il:ApplicationName>
<gov.il:ApplicationVersion>2.0.0</gov.il:ApplicationVersion>
</gov.il:SigningAppInfo>
<gov.il:SignedObject Id="il-ae******-****-****-****-***********" MimeType="multipart/form-data">
<gov.il:SignedInfo Id="il-ea******-****-****-****-***********">
<gov.il:Data MimeType="multipart/form-data" DataEncodingType="base64">UkVEQUNURUQgV09SRCBET0NVTUVOVA==</gov.il:Data>
<gov.il:OptionalDataParams>
<gov.il:FileName>*****.DOCX</gov.il:FileName>
<gov.il:ContentCreationTime>2018-06-**T**:**:**Z</gov.il:ContentCreationTime>
</gov.il:OptionalDataParams>
</gov.il:SignedInfo>
</gov.il:SignedObject>
<gov.il:Signature xmlns:gov.il="http://www.w3.org/2000/09/xmldsig#" Id="il-********-****-****-****-************">
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#il-********-****-****-****-************">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>/DJC0pAZUaSAQGe1Pl1eDlap75E=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">UkVEQUNURUQ=</SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509SubjectName>CN=REDACTED, OU=REDACTED, O=Gov, C=IL</X509SubjectName>
<X509Certificate>UkVEQUNURUQ=</X509Certificate>
</X509Data>
</KeyInfo>
</gov.il:Signature>
</gov.il:SignedRoot>
不管是谁给我发了这份文件,都希望我下载并安装一个能够打开文件并验证签名的“特殊程序”。
由于这种“神秘格式”是一个简单的 XML,我想将其中的信息转换为其他格式,无需他们的专用软件即可打开或验证。理想情况下,输出将是以下之一:
- 单独的文件和证书文件。
- 带有嵌入证书的签名文档,可在例如 MS Word 中打开。
从我目前收集到的信息来看,这些是感兴趣的领域:
<gov.il:Data MimeType="multipart/form-data" DataEncodingType="base64">...</gov.il:Data>
<DigestValue>/DJC0pAZUaSAQGe1Pl1eDlap75E=</DigestValue>
<SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">...</SignatureValue>
<X509Data>
...
</X509Data>
但我不知道从这里做什么。
我的问题:
- 根据上面给出的 XML 的内容,我需要采取哪些步骤来手动验证文档,使用众所周知的工具?如果它很重要,我会很感激适用于 Windows 的步骤。欢迎使用口头和伪代码解决方案!
- 是否可以将此信息重新组合成有效的、签名的 MS Word 文档?如果是这样 - 如何?
PS
如果这个问题更适合Information Security,请发表评论,我会将其标记为迁移。