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: 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:
  • 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&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
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

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

Attribut-NameAttribut-TypBeschreibung
idtoken eine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert.
namestring 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.
slotIDstring 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.
userPINstring der 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
idtoken eine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert.
filenamestring der Dateiname der PKCS#12-Datei; das Attribut enthält entweder einen absoluten Pfadnamen oder einen Pfadnamen relativ zur MOA SP/SS Konfigurationsdatei.
passwordstring das 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. 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
  3. 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
  4. Nach 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.

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.



 


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