From ece7d18cf35374bf4e26d041799cda8f791c89f8 Mon Sep 17 00:00:00 2001 From: gregor Date: Mon, 7 Jul 2003 10:58:37 +0000 Subject: Initial commit git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@2 d688527b-c9ab-4aba-bd8d-4036d912da1d --- spss.server/doc/moa_spss/APIClientExample.txt | 100 ++ spss.server/doc/moa_spss/HTTPClientExample.txt | 121 +++ .../doc/moa_spss/HTTPSClientExampleClientAuth.txt | 139 +++ .../doc/moa_spss/HTTPSClientExampleServerAuth.txt | 143 +++ spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf | Bin 0 -> 314346 bytes spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd | 430 ++++++++ .../doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd | 208 ++++ .../examples/conf/MOA-SPSSConfiguration.xml | 67 ++ .../doc/moa_spss/examples/conf/MinimalSPConfig.xml | 4 + .../doc/moa_spss/examples/conf/MinimalSSConfig.xml | 17 + .../doc/moa_spss/examples/conf/keys/ecc(ego).p12 | Bin 0 -> 1234 bytes .../conf/keys/test-ee2003_normal(buergerkarte).p12 | Bin 0 -> 3077 bytes .../conf/trustProfiles/trustProfile1/IAIKRoot.cer | Bin 0 -> 883 bytes .../CreateXMLSignatureRequest1.xml | 18 + .../CreateXMLSignatureRequest2.xml | 90 ++ .../CreateXMLSignatureResponse1.xml | 24 + .../CreateXMLSignatureResponse2.xml | 2 + .../requestsResponses/TestDatenGenerator.zip | Bin 0 -> 1219 bytes .../VerifyCMSSignatureRequest.xml | 28 + .../VerifyCMSSignatureResponse.xml | 22 + .../VerifyXMLSignatureRequest1.xml | 8 + .../VerifyXMLSignatureRequest2.xml | 60 ++ .../VerifyXMLSignatureResponse1.xml | 22 + .../VerifyXMLSignatureResponse2.xml | 62 ++ .../examples/testclient/APIClientExample.java | 100 ++ .../examples/testclient/HTTPClientExample.java | 120 +++ .../testclient/HTTPSClientExampleClientAuth.java | 139 +++ .../testclient/HTTPSClientExampleServerAuth.java | 143 +++ .../moa_spss/examples/testclient/client.keystore | Bin 0 -> 1974 bytes .../examples/testclient/example_request.xml | 19 + spss.server/doc/moa_spss/faqs.htm | 100 ++ spss.server/doc/moa_spss/links.htm | 122 +++ spss.server/doc/moa_spss/moa.htm | 177 ++++ spss.server/doc/moa_spss/sp-admin.htm | 300 ++++++ spss.server/doc/moa_spss/sp-admin_1.htm | 355 +++++++ spss.server/doc/moa_spss/sp-admin_2.htm | 536 ++++++++++ spss.server/doc/moa_spss/sp-admin_3.htm | 237 +++++ spss.server/doc/moa_spss/sp-admin_4.htm | 183 ++++ spss.server/doc/moa_spss/sp-anwendung.htm | 1079 ++++++++++++++++++++ 39 files changed, 5175 insertions(+) create mode 100644 spss.server/doc/moa_spss/APIClientExample.txt create mode 100644 spss.server/doc/moa_spss/HTTPClientExample.txt create mode 100644 spss.server/doc/moa_spss/HTTPSClientExampleClientAuth.txt create mode 100644 spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt create mode 100644 spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf create mode 100644 spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd create mode 100644 spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd create mode 100644 spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml create mode 100644 spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml create mode 100644 spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml create mode 100644 spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12 create mode 100644 spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12 create mode 100644 spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml create mode 100644 spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml create mode 100644 spss.server/doc/moa_spss/examples/testclient/APIClientExample.java create mode 100644 spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java create mode 100644 spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleClientAuth.java create mode 100644 spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java create mode 100644 spss.server/doc/moa_spss/examples/testclient/client.keystore create mode 100644 spss.server/doc/moa_spss/examples/testclient/example_request.xml create mode 100644 spss.server/doc/moa_spss/faqs.htm create mode 100644 spss.server/doc/moa_spss/links.htm create mode 100644 spss.server/doc/moa_spss/moa.htm create mode 100644 spss.server/doc/moa_spss/sp-admin.htm create mode 100644 spss.server/doc/moa_spss/sp-admin_1.htm create mode 100644 spss.server/doc/moa_spss/sp-admin_2.htm create mode 100644 spss.server/doc/moa_spss/sp-admin_3.htm create mode 100644 spss.server/doc/moa_spss/sp-admin_4.htm create mode 100644 spss.server/doc/moa_spss/sp-anwendung.htm (limited to 'spss.server/doc/moa_spss') diff --git a/spss.server/doc/moa_spss/APIClientExample.txt b/spss.server/doc/moa_spss/APIClientExample.txt new file mode 100644 index 000000000..10324f221 --- /dev/null +++ b/spss.server/doc/moa_spss/APIClientExample.txt @@ -0,0 +1,100 @@ +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import at.gv.egovernment.moa.spss.api.SPSSFactory; +import at.gv.egovernment.moa.spss.api.SignatureCreationService; +import at.gv.egovernment.moa.spss.api.xmlsign.*; +import at.gv.egovernment.moa.spss.api.common.*; + +/** + * @author Sven Aigner + * + * Dies ist ein einfaches Beispielprogramm für die Erstellung + * einer digitalen Signatur mittel der API-Funktionen des + * MOA-SPSS Servers + */ +public class APIClientExample { + + /** + * Hauptfunktion des Beispielprogramms + * @param args wird nicht ausgewertet + * @throws Exception sollten Fehler auftreten werden die Fehler an die Java-VM weitergeleitet + */ + public static void main(String[] args) throws Exception{ + + // Serverfunktionshandler instanzieren + SPSSFactory spf = SPSSFactory.getInstance(); + + // Signaturedaten in ein Contentobjekt einbinden + byte []data = "Dies sind Testdaten".getBytes("UTF-8"); + ByteArrayInputStream bis = new ByteArrayInputStream(data); + Content cont = spf.createContent(bis,"http://uri.data.org"); + + // Beschreibungselement zu den Daten erstellen + MetaInfo mi = spf.createMetaInfo("text/plain","Testdaten",null); + + // Transformationen erstellen + CreateTransformsInfo cti = spf.createCreateTransformsInfo(null,mi); + CreateTransformsInfoProfile ct = spf.createCreateTransformsInfoProfile(cti,null); + + // Datenobjekt aufbauen + DataObjectInfo doi = spf.createDataObjectInfo(DataObjectInfo.STRUCTURE_DETACHED,false,cont,ct); + + List dataobjectinfolist = new ArrayList(); + dataobjectinfolist.add(doi); + // alles zusammenpacken zu einer SingleSignature + SingleSignatureInfo ssi = spf.createSingleSignatureInfo(dataobjectinfolist,null,false); + + List singlesignatureinfolist = new ArrayList(); + singlesignatureinfolist.add(ssi); + // die Signatur in einen Request einbetten + CreateXMLSignatureRequest cxsreq = spf.createCreateXMLSignatureRequest("PKCS12RSAKey1",singlesignatureinfolist); + + // Signatureerstellungsservice aufrufen + SignatureCreationService scs = SignatureCreationService.getInstance(); + + // Response auswerten + CreateXMLSignatureResponse cxsres = scs.createXMLSignature(cxsreq); + + List elements = cxsres.getResponseElements(); + + SignatureEnvironmentResponse ser = (SignatureEnvironmentResponse)elements.get(0); + + // Responsetyp lesen + int response_type = ser.getResponseType(); + + if(response_type == SignatureEnvironmentResponse.ERROR_RESPONSE) + { + // Fehlerfall + System.out.println("Bei der Erstellung der Signatur ist ein Fehler aufgetreten"); + } + else + { + // Signaturerstellung erfolgreich + Element se = ser.getSignatureEnvironment(); + System.out.println("Signaturerstellung erfolgreich"); + + displayTree(se); + } + } + + /** + * Einfache Ausgabefunktion für einen DOM-Baum + * @param input auszugebender Knoten + */ + public static void displayTree(Node input) + { + // Ausgabe eines Knotens + System.out.println(input); + // Alle Kindknoten ausgeben + NodeList children = input.getChildNodes(); + for(int counter=0;counter + * Die Datenübertragung erfolgt über eine sichere Verbindung (Clientauthentisierung) + */ +public class HTTPSClientExampleClientAuth { + + // SOAP Konstanten + // CreationServer + private static final QName SERVICE_QNAME = new QName("SignatureCreation"); + private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation"; + // Secure Endpoint + private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation"; + + /* + VerificationService + wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine + Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit + ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine + sichere Verbindung) + + private static final QName SERVICE_QNAME = new QName("SignatureVerification"); + private static final String ENDPOINT = + "http://localhost:8080/moa-spss/services/SignatureVerification"; + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureVerification"; + */ + public static final String HANDLER = "java.protocol.handler.pkgs"; + public static final String KEYSTORE = "javax.net.ssl.keyStore"; + public static final String KEYSTOREPASSWORD = "javax.net.ssl.keyStorePassword"; + public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; + public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; + + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. + * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Clientauthentisierung. + * + * @param args wird nicht verwendet + */ + + public static void main(String[] args) { + + try { + /* + Einrichten der SSL Verbindungseigenschaften + + Die Verbindung wird über SSL hergestellt, als TrustStore und als Keystore + wird ein JavaKeyStore verwendet der die notwendigen Daten enthält + */ + + Security.addProvider(new Provider()); + System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol"); + System.setProperty(KEYSTORE, "client.keystore"); + System.setProperty(KEYSTOREPASSWORD, "changeit"); + System.setProperty(TRUSTSTORE, "client.keystore"); + System.setProperty(TRUSTSTOREPASSWORD, "changeit"); + + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream("example_request.xml"); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] {body}; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(SECURE_ENDPOINT); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // Ausgabe auf System.out zum Testen + OutputFormat format = new OutputFormat((Document)root_response); + + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + XMLSerializer serializer = new XMLSerializer (System.out, format); + serializer.asDOMSerializer(); + serializer.serialize(root_response); + + // Antwort verarbeiten + // ... + // ... + } + catch(Exception e) + { + e.printStackTrace(); + } + + } +} diff --git a/spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt b/spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt new file mode 100644 index 000000000..cb8db75d5 --- /dev/null +++ b/spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt @@ -0,0 +1,143 @@ +import java.io.FileInputStream; +import java.security.Security; +import java.util.Vector; + +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.rpc.Call; +import javax.xml.rpc.Service; +import javax.xml.rpc.ServiceFactory; + +import org.apache.axis.message.SOAPBodyElement; +import org.apache.xml.serialize.LineSeparator; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +import com.sun.net.ssl.internal.ssl.Provider; + +/** + * @author Sven + * + * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt.
+ * Die Datenübertragung erfolgt über eine sichere Verbindung (Serverauthentisierung) + */ +public class HTTPSClientExampleServerAuth { + + // SOAP Konstanten + // CreationServer + private static final QName SERVICE_QNAME = new QName("SignatureCreation"); + private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation"; + // Secure Endpoint + private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation"; + + /* + Secure Endpoint + dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden + um eine sichere Verbindung zum Server herzustellen + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureCreation"; + */ + + /* + VerificationService + wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine + Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit + ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine + sichere Verbindung) + + private static final QName SERVICE_QNAME = new QName("SignatureVerification"); + private static final String ENDPOINT = + "http://localhost:8080/moa-spss/services/SignatureVerification"; + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureVerification"; + */ + + // SSL Konstanten + public static final String HANDLER = "java.protocol.handler.pkgs"; + public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; + public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. + * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Serverauthentisierung. + * + * @param args wird nicht verwendet + */ + public static void main(String[] args) { + + try { + /* + Einrichten der SSL Verbindungseigenschaften + + Die Verbindung wird über SSL hergestellt, als TrustStore wird + ein JavaKeyStore verwendet der die notwendigen Daten enthält + */ + + Security.addProvider(new Provider()); + System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol"); + System.setProperty(TRUSTSTORE, "client.keystore"); + System.setProperty(TRUSTSTOREPASSWORD, "changeit"); + + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream("example_request.xml"); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] {body}; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(SECURE_ENDPOINT); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // Ausgabe auf System.out zum Testen + OutputFormat format = new OutputFormat((Document)root_response); + + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + XMLSerializer serializer = new XMLSerializer (System.out, format); + serializer.asDOMSerializer(); + serializer.serialize(root_response); + + // Antwort verarbeiten + // ... + // ... + } + catch(Exception e) + { + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf b/spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf new file mode 100644 index 000000000..dfe9e80a1 Binary files /dev/null and b/spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf differ diff --git a/spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd b/spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd new file mode 100644 index 000000000..809842cf9 --- /dev/null +++ b/spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd @@ -0,0 +1,430 @@ + + + + + + + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + + + + Resultat, falls die Signaturerstellung erfolgreich war + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any;publicAuthority is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pro dsig:Reference-Element in der zu überprüfenden XML-Signatur muss hier ein ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen ReferenceInfo Elemente entspricht jener der dsig:Reference Elemente in der XML-Signatur. + + + + + + + + + + mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any; PublicAuthority is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resultat, falls die Signaturerstellung gescheitert ist + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ein oder mehrere Transformationswege können von der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur hat zumindest einem dieser Transformationswege zu entsprechen. Die Angabe kann explizit oder als Profilbezeichner erfolgen. + + + + + Profilbezeichner für einen Transformationsweg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Die Angabe des Transformationsparameters (explizit oder als Hashwert) kann unterlassen werden, wenn die Applikation von der Unveränderlichkeit des Inhalts der in "Transformationsparamter", Attribut "URI" angegebenen URI ausgehen kann. + + + + Der Transformationsparameter explizit angegeben. + + + + + Der Hashwert des Transformationsparameters. + + + + + + + + + + + + + + + + + + + + + + Explizite Angabe des Transformationswegs + + + + + + + Alle impliziten Transformationsparameter, die zum Durchlaufen der oben angeführten Transformationskette bekannt sein müssen, müssen hier angeführt werden. Das Attribut "URI" bezeichnet den Transformationsparameter in exakt jener Weise, wie er in der zu überprüfenden Signatur gebraucht wird. + + + + + + + + + + + + + + + + diff --git a/spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd b/spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd new file mode 100644 index 000000000..8eb488f48 --- /dev/null +++ b/spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dient zum Konfigurieren von HW Crypto-Module via PKCS#11 (s. iaik.server.modules.crypto.HarwwareCryptoModuleConfiguration) + + + + + + + + + + dient zum Konfigurieren von HW Key-Module via PKCS#11 (s. iaik.server. modules.crypto.HardwareKeyModuleConfiguration + + + + + + + + + + + dient zum Konfigurieren von SW Key-Module via PKCS#12 Dateien (s. iaik. server.modules.crypto.SoftwareKeyModuleConfiguration + + + + + + + + + + definiert eine Gruppe von Keys + + + + + + Ein Schlüssel wird bezeichnet durch ein Tripel bestehend aus der ID des KeyModules (siehe z.B. SoftwareKeyModule/@id), sowie Issuer und Seriennummer des zum Schlüssel gehörigen Zertifikats + + + + + + + + + + + + + + + ordnet oben definierte KeyGroups Online-Applikationen zu, die diese KeyGroups verwenden dürfen + + + + + + wenn das Element nicht auftritt, dann können die zugeordneten KeyGroups von allen Online-Applikationen verwendet werden + + + + + + + + + + + + + spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung + + + + + + ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden + + + + + + + + + + + + + + + + spezifiziert die Dauer, die Revozierungsinformation archiviert werden muss in Tagen + + + + + + + + spezifiziert CRL Distribution Points + + + + + + spezifiziert die CA, für die der u.a. DP verwendet werden soll + + + + + das Attribut reasonCodes enthält eine Liste von möglichen reasonCodes lt. RFC 3280: unspecified, keyCompromise, cACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold, removeFromCRL, privilegeWithdrawn, aACompromise + + + + + + + + + + + + + ordnet eine Datei, die ein CreateTransformsInfoProfile-Element enthält, einer id zu + + + + + + + + + ordnet eine Datei, die ein CreateSignatureEnvironmentProfile-Element enthält, einer id zu + + + + + + + + + ordnet eine Datei, die ein VerifyTransformsInfoProfile-Element enthält, einer id zu + + + + + + + + + ordnet eine Datei, die ein SupplementProfile-Element enthält, einer id zu + + + + + + + + + ordnet ein Verzeichnis, das vertrauenswürdige Zertifikate enthält einer id zu + + + + + + + + + + + + + + + + diff --git a/spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml b/spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml new file mode 100644 index 000000000..61f15c5cc --- /dev/null +++ b/spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + SWKeyModule1 + + CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT + 1044289238331 + + + + + + SWKeyModule2 + + CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT + 99991044289238331 + + + + + + + + + + CN=patrick peck,OU=MOA,O=BRZ,L=Vienna,S=Vienna,C=AT + 1039104204 + + + + + + CN=A-Trust-nQual-0,OU=A-Trust-nQual-0,O=A-Trust,C=AT + 536 + + + + + CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT + + + + CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT + + + + + + + + + diff --git a/spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml b/spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml new file mode 100644 index 000000000..d52391843 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml @@ -0,0 +1,4 @@ + + + + diff --git a/spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml b/spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml new file mode 100644 index 000000000..a55f5eabc --- /dev/null +++ b/spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml @@ -0,0 +1,17 @@ + + + + + + SWKeyModule1 + + CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT + 1044289238331 + + + + + + + diff --git a/spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12 b/spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12 new file mode 100644 index 000000000..f84e793c5 Binary files /dev/null and b/spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12 differ diff --git a/spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12 b/spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12 new file mode 100644 index 000000000..efaeb9b98 Binary files /dev/null and b/spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12 differ diff --git a/spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer b/spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer new file mode 100644 index 000000000..c0c60558a Binary files /dev/null and b/spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer differ diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml new file mode 100644 index 000000000..f2966d4a9 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml @@ -0,0 +1,18 @@ + + + PKCS12RSAKey1 + + + + Diese Daten werden signiert. + + + + + text/plain + + + + + + diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml new file mode 100644 index 000000000..0037fa570 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml @@ -0,0 +1,90 @@ + + + PKCS12RSAKey1 + + + + Diese Daten werden signiert. + + + + + text/plain + + + + + + + + + RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM= + + + + + text/plain + + + + + + + + + Gesundheitliche Auswirkungen elektronischer Signaturen + Ellipse + Kurvenreich + 1951-04-16 + Hinterm Berg + 6-930-21512-12 + + + + + + + + + + + + + + text/html + + + + + PHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJh +bnNmb3JtIiB2ZXJzaW9uPSIxLjAiPg0KPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIi8+DQo8eHNs +OnRlbXBsYXRlIG1hdGNoPSJkYXRhOmJvb2siIHhtbG5zOmRhdGE9Imh0dHA6Ly91cmkuZGF0YS5v +cmciPg0KPEhUTUw+DQo8Qk9EWT4NCjxIMT5CdWNoOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZGF0 +YTp0aXRsZSIvPjwvSDE+DQo8L0JPRFk+DQo8L0hUTUw+DQo8L3hzbDp0ZW1wbGF0ZT4NCjwveHNs +OnN0eWxlc2hlZXQ+ + + + + + + + + + nach diesem Text wird die Signatur in das Dokument eingefuegt + + + + //env:Document + + + + diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml new file mode 100644 index 000000000..5dcbceac5 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml @@ -0,0 +1,24 @@ + +tLODyeiWFbAkQKwhrR23jtcgu4k=IE0l+lYkfHmak11z2VJD7OLLZwsDT3pWaxPalTmiW9iEymd7dTILJ0rC49BgKs7r +BAUktEvhAo+Uy6hiXxdz9r58YfXimCCtIf0IS80GuWJUXMYvgkNMNFWq/qNEkbK+ +3GwNyykETR2VUt51mYVkG0CxfMbgKwh/AkFblmdYo/Y=MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1Diese Daten werden signiert. \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml new file mode 100644 index 000000000..8139a66ab --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml @@ -0,0 +1,2 @@ + +N/EFe1Sj5J5+18ChKLUPK586LmQ=dg1cRDpm/S5Uf2kBz6X6vdiD7ECftOMJx7hPQTCunV3/WvHx/IQ66Skj4axKbiOs 0AvLk5JKtw3MtvBWbT8tqfjRZ+3r6xi252B7X4W/+mHHesXX+yUPIW3n1TY/Dy0o fxIUWF3qZZKIO5A94ButZJlecgmFZ8hzi0yiuFM25ao=MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx 26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1Diese Daten werden signiert.tLODyeiWFbAkQKwhrR23jtcgu4k=nach diesem Text wird die Signatur in das Dokument eingefuegtWVob54034HfToUBDAErL5z6GFxo= gJhOZajRF42VUda+ZBhWNdljSLc=PLCDCNiI+09sMH1d0rH2CfwDYkY=7oKv0peUxxN1jIlmd5yVFPRYocM=NyNKwlFZNNIEjYNViERbvDWRqDfh/ZFwUrAFWyDU37kj/xHDLFn+T2X13Sx+8oaz pa5523rqVHlOExeyp5xMCAlYGMm6e04rjGrTidNNmCr2LQEZ7pDBYkAki/afp8Ey QbVQr+WmBNcVRfLH0i6HknorR3iGJHUdx9A/kEGbhBE=MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx 26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1 Gesundheitliche Auswirkungen elektronischer Signaturen Ellipse Kurvenreich 1951-04-16 Hinterm Berg 6-930-21512-12 Ym+XR9T2r7NKwGo3ndiOeenFLFE=2003-06-04T11:49:35dL59VDpBsujcngd207z0ohPl1/U=CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331text/plaintext/html \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip b/spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip new file mode 100644 index 000000000..134913cb2 Binary files /dev/null and b/spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip differ diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml new file mode 100644 index 000000000..1331cd3d0 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml @@ -0,0 +1,28 @@ + 2003-04-04T09:30:47-05:00 MIIGAAYJKoZIhvcNAQcCoIIF8TCCBe0CAQExCzAJBgUrDgMCGgUAMDsGCSqGSIb3DQEHAaAuBCxE +aWVzIHNpbmQgVGVzdGRhdGVuDQoyLiBaZWlsZQ0KMy4gWmVpbGUNCmF1c6CCA9swggPXMIIDRKAD +AgECAgYA8yR9NTswCQYFKw4DAh0FADCBrDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5J +VkVSU0lUWSBPRiBURUNITk9MT0dZMUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZv +cm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEVMBMGA1UECxMMSUFJSyBUZXN0 +IENBMRUwEwYDVQQDEwxJQUlLIFRlc3QgQ0EwHhcNMDMwMjAzMTYyMDU1WhcNMDMxMjMwMjI1OTMw +WjCBmDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5JVkVSU0lUWSBPRiBURUNITk9MT0dZ +MUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFu +ZCBDb21tdW5pY2F0aW9uczEYMBYGA1UEAxQPSXNvbGRlIEL8cmdlcmluMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQDnebSqeDo73NUgC4nbY+z3Vf6l12EyID0/RC6wx7FD5ASR97jecQUhOhRn +e66gBAV36fgxczoPry1ly0ZTk7hbkCr9sSMjh58gdLQROHOA0DKaqZP1n0ggSGqb/WOFDhJdNbff +LdefeXHboOJN4Cl+25AHfzxiVX5Gz6tPIX2JFQIDAQABo4IBHDCCARgwDAYDVR0TAQH/BAIwADAO +BgNVHQ8BAf8EBAMCBsAwEQYJYIZIAYb4QgEBBAQDAgUgMGcGA1UdIARgMF4wXAYMKwYBBAGVEgEC +ewEBMEwwSgYIKwYBBQUHAgIwPho8VGhpcyBjZXJ0aWZpY2F0ZSBvbmx5IG1heSBiZSB1c2VkIGZv +ciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly93d3cuaWFp +ay5hdC90ZXN0Q0EvaWFpa190ZXN0X3NpZy5jcmwwHQYDVR0OBBYEFCg66gjFLwzWj8NNmQlSzSWc +3kDtMB8GA1UdIwQYMBaAFEwgsFYCDPeICpaIpRS0Ucw6tfK/MAkGBSsOAwIdBQADgYEAJjzWjybN +vxgK5MyB6mXJKbmcCTGOy/VPmf8fPPVwt9IMlnQfI1NXH8YOzNj4PHbwx1b7oMuj2dY9IT/g/6T0 +dcl7/ATIC/jg6uO+nMYYqOqhzdfy/ivMyjowFE2W67SbfLWmS1NX+rhqJYP+dsZd2uf8CgoC85IB +DdB7pf51P/UxggG9MIIBuQIBATCBtzCBrDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5J +VkVSU0lUWSBPRiBURUNITk9MT0dZMUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZv +cm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEVMBMGA1UECxMMSUFJSyBUZXN0 +IENBMRUwEwYDVQQDEwxJQUlLIFRlc3QgQ0ECBgDzJH01OzAJBgUrDgMCGgUAoF0wGAYJKoZIhvcN +AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDMwNDE3MTQ0ODA4WjAjBgkqhkiG9w0B +CQQxFgQUWVob54034HfToUBDAErL5z6GFxowDQYJKoZIhvcNAQEBBQAEgYA3PgDZt7KWMUscVY6J +0NVA83Al3+3rEFrvtClcfNNeCwptd9zRTv7Xvj7JLoozNoCr4sg2K9cwfjpinUrh9EartS1gqoRR +7Binn38eR1lRSU+Pg3HaXh9EnEDIeCsI8qDGYCJ1TOf/YwJzUR1YYCZMyrJK2mpmDmT9fmvKwdJO +iA== TrustProfile1 \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml new file mode 100644 index 000000000..9fc8f57bd --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml @@ -0,0 +1,22 @@ + +CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=ATCN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/100 \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml new file mode 100644 index 000000000..f52b288ad --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml @@ -0,0 +1,8 @@ + + + 2003-03-24T12:41:54+01:00 + + tLODyeiWFbAkQKwhrR23jtcgu4k=IE0l+lYkfHmak11z2VJD7OLLZwsDT3pWaxPalTmiW9iEymd7dTILJ0rC49BgKs7rBAUktEvhAo+Uy6hiXxdz9r58YfXimCCtIf0IS80GuWJUXMYvgkNMNFWq/qNEkbK+3GwNyykETR2VUt51mYVkG0CxfMbgKwh/AkFblmdYo/Y=MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UEAxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFowgZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xkZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zVIAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68tZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBeMFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNhdGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtfdGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNVHSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8mzb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DLo9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktTV/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1Diese Daten werden signiert.//dsig:Signature + + TrustProfile1 + diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml new file mode 100644 index 000000000..194738900 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml @@ -0,0 +1,60 @@ + + + 2003-03-24T12:41:54+01:00 + + + nach diesem Text wird die Signatur in das Dokument eingefuegtWVob54034HfToUBDAErL5z6GFxo= + + gJhOZajRF42VUda+ZBhWNdljSLc=PLCDCNiI+09sMH1d0rH2CfwDYkY=q0HHxe1K9hoC7OFHxHiIR3Si+lE=hxUgloDXBZvoavTrNQYDoEvtS8WF50iHC41vUFUbphVWkHYZcI2+VLCl+J7GoCu5 +rKiv7Z6QqFxe0GDSAR3d8qjW2gNU6GtX4UJxdVaGlXxTOofUfQSEyoq8Xw0PHhBs +TknuIMtwfxANPSO8CbSPXm5w8DPoMuzskaZyXFZQJbo=MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1 + + Gesundheitliche Auswirkungen elektronischer Signaturen + Ellipse + Kurvenreich + 1951-04-16 + Hinterm Berg + 6-930-21512-12 + + Ym+XR9T2r7NKwGo3ndiOeenFLFE=2003-06-12T13:03:49dL59VDpBsujcngd207z0ohPl1/U=CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331text/plaintext/html + + //dsig:Signature + + + + + + + + + + + + + + + + + +TrustProfile1 + diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml new file mode 100644 index 000000000..17bd7684a --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml @@ -0,0 +1,22 @@ + +CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=ATMIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/100 \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml new file mode 100644 index 000000000..c367b0b0e --- /dev/null +++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml @@ -0,0 +1,62 @@ +Calling ... +Return ... + +CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=ATCN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=PEhUTUwgeG1sbnM6ZGF0YT0iaHR0cDovL3VyaS5kYXRhLm9yZyI+DQo8Qk9EWT4N +CjxIMT5CdWNoOiBHZXN1bmRoZWl0bGljaGUgQXVzd2lya3VuZ2VuIGVsZWt0cm9u +aXNjaGVyIFNpZ25hdHVyZW48L0gxPg0KPC9CT0RZPg0KPC9IVE1MPg0KPGRzaWc6TWFuaWZlc3QgeG1sbnM6ZHNpZz0iaHR0cDovL3d3dy53My5vcmcvMjAw +MC8wOS94bWxkc2lnIyIgeG1sbnM6ZW52PSJodHRwOi8vdXJpLmVudi5vcmciIHht +bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFu +Y2UiIElkPSJtYW5pZmVzdC0yLTEiPjxkc2lnOlJlZmVyZW5jZSBVUkk9Imh0dHA6 +Ly9sb2NhbGhvc3Q6ODA4MC9UZXN0RGF0ZW5HZW5lcmF0b3IvcmVzb3VyY2VzL0NY +MV9ib29rX25vdF9oZXJlLnhzbCI+PGRzaWc6RGlnZXN0TWV0aG9kIEFsZ29yaXRo +bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvZHNp +ZzpEaWdlc3RNZXRob2Q+PGRzaWc6RGlnZXN0VmFsdWU+WW0rWFI5VDJyN05Ld0dv +M25kaU9lZW5GTEZFPTwvZHNpZzpEaWdlc3RWYWx1ZT48L2RzaWc6UmVmZXJlbmNl +PjwvZHNpZzpNYW5pZmVzdD4=PGV0c2k6U2lnbmVkUHJvcGVydGllcyB4bWxuczpkc2lnPSJodHRwOi8vd3d3Lncz +Lm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczplbnY9Imh0dHA6Ly91cmkuZW52 +Lm9yZyIgeG1sbnM6ZXRzaT0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMy92MS4x +LjEjIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h +LWluc3RhbmNlIj48ZXRzaTpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjxldHNp +OlNpZ25pbmdUaW1lPjIwMDMtMDYtMTJUMTM6MDM6NDk8L2V0c2k6U2lnbmluZ1Rp +bWU+PGV0c2k6U2lnbmluZ0NlcnRpZmljYXRlPjxldHNpOkNlcnQ+PGV0c2k6Q2Vy +dERpZ2VzdD48ZXRzaTpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3 +LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9ldHNpOkRpZ2VzdE1ldGhv +ZD48ZXRzaTpEaWdlc3RWYWx1ZT5kTDU5VkRwQnN1amNuZ2QyMDd6MG9oUGwxL1U9 +PC9ldHNpOkRpZ2VzdFZhbHVlPjwvZXRzaTpDZXJ0RGlnZXN0PjxldHNpOklzc3Vl +clNlcmlhbD48ZHNpZzpYNTA5SXNzdWVyTmFtZT5DTj1JQUlLIFRlc3QgQ0EsT1U9 +SUFJSyBUZXN0IENBLE9VPUluc2l0dXRlIGZvciBBcHBsaWVkIEluZm9ybWF0aW9u +IFByb2Nlc3NpbmcgYW5kIENvbW11bmljYXRpb25zLE89R1JBWiBVTklWRVJTSVRZ +IE9GIFRFQ0hOT0xPR1ksQz1BVDwvZHNpZzpYNTA5SXNzdWVyTmFtZT48ZHNpZzpY +NTA5U2VyaWFsTnVtYmVyPjEwNDQyODkyMzgzMzE8L2RzaWc6WDUwOVNlcmlhbE51 +bWJlcj48L2V0c2k6SXNzdWVyU2VyaWFsPjwvZXRzaTpDZXJ0PjwvZXRzaTpTaWdu +aW5nQ2VydGlmaWNhdGU+PGV0c2k6U2lnbmF0dXJlUG9saWN5SWRlbnRpZmllcj48 +ZXRzaTpTaWduYXR1cmVQb2xpY3lJbXBsaWVkPjwvZXRzaTpTaWduYXR1cmVQb2xp +Y3lJbXBsaWVkPjwvZXRzaTpTaWduYXR1cmVQb2xpY3lJZGVudGlmaWVyPjwvZXRz +aTpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjxldHNpOlNpZ25lZERhdGFPYmpl +Y3RQcm9wZXJ0aWVzPjxldHNpOkRhdGFPYmplY3RGb3JtYXQgT2JqZWN0UmVmZXJl +bmNlPSIjcmVmZXJlbmNlLTItMSI+PGV0c2k6TWltZVR5cGU+dGV4dC9wbGFpbjwv +ZXRzaTpNaW1lVHlwZT48L2V0c2k6RGF0YU9iamVjdEZvcm1hdD48ZXRzaTpEYXRh +T2JqZWN0Rm9ybWF0IE9iamVjdFJlZmVyZW5jZT0iI3JlZmVyZW5jZS0yLTIiPjxl +dHNpOk1pbWVUeXBlPnRleHQvaHRtbDwvZXRzaTpNaW1lVHlwZT48L2V0c2k6RGF0 +YU9iamVjdEZvcm1hdD48L2V0c2k6U2lnbmVkRGF0YU9iamVjdFByb3BlcnRpZXM+ +PC9ldHNpOlNpZ25lZFByb3BlcnRpZXM+00 \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/testclient/APIClientExample.java b/spss.server/doc/moa_spss/examples/testclient/APIClientExample.java new file mode 100644 index 000000000..10324f221 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/testclient/APIClientExample.java @@ -0,0 +1,100 @@ +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import at.gv.egovernment.moa.spss.api.SPSSFactory; +import at.gv.egovernment.moa.spss.api.SignatureCreationService; +import at.gv.egovernment.moa.spss.api.xmlsign.*; +import at.gv.egovernment.moa.spss.api.common.*; + +/** + * @author Sven Aigner + * + * Dies ist ein einfaches Beispielprogramm für die Erstellung + * einer digitalen Signatur mittel der API-Funktionen des + * MOA-SPSS Servers + */ +public class APIClientExample { + + /** + * Hauptfunktion des Beispielprogramms + * @param args wird nicht ausgewertet + * @throws Exception sollten Fehler auftreten werden die Fehler an die Java-VM weitergeleitet + */ + public static void main(String[] args) throws Exception{ + + // Serverfunktionshandler instanzieren + SPSSFactory spf = SPSSFactory.getInstance(); + + // Signaturedaten in ein Contentobjekt einbinden + byte []data = "Dies sind Testdaten".getBytes("UTF-8"); + ByteArrayInputStream bis = new ByteArrayInputStream(data); + Content cont = spf.createContent(bis,"http://uri.data.org"); + + // Beschreibungselement zu den Daten erstellen + MetaInfo mi = spf.createMetaInfo("text/plain","Testdaten",null); + + // Transformationen erstellen + CreateTransformsInfo cti = spf.createCreateTransformsInfo(null,mi); + CreateTransformsInfoProfile ct = spf.createCreateTransformsInfoProfile(cti,null); + + // Datenobjekt aufbauen + DataObjectInfo doi = spf.createDataObjectInfo(DataObjectInfo.STRUCTURE_DETACHED,false,cont,ct); + + List dataobjectinfolist = new ArrayList(); + dataobjectinfolist.add(doi); + // alles zusammenpacken zu einer SingleSignature + SingleSignatureInfo ssi = spf.createSingleSignatureInfo(dataobjectinfolist,null,false); + + List singlesignatureinfolist = new ArrayList(); + singlesignatureinfolist.add(ssi); + // die Signatur in einen Request einbetten + CreateXMLSignatureRequest cxsreq = spf.createCreateXMLSignatureRequest("PKCS12RSAKey1",singlesignatureinfolist); + + // Signatureerstellungsservice aufrufen + SignatureCreationService scs = SignatureCreationService.getInstance(); + + // Response auswerten + CreateXMLSignatureResponse cxsres = scs.createXMLSignature(cxsreq); + + List elements = cxsres.getResponseElements(); + + SignatureEnvironmentResponse ser = (SignatureEnvironmentResponse)elements.get(0); + + // Responsetyp lesen + int response_type = ser.getResponseType(); + + if(response_type == SignatureEnvironmentResponse.ERROR_RESPONSE) + { + // Fehlerfall + System.out.println("Bei der Erstellung der Signatur ist ein Fehler aufgetreten"); + } + else + { + // Signaturerstellung erfolgreich + Element se = ser.getSignatureEnvironment(); + System.out.println("Signaturerstellung erfolgreich"); + + displayTree(se); + } + } + + /** + * Einfache Ausgabefunktion für einen DOM-Baum + * @param input auszugebender Knoten + */ + public static void displayTree(Node input) + { + // Ausgabe eines Knotens + System.out.println(input); + // Alle Kindknoten ausgeben + NodeList children = input.getChildNodes(); + for(int counter=0;counter + * Die Datenübertragung erfolgt über eine sichere Verbindung (Clientauthentisierung) + */ +public class HTTPSClientExampleClientAuth { + + // SOAP Konstanten + // CreationServer + private static final QName SERVICE_QNAME = new QName("SignatureCreation"); + private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation"; + // Secure Endpoint + private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation"; + + /* + VerificationService + wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine + Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit + ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine + sichere Verbindung) + + private static final QName SERVICE_QNAME = new QName("SignatureVerification"); + private static final String ENDPOINT = + "http://localhost:8080/moa-spss/services/SignatureVerification"; + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureVerification"; + */ + public static final String HANDLER = "java.protocol.handler.pkgs"; + public static final String KEYSTORE = "javax.net.ssl.keyStore"; + public static final String KEYSTOREPASSWORD = "javax.net.ssl.keyStorePassword"; + public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; + public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; + + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. + * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Clientauthentisierung. + * + * @param args wird nicht verwendet + */ + + public static void main(String[] args) { + + try { + /* + Einrichten der SSL Verbindungseigenschaften + + Die Verbindung wird über SSL hergestellt, als TrustStore und als Keystore + wird ein JavaKeyStore verwendet der die notwendigen Daten enthält + */ + + Security.addProvider(new Provider()); + System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol"); + System.setProperty(KEYSTORE, "client.keystore"); + System.setProperty(KEYSTOREPASSWORD, "changeit"); + System.setProperty(TRUSTSTORE, "client.keystore"); + System.setProperty(TRUSTSTOREPASSWORD, "changeit"); + + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream("example_request.xml"); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] {body}; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(SECURE_ENDPOINT); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // Ausgabe auf System.out zum Testen + OutputFormat format = new OutputFormat((Document)root_response); + + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + XMLSerializer serializer = new XMLSerializer (System.out, format); + serializer.asDOMSerializer(); + serializer.serialize(root_response); + + // Antwort verarbeiten + // ... + // ... + } + catch(Exception e) + { + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java b/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java new file mode 100644 index 000000000..26e0df9f1 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java @@ -0,0 +1,143 @@ +import java.io.FileInputStream; +import java.security.Security; +import java.util.Vector; + +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.rpc.Call; +import javax.xml.rpc.Service; +import javax.xml.rpc.ServiceFactory; + +import org.apache.axis.message.SOAPBodyElement; +import org.apache.xml.serialize.LineSeparator; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +import com.sun.net.ssl.internal.ssl.Provider; + +/** + * @author Sven + * + * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt.
+ * Die Datenübertragung erfolgt über eine sichere Verbindung (Serverauthentisierung) + */ +public class HTTPSClientExampleServerAuth { + + // SOAP Konstanten + // CreationServer + private static final QName SERVICE_QNAME = new QName("SignatureCreation"); + private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation"; + // Secure Endpoint + private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation"; + + /* + Secure Endpoint + dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden + um eine sichere Verbindung zum Server herzustellen + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureCreation"; + */ + + /* + VerificationService + wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine + Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit + ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine + sichere Verbindung) + + private static final QName SERVICE_QNAME = new QName("SignatureVerification"); + private static final String ENDPOINT = + "http://localhost:8080/moa-spss/services/SignatureVerification"; + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureVerification"; + */ + + // SSL Konstanten + public static final String HANDLER = "java.protocol.handler.pkgs"; + public static final String TRUSTSTORE = "javax.net.ssl.trustStore"; + public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword"; + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. + * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Serverauthentisierung. + * + * @param args wird nicht verwendet + */ + public static void main(String[] args) { + + try { + /* + Einrichten der SSL Verbindungseigenschaften + + Die Verbindung wird über SSL hergestellt, als TrustStore wird + ein JavaKeyStore verwendet der die notwendigen Daten enthält + */ + + Security.addProvider(new Provider()); + System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol"); + System.setProperty(TRUSTSTORE, "client.keystore"); + System.setProperty(TRUSTSTOREPASSWORD, "changeit"); + + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream("example_request.xml"); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] {body}; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(SECURE_ENDPOINT); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // Ausgabe auf System.out zum Testen + OutputFormat format = new OutputFormat((Document)root_response); + + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + XMLSerializer serializer = new XMLSerializer (System.out, format); + serializer.asDOMSerializer(); + serializer.serialize(root_response); + + // Antwort verarbeiten + // ... + // ... + } + catch(Exception e) + { + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/spss.server/doc/moa_spss/examples/testclient/client.keystore b/spss.server/doc/moa_spss/examples/testclient/client.keystore new file mode 100644 index 000000000..bdb6a5d14 Binary files /dev/null and b/spss.server/doc/moa_spss/examples/testclient/client.keystore differ diff --git a/spss.server/doc/moa_spss/examples/testclient/example_request.xml b/spss.server/doc/moa_spss/examples/testclient/example_request.xml new file mode 100644 index 000000000..6b8166d06 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/testclient/example_request.xml @@ -0,0 +1,19 @@ + + PKCS12RSAKey1 + + + + Testdaten + + + + + text/plain + + + + + + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/faqs.htm b/spss.server/doc/moa_spss/faqs.htm new file mode 100644 index 000000000..9c01f31ee --- /dev/null +++ b/spss.server/doc/moa_spss/faqs.htm @@ -0,0 +1,100 @@ + + + FAQs - Häufig gestellte Fragen + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
FAQs

+ +
+ +
+
FAQs - Häufig gestellte Fragen
+ +
+

Konflikt zwischen JDK 1.3.1 und IAIK JCE Provider

+

+Auf Grund einer mangelhaften Implementierung in einigen Versionen des JDK 1.3.1 kann es beim Betrieb von MOA zu folgendem Problem kommen: Sun macht in der Implementierung von PKCS7.getCertificate() einen Downcast vom Interface java.security.Principal auf die eigene Implementierung, was zu einer ClassCastException führt, wenn der JCE-Provider von Sun nicht an erster Stelle in der List der Security-Provider installiert ist. MOA geht nun aber so vor, dass der JCE-Provider des IAIK an die erste Stelle installiert wird, wenn er zum Zeitpunkt der Konfiguration noch nicht installiert war. Wird dann von irgendeinem ClassLoader der jar-Verifier angeworfen, wird PKCS7.getCertificate() verwendet, und es kommt zu einer ClassCastException. +

+

+Wird MOA über die API-Schnittstelle verwendet, ist ein Workaround die manuelle Installation des IAIK-JCE-Providers nach dem Sun JCE-Provider (etwa an die letzte Stelle), bevor die MOA-Konfiguration aufgerufen wird. Bei Verwendung der Webservices ist die Möglichkeit der statischen Konfiguration der JCE-Provider mittels Angabe in der Datei $JAVA_HOME/jre/lib/security/java.security der einzige bekannte Workaround. Hierzu müssen die Einträge +

+  security.provider.1=sun.security.provider.Sun
+  security.provider.2=com.sun.rsajca.Provider  
+
+durch folgenden Eintrag ergänzt werden: +
+  security.provider.3=iaik.security.provider.IAIK
+
+

+ +
+ + + + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/links.htm b/spss.server/doc/moa_spss/links.htm new file mode 100644 index 000000000..cd9888c30 --- /dev/null +++ b/spss.server/doc/moa_spss/links.htm @@ -0,0 +1,122 @@ + + + MOA Links + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
MOA Links

+ + + + +
+ +
+ +
+
MOA Links
+ +
+ + + + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/moa.htm b/spss.server/doc/moa_spss/moa.htm new file mode 100644 index 000000000..cd66138d1 --- /dev/null +++ b/spss.server/doc/moa_spss/moa.htm @@ -0,0 +1,177 @@ + + + MOA Module fuer Online Applikationen + + + + + + + + + +
+ + + + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + + + +
+
MOA-SP/SS

+
+ Allgemein
+ + + + + +
+ +
+
+
+
+ +
Allgemein
+

+Dieses Dokument enthält die Dokumentation für die Module

+
    +
  • MOA-SP (Signaturprüfung)
  • +
  • MOA-SS (Serversignatur).
  • +
+

+Diese Module können von An-wendungen verwendet werden um Signaturen zu erstellen +bzw. diese zu überprüfen. +

+Die Funktionalität und der Aufbau der Schnittstelle zu den Modulen ist in der +Spezifikation Version 1.1 detailliert beschrieben. Da +diese beiden Module auf der + +Spezifikation des Security-Layer (Version 1.1) aufbauen ist ein Verständnis dieser Spezifikation +ebenfalls erforderlich. +

+

+
+ +
+ + + +
+

 

+
+
+
+

Modul Signaturprüfung (MOA-SP)

+
+Das Modul Signaturprüfung dient zum Überprüfen von einfachen bzw. sicheren + +XML-Signaturen und +CMS-Signaturen. +Bei XML-Signaturen kann zusätzlich überprüft werden ob sie der +Security-Layer Spezifikation entsprechen. +

+Im Zuge der Prüfung werden sowohl die Signatur, optionale XMLDSig-Manifeste, +das optionale Signaturmanifest (siehe Security-Layer), als auch die Gültigkeit +und Anwendbarkeit des Zertifikats überprüft. +

+Anwendungen können das Modul entweder als Web-Service oder über +ein Java-API ansprechen. +
+
+

+ +
+ + + +
+

 

+
+ +
+
+

Modul Serversignatur (MOA-SS)

+
+Das Modul Serversignatur dient zum Erstellen von XML-Signaturen in Anlehnung an die + +Security-Layer Spezifikation. Die Signatur kann sowohl in Software +erstellt werden als auch mittels eines Hardware Security Moduls (HSM), das +den privaten Schlüssel enthält und die Signatur berechnet. +

+Der Zugriff auf einzelne Signaturschlüssel in MOA-SP kann basierend +auf dem für TLS-Client-Authentisierung verwendeten Zertifikat +eingeschränkt werden. +

+Anwendungen können das Modul entweder als Web-Service oder über +ein Java-API ansprechen. + +
+ +
+

+ + + + + + + +

+
+
© 2003
+
+
+ + +
+ + diff --git a/spss.server/doc/moa_spss/sp-admin.htm b/spss.server/doc/moa_spss/sp-admin.htm new file mode 100644 index 000000000..16990cee9 --- /dev/null +++ b/spss.server/doc/moa_spss/sp-admin.htm @@ -0,0 +1,300 @@ + + + MOA SP/SS-Administration + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
MOA-SP/SS

+
+ Übersicht
+ + + + +
+ +
+
+
MOA SP/SS-Administration
+

+Die Module Signaturprüfung (SP) und Serversignatur (SS) sind als plattformunabhängige Module ausgelegt, die entweder als Webservice über HTTP(S) oder als Klassenbibliothek über ein API angesprochen werden können. Für den Einsatz der Module als Klassenbibliothek wird eine Java Virtual Machine vorausgesetzt, für den Betrieb als Webservice wird zusätzlich ein Java Servlet Container benötigt. +

+Dieses Handbuch beschreibt die Installation und Konfiguration der MOA SP/SS-Module, sowohl als Webservice als auch als Klassenbibliothek, sowie die Einrichtung der Systemumgebung. Ein Großteil der Beschreibung bezieht sich auf beide Einsatzmöglichkeiten (als Webservice und als Klassenbibliothek); wo dies nicht der Fall ist, wird explizit zwischen MOA SP/SS Webservice und MOA SP/SS Klassenbibliothek unterschieden. +

+
+
+ + +
+ + + +
+

 

+
+

Übersicht

+
+Für den Einsatz der MOA SP/SS Module sind unterschiedliche Szenarien möglich, die unterschiedliche Möglichkeiten bieten und die Installation unterschiedlicher Software- und Hardware-Komponenten erfordern. Dieser Abschnitt gibt einen kurzen Überblick über die notwendige Basis-Installation und optionale weitere Konfigurationsmöglichkeiten. +
+
+
+ +
+ + + +
+

 

+
+
Basis-Installation (Webservice)
+

+Die Basis-Installation des Webservices stellt einerseits die minimalen Anforderungen für den Betrieb des MOA SP/SS Webservices dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten. Sie erlaubt bereits den uneingeschränkten Betrieb des MOA SP/SS Webservices. +

+Folgende Software ist Voraussetzung für die Basis-Installation des Webservices: +

+
    +
  • JDK 1.3.1 oder JDK 1.4.1
  • +
  • Tomcat 4.1.18
  • +
  • MOA SP/SS Webservice 1.0
  • +
+
+In diesem Betriebs-Szenario wird das MOA SP/SS Webservice in Tomcat zum Einsatz gebracht. Tomcat fungiert gleichzeitig als HTTP- und HTTPS-Endpunkt für das MOA SP/SS Webservice. Beide Protokolle werden direkt in Tomcat konfiguriert. +

+Das MOA SP/SS Webservice verwendet Log4j als Logging Toolkit. +

+Ausgehend von der Basis-Installation können die optionalen Konfigurationen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden. +
+
+
+ +
+ + + +
+

 

+
+
Basis-Installation (Klassenbibliothek)
+

+Die Basis-Installation der Klassenbibliothek stellt einerseits die minimalen Anforderungen für den Einsatz der MOA SP/SS Klassenbibliothek dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten. Sie erlaubt bereits den uneingeschränkten Einsatz der MOA SP/SS Klassenbibliothek. +

+Folgende Software ist Voraussetzung für die Basis-Installation der Klassenbibliothek: +

+
    +
  • JDK 1.3.1 oder JDK 1.4.1
  • +
  • MOA SP/SS Klassenbibliothek 1.0
  • +
+
+Die MOA SP/SS Klassenbibliothek verwendet Log4j als Logging Toolkit. +

+Ausgehend von der Basis-Installation können die optionalen Konfigurationen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden. +
+
+
+ +
+ + + +
+

 

+
+

Konfiguration mit vorgeschaltetem Webserver (optional)

+
+Dem MOA SP/SS Webservice kann optional ein Webserver vorgeschaltet sein. Unter Microsoft Windows ist das im Regelfall der Microsoft Internet Information Server (MS IIS), auf Unix-Systemen kommt üblicherweise der Apache Webserver zum Einsatz. +

+ Folgende Software ist unter Windows Voraussetzung: +
+
    +
  • MS IIS 5.0
  • +
  • Jakarta mod_jk 1.2.2
  • +
+
Folgende Software ist unter Unix/Linux Voraussetzung:
+
    +
  • Apache Webserver 2.0.x mit mod_SSL
  • +
  • Jakarta mod_jk 1.2.2
  • +
+
In diesem Fall übernimmt der vorgeschaltete Webserver die Funktion des HTTP- und HTTPS-Endpunktes. Beide Protokolle werden im Webserver konfiguriert. +

+Mittels mod_jk werden die Webservice-Aufrufe, die im vorgeschalteten Webserver eintreffen, an Tomcat weitergeleitet, bzw. die Antwort von Tomcat wieder an den Webserver zurückübermittelt. +
+
+
+ +
+ + + +
+

 

+
+

Konfiguration mit PostgreSQL (optional)

+
+Die MOA SP/SS Module können eine PostgreSQL Datenbank nutzen, um: +
+
    +
  • Certificate Revocation Lists (CRLs) zu cachen, und
  • +
  • Log-Meldungen zu speichern
  • +
+
Für den Zugriff auf PostgreSQL ist die Installation folgender Software Voraussetzung:
+
    +
  • PostgreSQL 7.3
  • +
+
+
+ +
+ + + +
+

 

+
+

Konfiguration mit HSM (optional)

+
+Die MOA SP/SS Module können mittels PKCS#11 auf Hardware Security Modules (HSMs) zugreifen. Sie wurden mit folgendem HSM getestet: +
+
    +
  • Eracom protectserver orange external
  • +
+
+

+ +
+ + + +
+

 

+
+

Zusammenfassung

+
+Notwendig für den Einsatz der MOA SP/SS Module ist eine Basis-installation des Webservices oder der Klassenbibliothek. Weitere optionale Konfigurationen können unabhängig und in beliebiger Kombination miteinander durchgeführt werden, um eine bessere Integration der Module in die vorhandene Betriebs- bzw. Applikations-Infrastruktur zu erreichen. +
+
+

+ + + +
+ + + +
+

 

+
+

Referenzierte Software

+
+Die Versionsangaben beziehen sich auf die Versionen, mit denen die MOA SP/SS Module entwickelt und getestet wurde. Geringfügig andere Software-Versionen stellen üblicherweise kein Problem dar. +
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KomponenteVersion
JDK 1.3.1 
JDK 1.4.1 
Tomcat 4.1.18 
MOA SP/SS Webservices 1.0.6 
Apache Webserver 1.3.x  
Apache Webserver 2.0.x  
Microsoft Internet Information Server 5.0  
mod_SSL (*) 
Jakarta mod_jk 1.2.2 
Jakarta Log4j 1.2.7 
PostgreSQL 7.3 
HSM (Eracom protectserver orange external) n/a 
+
+

+ +
+(*) passend zur Version des Apache Webservers +
+
+

+ + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/sp-admin_1.htm b/spss.server/doc/moa_spss/sp-admin_1.htm new file mode 100644 index 000000000..4c3d5c1fb --- /dev/null +++ b/spss.server/doc/moa_spss/sp-admin_1.htm @@ -0,0 +1,355 @@ + + + MOA SP/SS-Administration + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
MOA-SP/SS

+ +
+ Basis-Installation
    (Webservice)
+ + + +
+ +

+ +
+

Basis-Installation (Webservice)

+
+

Vorbereitung

+
+Installation des JDK
+Installieren Sie das JDK 1.3.1 oder JDK 1.4.1 in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der JDK-Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet. +

+Installation von Tomcat
+Installieren Sie Tomcat in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als $CATALINA_HOME bezeichnet. Hinweis: Tomcat wird in einer Distribution für JDKs ab Version 1.2 und in einer Distribution speziell für JDK 1.4 ausgeliefert. Installieren Sie die zur Version Ihres JDK passende Tomcat-Version. +

+Entpacken des MOA SP/SS Webservices
+Entpacken Sie die Datei moa-spss-1.0.x.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet. +

+Installation der IAIK JCE und JSSE im JDK 1.3.1
+Da Java in der Version 1.3.1 ohne Unterstützung für Kryptographie und SSL ausgeliefert wird, muss dies manuell nachträglich installiert werden. Für den Betrieb des MOA SP/SS Webservices ist es deshalb notwendig, die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext13 in das Verzeichnis $JAVA_HOME/jre/lib/ext zu kopieren. +

+Installation der IAIK JCE im JDK 1.4.1
+Um die mit MOA SP/SS ausgelieferte IAIK JCE im JDK 1.4.1 zu installieren, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext14 in das Verzeichnis $JAVA_HOME/lib/ext kopiert werden. Zusätzlich müssen die sogenannten "Unlimited Strength Jurisdiction Policy Files 1.4.1" heruntergeladen, entpackt und ins Verzeichnis $JAVA_HOME/jre/lib/security kopiert werden. Der Download für diese Dateien findet sich am unteren Ende der Download-Seite für das JDK 1.4.1 in der Sektion "Other Downloads". +

+
+
+ + +
+ + +
+

 

+
+

+
+
+

Konfiguration von Tomcat

+
+Minimale Konfiguration
+Die zentrale Konfigurations-Datei von Tomcat ist $CATALINA_HOME/conf/server.xml. Tomcat wird grundsätzlich mit einer funktionierenden Default-Konfiguration ausgeliefert, die jedoch einiges an Ballast enthält und viele Ports offen lässt. Die Datei $MOA_SPSS_INST/tomcat/server.xml enthält eine minimale Tomcat-Konfiguration, die ausschließlich den Connector für HTTP freischaltet. Durch kopieren dieser Datei nach $CATALINA_HOME/conf/server.xml kann Tomcat mit dieser Konfiguration gestartet werden.

+SSL
+Ein sicherer Betrieb des MOA SP/SS Webservices setzt voraus, dass für die Übertragung der Daten SSL verwendet wird. Das Dokument Tomcat SSL Configuration HOW-TO gibt einen guten Überblick über die Konfiguration von SSL in Tomcat. Da das JDK bereits im Abschnitt "Vorbereitung" auf SSL vorbereitet wurde, sind an dieser Stelle nur noch folgende Schritte notwendig: +
+
    +
  • Erstellung eines Server-Keystores, welches den privaten Schlüssel des Servers sowie das Server-Zertifikat enthält, z.B. mit dem Java Keytool.
  • +
  • Erstellung eines Keystores mit vertrauenswürdigen Client-Zertifikaten, z.B. mit dem Java Keytool (nur, wenn SSL Client-Authentisierung verwendet werden soll)
  • +
  • Konfiguration des SSL-Connectors in $CATALINA_HOME/conf/server.xml (optional mit Client-Authentisierung)
  • +
+
+Die Konfiguration von SSL im Tomcat kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, der die SSL-Kommunikation mit dem Aufrufer des Webservices übernimmt. +
+

+
+MOA Administrator
+Der Aufruf der URL für die dynamische Konfiguration des MOA SP/SS Webservices ist durch eine Passwort-Abfrage geschützt, und kann nur von Benutzern aufgerufen werden, die der Benutzer-Rolle moa-admin zugeordnet werden können.
+Um diese Benutzer-Rolle und einen oder mehrere Benutzer einzurichten, müssen in der Datei $CATALINA_HOME/conf/tomcat-users.xml unter dem Element <tomcat-users> sinngemäß folgende Einträge hinzugefügt werden: +
+<role rolename="moa-admin"/>
+<user username="moa" password="moa" roles="moa-admin"/>
+
+
+
+ +
+ + +
+

 

+
+

+
+
+

Deployment des MOA SP/SS Webservices in Tomcat

+
+Um das MOA SP/SS Webservice in Tomcat für den Ablauf vorzubereiten, sind folgende Schritte notwendig:
+
    +
  • Die Datei $MOA_SPSS_INST/moa-spss.war enthält das einsatzfertige MOA SP/SS Webarchiv und muss ins Verzeichnis Verzeichnis $CATALINA_HOME/webapps kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis $CATALINA_HOME/webapps/ moa-spss entpackt.
  • +
  • Die MOA SP/SS Konfigurationsdatei und zugehörige Profil-Verzeichnisse müssen in ein beliebiges Verzeichnis im Filesystem kopiert werden (z.B. $CATALINA_HOME/ conf/moa).
    In $MOA_SPSS_INST/conf befindet sich eine funktionsfähige Konfiguration, die als Ausgangspunkt für die Konfiguration des MOA SP/SS Webservices dienen kann.
  • +
  • Wird Tomcat unter JDK 1.3.1 betrieben, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/endorsed13 in das Tomcat-Verzeichnis $CATALINA_HOME/common/endorsed kopiert werden. Folgende Libraries sind für das Deployment im endorsed Verzeichnis vorgesehen: +
      +
    • Xerces-J-2.0.2 (bestehend aus xercesImpl.jar und xmlParserAPIs.jar).
    • +
    +Eventuell vorhandene Dateien mit dem gleichen Namen müssen ersetzt werden. +
  • +
  • Wird Tomcat unter JDK 1.4.1 betrieben, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/endorsed14 in das Tomcat-Verzeichnis $CATALINA_HOME/common/endorsed kopiert werden. Folgende Libraries sind für das Deployment im endorsed Verzeichnis vorgesehen: +
      +
    • Xalan-J-2.2.0 (bestehend aus xalan.jar.jar und bsf.jar).
    • +
    +Eventuell vorhandene Dateien mit dem gleichen Namen müssen ersetzt werden. +
  • +
  • Folgende Java System-Properties können optional gesetzt sein:
    +
      +
    • moa.spss.server.configuration=Name der MOA SP/SS Konfigurationsdatei. Eine beispielhafte MOA SP/SS Konfiguration ist in $MOA_SPSS_INST/conf/moa-spss/ MOA-SPSSConfiguration.xml enthalten. Ist diese System-Property nicht gesetzt, wird automatisch eine im Web-Archive unter WEB-INF/conf enthaltene Default-Konfiguration herangezogen.
    • +
    • log4j.configuration=URL der Log4j Konfigurationsdatei. Eine beispielhafte Log4j-Konfiguration ist in $MOA_SPSS_INST/conf/moa-spss/log4j.properties enthalten. Ist diese System-Property nicht gesetzt, wird automatisch eine im Web-Archive unter WEB-INF/classes enthaltene Default-Konfiguration herangezogen.
    • +
    • moa.node.id=Name des Rechner-Knotens, auf dem MOA SP/SS läuft. Der Name des Knotens wird bei Log-Ausgaben von MOA SP/SS angeführt und dient zur Unterscheidung mehrerer gleichzeitig betriebener MOA SP/SS Webservice-Instanzen. Der Name des Knotens ist frei wählbar.
    • +
    • javax.net.ssl.trustStore=Dateiname des Truststores für vertrauenswürdige SSL Client-Zertifikate (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Relative Dateinamen werden zum Verzeichnis, von dem Tomcat gestartet wird, aufgelöst.
    • +
    • javax.net.ssl.trustStorePassword=Passwort für den Truststore (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll).
    • +
    • javax.net.ssl.trustStoreType=Truststore-Typ (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Je nach verwendetem Keystore-Typ ist "jks" oder "pkcs12" üblich.
    • +
    +Diese Java System-Properties werden Tomcat über die Umgebungsvariable CATALINA_OPTS mitgeteilt. Die Dateien $MOA_SPSS_INST/tomcat/moa-env.bat und
    $MOA_SPSS_INST/tomcat/moa-env.sh enthalten Beispiele zum Setzen dieser Umgebungsvariablen unter Windows bzw. Unix/Linux. +
+
+
+ + + +
+ + +
+

 

+
+

+
+
+

Starten und Stoppen von Tomcat

+
+Nach dem Deployment und der Konfiguration kann Tomcat aus seinem Wurzelverzeichnis mit
+
+    bin\catalina start (unter Windows) oder 
+    bin/catalina.sh start (unter Unix/Linux) 
+
+gestartet werden. Das Stoppen von Tomcat erfolgt analog mit
+
+    bin\catalina stop  (unter Windows) oder 
+    bin/catalina.sh stop (unter Unix/Linux) 
+
+Ein erfolgreicher Startvorgang ist an folgender Log-Meldung ersichtlich:
+
+    INFO | 18 10:09:45,155 | main | TID=startup NID=<null> 
+      MSG=MOA Konfiguration erfolgreich geladen
+
+Bei leichten Fehlern in der Konfiguration geben WARN Log-Meldungen unmittelbar davor Aufschluss über fehlerhafte Konfigurations-Einträge. +

+Nach dem Starten von Tomcat steht das MOA SP/SS Webservice für die Server-Signatur und Signatur-Prüfung unter den Endpunkten +
+    http://host:port/moa-spss/services/SignatureCreation
+
+bzw. +
+    http://host:port/moa-spss/services/SignatureVerification
+
+zur Verfügung. Die Verfügbarkeit des Services kann einfach überprüft werden, indem der Endpunkt mit einem Web-Browser aufgerufen wird und zu einer Anzeige einer Informationsseite führt. +

+
+Dynamische Konfigurations-Updates können durch den Aufruf der URL http://host:port/moa-spss/ConfigurationUpdate (z.B. durch Eingabe in einem Browser) durchgeführt werden.
+Konnte das MOA-SPSS Webservice nicht ordnungsgemäß konfiguriert und gestartet werden, geht das aus der Log-Meldung hervor:
+
+    FATAL | 18 10:17:03,475 | main | TID=startup NID=<null> 
+      MSG=Fehler beim Lesen der MOA Konfiguration: 
+      das Service steht nicht zur Verfügung
+
+In diesem Fall geben die WARN bzw. ERROR Log-Meldungen unmittelbar davor Aufschluss über den genaueren Grund. +
+
+ + +
+ + +
+

 

+
+

+
+
+
+

Logging

+
+Das MOA SP/SS Webservice verwendet Jakarta Log4j für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsmöglichkeiten, die ausführlich im Log4j Handbuch beschrieben sind. Unter anderem gibt es die Möglichkeit, folgende Einstellungen vorzunehmen:
+
    +
  • Das verwendete Log-Level (DEBUG, INFO, WARN, ERROR, FATAL).
  • +
  • Name und maximale Größe der Log-Datei(en).
  • +
  • Das Aussehen der Log-Einträge.
  • +
+Das MOA-SPSS Webservice verwendet folgende Log-Hierarchien: +
+
    +
  • moa.spss.server für alle Log-Meldungen aus dem MOA-SPSS Webservice
  • +
  • iaik.server für alle Log-Meldungen aus den IAIK Kryptographie-Modulen
  • +
+
+Als Ausgangspunkt für die Logging-Konfiguration liegt die Datei $MOA_SPSS_INST/conf/moa-spss/log4j.properties bei. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Datei moa-spss.log geschrieben. +

+Format der Log-Meldungen
+Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erläutert: +
+    INFO | 01 21:25:26,540 | Thread-3 | 
+      TID=1049225059594-100 NID=node1 
+      MSG=Starte neue Transaktion: TID=1049225059594-100, 
+      Service=SignatureVerification
+
+ +Der Wert INFO besagt, dass die Log-Meldung im Log-Level INFO entstanden ist. Folgende Log-Levels existieren:
+
    +
  • DEBUG: Log-Meldungen im Log-Level DEBUG geben Auskunft über die innere Arbeitsweise des Systems. Sie sind hauptsächlich für Entwickler interessant.
  • +
  • INFO: Diese Log-Meldungen geben Status-Informationen über den Ablauf des Webservices, wie z.B., dass eine neue Anfrage eingelangt ist.
  • +
  • WARN: Bei der Ausführung einer Operation sind leichte Fehler aufgetreten. Der Ablauf des Webservices ist nicht weiter beeinträchtigt.
  • +
  • ERROR: Die Ausführung einer Operation musste abgebrochen werden. Das Webservice ist davon nicht beeinträchtigt.
  • +
  • FATAL: Es ist ein Fehler aufgetreten, der den weiteren Betrieb des Webservices nicht mehr erlaubt.
  • +
+Der nächste Wert "01 21:25:26,540", gibt den Zeitpunkt an, an dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit).
+Der Wert Thread-3 bezeichnet den Tomcat Worker-Thread, von dem die Anfrage bearbeitet wird.
+Der Wert von TID gibt die für jede Anfrage eindeutige Transaktions-ID an. Log-Meldungen, die bei der Abarbeitung dieser Anfrage geschrieben werden, enthalten alle einen Hinweis auf die entsprechende Transaktions-ID.
+Der Wert von NID gibt den Rechner-Knoten an, auf dem das MOA SP/SS Webservice läuft (bei NID=<null> ist dieser Wert nicht konfiguriert).
+Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist häufig ein Java Stack-Trace angefügt, der eine genauere Ursachen-Forschung ermöglicht. +

+ + +Wichtige Log-Meldungen
+Neben den im Abschnitt "Starten und Stoppen von Tomcat" beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgemäß gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss über die Abarbeitung von Anfragen. Die Entgegennahme einer Anfrage wird angezeigt durch: +
+
+    INFO | 01 21:25:26,540 | Thread-3 | 
+      TID=1049225059594-100 NID=<null> 
+      MSG=Starte neue Transaktion: TID=1049225059594-100, 
+      Service=SignatureVerification
+    INFO | 01 21:25:26,540 | Thread-3 | 
+      TID=1049225059594-100 NID=<null> 
+      MSG=Aufruf von Adresse=127.0.0.1
+    INFO | 01 21:25:26,540 | Thread-3 | 
+      TID=1049225059594-100 NID=<null> 
+      MSG=Client-Zertifikat nicht verfügbar
+
+ +
+Die 3. Log-Meldung besagt, dass für die Abarbeitung dieser Anfrage kein Client-Zertifikat verfügbar ist (entweder, weil die Anfrage über HTTP eingelangt ist, oder weil die SSL Client-Authentisierung nicht eingeschaltet ist). Bei erfolgreicher SSL Client-Authentisierung, gibt beispielsweise folgende Log-Meldung Informationen über das Client-Zertifikat aus: +
+
+    INFO | 12 13:58:08,772 | Thread-10 | 
+      TID=1045054687159-2 NID=<null> 
+      MSG=Client-Zertifikat: Subject=CN=Testuser, 
+      OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT, 
+      Serial=1.039.104.204, 
+      Issuer=CN=TestCA, OU=MOA, O=BRZ, L=Vienna, 
+      ST=Vienna, C=AT
+
+ +Eine erfolgreich abgearbeitete Anfrage wird angezeigt durch: + +
+    INFO | 01 21:25:53,168 | Thread-3 | 
+      TID=1049225059594-106 NID=<null> 
+      MSG=Anfrage erfolgreich abgearbeitet
+
+ +Ein Fehler beim Abarbeiten der Anfrage wird angezeigt durch:
+
+    INFO | 01 21:25:27,642 | Thread-3 | 
+      TID=1049225059594-100 NID=<null> 
+      MSG=Fehler beim Abarbeiten der Anfrage
+
+
+In diesem Fall gibt der mitgeloggte Stacktrace Auskunft über die Art des Fehlers. Der Aufrufer des MOA SP/SS Webservices bekommt einen Fehlercode sowie eine kurze Beschreibung des Fehlers als Antwort zurück. +

+Die Tatsächlich übertragenen Anfragen bzw. Antworten werden aus Effizienzgründen nur im Log-Level DEBUG angezeigt. +
+
+

+ + + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/sp-admin_2.htm b/spss.server/doc/moa_spss/sp-admin_2.htm new file mode 100644 index 000000000..147a8ba9c --- /dev/null +++ b/spss.server/doc/moa_spss/sp-admin_2.htm @@ -0,0 +1,536 @@ + + + MOA SP/SS-Administration + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
MOA-SP/SS

+ + + +
+ Konfiguration
+ +
+ +

+ + +
+
Konfiguration der SP/SS-Module
+ +
+

SP/SS-Konfigurationsdatei

+

+Die Konfiguration von MOA SP/SS wird mittels einer XML-basierten Konfigurationsdatei, die dem Schema MOA-SPSS-Configuration-1.0.xsd entspricht, durchgeführt. +

+Der Ort der Konfigurationsdatei wird im Abschnitt Deployment der Web-Applikation in Tomcat beschrieben. +

+Die folgenden Abschnitte erläutern das Format der Konfigurationsdatei. +MOA-SPSSConfiguration.xml zeigt ein Beispiel +für eine umfassende Konfigurationsdatei. +

+Enthält die Konfigurationsdatei relative Pfadangaben, werden diese relativ zum Verzeichnis, in dem die Konfigurationsdatei +gespeichert ist, interpretiert. + +
+

+CanonicalizationAlgorithm
+Als Inhalt des Elements CanonicalizationAlgorithm kann der Kanonisierungs-Algorithmus, der für das Erstellen von XML Signaturen verwendet werden soll und in der Signatur als Inhalt von /dsig:Signature/dsig:SignedInfo/dsig:CanonicalizationMethod aufscheint, spezifiziert werden. +

+Gültige Werte:
+http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
+http://www.w3.org/2001/10/xml-exc-c14n#
+http://www.w3.org/2001/10/xml-exc-c14n#WithComments
+
+
+Default-Wert:
http://www.w3.org/TR/2001/REC-xml-c14n-20010315 +

+

+ +
+

+DigestMethodAlgorithm
+Als Inhalt des Elements DigestMethodAlgorithm kann der Digest-Algorithmus spe­zi­fi­ziert werden, der in der Signatur als Inhalt von dsig:Reference/dsig:DigestMethod aufscheint. +

+Gültige Werte:
http://www.w3.org/2000/09/xmldsig#sha1 +

+Default-Wert:
http://www.w3.org/2000/09/xmldsig#sha1 +

+

+ +
+

+GenericConfiguration
+Das Element GenericConfiguration ermöglicht das Setzen von Namen-Werte Paaren mittels der Attribute name und value. Die folgende Liste spezifiziert +

    +
  • gültige Werte für das name-Attribut,
  • +
  • eine Beschreibung
  • +
  • gültige Werte für das value-Attribut und
  • +
  • den Default-Wert für das value-Attribut.
  • +
+ + + + +
name: autoAddCertificate
+Gibt an, ob Zertifikate, die in der Signtur enthalten sind bzw. bei der Zertifikatspfaderstellung verwendet werden, +automatisch im Zertifikatsspeicher +(siehe Parameter DirectoryCertStoreParameters.RootDir) +gespeichert werden sollen (siehe auch Parameter +useAuthorityInfoAccess).
+
+value:
+Gültige Werte: true/false
+Default-Wert: true +
+ + + +
name: DirectoryCertStoreParameters.RootDir
+Gibt den Pfadnamen zum Verzeichnis an, das als Zertifikatsspeicher verwendet wird.
+
+value:
+Gültige Werte: Name eines Verzeichnisses, das Verzeichnis muss noch nicht existieren
+Default-Wert: certstore +
+ + + + +
name: useAuthorityInfoAccess
+Gibt an, ob die Zertifikatserweiterung AuthorityInformationAccess für die Zertifikatspfaderstellung verwendet +werden soll. Wird der Wert auf true gesetzt, dann setzt MOA auch autoAddCertificate automatisch +auf true und ignoriert den Wert aus der Konfigurationsdatei.
+
+value:
+Gültige Werte: true/false
+Default-Wert: true +
+ + + + +
name: checkRevocation
+Gibt ab, ob bei der Zertifikatsüberprüfung auch der Zertifikatsstatus überprüft werden soll. Der Zertifikatsstatus +wird mittels Certificate Revocation Lists (CRL) überprüft.
+
+value:
+Gültige Werte: true/false
+Default-Wert: false +
+ + + + +
name: maxRevocationAge
+Wenn der Zertifikatsstatus überprüft werden soll (siehe Parameter checkRevocation), +gibt dieser Parameter an, wann eine aktuelle Revozierungsinformation (CRL) geladen werden soll.
+
+value:
+Gültige Werte: +
    +
  • negativer Wert: bei jedem Zugriff auf Revozierungsinformation wird eine aktuelle Revozierungsinformation geladen
  • +
  • 0: eine neue Revozierungsinformation wird zu dem Zeitpunkt geladen, der im nextUpdate-Feld der CRL spezifiziert ist
  • +
  • positiver Wert: Zeitspanne in Millisekunden, die eine Revozierungsinformation ohne neuerliche Abfrage verwendet werden darf
  • +
+Default-Wert: 0 +
+ + + +
name: archiveRevocationInfo
+Gibt an, ob Revozierungsinformation archiviert werden soll +(siehe auch Parameter DataBaseArchiveParameter.JDBCUrl). +
+
+value:
+Gültige Werte: true/false
+Default-Wert: false +
+ + + + +
name: DataBaseArchiveParameter.JDBCUrl
+Gibt eine JDBC-URL zur Datenbank an, in der Revozierungsinformation archiviert werden soll. Wird dieser +Parameter nicht gesetzt, dann wertet MOA den Parameter archiveRevocationInfo nicht aus der Konfigurationsdatei +aus sondern setzt den Wert automatisch auf false. +
+Der genaue Aufbau der JDBC-URL ist abhängig von der verwendeten Datenbank. Im Fall von PostgreSQL kann folgende +URL verwendet werden: jdbc:postgresql://host/moadb?user=moauser&amp;password=moapassword wobei +host, moadb, moauser und moapassword an die tatsächlich verwendete Datenbank angepasst werden muss.
+Die Verwendung von "&amp" ist erforderlich, da "&" einen Fehler bei der Validierung der +Konfigurationsdatei verursacht. +
+Die Archivdaten werden nur MOA-SPSS-intern benötigt und das Format ist daher für den Betrieb des Servers nicht relevant. +
+value:
Gültige Werte: String +
+ +

+ +
+

+HardwareKeyModule
+Mittels dieses Elements werden Hardware-Key-Module konfiguriert. HardwareKeyModule hat vier Attribute: +

+ + + + + + + + + + + + + + + + + + +
Attribut-NameAttribut-TypBeschreibung
idtokeneine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert.
namestringder Name des PKCS#11-Moduls; der Name enthält den Dateinamen der DLL (Windows) oder der Shared-Library +(Unix), die das PKCS#11-Modul implementiert; der Wert enthält entweder einen Dateinamen mit absoluter Pfadangabe bzw. +einen Dateinamen ohne Pfadangabe. Im letzteren Fall wird der Dateiname relativ zum Suchpfad des Betriebssystems +interpretiert.
slotIDstringein spezifischer Slot des PKCS#11 HW Moduls; das Attribut ist optional, wird keine slotID spezifiziert, dann selektiert MOA SP/SS einen Slot für die Signaturerstellung.
userPINstringder PIN für die Aktivierung des privaten Schlüssels
+

+ +
+

+SoftwareKeyModule
+Mittels dieses Elements werden Software-Key-Module in Form von PKCS#12-Dateien konfiguriert. SoftwareKeyModule hat drei Attribute: +

+ + + + + + + + + + + + + + +
Attribut-NameAttribut-TypBeschreibung
idtokeneine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert.
filenamestringder Dateiname der PKCS#12-Datei; das Attribut enthält entweder einen absoluten Pfadnamen oder einen +Pfadnamen relativ zur MOA SP/SS Konfigurationsdatei.
passwordstringdas Passwort zur Aktivierung des privaten Schlüssels in der PKCS#12-Datei
+

+ +
+

+KeyGroup
+Eine KeyGroup ist eine Zusammenfassung mehreren Keys in eine Gruppe. Der durch das Attribut id definierte Bezeichner +dieser KeyGroup wird im CreateXMLSignatureRequest im Element KeyIdentifier verwendet. MOA-SS wählt einen Schlüssel +aus der KeyGroup für die Signaturerstellung aus. Durch die Zusammenfassung mehrere Schlüssel in eine Gruppe +kann die Verfügbarkeit und der Durchsatz der Signaturerstellung erhöht werden.
+Das Kind-Element Key identifiziert einen privaten Schlüssel. +Ein Schlüssel wird durch das Element KeyModuleID (siehe z.B. SoftwareKeyModule/@id), Issuer +und Seriennummer des zum Schlüssel gehörigen Zertifikats im Element KeyCertIssuerSerial bezeichnet. +

+Die Konfiguration des Elements Key erfolgt in einem 2-stufigen Prozess:
+

    +
  1. Zuerst werden die verwendeten PKCS#12-Dateien und PKCS#11-Module als Elemente HardwareKeyModule und SoftwareKeyModule in der Konfigurationsdatei erfasst
  2. +
  3. Beim Starten des MOA SP/SS-Servers werden die verfügbaren Schlüssel im Log-File aufgelistet: +

    +
    INFO | 10 12:56:43,023 | main |
    +       Key ID=SWKeyModule1;
    +       CN=IAIK Test CA,OU=IAIK Test CA,
    +       OU=Insitute for Applied Information
    +       Processing and Communications,
    +       O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT;
    +       1044289238331
    +INFO | 10 12:56:43,023 | main |
    +       Key ID=SWKeyModule2;
    +       CN=IAIK Test CA,OU=IAIK Test CA,
    +       OU=Insitute for Applied Information
    +       Processing and Communications,
    +       O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT;
    +       1044289238331
    +INFO | 10 12:56:43,023 | main |
    +       Key ID=SWKeyModule3;
    +       CN=IAIK ECDSA Test,OU=JavaSecurity,O=IAIK,C=AT;
    +       68172
    +INFO | 10 12:56:43,023 | main |
    +       Key ID=SWKeyModule4;
    +       CN=IAIK DSA Test CA,OU=JavaSecurity,O=IAIK,C=AT;
    +       761791
    +
  4. +
  5. Für jeden verfügbaren Schlüssel werden die Inhalte der Elemente Key/KeyModuleID, Key/KeyCertIssuerSerial/X509IssuerName und Key/KeyCertIssuerSerial/X509SerialNumber dem Log-File entnommen und in die Konfigurationsdatei eingetragen
  6. +
  7. Nach einem neuerlichen Start von MOA SP/SS stehen die Key-Definitionen zur Verfügung
  8. +
+

+

Sind die zu den zu konfigurierenden Schlüsseln zugehörigen Zertifikate bekannt, +kann alternativ die Konfiguration in einem Schritt erfolgen, indem +die benötigten Informationen mit dem Skript certtool -info <certfilename> aus dem Zertifikat gelesen werden. +<certfilename> bezeichnet den Dateinamen eines X.509 Zertifikates in DER-Kodierung. +

+certtool ist im Verzeichnis $MOA_SPSS_INST/tools abgelegt.

+ +
+

+KeyGroupMapping
+Das Element KeyGroupMapping ordnet einem Client von MOA SS die ihm zur Verfügung stehenden KeyGroups zu, indem das +den Client repräsentierende TLS Client-Zertifikat (Element X509IssuerSerial) mit einer oder mehreren KeyGroups +assoziiert wird.

+Enthält das Element KeyGroupMapping kein Element X509IssuerSerial, dann können die in diesem Element definierten +KeyGroups von jedem Client (auch ohne TLS Client Authentisierung) verwendet werden. +

+ +
+

+ChainingModes
+Das Element ChainingModes definiert, ob bei der Zertifikatspfadüberprüfung das Kettenmodell ("chaining") oder das Modell nach PKIX RFC 3280 ("pkix") verwendet werden soll. +

+Das Attribut systemDefaultMode spezifiziert das Modell, das im Standardfall verwendet werden soll. +Mit dem Kind-Element TrustAnchor kann für jeden Trust Anchor ein abweichendes Modell spezifiziert werden. +Ein Trust Anchor ist ein Zertifikat, das im TrustProfile spezifiziert ist (Erklärung siehe +TrustProfile). +Ein Trust Anchor wird durch den Typ dsig:X509IssuerSerialType spezifiziert. +Das für diesen Trust Anchor gültige Modell wird durch das Attribut mode spezifiziert. +

+Gültige Werte für die Attribute systemDefaultMode und mode sind "chaining" und "pkix". +

+ +
+

+CRLArchive
+Im Attribut duration wird spezifiziert, wie lange (in Tagen) gecachte CRLs archiviert werden müssen. +

+ +
+

+CRLDistributionPoint
+Das Element CRLDistributionPoint dient zum Spezifizieren von URLs, die auf CRLs von CAs (Zertifikatsaussteller) verweisen.

+Eine CA wird über das Element CAIssuerDN identifiziert, das den Issuer-DN der CA als String enthält. CRLDistributionPoint kann +das Element DistributionPoint einmal oder mehrmals enthalten. Das Element DistributionPoint hat zwei Attribute:
+

    +
  • der Wert des Attributs uri enthält den CRL Distribution Point; es werden die Protokolle HTTP, HTTPS und LDAP +unterstützt.
  • +
  • der Wert des optionalen Attributs reasonCodes (vom Typ NMTOKENS) enthält eine Liste von Reason Codes +(nach RFC 3280). Die über uri referenzierte CRL enthält nur CRL Einträge mit den spezifizierten Reason Codes. +Wird der Wert dieses Attributs nicht gesetzt dann kann die CRL Einträge mit allen reason codes enthalten.
    +Gültige Werte:
    +unspecified, keyCompromise, cACompromise, affiliationChanged, superseded, +cessationOfOperation, certificateHold, removeFromCRL, privilegeWithdrawn, aACompromise
  • +
+

+ +
+

+CreateSignatureEnvironmentProfile
+CreateTransformsInfoProfile
+VerifyTransformsInfoProfile
+SupplementProfile

+Jedes dieser Elemente enthält das Attribut id und das Attribut filename. Das Attribut id bezeichnet das Profil +wie es im CreateXMLSignatureRequest bzw. VerifyXMLSignatureRequest tatsächlich referenziert wird. + Das Attribut filename bezeichnet die Datei, die die +entsprechenden Elemente gemäß MOA SP/SS Schemas [MOA SP/SS Schema] beinhaltet. Die Datei beinhaltet wohlgeformtes +XML mit genau einem Element als Dokumentelement. +

+Die folgende Tabelle bezeichnet jene Elemente, die in den Dateien als Dokumentelement verwendet werden müssen: +

+ + + + + + + + + + + + + + +
ProfilnameWurzelelement
CreateSignatureEnvironmentProfileCreateSignatureEnvironmentProfile
CreateTransformsInfoProfileCreateTransformsInfoProfile
VerifyTransformsInfoProfileVerifyTransformsInfoProfile
SupplementProfileSupplementProfile
+ +

+

+ +
+

+TrustProfile
+Ein TrustProfile enthält Zertifikate, die als vertrauenswürdig betrachtet werden. Vertrauenswürdige Zertifikate können +selbst-signierte Wurzel-Zertifikate, Zertifikate von Zwischen CAs oder End-Entity Zertifikate sein. Für die +erfolgreiche Überprüfung eines Zertifikats muss (unter anderem) ein Zertifikatspfad zu einem Zertifikat aufgebaut +werden können, das in jenem Trustprofile enthalten ist, welches im Verify-Request bezeichnet ist.
+
+TrustProfile enthält zwei Attribute: +

    +
  • Das Attribut id spezifiziert die TrustProfileID wie sie im Message-Format von MOA-SP referenziert wird
  • +
  • Das Attribut uri spezifiziert eine URL, die ein Verzeichnis im lokalen Dateisystem referenziert +(nur das Schema file wird unterstützt). Alle für diese TrustProfileID vertrauenswürdigen +Zertifikate werden in diesem Verzeichnis gespeichert.
  • +
+

+ +
+

+ + +
+ + + +
+

 

+
+
+Beispiele +MinimalSPConfig.xml +



+


+Beispiele +MinimalSSConfig.xml +
+
+

Minimale Konfigurations-Dateien

+ +
+MOA-SP
+Wird nur die Signaturprüfungs-Funktion von MOA-SP/SS verwendet, dann muss die Konfigurationsdatei zumindest folgende Elemente enthalten:
+
    +
  • ein Element TrustProfile
  • +
+
+ +
+MOA-SS
+Wird nur die Server-Signatur-Funktion von MOA-SP/SS verwendet, dann muss die Konfigurationsdatei zumindest folgende Elemente enthalten:
+
    +
  • ein Element HardwareKeyModule oder SoftwareKeyModule
  • +
  • ein Element KeyGroup mit einem Kind-Element Key
  • +
  • ein Element KeyGroupMapping mit einem Kind-Element
    KeyGroup
  • +
+
+ +
+

+ + +
+ + + +
+

 

+
+

+
+
+

Änderung der Konfiguration während des Betriebs

+
+Der Inhalt dieser Konfiguration, bzw. jene Teile, auf die indirekt verwiesen wird (z.B. die Dateien, die die +Transformations-Profile enthalten), können während des laufenden Betriebes des MOA-Servers geändert werden. Der +Server selbst wird durch den Aufruf einer URL im Applikationskontext von MOA SP/SS +(siehe ConfigurationUpdate) +dazu veranlasst, die geänderte Konfigurati-on neu einzulesen. Im Falle einer fehlerhaften neuen Konfiguration +wird die ursprüngliche Konfiguration beibehalten. +

+
+
+

+ + + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/sp-admin_3.htm b/spss.server/doc/moa_spss/sp-admin_3.htm new file mode 100644 index 000000000..2e8152abf --- /dev/null +++ b/spss.server/doc/moa_spss/sp-admin_3.htm @@ -0,0 +1,237 @@ + + + MOA SP/SS-Administration + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
+
MOA-SP/SS

+ + + + +
+ Optionale
    Komponenten
+
+ +
+
+Optionale
Komponenten

+IIS
+Apache
+HSM
+PostgreSQL
+
+
+

Konfiguration der optionalen Komponenten

+

Konfiguration des Microsoft Internet Information Server (optional)

+
+Den MOA SP/SS Webservices kann optional ein MS IIS vorgeschaltet sein. In diesem Fall übernimmt der MS IIS die HTTP- bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat deployten Webservice wird durch Jakarta mod_jk durchgeführt. Die angeführten Konfigurationsschritte gehen von einer MS IIS Standard-Installation aus.

+Konfiguration von Jakarta mod_jk im MS IIS
+Für die Kommunikation des MS IIS mit dem im Tomcat deployten Webservice wird das ISAPI-Modul von Jakarta mod_jk im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das mod_jk IIS HowTo. Beispiele für workers.properties und uriworkermap.properties Dateien liegen im Verzeichnis $MOA_SPSS_INST/tomcat bei. +

+Konfiguration von Tomcat
+Damit Tomcat die Aufrufe, die von MS IIS mittels Jakarta mod_jk weiterleitet, entgegennehmen kann, muss in $CATALINA_HOME/conf/server.xml der AJP 1.3 Connector aktiviert werden. Im Gegenzug können die Connectoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch Ein- bzw. Auskommentieren der entsprechenden Connector Konfigurations-Elemente in dieser Datei. Die Datei $MOA_SPSS_INST/tomcat/server.mod_jk.xml enthält eine Konfiguration, die ausschließlich den Port für den mod_jk Connector offen lässt. +

+
+
+Konfiguration von SSL
+Die Dokumentation zum Einrichten von SSL auf dem MS IIS steht nach Installation des IIS unter http://localhost/iisHelp/ bzw. online zur Verfügung. +
+
+

+ + +
+ + + +
+

 

+
+

+
+
+

Konfiguration des Apache Webservers (optional)

+
+Den MOA SP/SS Webservices kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird Jakarta mod_jk für die Kommunikation zwischen Webserver und Tomcat eingesetzt. Die angeführten Konfigurationsschritte gehen von einer Standard-Installation des Apache Webservers aus und sind ident für die Versionen 1.3.x und 2.0.x. +

+Konfiguration von Jakarta mod_jk im Apache Webserver
+ Um das MOA-SPSS Webservice hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls mod_jk erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das mod_jk Apache HowTo. Ein Beispiel für eine workers.properties Datei liegt im Verzeichnis $MOA_SPSS_INST/tomcat bei.
+Um das MOA SP/SS Webservice dem Apache Webserver bekannt zu machen, sind zumindest folgende Einträge im globalen Kontext der Apache-Konfigurationsdatei notwendig: +
+    LoadModule jk_module /usr/lib/apache/mod_jk.so
+    AddModule jk_module
+    JkOptions +ForwardKeySize +ForwardURICompat
+              -ForwardDirectories
+    JkWorkersFile conf/workers.properties    
+    JkMount /moa-spss/* moaworker    
+
+ +Die Pfad- und Dateinamen können je nach existierender Apache Installation geringfügig variieren. + +

+Konfiguration von Tomcat
+Die Konfiguration von Tomcat ist analog wie im Abschnitt über den MS IIS durchzuführen. +

+ +Konfiguration von SSL mit mod_SSL
+Apache kann in Verbindung mit mod_SSL als SSL-Endpunkt für das MOA SP/SS Webservice fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via mod_jk austauschen. Eine detaillierte Installations- und Konfigurationsanleitung von mod_SSL gibt die Online-Dokumentation. +

+Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass mod_ssl die HTTP-Header mit den Informationen über das Client-Zertifikat exportiert. Dies wird durch Angabe der Option
+
+    SSLOptions +ExportCertData +StdEnvVars
+
+in der Apache-Konfiguration erreicht. Je nach vorhandener SSL-Konfiguration des Apache Webservers kann diese Option im globalen Kontext, im Kontext des Virtual Hosts oder im Kontexts eines Verzeichnisses spezifiziert werden.
+ +
+
+

+ + +
+ + + +
+

 

+
+

+
+
+

HSM, am Beispiel Eracom protectserver orange external (optional)

+
+Eracom protectserver orange external wird gemäß der Installationsanleitung installiert. +

+Die Bibliotheken in $MOA_SPSS_INST/pkcs11 müssen anschließend in den Library-Pfad +des jeweiligen Betriebssystems kopiert werden (Windows 2000: ein Verzeichnis, das +in der Umgebungsvariablen PATH vorhanden ist; Linux: ein Verzeichnis, das in der +Umgebungsvariablen LD_LIBRARY_PATH vorhanden ist). Der Name der PKCS#11-Bibliothek +wird als Wert des Attributs +/MOAConfiguration/HardwareKeyModule/@name in der +Konfigurationsdatei verwendet. +
+

+

+
+ + +
+ + + +
+

 

+
+

Konfiguration von PostgreSQL (optional)

+
+Die MOA SP/SS Module können PostgreSQL zum Zwischenspeichern von Certificate Revocation Lists (CRLs) und zum Abspeichern von Log-Meldungen verwenden. In beiden Fällen wird eine installierte und konfigurierte Datenbank vorausgesetzt. Eine detaillierte Übersicht über die Installation und Konfiguration von PostgreSQL gibt die Online-Dokumentation. Hinweis: Eine Möglichkeit, PostgreSQL unter MS Windows zu installieren, besteht darin, Cygwin mit dem PostgreSQL-Package zu installieren. Alternative Installationsvarianten werden auf dieser Seite angeführt.

+Anlegen eines Benutzers und einer Datenbank für MOA
+Damit die MOA SP/SS Module eine Verbindung zu PostgreSQL aufbauen kann, müssen der Name eines PostgreSQL-Benutzers und einer -Datenbank bekannt sein. Sollten diese nicht vorhanden sein, kann mit folgenden Kommandos ein Benutzer namens moa und eine Datenbank namens moadb angelegt werden:
+
+    createuser -U postgres -d -A -P moa
+    createdb -U moa moadb
+
+ +Da die MOA SP/SS Module über JDBC mit der Datenbank kommunizieren, ist in der Folge die Angabe einer JDBC-URL notwendig, die die Verbindungsparameter enthält. Wurden der Benutzer und die Datenbank wie im obigen Beispiel angelegt, ist folgende JDBC-URL anzugeben (durchgeschrieben, in einer Zeile): +
+    jdbc:postgresql://host/moadb?user=moa&
+      password=moapass
+
+(Annahme: als Passwort für den Benutzer moa wurde moapass gewählt). +Die Zeichen jdbc:postgresql:// sind unveränderliche Bestandteile einer PostgreSQL JDBC-URL. host gibt den Rechner an, auf dem PostgreSQL läuft. Der nächste Parameter (moadb) identifiziert den Namen der Datenbank. Über die Parameter user= und pass= werden Benutzer und Passwort bekanntgegeben. + + +

+ +Caching von CRLs
+Zum Cachen von CRLs müssen in der MOA SP/SS Konfigurationsdatei die Einträge archiveRevocationInfo auf true und DataBaseArchiveParameter.JDBCUrl auf eine gültige JDBC-URL gesetzt werden. Da es sich hier um einen Eintrag in eine XML-Datei handelt, muss das Zeichen "&" in der oben gezeigten JDBC-URL durch die Zeichenfolge "&amp;" ersetzt werden. +

+Logging
+Für das Logging in eine PostgreSQL Datenbank mittels Jakarta Log4j muss zunächst eine Tabelle für die Log-Meldungen angelegt werden. Dies kann mit folgendem SQL-Statement erreicht werden: +
+    create table spss_log 
+      (log_time timestamp, 
+       log_level varchar(5), 
+       log_msg text);
+
+Um das Logging in die Datenbank Log4j bekannt zu machen, muss die Log4j-Konfiguration adaptiert werden. Die Datei $MOA_SPSS_INST/conf/moa-spss/log4j.properties enthält bereits eine beispielhafte Jakarta Log4j-Konfiguration für das Logging in eine PostgreSQL Datenbank, die standardmäßig ausgeschaltet ist. Wie beim Caching von CRLs ist auch hier die Angabe einer JDBC-URL notwendig, damit die MOA SP/SS Module eine Verbindung zur Datenbank aufnehmen können.
+Hinweis: Bei Tests hat sich das Logging in eine Datenbank mit Jakarta Log4j als Performance-Engpass herausgestellt. Es wird deshalb empfohlen, auf dieses Feature zu verzichten. +

+
+ +
+

+ + + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/sp-admin_4.htm b/spss.server/doc/moa_spss/sp-admin_4.htm new file mode 100644 index 000000000..45aba4695 --- /dev/null +++ b/spss.server/doc/moa_spss/sp-admin_4.htm @@ -0,0 +1,183 @@ + + + MOA SP/SS-Administration + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
MOA-SP/SS

+ + +
+ Basis-Installation
    (Klassenbibliothek)
+ + +
+ +

+
+Installationsschritte: +

+Vorbereitung
+Klassenpfad
+Logging
+
+
+

Basis-Installation (Klassenbibliothek)

+
+

Vorbereitung

+
+Installation des JDK
+Installieren Sie das JDK 1.3.1 oder JDK 1.4.1 in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der JDK-Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet. +

+Entpacken der MOA SP/SS Klassenbibliothek
+Entpacken Sie die Datei moa-spss-1.0.x-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet. +

+Installation der IAIK JCE und JSSE im JDK 1.3.1
+Da Java in der Version 1.3.1 ohne Unterstützung für Kryptographie und SSL ausgeliefert wird, muss dies manuell nachträglich installiert werden. Für den Einsatz der MOA SP/SS Klassenbibliothek ist es deshalb notwendig, die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext13 in das Verzeichnis $JAVA_HOME/jre/lib/ext zu kopieren. +

+Installation der IAIK JCE im JDK 1.4.1
+Um die mit MOA SP/SS ausgelieferte IAIK JCE im JDK 1.4.1 zu installieren, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext14 in das Verzeichnis $JAVA_HOME/lib/ext kopiert werden. Zusätzlich müssen die sogenannten "Unlimited Strength Jurisdiction Policy Files 1.4.1" heruntergeladen, entpackt und ins Verzeichnis $JAVA_HOME/jre/lib/security kopiert werden. Der Download für diese Dateien findet sich am unteren Ende der Download-Seite für das JDK 1.4.1 in der Sektion "Other Downloads". +

+
+
+ + + +
+
+
+

 

+
+

+
+
+

Einbinden der Bibliotheken in den Klassenpfad

+
+Um die MOA SP/SS Klassenbibliothek in einer Applikation verwenden zu können, müssen die mit MOA SP/SS ausgelieferten Klassenbibliotheken in den Java Klassenpfad der Applikation eingebunden werden. Folgende Tabelle gibt Aufschluss über die eingesetzten Klassenbibliotheken:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
KlassenbibliothekVersionDateien
MOA SP/SS1.0.x  moa-spss.jar, moa-common.jar
IAIK MOA1.07  lib/iaik-moa-full.jar, lib/iaikPkcs11Provider.jar, lib/iaikPkcs11Wrapper.jar, lib/iaik_cms.jar, lib/iaik_ecc.jar, lib/ixsil.jar, lib/ext13/iaik_jce_full.jar, lib/ext14/iaik_ecc.jar, lib/ext14/iaik_jce_full.jar, lib/ext14/ iaikPkcs11Provider_signed.jar
JAXP1.2_01  lib/jaxp-api.jar, lib/sax.jar, lib/dom.jar
Xerces-J2.0.2  lib/xercesImpl.jar, lib/xmlParserAPIs.jar
Xalan-J2.2.0  lib/xalan.jar, lib/bsf.jar
Jaxen1.0  lib/jaxen-core.jar, lib/jaxen-dom.jar, lib/saxpath.jar
Commons-Logging1.0.2  lib/commons-logging-api.jar, lib/commons-logging.jar
Log4j1.2.7  lib/log4j-1.2.7.jar
Commons-Discovery0.2  lib/commons-discovery.jar
JSSE1.0.3_01  lib/ext13/jsse.jar, lib/ext13/jcert.jar, lib/ext13/jnet.jar
Postgres JDBC27.3  lib/pg73jdbc2.jar
+
+
+
+Folgende Einschränkungen sind zu beachten:
+
    +
  • Unter JDK 1.4.1 muss die Angabe der IAIK MOA Bibliotheken lib/iaik_ecc.jar und lib/iaikPkcs11Provider.jar entfallen, da diese bereits im Vorbereitungsschritt ins JDK kopiert wurden, und damit automatisch zur Verfügung stehen. +
  • Unter JDK 1.4.1 muss die Angabe der JSSE-Bibliotheken entfallen, da diese bereits im JDK enthalten sind.
  • +
  • Wenn keine Datenbank-Funktionalität verwendet wird, kann die Angabe des Postgres JDBC-Treibers entfallen.
  • +
+ +
+
+ +
+ + +
+

 

+
+
+
+
+

Logging

+
+Die MOA SP/SS Klassenbibliothek verwendet Jakarta Log4j für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Die im Abschnitt zum Thema Logging im MOA SP/SS Webservice gemachten Aussagen lassen sich großteils auf den Einsatz der MOA SP/SS Klassenbibliothek übertragen. +
+

+ + + + +

+
+
© 2003
+
+
+ +
+ + \ No newline at end of file diff --git a/spss.server/doc/moa_spss/sp-anwendung.htm b/spss.server/doc/moa_spss/sp-anwendung.htm new file mode 100644 index 000000000..4adccb46d --- /dev/null +++ b/spss.server/doc/moa_spss/sp-anwendung.htm @@ -0,0 +1,1079 @@ + + + MOA SP/SS-Anwendung + + + + + + + + + +
+ + +
+ Module für Online-Applikationen +
+
+  +
+
+Projekt moa  +
+
+ + + + + + +
+
MOA-SP/SS

+ + + + + +
+
+ + + + + + + +
+
+

+
+
MOA SP/SS-Anwendung
+

+Die Module Signaturprüfung (SP) und Serversignatur (SS) sind als plattformunabhängige Module ausgelegt, die über ein +Webservice bzw. ein Java-API verwendet werden können. +

+Dieses Handbuch beschreibt die Verwendung der SP/SS-Module anhand einfacher exemplarischer Anwendungen: +

    +
  • HTTPClientExample.java
    Aufruf des Webservice über HTTP
  • +
  • HTTPSClientExampleServerAuth.java
    Aufruf des Webservice über eine TLS-Verbindung mit serverseitiger Authentisierung
  • +
  • HTTPSClientExampleClientAuth.java
    Aufruf des Webservice über eine TLS-Verbindung mit client- und serverseitiger Authentisierung
  • +
  • APIClientExample.java
    Aufruf des API
  • +
+Weiters werden folgende Beispiel-Requests beschrieben: +
    +
  • einfache Requests für die Erstellung und Überprüfung einer XML-Signatur
  • +
  • umfassende Requests für die Erstellung und Überprüfung einer XML-Signatur
  • +
  • ein Request für die Überprüfung einer CMS-Signatur
  • +
+ +

+
+ + +
+ + + +
+

 

+ +
+

Voraussetzungen

+
+Die folgende Liste enthält die erforderlichen Java-Bibliotheken, um die Beispielprogramme auszuführen. +Die angeführten Versionsnummern bezeichnen jene Versionen dieser Java-Bibliotheken, mit denen die +Beispielprogramme getestet wurden. +

+ + + + + + + + + + + + + + + + + + + +
Java-BibliothekVersionBemerkung
JDK1.3+Java Development Kit
Xerces
XML Parser
2.0.2+nicht nötig wenn JDK 1.4 verwendet wird
+ Download: xml.apache.org/xerces2-j
AXIS Framework1.0+Download: xml.apache.org/axis
JSSE1.0.3+wenn eine SSL Verbindung verwendet wird, nicht nötig wenn JDK 1.4 verwendet wird
Download: java.sun.com/products/jsse
Servlet API2.3+nicht nötig wenn AXIS 1.1 verwendet wird
+Download: java.sun.com/products/servlet
+
+
+

+ + + +
+ + + +
+

 

+

 

+
+

Beispiel-Programme

+
Im folgenden werden vier Beispiele für Client-Applikationen beschrieben:
+
    +
  • HTTPClientExample
    +Aufruf des Webservice über HTTP
  • +
  • HTTPSClientExampleServerAuth
    +Aufruf des Webservice über eine TLS-Verbindung mit serverseitiger Authentisierung
  • +
  • HTTPSClientExampleClientAuth
    +Aufruf des Webservice über eine TLS-Verbindung mit client- und serverseitiger Authentisierung
  • +
  • APIClientExample
    +Aufruf des API
  • +
+
+

+ + + +
+ + + +
+

 

+ +
+

Beispiel HTTPClientExample

+
+1. Einlesen des XML-Request aus einer Datei
+
+    FileInputStream inputStream = 
+        new FileInputStream("example_request.xml");
+

+ +2. Aufbau der DOM-Struktur
+Erstellen der BuilderFactory für den Parser +
+    DocumentBuilderFactory factory = 
+        DocumentBuilderFactory.newInstance();
+
+Namespaces müssen im Request definiert sein, darum +
+    factory.setNamespaceAware(true);
+
+Einen neuen Builder instanzieren +
+    DocumentBuilder builder = 
+        factory.newDocumentBuilder();
+
+XML-Datei einlesen und parsen +
+    Document root_request = 
+        builder.parse(inputStream);
+
+

+ +3. AXIS Service instanzieren
+Service erstellen. SERVICE_QNAME ist entweder SignatureCreation oder SignatureVerification. +
+    Service service = 
+        ServiceFactory.newInstance().
+            createService(SERVICE_QNAME);
+
+Call Object erstellen +
+    Call call = service.createCall();
+
+Ein SOAP Body Objekt erzeugen und mit dem Request aus der Datei füllen +
+    SOAPBodyElement body = 
+        new SOAPBodyElement(root_request.
+            getDocumentElement());
+    SOAPBodyElement[] params = 
+        new SOAPBodyElement[] {body};
+
+Serviceendpunkt einstellen. URL zum Server mit dem Webservice z.b. http://localhost:8080/moa-spss/services/SignatureCreation. +
+    call.setTargetEndpointAddress(ENDPOINT);
+
+

+ +4. Service aufrufen
+Request durchführen (Parameter werden als Array von SOAPBodyElement-Objekten übergeben) +
+    Vector responses = (Vector)call.invoke(params);
+
+Response auslesen +
+    SOAPBodyElement response = 
+        (SOAPBodyElement) responses.get(0);
+
+Response-Document auslesen +
+    Document root_response = response.getAsDocument();
+
+

+ +5. Exceptions behandeln
+Folgende Exceptions können auftreten und müssen bei der Dokumentverarbeitung +behandelt werden:
+ + + + + + + + + + + + + + + + + +
ExceptionBeschreibung
FileNotFoundExceptionDatei kann nicht gefunden werden
IOExceptionDatei kann nicht gelesen werden
ParserConfigurationExceptionParsereinstellungen nicht korrekt
xxSAXExceptionFehler beim Parsen (z.b. XML-Fehler in der Eingabedatei)
ServiceExceptionFehler beim Durchführen des AXIS Request
RemoteExceptionProbleme mit der Verbindung
+ +
+
+

+ + + +
+ + + +
+

 

+ +
+

Beispiel HTTPSClientExampleServerAuth

+
+Zusätzlich zu HTTPClientExample:

+Erst werden die Konstanten für die Systemproperties gesetzt +
+    handler = "java.protocol.handler.pkgs";
+    trustStore = "javax.net.ssl.trustStore";
+    trustStorePassword = 
+      "javax.net.ssl.trustStorePassword";
+
+Hinzufügen des SSL-Providers in das Systemobjekt Security +
+    Security.addProvider(
+      new com.sun.net.ssl.internal.ssl.Provider());
+
+Setzen der Systemproperties für den SSL-Provider +
+    System.setProperty(
+      handler,"com.sun.net.ssl.internal.www.protocol");
+    System.setProperty(
+      trustStore, "client.keystore");
+    System.setProperty(trustStorePassword, "changeit");
+
+ +Danach muß nur noch der Endpunkt umgestellt werden von ENDPOINT zu SECURE_ENDPOINT +
+    "http://localhost:8080/moa-spss/
+            services/SignatureCreation"
+
+wird zu +
+    "https://localhost:8443/moa-spss/
+            services/SignatureCreation"
+
+AXIS erkennt das es sich um eine sichere Verbindung handelt und initialisert die Verbindung über einen SecureSocket. +
+
+

+ + + +
+ + + +
+

 

+ +
+

Beispiel HTTPSClientExampleClientAuth

+
+Zusätzlich zu HTTPSClientExampleServerAuth:

+Für Clientauthorisierung kommen noch folgende Properties hinzu +
+    keyStore = "javax.net.ssl.keyStore";
+    keyStorePassword = "javax.net.ssl.keyStorePassword";
+    System.setProperty(
+        keyStore, "client.keystore");
+    System.setProperty(keyStorePassword, "changeit");
+
+
+
+

+ +
+ + + +
+

 

+
+Beispiel:
+APIClientExample
+

+
+
+

Beispiel APIClientExample

+
+Folgende VM-Properties müssen gesetzt sein um das API Beispiel +ausführen zu können.

+ + + + + + + + + + + + + +
moa.spss.server.configuration
Pfad zur Konfiguration von MOA-SPSSBeispiel C:\moa\ConfigurationTest.xml
log4j.configuration
Pfad zu einer gültigen Log4J KonfigurationBeispiel file:/C:/moa/log4j.properties
+
+Serverfunktionshandler instanzieren +
	SPSSFactory spf = 
+		SPSSFactory.getInstance();
+ +Signaturedaten in ein Contentobjekt einbinden +
	byte[]data = 
+		"Dies sind Testdaten".getBytes("UTF-8");
+	ByteArrayInputStream bis = 
+		new ByteArrayInputStream(data);
+	Content cont = 
+		spf.createContent(bis,"http://uri.data.org");
+ +Beschreibungselement zu den Daten erstellen +
	MetaInfo mi = 
+	spf.createMetaInfo("text/plain","Testdaten",null);
+ +Transformationen erstellen +
	CreateTransformsInfo cti = 
+		spf.createCreateTransformsInfo(null,mi);
+	CreateTransformsInfoProfile ct = 
+		spf.createCreateTransformsInfoProfile(
+			cti,
+			null);
+ +Datenobjekt aufbauen +
	DataObjectInfo doi = 
+		spf.createDataObjectInfo(
+			DataObjectInfo.STRUCTURE_DETACHED,
+			false,
+			cont,
+			ct);
+	List dataobjectinfolist = new ArrayList();
+	dataobjectinfolist.add(doi);
+ +alles zusammenpacken zu einer SingleSignature +
	SingleSignatureInfo ssi = 
+		spf.createSingleSignatureInfo(
+			dataobjectinfolist,
+			null,
+			false);
+	List singlesignatureinfolist = new ArrayList();
+	singlesignatureinfolist.add(ssi);
+die Signatur in einen Request einbetten +
	CreateXMLSignatureRequest cxsreq = 
+		spf.createCreateXMLSignatureRequest(
+			"PKCS12RSAKey1",
+			singlesignatureinfolist);
+ +Signatureerstellungsservice instanzieren +
	SignatureCreationService scs = 
+		SignatureCreationService.getInstance();
+ +Signatureerstellungsservice aufrufen +
	CreateXMLSignatureResponse cxsres = 
+		scs.createXMLSignature(cxsreq);
+ +Response auswerten +
	List elements = cxsres.getResponseElements();
+	
+	SignatureEnvironmentResponse ser = 
+	(SignatureEnvironmentResponse)elements.get(0);
+ +Responsetyp lesen +
	int response_type = ser.getResponseType();
+	if(response_type == 
+		SignatureEnvironmentResponse.ERROR_RESPONSE)
+	{
+		...
+	}
+
+Fehlerfall +
	System.out.println("Bei der Erstellung der 
+	Signatur ist ein Fehler aufgetreten");
+
+Signaturerstellung erfolgreich +
	Element se = ser.getSignatureEnvironment();
+	System.out.println(
+		"Signaturerstellung erfolgreich");
+	displayTree(se);
+
+ +
+
+

+ + +
+ + + +
+

 

+
+

Beispiel-Requests

+
+In den folgenden Abschnitten werden einfache und umfassende Beispiele für Requests beschrieben, die an MOA-SP/SS +gesendet werden können. Damit soll der Anwendungsentwickler einen Überblick über die +Möglichkeiten von MOA-SP/SS vermittelt bekommen. Die detaillierte und vollständige Beschreibung +des Funktionsumfangs ist in den Spezifikationen von MOA-SP/SS und des Security-Layers enthalten. +
+
+

+ + + +
+ + + +
+

 

+
+Beispiel:
+Request
+Response
+

+
+
+

Beispiel:
einfacher CreateXMLSignatureRequest

+
+Das Beispiel in CreateXMLSignatureReqest1.xml zeigt einen +einfachen <CreateXMLSignatureRequest>. Die Bedeutung der einzelnen Elemente +wird im folgenden beschrieben: +
+  <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>
+
+PKCS12RSAKey1 bezeichnet eine Schlüsselgruppe aus der MOA-SS einen Signaturschlüssel selektieren soll +und muss einer im Konfigurationsfile definierten <KeyGroup> entsprechen. +
+  <SingleSignatureInfo SecurityLayerConformity="false">
+
+Für jedes <SingleSignatureInfo>-Element wird eine eigene XML-Signatur erzeugt. Wird das +Attribut SecurityLayerConformity auf true gesetzt, dann wird eine XML-Signatur +gemäß Security-Layer Spezifikation erzeugt; d.h. es werden signierte Properties (Zeitpunkt +der Signaturerstellung, +das für die Signaturüberprüfung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten) und ein +Manifest, das alle implizite Transformationsparameter enthält, zur Signatur hinzugefügt. +
+    <DataObjectInfo Structure="enveloping">
+
+Für jedes Daten-Objekt, das in die Signatur als dsig:Reference aufgenommen werden soll, muss ein +DataObjectInfo-Element spezifiziert werden. Das Attribut Structure gibt an, ob die Daten +in die Signatur in ein <dsig:Object>-Element integriert werden soll +(Structure="enveloping") oder via eine URL referenziert werden soll (Structure="detached"). +

+Im Fall von Structure="enveloping" muss im nachfolgenden DataObject Element entweder das +Attribut Reference gesetzt sein oder die zu signierenden Daten explizit im Element Base64Content oder +XMLContent spezifiziert sein. Die Angabe der zu signierenden Daten über das Attribut Reference +und gleichzeitig dem Element Base64Content oder XMLContent ist nicht erlaubt. +

+Im Fall von Structure="detached" muss das Attribut Reference im nachfolgenden DataObject +Element gesetzt sein. Die Angabe der Elemente Base64Content oder XMLContent ist optional. +
+      <DataObject>
+        <XMLContent xml:space="preserve">
+          Diese Daten werden signiert.
+        <XMLContent>
+      </DataObject>
+
+Die zu signierenden Daten werden im Element <DataObject> spezifiziert und können entweder als +<XMLContent> oder <Base64Content> oder über das Attribut Reference +angegeben werden. +
+      <CreateTransformsInfoProfile>
+        <CreateTransformsInfo>
+          <FinalDataMetaInfo>
+            <MimeType>text/plain<MimeType>
+          </FinalDataMetaInfo>
+        </CreateTransformsInfo>
+      </CreateTransformsInfoProfile>
+
+Zu jedem Daten-Objekt können optional Transformationen (z.B. XPath, XSLT, Base64-Decodierung, etc.)angegeben werden. +Werden keine Transformationen angegeben so muss zumindest der MIME-Type der zu signierenden Daten spezifiziert werden. +

+Die von diesem Request erzeugt Response ist in CreateXMLSignatureResponse1.xml abgelegt. +

+
+

+ + +
+ + + +
+

 

+
+Beispiel:
+Request
+Response
+

+
+
+

Beispiel:
einfacher VerifyXMLSignatureRequest

+
+Die oben erzeugte XML-Signatur kann mit dem in VerifyXMLSignatureReqest1.xml gezeigten +einfachen <VerifyXMLSignatureRequest> wieder überprüft werden. +
+<VerifyXMLSignatureRequest
+  xmlns="http://reference.e-government.gv.at/
+                namespace/moa/20020822#"
+  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+  
+  <VerifySignatureInfo>
+    <VerifySignatureEnvironment>
+      <XMLContent>
+        <dsig:Signature
+          Id="signature-1"
+          xmlns:dsig="http://www.w3.org/2000/09/
+                             xmldsig#">
+          .........
+        </dsig:Signature>
+      </XMLContent>
+    </VerifySignatureEnvironment>
+
+ +Im Element VerifySignatureInfo wird zuerst die zu überprüfende Signatur im Element +VerifySignatureEnvironment angegeben. Im Beispiel wird die Signatur als Kind-Element von +<XMLContent> spezifiziert. Alternativ könnte die Signatur in Base64-Kodierung +im Element <Base64Content> oder mit dem Attribut Reference über eine URL +referenziert werden. + +
+    <VerifySignatureLocation>
+      //dsig:Signature
+    </VerifySignatureLocation>
+    
+  </VerifySignatureInfo>
+
+ +Weiters muss mittels eines XPath-Ausdrucks im Element <VerifySignatureLocation> +die Position der zu prüfenden Signatur spezifiziert werden. Werden im XPath-Ausdruck +Namespace-Prefixes verwendet, müssen die entsprechenden Namespace-Deklarationen im Kontext +des Elements VerifySignatureLocation bekannt sein. Im Beispiel wird das Prefix dsig +verwendet, das im Element <VerifyXMLSignatureRequest> deklariert wird. + +
+  <TrustProfileID>TrustProfile1<TrustProfileID>
+
+Abschließend wird im Element <TrustProfileID> ein Trustprofile spezifiziert, das am MOA-SP Server +definiert ist und jene Zertifikate enthält, die für diesen Request als vertrauenswürdig gelten. +

+Die von diesem Request erzeugt Response ist in VerifyXMLSignatureResponse1.xml abgelegt. Die Response enthält das Ergebnis der Signaturprüfung +im Element <SignatureCheck>, das Ergebnis der Zertifikatsprüfung im Element +<CertificateCheck> und Informationen über den Signator im Element +<SignerInfo>/<X509Data>. Die Informationen über den Signator bestehen aus den Elementen +<X509SubjectName>, <X509IssuerSerial> und <X509Certificate>. + +

+
+

+ + +
+ + + +
+

 

Beispiel:
Request
+Response +


+
+

Beispiel:
umfassender CreateXMLSignatureRequest

Das Beispiel in CreateXMLSignatureReqest2.xml zeigt einen umfassenden +<CreateXMLSignatureRequest>. +

+Das Beispiel benötigt zwei Dateien, die über die URL +http://localhost:8080/TestDatenGenerator/resources/<Dateiname> erreichbar sind. +Bevor der Beispiel-Request ausgeführt wird, muss daher +TestDatenGenerator.zip +entpackt und in $CATALINA_HOME/webapps kopiert werden. Voraussetzung ist, dass Tomcat auf Port 8080 läuft. + +
+<CreateXMLSignatureRequest
+  xmlns="http://reference.e-government.gv.at/
+      namespace/moa/20020822#"
+  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+  <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>
+  <SingleSignatureInfo SecurityLayerConformity="false">
+    <DataObjectInfo Structure="enveloping" 
+    ChildOfManifest="true">
+      <DataObject>
+        <XMLContent>Diese Daten werden 
+        signiert.</XMLContent>
+      </DataObject>
+      <CreateTransformsInfoProfile>
+        <CreateTransformsInfo>
+          <FinalDataMetaInfo>
+            <MimeType>text/plain</MimeType>
+          </FinalDataMetaInfo>
+        </CreateTransformsInfo>
+      </CreateTransformsInfoProfile>
+    </DataObjectInfo>
+  </SingleSignatureInfo>
+
+ +Der Anfang des Requests ist identisch mit dem einfachen CreateXMLSignatureRequest. +Als Variation wurde <ChildOfManifest= "true"> gesetzt. + +Damit wird spezifiziert, dass die zugehörige <dsig:Reference> nicht in das Element +<SignedInfo> sondern in ein XMLDSig-Manifest eingefügt werden soll. + +Wird das Attribut <ChildOfManifest> nicht gesetzt, dann +wird kein XMLDSig-Manifest erzeugt. + +
+  <SingleSignatureInfo SecurityLayerConformity="true">
+
+ +Anschließend wird angegeben, dass eine zweite Signatur erstellt werden soll. +SecurityLayerConformity="true" gibt an, dass die Signatur entsprechend der Security-Layer +Spezifikation Version 1.1 erstellt werden muss, d.h. es werden Signaturattribute und gegebenenfalls ein + +Signatur-Manifest erzeugt. Wird eine Security-Layer konforme Signatur erzeugt, dann +darf <ChildOfManifest="true"> nicht gesetzt sein. +

+Die zweite Signatur soll zwei Datenobjekte enthalten: + +

+    <DataObjectInfo Structure="detached">
+
+ +Für das erste Datenobjekt sollen die signierten Daten nicht in der Signatur enthalten sein (Structure="detached"). + +
+      <DataObject
+        Reference="http://localhost:8080/TestDatenGenerator
+                   /resources/testDaten.txt">
+        <Base64Content>
+          RGllcyBz........DQphdXM=
+        </Base64Content>
+      </DataObject>
+      <CreateTransformsInfoProfile>
+        <CreateTransformsInfo>
+          <FinalDataMetaInfo>
+            <MimeType>text/plain</MimeType>
+          </FinalDataMetaInfo>
+        </CreateTransformsInfo>
+      </CreateTransformsInfoProfile>
+    </DataObjectInfo>
+
+ +Die zu signierenden Daten sind in Base64-Kodierung angegeben und werden in der Signatur über die URL, die im +Attribut Reference angegeben ist, referenziert. Diese URL wird im Zuge der Signaturerstellung +nicht aufgelöst, da die Daten bereits explizit im Request angegeben sind. Es werden keine weitere +Transformationen für das Datenobjekt angegeben. + +
+    <DataObjectInfo Structure="enveloping">
+      <DataObject>
+        <XMLContent xml:space="preserve">
+          <data:book
+            xmlns:data="http://uri.data.org"
+            data:hardback="yes">
+            <data:title>
+              Gesundheitliche Auswirkungen 
+              elektronischer Signaturen
+            </data:title>
+            <data:first-name>Ellipse</data:first-name>
+            <data:last-name>Kurvenreich</data:last-name>
+            <data:birth-date>1951-04-16</data:birth-date>
+            <data:birth-location>
+              Hinterm Berg
+            </data:birth-location>
+            <data:register-number>
+              6-930-21512-12
+            </data:register-number>
+          </data:book>
+        </XMLContent>
+      </DataObject>
+
+ +Das zweite Datenobjekt, das signiert werden soll ist eine XML-Struktur. +

+Für die XML-Struktur wird eine Transformation spezifiziert, die angewendet werden muss, bevor die Daten signiert +werden: +

+      <CreateTransformsInfoProfile>
+
+Transformationen können entweder explizit im Request im Element <CreateTransformsInfoProfile> +angegeben werden oder mit dem Element <CreateTransformsInfoProfileID> über eine am MOA-SS-Server +konfigurierte Profil-ID referenziert werden. +
+        <CreateTransformsInfo>
+
+Im Transformationsprofil werden im Element <CreateTransformsInfo> die Transformationskette +(<dsig:Transforms>) und optionale Ergänzungsobjekte (<Supplement>) angegeben. +
+          <dsig:Transforms>
+            <dsig:Transform
+              Algorithm="http://www.w3.org/TR/
+                1999/REC-xslt-19991116">
+              <xsl:stylesheet
+                xmlns:xsl="http://www.w3.org/
+                   1999/XSL/Transform"
+                version="1.0">
+                <xsl:include
+                  href="http://localhost:8080/
+                        TestDatenGenerator/resources/
+                        CX1_book_not_here.xsl"/>
+              </xsl:stylesheet>
+            </dsig:Transform>
+          </dsig:Transforms>
+
+Im Beispiel besteht die Transformationskette aus einer XSLT-Transformation, die ein weiteres XSLT Stylesheet inkludiert. +MOA-SS unterstützt alle Transformationen aus der XMLDSig-Spezifikation sowie Exclusive XML Canonicalization 1.0 und +XPath Filter 2.0. + +
          
+          <FinalDataMetaInfo>
+            <MimeType>text/html</MimeType>
+          </FinalDataMetaInfo>
+        </CreateTransformsInfo>
+
+<FinalDataMetaInfo> gibt den MIME-Type der Daten an, die das Ergebnis der Transformation bilden und +tatsächlich signiert werden. +

+Weiters können optional Ergänzungsobjekte angegeben werden, die Daten enthalten, die von MOA-SP zur +Signaturerstellung verwendet werden sollen: +

+        <Supplement>
+          <Content Reference="http://localhost:8080/
+                              TestDatenGenerator/resources/
+                              CX1_book_not_here.xsl">
+            <Base64Content>PHhzbDpzdHls.....eWxlc2hlZXQ+
+            </Base64Content>
+          </Content>
+        </Supplement>
+      </CreateTransformsInfoProfile>
+    </DataObjectInfo>
+
+Im aktuellen Beispiel wird ein Ergänzungsobjekt für jenes Stylesheet angegeben, das im Stylesheet der oben +spezifizierten XSLT-Transformation referenziert wird. MOA-SS wird die angegebene URL nicht auflösen sondern +stattdessen die im Ergänzungsobjekt enthaltenen Daten verwenden. +

+

+    <CreateSignatureInfo xmlns:env="http://uri.env.org">
+
+Abschließend wird hier noch mittels des optionalen Elements <CreateSignatureInfo> festgelegt, +dass die zu erzeugende Signatur in ein bereits bestehendes XML-Dokument eingebettet werden soll. Im Beispiel +wird das Namespace-Prefix env hier deklariert, da es weiter unten im Element +CreateSignatureLocation verwendet werden wird. +
+      <CreateSignatureEnvironment>
+        <XMLContent>
+          <env:Document
+            xmlns:env="http://uri.env.org"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="http://uri.env.org
+                                http://anyhost/envSchema.xsd">
+            nach diesem Text wird die Signatur in das Dokument
+            eingefügt
+          </env:Document>
+        </XMLContent>
+      </CreateSignatureEnvironment>
+
+Im Element <CreateSignatureEnvironment> wird das XML-Dokument angegeben. +
+      <CreateSignatureEnvironmentProfile>
+        <CreateSignatureLocation Index="1">
+          /env:Document
+        </CreateSignatureLocation>
+      </CreateSignatureEnvironmentProfile>
+
+Anschließend wird im Profil angegeben an welcher Position des XML-Dokuments die Signatur eingefügt werden +soll. Im Element <CreateSignatureLocation> wird ein XPath-Ausdruck angegeben, der das +Element selektiert, als dessen Kind die Signatur eingefügt werden soll. Das Attribut Index spezifiziert +die Position innerhalb dieses Elements, an der die Signatur eingefügt werden soll. "0" gibt an, +dass die Signatur als erstes Kind eingefügt werden soll. +
+    </CreateSignatureInfo>
+  </SingleSignatureInfo>
+</CreateXMLSignatureRequest>
+
+Abschließend müssen alle Elemente wieder geschlossen werden. +

+Die von diesem Request erzeugt Response ist in +CreateXMLSignatureResponse2.xml abgelegt. Die Response enthält zwei Elemente SignatureEnvironment, die die +beiden erzeugten Signaturen enthalten. +

+
+

+ +
+ + + + + +
+

 

+
+Beispiel:
+Request
+Response
+

+
+
+

Beispiel:
umfassender VerifyXMLSignatureRequest

+
+Das Beispiel in +VerifyXMLSignatureReqest2.xml zeigt wie die im obigen Beispiel erzeugte zweite Signatur +überprüft werden kann. +
+<VerifyXMLSignatureRequest
+  xmlns="http://reference.e-government.gv.at/
+     namespace/moa/20020822#"
+  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+  <DateTime>2003-03-24T12:41:54+01:00</DateTime>
+
+Optional kann ein Datum und eine Uhrzeit angegeben werden, für die die Überprüfung durchgeführt werden soll. + +
  
+  <VerifySignatureInfo>
+    <VerifySignatureEnvironment>
+     <XMLContent>
+       <env:Document xmlns:env="http://uri.env.org" .....>
+         nach diesem Text ..... Dokument eingefuegt
+         <dsig:Signature .....>.....</dsig:Signature>
+       </env:Document>
+      </XMLContent>
+    </VerifySignatureEnvironment>
+
+Die Signatur inklusive des umgebenden XML-Dokuments wird im Element <VerifySignatureEnvironment> +angegeben. +
    
+    <VerifySignatureLocation>
+      //dsig:Signature
+    </VerifySignatureLocation>
+  </VerifySignatureInfo>
+
+Die zu prüfende Signatur aus dem Element <VerifySignatureEnvironment> wird über einen XPath-Ausdruck +spezifiziert. + +Enthält die Signatur ID-Attribute, die referenziert werden, dann muss das XML-Dokument validierend geparst werden können. +Im Beispiel-Request wird die URL des Schemas für das Element env:Document im Attribut xsi:schemaLocation +spezifiziert (http://anyhost/envSchema.xsd). Soll MOA-SP diese URL nicht selbst auflösen, dann kann das +Schema kann im Element SupplementProfile übergeben werden: + +
+  <SupplementProfile>
+    <Content Reference="http://anyhost/envSchema.xsd">
+      <XMLContent xml:space="preserve">
+        <xsd:schema
+          targetNamespace="http://uri.env.org"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+          elementFormDefault="qualified"
+          attributeFormDefault="unqualified">
+          <xsd:element name="Document">
+            <xsd:complexType mixed="true">
+              <xsd:sequence minOccurs="0"
+                            maxOccurs="unbounded">
+                <xsd:any namespace="##any"
+                         processContents="lax"/>
+              </xsd:sequence>
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:schema>
+      </XMLContent>
+    </Content>
+  </SupplementProfile>
+
+ +
+  <ReturnHashInputData/>
+
+Das Element gibt an, dass für jedes dsig:SignedInfo/dsig:Reference Element jene Daten, die für die +Hash-Berechnung der Signatur als Eingangsdaten verwendet werden, in der Antwort returniert werden sollen. + +
+  <TrustProfileID>TrustProfile1</TrustProfileID>
+</VerifyXMLSignatureRequest>
+
+Abschließend wird ein am MOA-SP Server definiertes Profil angegeben, dass jene Zertifikate umfasst, die für +diesen Request als vertrauenswürdig anzusehen sind. +

+ +Die von diesem Request erzeugt Response ist in +VerifyXMLSignatureResponse2.xml abgelegt. Zusätzlich zu den Daten der Response des einfachen +VerifyXMLSignatureRequests enthält diese Response für jedes dsig:SignedInfo/dsig:Reference Element +ein HashInputData Element. +

+
+

+ + + + + +
+ + + +
+

 

+
+Beispiel:
+Request
+Response
+

+
+
+

Beispiel:
VerifyCMSSignatureRequest

+
+Das Beispiel in VerifyCMSSignatureRequest.xml zeigt einen +einfachen <VerifyCMSSignatureRequest>. Die Bedeutung der einzelnen Elemente +wird im folgenden beschrieben: +
+<VerifyCMSSignatureRequest
+  xmlns="http://reference.e-government.gv.at/
+    namespace/moa/20020822#"
+  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
+  Signatories="1">
+
+Das optionale Attribut Signatories enthält eine Liste von positiven Ganzzahlen und gibt an, welche Signaturen +im CMS-Datenobjekt überprüft werden sollen. Signatories="1" gibt an, dass die erste Signatur geprüft +werden soll. +Wird das Attribut nicht spezifiziert, dann wird ebenfalls die erste Signatur geprüft. Signatories="all" +gibt an, dass alle im CMS-Objekt enthaltene Signaturen geprüft werden sollen. + +
+  <DateTime>2003-04-04T09:30:47-05:00</DateTime>
+
+Das optionale Element <DateTime> gibt an für welchen Zeitpunkt die Signaturüberprüfung +durchgeführt werden soll. Ist das Element nicht im Request enthalten, dann wird die aktuelle Systemzeit +verwendet. + +
+  <CMSSignature>MIIGAAYJKo...mT9fmvKwdJOiA==</CMSSignature>
+
+Das Element <CMSSignature> enthält das CMS-Signaturobjekt in Base64-Kodierung. +

+Sind die signierten Daten nicht in der CMS-Signatur enthalten, müssen sie im DataObject-Element +angegeben werden. Optional kann der MIME-Type dieser Daten spezifiziert werden. Die eigentlichen Daten +müssen im Base64Content-Element in Base64-Kodierung vorliegen. + +
+  <TrustProfileID>TrustProfile1<TrustProfileID>
+
+ +TrustProfile1 referenziert ein im Konfigurationsfile des MOA-Server definiertes Profil, das +jene Zertifikate umfasst, die für diese Überprüfung als vertrauenswürdig gelten. + + +

+Die von diesem Request erzeugt Response ist in +VerifyCMSSignatureResponse.xml abgelegt. Die Response enthält die selben Informationen wie die Response zum +einfachen VerifyXMLSignatureRequest. +

+
+

+ + + + + + +

+
+
© 2003
+
+
+ + +
+ + \ No newline at end of file -- cgit v1.2.3