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 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
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&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
|
HardwareKeyModule
Mittels 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 |
SoftwareKeyModule
Mittels 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 |
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:
- Zuerst werden die verwendeten PKCS#12-Dateien und PKCS#11-Module als Elemente HardwareKeyModule und SoftwareKeyModule in der Konfigurationsdatei erfasst
- 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
- 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
- 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:
Profilname | Wurzelelement |
CreateSignatureEnvironmentProfile | CreateSignatureEnvironmentProfile |
CreateTransformsInfoProfile | CreateTransformsInfoProfile |
VerifyTransformsInfoProfile | VerifyTransformsInfoProfile |
SupplementProfile | SupplementProfile |
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.
|