| 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
 
 
 
DigestMethodAlgorithmAls Inhalt des Elements DigestMethodAlgorithm kann der Digest-Algorithmus spezifiziert 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
 
 
 
GenericConfigurationDas 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: true
 |  
| 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:
 
Default-Wert: 0negativer Wert: bei jedem Zugriff auf Revozierungsinformation wird eine aktuelle Revozierungsinformation geladen0: eine neue Revozierungsinformation wird zu dem Zeitpunkt geladen, der im nextUpdate-Feld der CRL spezifiziert istpositiver Wert: Zeitspanne in Millisekunden, die eine Revozierungsinformation ohne neuerliche Abfrage verwendet werden darf |  
| 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&password=moapassword 
                      wobei host, moadb, moauser und moapassword 
                      an die tatsächlich verwendete Datenbank angepasst werden 
                      muss.
 Die Verwendung von "&" 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
 |  
                  
                    | name: DataBaseArchiveParameter.JDBCDriverClass |   
                    | Dieser Parameter kann verwendet werden, um MOA SPSS den 
                        Klassennamen des JDBC-Datenbanktreibers bekannt zu geben, 
                        der zur Ansprache der für die CRL-Archivierung zu 
                        verwendenden Datenbank benützt werden soll. Er muss 
                        den vollständig qualifizierten Klassennamen der JDBC-Treiberklasse 
                        enthalten. 
                       Der Parameter wird nur dann ausgewertet, wenn der generische 
                        Konfigurationsparameter archiveRevocationInfo 
                        auf den Wert true gesetzt ist. 
                       Hinweis: Wird im generischen Konfigurationsparameter 
                        DataBaseArchiveParameter.JDBCUrl entweder eine 
                        postgreSQL- oder eine mySQL-Datenbank referenziert, braucht 
                        dieser Paramter nicht angegeben zu werden; in diesen Standardfällen 
                        erfolgt eine automatische Zuordnung zur passenden JDBC-Treiberklasse.
                       value:
 Gültige Werte: vollständig qualifizierter Java-Klassenname
 |  
HardwareKeyModuleMittels dieses Elements werden Hardware-Key-Module konfiguriert.  HardwareKeyModule hat vier Attribute:
 
 
 
| Attribut-Name | Attribut-Typ | Beschreibung | 
|---|
 
| id | token | eine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert. |  
| name | string | der 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. |  
| slotID | string | ein 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. |  
| userPIN | string | der PIN für die Aktivierung des privaten Schlüssels |  
SoftwareKeyModuleMittels dieses Elements werden Software-Key-Module in Form von PKCS#12-Dateien konfiguriert.  SoftwareKeyModule hat drei Attribute:
 
 
 
| Attribut-Name | Attribut-Typ | Beschreibung | 
|---|
 
| id | token | eine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert. |  
| filename | string | der Dateiname der PKCS#12-Datei; das Attribut enthält entweder einen absoluten Pfadnamen oder einen
Pfadnamen relativ zur MOA SP/SS Konfigurationsdatei. |  
| password | string | das Passwort zur Aktivierung des privaten Schlüssels in der PKCS#12-Datei |  
KeyGroupEine 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:
 
 
Zuerst werden die verwendeten PKCS#12-Dateien und PKCS#11-Module als Elemente HardwareKeyModule und SoftwareKeyModule in der Konfigurationsdatei erfasstBeim 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;
       761791Fü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 eingetragenNach einem neuerlichen Start von MOA SP/SS stehen die Key-Definitionen zur Verfügung 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.
 
KeyGroupMappingDas 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.
 
ChainingModesDas 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".
 
CRLArchiveIm Attribut duration wird spezifiziert, wie lange (in Tagen) gecachte CRLs archiviert werden müssen.
 
CRLDistributionPointDas 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
 
CreateSignatureEnvironmentProfileCreateTransformsInfoProfile
 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:
 
 
 
| Profilname | Wurzelelement | 
|---|
 
| CreateSignatureEnvironmentProfile | CreateSignatureEnvironmentProfile |  
| CreateTransformsInfoProfile | CreateTransformsInfoProfile |  
| VerifyTransformsInfoProfile | VerifyTransformsInfoProfile |  
| SupplementProfile | SupplementProfile |  
 
 
TrustProfileEin 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 wirdDas 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. |