aboutsummaryrefslogtreecommitdiff
path: root/spss.handbook/handbook/usage/usage.html
diff options
context:
space:
mode:
Diffstat (limited to 'spss.handbook/handbook/usage/usage.html')
-rw-r--r--spss.handbook/handbook/usage/usage.html48
1 files changed, 38 insertions, 10 deletions
diff --git a/spss.handbook/handbook/usage/usage.html b/spss.handbook/handbook/usage/usage.html
index d18bf1e7c..01f9c09fd 100644
--- a/spss.handbook/handbook/usage/usage.html
+++ b/spss.handbook/handbook/usage/usage.html
@@ -103,7 +103,7 @@
</FinalDataMetaInfo>
</CreateTransformsInfo>
&lt;/CreateTransformsInfoProfile&gt;</pre>
- Zu jedem Daten-Objekt k&ouml;nnen optional Transformationen (z.B. XPath, XSLT, Base64-Decodierung, etc.) angegeben werden. Werden - wie hier im Beispiel - keine Transformationen angegeben, so muss zumindest der MIME-Type der zu signierenden Daten spezifiziert werden. </p>
+ Zu jedem Daten-Objekt k&ouml;nnen optional Transformationen (z.B. XPath, XSLT, Base64-Decodierung, etc.) angegeben werden. Werden - wie hier im Beispiel - keine Transformationen angegeben, so muss zumindest der MIME-Type der zu signierenden Daten spezifiziert werden. <p></p>
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Simple.resp.xml" target="_blank">CreateXMLSignatureRequest.Simple.resp.xml</a></code> ist eine typische Response des SS Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<p>
@@ -118,7 +118,7 @@
...
&lt;dsig:Object Id=&quot;signed-data-1-1-1&quot;&gt;Diese Daten werden signiert.&lt;/dsig:Object&gt;
&lt;/dsig:Signature&gt;<br> &lt;/SignatureEnvironment&gt;<br>&lt;/CreateXMLSignatureResponse&gt;</pre>
- </p>
+ <p></p>
<p><code>CreateXMLSignatureResponse</code> enth&auml;lt je erzeugter Signatur ein Element <code>SignatureEnvironment</code> (in diesem Fall genau ein Element). <code>SignatureEnvironment</code> enth&auml;lt die von SS erzeugte XML-Signatur, die im obigen Request spezifiziert wurde. Man erkennt, dass die XML-Signatur genau ein Daten-Objekt unterzeichnet (ein <code>dsig:Reference</code> Element ist enthalten). Das unterzeichnete Datenobjekt ist in der Signaturstruktur selbst enthalten (<code>enveloping</code>), und zwar in einem <code>dsig:Object</code> Element. </p>
<h4><a name="webservice_xmlrequests_erstellungxml_daten" id="webservice_xmlrequests_erstellungxml_daten"></a>2.1.1.2 Angabe der zu signierenden Daten </h4>
<h5>Request</h5>
@@ -780,11 +780,30 @@ O=A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT&lt;/dsig
</pre>
<p>Die Response enth&auml;lt zun&auml;chst in <code>SignerInfo/dsig:X509Data</code> Informationen &uuml;ber den Signator, die aus dem in der XML-Signatur enthaltenen Signatorzertifikat entnommen sind (siehe <a href="#webservice_xmlrequests_pruefungxml_einfach">Einfaches Beispiel</a>).</p>
<pre>
- &lt;HashInputData&gt;
+ &lt;HashInputData PartOf=&quot;SignedInfo&quot;&gt;
&lt;Base64Content&gt;PGRvYzp...hNTERvY3VtZW50Pg==&lt;/Base64Content&gt;
&lt;/HashInputData&gt;
</pre>
-<p>Wurde im Request - so wie in diesem Beispiel - das Element <code>ReturnHashInputData</code> angegeben, enth&auml;lt die Response nach <code>SignerInfo</code> f&uuml;r jede <code>dsig:Reference</code> in <code>dsig:SignedInfo</code> der XML-Signatur ein Element <code>HashInputData</code>, wobei die Reihenfolge der <code>HashInputData</code>-Elemente der Reihenfolge der <code>dsig:Reference</code> Element in <code>dsig:SignedInfo</code> der XML-Signatur entspricht. Der Inhalt wird dabei stets mittels <code>Base64Content</code> in base64-kodierter Form geliefert.</p>
+<p>Wurde im Request - so wie in diesem Beispiel - das Element <code>ReturnHashInputData</code> angegeben, enth&auml;lt
+ die Response nach <code>SignerInfo</code> f&uuml;r jede <code>dsig:Reference</code> in <code>dsig:SignedInfo</code> der
+ XML-Signatur (bzw. auch f&uuml;r jede <code>dsig:Reference</code> aus einem <code>dsig:Manifest</code>, auf
+ das mittels des Attributs <code>Type=&quot;http://www.w3.org/2000/09/xmldsig#Manifest&quot;</code> in einer <code>dsig:Reference</code> aus <code>dsig:SignedInfo</code> verwiesen
+ wird; solche Manifeste kommen aber in diesem Beispiel nicht vor) ein Element <code>HashInputData</code>.</p>
+<p>Die Reihenfolge der <code>HashInputData</code>-Elemente
+ entspricht der Reihenfolge der <code>dsig:Reference</code>-Elemente in <code>dsig:SignedInfo</code> der
+ XML-Signatur (enth&auml;lt die XML-Signatur auch <code>dsig:Manifest</code>-Elemente, auf die jeweils in einer <code>dsig:Reference</code> aus <code>dsig:SignedInfo</code> verwiesen wird, werden zuerst <code>HashInputData</code>-Elemente f&uuml;r alle <code>dsig:Reference</code>-Elemente
+ aus <code>dsig:SignedInfo</code> und anschlie&szlig;end <code>HashInputData</code>-Elemente f&uuml;r alle <code>dsig:Reference</code>-Elemente
+ aus den einzelnen <code>dsig:Manifest</code>-Elementen geliefert). </p>
+<p>Das Attribut PartOf weist mit dem Wert SignedInfo darauf hin, dass die <code>dsig:Reference</code>,
+f&uuml;r welche die Hasheingangsdaten gelten, Teil von <code>dsig:SignedInfo</code> ist (f&uuml;r eine <code>dsig:Reference</code> aus
+einem <code>dsig:SignedInfo</code> w&uuml;rde der gelieferte Wert <code>XMLDSIGManifest</code> lauten; weiters
+w&uuml;rde<code> HashInputData</code> in einem solchen Fall ein weiteres Attribut
+
+
+<code>ReferringSigReference</code> aufweisen, dessen Wert die Nummer jener <code>dsig:Reference</code> aus <code>dsig:SignedInfo </code>als
+positive Ganzzahl repr&auml;sentiert, die auf das beinhaltende <code>dsig:Manifest</code> verweist.). </p>
+<p>Der Inhalt wird dabei stets mittels <code>Base64Content</code> in
+ base64-kodierter Form geliefert.</p>
<pre>
&lt;SignatureCheck&gt;
&lt;Code&gt;0&lt;/Code&gt;
@@ -1032,7 +1051,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<ul>
<li>&Uuml;berpr&uuml;fung, ob jede <code>dsig:Reference</code> in <code>dsig:SignedInfo</code> der Signatur eine vorgegebene Transformationskette inkludiert;</li>
<li>&Uuml;berpr&uuml;fung, ob die in der vorgegebenen Transformationskette ggf. enthaltenen inkludierten Stylesheets (implizite Transformationsparameter) durch ein Signaturmanifest mitsigniert sind.</li>
- </ul>
+</ul>
<p>Damit MOA SP die erste Teilpr&uuml;fung durchf&uuml;hren kann, muss in <code>SignatureManifestCheckParams</code> je <code>dsig:Reference</code> Element in <code>dsig:SignedInfo</code> der XML-Signatur ein Element <code>ReferenceInfo</code> angeben. Ausgenommen sind <code>dsig:Reference</code>-Elemente, die auf ein Signaturmanifest (Attribut <code>Type</code> ist gesetzt und hat den Wert <code>http://www.buergerkarte.at/specifications/Security-Layer/20020225#SignatureManifest</code>), auf ein XMLDSIG-Manifest (Attribut <code>Type</code> ist gesetzt und hat den Wert <code>http://www.w3.org/2000/09/xmldsig#Manifest</code>) oder auf Signatureigenschaften (Attribut <code>Type</code> ist gesetzt und hat den Wert <code>http://uri.etsi.org/01903/v1.1.1#SignedProperties</code>) verweisen. </p>
<p>Das Element <code>ReferenceInfo</code> enth&auml;lt eine oder mehrere erlaubte Transformationsketten, die jeweils durch ein Element <code>VerifyTransformsInfoProfile/dsig:Transforms</code> repr&auml;sentiert werden. Im konkreten Beispiel werden f&uuml;r die einzige zu pr&uuml;fende <code>dsig:Reference</code> zwei erlaubte Transformationsketten angegeben. Die Transformationen in der <code>dsig:Reference</code> m&uuml;ssen einer dieser beiden Ketten entsprechen; im konkreten Beispiel entsprechen sie der ersten. </p>
<p>Nachdem die erste erlaubte Transformationskette eine XSLT-Transformation mit einem inkludierten Stylesheet enth&auml;lt, muss MOA SP auch &uuml;berpr&uuml;fen, ob dieser inkludierte Stylesheet korrekt durch ein Signaturmanifest mitunterschrieben wurde. Nachdem wichtig ist, dass nicht irgendein beliebiger Stylesheet verwendet und mitunterschrieben wurde, sondern genau jener, den die Anwendung bei der Signaturerstellung vorgegeben hat, muss die Anwendung MOA SP mitteilen, welcher Stylesheet das sein muss. Die Anwendung verwendet dazu das Element <code>VerifyTransformsInfoProfile/TransformParameter</code>. Das Attribut <code>TransformParameter/@URI</code> enth&auml;lt die Referenz auf den Stylesheet genau so, wie er im Stylesheet-Parameter der zu pr&uuml;fenden Signatur verwendet wird (<code>dsig:Transform/xsl:stylesheet/xsl:inlcude/@href</code>). F&uuml;r den Inhalt dieses Elements hat die Anwendung drei M&ouml;glichkeiten: </p>
@@ -1040,7 +1059,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<li>Die Anwendung l&auml;sst den Inhalt leer. Dies wird sie dann machen, wenn sie darauf vertrauen kann, dass die Aufl&ouml;sung der in <code>TransformParameter/@URI</code> angegebenen Referenz bei der Signaturpr&uuml;fung zum gleichen Resultat f&uuml;hrt wie seinerzeit beim Erstellen der Signatur (z.B. weil die Referenz auf einen Webserver unter Kontrolle der Anwendung zeigt);</li>
<li>Die Anwendung gibt im Element <code>TransformParameter/Base64Content</code> explizit den inkludierten Stylesheet an. MOA SP verwendet dann diesen Stylesheet, um den Hashwert der <code>dsig:Reference</code> im Signaturmanifest zu kontrollieren;</li>
<li>Die Anwendung gibt im Element <code>TransformParameter/Hash </code>den Hashwert des inkludierten Stylesheets an. MOA SP l&ouml;st dann die Referenz in <code>dsig:Transform/xsl:stylesheet/xsl:inlcude/@href</code> auf und stellt sicher, dass der &uuml;ber das Aufl&ouml;sungsergebnis gebildete Hashwert jenem in <code>TransformParameter/Hash </code>entspricht. Diese M&ouml;glichkeit wird die Anwendung dann verwenden, wenn es sich um einen sehr umfangreichen Stylesheet handelt, der nicht im Request mit&uuml;bertragen werden soll.</li>
- </ul>
+</ul>
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.SigManifest.resp.xml" target="_blank">VerifyXMLSignatureRequest.SigManifest.resp.xml</a></code> ist eine typische Response des SP Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde. </p>
<pre>
@@ -1051,20 +1070,20 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
</pre>
<p>Die Response enth&auml;lt zun&auml;chst in <code>SignerInfo/dsig:X509Data</code> Informationen &uuml;ber den Signator, die aus dem in der XML-Signatur enthaltenen Signatorzertifikat entnommen sind (siehe <a href="#webservice_xmlrequests_pruefungxml_einfach">Einfaches Beispiel</a>). </p>
<pre>
- &lt;ReferenceInputData&gt;
+ &lt;ReferenceInputData PartOf=&quot;SignedInfo&quot;&gt;
&lt;XMLContent xml:space=&quot;preserve&quot;&gt;
&lt;doc:Paragraph ParaId=&quot;Para2&quot; xmlns:doc=&quot;urn:document&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;...&lt;/doc:Paragraph&gt;
&lt;/XMLContent&gt;
&lt;/ReferenceInputData&gt;
- &lt;ReferenceInputData&gt;
+ &lt;ReferenceInputData PartOf=&quot;SignedInfo&quot;&gt;
&lt;XMLContent xml:space=&quot;preserve&quot;&gt;
&lt;dsig:Manifest Id=&quot;manifest-1-1&quot; xmlns:doc=&quot;urn:document&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
...
&lt;/dsig:Manifest&gt;
&lt;/XMLContent&gt;
&lt;/ReferenceInputData&gt;
- &lt;ReferenceInputData&gt;
+ &lt;ReferenceInputData PartOf=&quot;SignedInfo&quot;&gt;
&lt;XMLContent xml:space=&quot;preserve&quot;&gt;
&lt;etsi:SignedProperties xmlns:doc=&quot;urn:document&quot;
xmlns:etsi=&quot;http://uri.etsi.org/01903/v1.1.1#&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
@@ -1073,7 +1092,16 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;/XMLContent&gt;
&lt;/ReferenceInputData&gt;
</pre>
-<p>Nachdem im Request spezifiziert wurde, dass in der Response die Referenzeingangsdaten f&uuml;r alle <code>dsig:Reference</code>-Elemente von <code>dsig:SignedInfo</code> der gepr&uuml;ften XML-Signatur &uuml;bermittelt werden sollen, enth&auml;lt die Response nach <code>SignerInfo</code> drei <code>ReferenceInputData</code>-Elemente. Das erste <code>ReferenceInputData</code>-Element enth&auml;lt das zuvor besprochene <code>doc:Paragraph</code> Element, das zweite das Signaturmanifest, das dritte die Signatureigenschaften.</p>
+<p>Nachdem im Request spezifiziert wurde, dass in der Response die Referenzeingangsdaten f&uuml;r alle <code>dsig:Reference</code>-Elemente
+ von <code>dsig:SignedInfo</code> (bzw. auch f&uuml;r jede <code>dsig:Reference</code> aus einem <code>dsig:Manifest</code>,
+ auf das mittels des Attributs <code>Type=&quot;http://www.w3.org/2000/09/xmldsig#Manifest&quot;</code> in einer <code>dsig:Reference</code> aus <code>dsig:SignedInfo</code> verwiesen
+ wird; solche Manifeste kommen aber in diesem Beispiel nicht vor) der gepr&uuml;ften
+ XML-Signatur &uuml;bermittelt
+ werden sollen, enth&auml;lt
+ die Response nach <code>SignerInfo</code> drei <code>ReferenceInputData</code>-Elemente. Das erste <code>ReferenceInputData</code>-Element
+ enth&auml;lt das zuvor besprochene <code>doc:Paragraph</code> Element, das zweite das Signaturmanifest, das
+ dritte die Signatureigenschaften. Das Attribut <code>PartOf</code> jedes Elements weist mit dem Wert <code>SignedInfo</code> darauf hin,
+ dass die <code>dsig:Reference</code>, f&uuml;r welche die Referenzeingangsdaten gelten, Teil von <code>dsig:SignedInfo</code> ist. </p>
<pre>
&lt;SignatureCheck&gt;
&lt;Code&gt;0&lt;/Code&gt;