2016-10-07 5 views
0

Ich arbeite an einem XML-Signing-Modul und zumindest aufgrund des Zeitstempels stimmte ich mit dem Standard (XAdES) überein und implementiere es genauso.Unterstützt XAdES ein Kommentarfeld?

Ich konnte in die Liste der Rollen graben, die jemand haben könnte.

Allerdings scheint es keine Definition von Rollennamen im Standard zu geben?

Die eigentliche Frage, die mir zukommt, ist: Hat jemand unterschrieben? Teilbaum von XAdES unterstützt, um einen beliebigen Kommentartext hinzuzufügen? Die Leute wollen nur eine Bemerkung hinzufügen, wenn sie unterschreiben. Hat der Standard etwas vorausgesagt?

Antwort

0

Ich denke, Sie haben Recht, es gibt keine Definition von Rollennamen auf dem Standard.

In Bezug auf die "Bemerkung", die Sie hinzufügen möchten, scheint das etwas Anwendungsspezifisches zu sein. Daher empfehle ich, ein ds:Object Element zu verwenden, Ihren Inhalt darin zu platzieren und es auch zu unterschreiben. In xades4j können Sie dies unter Verwendung von EnvelopedXmlObject tun.

0

fand ich einen Teil Antwort auf meine Frage:

scheint So wie XAdES zu verwenden ist kein Kommentar/Grund-Tag forsee. Also nicht Dsig. Daher könnte man gezwungen sein, eigene Sachen zu erfinden. Machen Sie Ihr eigenes Schema für einen anderen zu unterzeichnenden Tag <Object>.

Aber es gibt eine versteckte Funktion in Dsig: Der Tag <SignatureProperties>

als https://blogs.msdn.microsoft.com/shawnfa/2005/11/03/adding-signatureproperties-to-signedxml/ Linien aus. Es gibt diesen grundsätzlich nicht angeschlossenen Typ <SignatureProperties> im xsd. Dies soll innerhalb des Tags <Object> verwendet werden, um "standardisierte" Informationen bereitzustellen.

Backdraw: Es gibt noch keine einheitlichen id für Standard-Felder wie Grund zu verwenden.

0

Ich fand einen anderen interessanten Blick auf die Kommentar/Grund mit einer aktuellen MS-Office-Version. Z.B. eins mit OfficeOpenXML als Dateiformat.

Wie in diesem office blog dargestellt haben sie sich entschieden, mit XAdES auch zu gehen. So schaut in die unterzeichnet und un-Reißverschluss docx-Datei bietet eine _xmlsignatures/sig1.xml Datei mit Inhalt zum Teil hier dargestellt:

<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> 

Wir erkennen dies:

  • es ein Objekt in der Signatur eingebettet
  • ein signierte Eigenschaft (idOfficeV1Details) ist in einem benutzerdefinierten Namespace benutzerdefiniert.
  • aber es enthält den Kommentar im Klartext.
  • Allerdings gibt es mehr in der <xd:CommitmentTypeIndication>
  • Es hat diese <xd:CommitmentTypeQualifier>bfghfghf</xd:CommitmentTypeQualifier>, die den Kommentar wiederholt.

So kann man davon ausgehen: „Vielleicht ist es gerade genug, um die CommitmentTypeQualifier als Container für den Kommentar/Grund ist und das ist es“. Wenn Sie ohne Ihren eigenen Informationstyp auskommen können - dann gehen Sie.

Verwandte Themen