Logo BKA Open Source
für das E-Government
Logo MOA

MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.2

Konfiguration


Inhalt

  1. Übersicht

    1. Zentrale Konfigurationsdatei
    2. Bekanntmachung der Konfigurationsdatei
      1. Aktualisierung der Konfiguration im laufenden Betrieb
    3. Konfiguration des Loggings
  2. Konfigurationsparameter
    1. Kanonisierungs-Algorithmus
    2. Digest-Algorithmus
    3. Generic Configuration
      1. Parameter für die Zertifikatspfadbildung
        1. Cachen von Zertifikaten
        2. Auswertung der Zertifikatserweiterung Authority Information Access
        3. Lokalisierung des Zertifikatsspeichers
      2. Parameter für die Widerrufsprüfung
        1. Aktivieren der Widerrufsprüfung
        2. Maximales Alter der Widerrufsinformation
        3. Archivierung von Widerrufsinformationen
    4. Hardware-Schlüsselspeicher
    5. Software-Schlüsselspeicher
    6. Schlüsselgruppen
    7. Zuordnung von Schlüsselgruppen zu Kunden
    8. Archivierungsdauer für Widerrufsinformationen
    9. Manuelle Konfiguration von Verteilungspunkten für Widerrufslisten
    10. Vordefinierte Profile
    11. Vertrauensprofile
  3. Beispielkonfigurationen
    1. Minimale Konfiguration für MOA SS
    2. Minimale Konfiguration für MOA SP
    3. Typische Konfiguration für MOA SP/SS

1 Übersicht

Dieses Handbuch beschreibt detailliert die Konfigurationsmöglichkeiten für MOA SP/SS. Wenn nicht anders angegeben, beziehen sich die Erläuterungen sowohl auf die Konfiguration des Webservices als auch auf die Konfiguration von MOA SP/SS für den Einsatz als Klassenbibliothek.

1.1 Zentrale Konfigurationsdatei

Die Konfiguration von MOA SP/SS erfolgt zentral über eine einzige Konfigurationsdatei. Das Format der Konfigurationsdatei ist XML und muss dem Schema MOA-SPSS-config-1.3.xsd entsprechen. Abschnitt 2 erläutert die Konfigurationsmöglichkeiten im Einzelnen.

1.2 Bekanntmachung der Konfigurationsdatei

Die zentrale Konfigurationsdatei von MOA SP/SS wird der Java Virtual Machine, in der MOA SP/SS läuft, durch eine System Property mitgeteilt (wird beim Starten der Java Virtual Machine in der Form -D<name>=<wert> gemacht). Der Name der System Property lautet moa.spss.server.configuration; als Wert der System Property ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.

moa.spss.server.configuration=C:/Programme/apache/tomcat-4.1.30/conf/moa-spss/moa-spss.config.xml 

Weitere Informationen zum Bekanntmachen der zentralen Konfigurationsdatei für MOA SP/SS erhalten Sie in Abschnitt 2.1.2.3 des Installationshandbuchs.

1.2.1 Aktualisierung der Konfiguration im laufenden Betrieb

Wird MOA SP/SS als Webservice eingesetzt, kann durch Aufrufen einer speziellen URL des Webservice ein erneutes Einlesen der Konfigurationsdatei erzwungen werden. Damit ist es möglich, Änderungen an der Konfigurationsdatei vorzunehmen, und diese Änderungen ohne Neustart des zu Grunde liegenden Servlet Containers in den Betrieb zu übernehmen.

Weitere Informationen zum erneuten Einlesen der Konfigurationsdatei im Webservice-Betrieb erhalten Sie in Abschnitt 2.1.2.5 des Installationshandbuchs.

1.3 Konfiguration des Loggings

MOA SP/SS verwendet als Framework für Logging-Information die Open Source Software log4j. Die Konfiguration der Logging-Information erfolgt nicht direkt durch MOA SP/SS, sondern über eine eigene Konfigurationsdatei, die der Java Virtual Machine durch eine System Property mitgeteilt wird. Der Name der System Property lautet log4j.configuration; als Wert der System Property ist eine URL anzugeben, die auf die log4j-Konfigurationsdatei verweist, z.B.

log4j.configuration=file:/C:/Programme/apache/tomcat-4.1.30/conf/moa-spss/log4j.properties
Weitere Informationen zur Konfiguration des Loggings erhalten Sie in Abschnitt 2.1.3 des Installationshandbuchs.

2 Konfigurationsparameter

Nachfolgend werden die verfügbaren Konfigurationsparameter der zentralen Konfigurationsdatei im Detail erläutert. Die Reihenfolge der Abhandlung entspricht der Reihenfolge des vorgeschriebenen Auftretens in der Konfigurationsdatei. Für beispielhafte Konfigurationsdateien siehe Abschnitt 3.

Muss der Wert eines Konfigurationsparameters eine URL oder eine Pfadangabe sein, und wird als konkreter Wert eine relative URL bzw. ein relativer Pfad angegeben, so wird diese Angabe relativ zum Pfad jenes Verzeichnisses interpretiert, in dem die zentrale Konfigurationsdatei gespeichert ist.

Präfixe für Namenräume von XML-Elementen werden wie folgt verwendet:

Präfix Namenraum
cfg http://reference.e-government.gv.at/namespace/moaconfig/20021122#
dsig http://www.w3.org/2000/09/xmldsig#
moa http://reference.e-government.gv.at/namespace/moa/20020822#
xs http://www.w3.org/2001/XMLSchema

2.1 Kanonisierungs-Algorithmus

Name cfg:CanonicalizationAlgorithm
Relevanz MOA SS
Gebrauch optional
Erläuterung

Als Inhalt des Elements 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. Folgende Werte dürfen verwendet werden:

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

Wird das Element nicht angegeben, wird folgender Wert als Default-Wert verwendet:

http://www.w3.org/TR/2001/REC-xml-c14n-20010315  

Für die genaue Bedeutung der Werte siehe die Spezifikation für XML-Signaturen.

2.2 Digest-Algorithmus

Name cfg:DigestAlgorithm
Relevanz MOA SS
Gebrauch optional
Erläuterung

Als Inhalt des Elements kann der Digest-Algorithmus, der für das Erstellen von XML-Signaturen verwendet werden soll und in der Signatur als Inhalt von dsig:Signature/dsig:SignedInfo/dsig:Reference/dsig:DigestMethod aufscheint, spezifiziert werden. Folgende Werte dürfen verwendet werden:

http://www.w3.org/2000/09/xmldsig#sha1

Wird das Element nicht angegeben, wird folgender Wert als Default-Wert verwendet:

http://www.w3.org/2000/09/xmldsig#sha1

Für die genaue Bedeutung der Werte siehe die Spezifikation für XML-Signaturen.

2.3 Generic Configuration

Das Element cfg:GenericConfiguration ermöglicht die Bekanntgabe eines Name/Wert-Paares mittels seiner Attribute name und value. Das Element kann beliebig oft verwendet werden. Nachfolgend findet sich eine Erläuterung jener Namen (Attribut name), die MOA zu interpretieren weiß.

2.3.1 Parameter für die Zertifikatspfadbildung

2.3.1.1 Cachen von Zertifikaten

cfg:GenericConfiguration/@name autoAddCertificates
Relevanz MOA SP
Gebrauch optional
Erläuterung

Gibt an, ob Zertifikate, die in einer zu prüfenden Signatur enthalten sind bzw. bei der Zertifikatspfaderstellung durch Auswertung der Zertifikatserweiterung Authority Information Access (siehe auch Parameter useAuthorityInfoAccess) aus dem Internet geladen werden, automatisch in den lokalen Zertifikatsspeicher hinzugefügt werden sollen (siehe auch Parameter DirectoryCertStoreParameters.RootDir).

Zulässige Werte für diesen Parameter sind true oder false.

Der Default-Wert lautet true.

2.3.1.2 Auswertung der Zertifikatserweiterung Authority Information Access

cfg:GenericConfiguration/@name useAuthorityInfoAccess
Relevanz MOA SP
Gebrauch optional
Erläuterung

Gibt an, ob die Zertifikatserweiterung Authority Information Access für die Zertifikatspfaderstellung verwendet werden soll. Wird der Wert auf true gesetzt, dann setzt MOA auch den Parameter autoAddCertificate automatisch auf true und ignoriert den gegebenenfalls in der Konfigurationsdatei dafür gesetzten Wert.

Zulässige Werte für diesen Parameter sind true oder false.

Der Default-Wert lautet true.

2.3.1.3 Lokalisierung des Zertifikatsspeichers

cfg:GenericConfiguration/@name DirectoryCertStoreParameters.RootDir
Relevanz MOA SP
Gebrauch optional
Erläuterung

Gibt ein Verzeichnis im lokalen Dateisystem an, das von MOA als lokaler Zertifikatsspeicher verwendet werden soll.

Zulässige Werte für diesen Parameter sind absolute oder relative Pfadangaben, z.B.:

C:/Programme/apache/tomcat-4.1.30/conf/moa-spss/certstore
certstore

Der Default-Wert lautet:

certstore

2.3.2 Parameter für die Widerrufsprüfung

2.3.2.1 Aktivieren der Widerrufsprüfung

cfg:GenericConfiguration/@name checkRevocation
Relevanz MOA SP
Gebrauch optional
Erläuterung

Gibt an, ob bei der Zertifikatsüberprüfung im Zuge einer Signaturprüfung auch der Zertifikatsstatus jedes einzelnen Zertifikats des gebildeten Zertifikatspfads überprüft werden soll.

Bitte beachten Sie: Die Widerrufsprüfung ist ein sehr wichtiger Schritt der Zertifikatsüberprüfung und somit der Signaturprüfung. Eine Deaktivierung sollte nur in begründeten Ausnahmefällen in Erwägung gezogen werden, z.B. für Testsituationen.

Zulässige Werte für diesen Parameter sind true oder false.

Der Default-Wert lautet true.

2.3.2.2 Maximales Alter der Widerrufsinformation

cfg:GenericConfiguration/@name maxRevocationAge
Relevanz MOA SSP
Gebrauch optional
Erläuterung

Gibt an, wie aktuell eine ggf. lokal gespeicherte Widerrufsinformation sein muss, damit sie von MOA SP als gültig angesehen wird. Ist die lokal gespeicherte Widerrufsinformation nicht aktuell genug, wird sie von MOA SP erneut aus dem Internet geladen.

Dieser Parameter wird nur ausgewertet, wenn die Widerrufsprüfung aktiviert ist (siehe Parameter checkRevocation).

Zulässige Werte für diesen Parameter sind ganze Zahlen:

  • Ein beliebiger negativer Wert bedeutet, dass eine Widerrufsinformation jedes Mal, wenn sie benötigt wird, neu aus dem Internet geladen wird.
  • Der Wert 0 bedeutet, dass eine Widerrufsinformation dann neu geladen wird, wenn das Datum im Feld nextUpdate der entsprechenden Widerrufsliste bereits überschritten ist.
  • Ein positiver Wert gibt gibt die Zeitspanne in Millisekunden an, nach der eine ggf. vorhandene lokale Widerrufsinformation spätestens durch erneutes Laden aus dem Internet aktualisiert wird.

Der Default-Wert lautet 0.

2.3.2.3 Archivierung von Widerrufsinformationen

cfg:GenericConfiguration/@name archiveRevocationInfo
Relevanz MOA SP
Gebrauch optional
Erläuterung

Gibt an, ob mittlerweile ungültig gewordene (i.e. historische) Widerrufsinformationen von MOA SP archiviert werden soll. Dieser Parameter wird nur dann ausgewertet, wenn gleichzeitig auch der Parameter DataBaseArchiveParameter.JDBCUrl (siehe unten) angegeben wird.

Zulässige Werte für diesen Parameter sind true oder false.

Der Default-Wert lautet true.

cfg:GenericConfiguration/@name DataBaseArchiveParameter.JDBCUrl
Relevanz MOA SP
Gebrauch optional
Erläuterung

Gibt eine JDBC-URL zu jener Datenbank an, in der MOA historische Widerrufsinformationen archivieren soll. Wird dieser Paramter gesetzt, muss gleichzeitig auch der Parameter archiveRevocationInfo (siehe oben) auf den Wert true gesetzt werden.

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>

Die Platzhalter <host>, <moadb>, <moauser> und <moapassword> müssen dabei an die tatsächlich verwendete Datenbank angepasst werden.

Bitte beachten Sie: Die Kodierung des Zeichens "&" als "&amp;" ist erforderlich, da es andernfalls zu einem Validierungsfehler beim Parsen der XML-Konfigurationsdatei durch MOA kommen würde.

Bitte beachten Sie: MOA SP legt eigenständig eine passende Tabelle in der angegebenen Datenbank an und befüllt diese dann in weiterer Folge. Der in der JDBC-URL angegebene Benutzer muss mit den dazu passenden Rechten ausgestattet sein.

Für diesen Parameter existiert kein Default-Wert.

cfg:GenericConfiguration/@name DataBaseArchiveParameter.JDBCDriverClass
Relevanz MOA SP
Gebrauch optional
Erläuterung

Dieser Parameter kann verwendet werden, um MOA SP den Klassennamen des JDBC-Datenbanktreibers bekannt zu geben, der zur Ansprache der für die CRL-Archivierung zu verwendenden Datenbank benützt werden soll. Der Parameter wird nur dann ausgewertet, wenn der generische Konfigurationsparameter archiveRevocationInfo auf den Wert true gesetzt ist.

Der Wert des Parameters muss den vollständig qualifizierten Java-Klassennamen des JDBC-Treibers enthalten.

Bitte beachten Sie: Wird im Parameter 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.

Bitte beachten Sie: Informationen zum Anlegen einer Datenbank in postgreSQL finden Sie in Abschnitt 2.2.2.1 des Installationshandbuchs.

Für diesen Parameter existiert kein Default-Wert.

2.4 Hardware-Schlüsselspeicher

Name cfg:HardwareKeyModule
Relevanz MOA SS
Gebrauch optional (zumindest ein Hardware- oder Software-Schlüsselspeicher muss vorhanden sein)
Erläuterung

Mit diesem Element wird MOA SS die Verfügbarkeit eines Hardware-Schlüsselspeichers mitgeteilt.

Das Element weist bis zu vier Attribute auf:

  • Attribut id: Dieses obligatorische Attribut vom Typ xs:token enthält einen frei wählbaren Identifikator für dieses Konfigurationselement, der innerhalb der XML-Konfigurationsdatei eindeutig sein muss. Mit Hilfe dieses Identifikators wird im Konfigurationselement cfg:KeyGroup auf dieses Konfigurationselement referenziert.
  • Attribut name: Dieses obligatorische Attribut vom Typ xs:string enthält den Dateinamen der DLL (Windows) oder der Shared-Library (Unix), welche die PKCS#11-Schnittstelle zum Hardware-Schlüsselspeicher implementiert; der Wert enthält entweder einen Dateinamen mit absoluter Pfadangabe oder einen Dateinamen ohne Pfadangabe. Im letzteren Fall wird der Dateiname relativ zum Suchpfad des Betriebssystems interpretiert.
  • Attribut slotID: Dieses optionale Attribut vom Typ xs:string gibt des Slot der PKCS#11-Schnittstelle an, über den der Hardware-Schlüsselspeicher von MOA SS angesprochen werden soll. Fehlt dieses Attribut, wählt MOA SS selbst einen Slot aus der Liste der verfügbaren Slots aus.
  • Attribut userPIN: Dieses obligatorische Attribut vom Typ xs:string enthält den PIN-Code zur Freischaltung der Schlüsselverwendung über die PKCS#11-Schnittstelle des Hardware-Schlüsselspeichers.

Das Element hat keinen Element-Inhalt.

2.5 Software-Schlüsselspeicher

Name cfg:SoftwareKeyModule
Relevanz MOA SS
Gebrauch optional (zumindest ein Hardware- oder Software-Schlüsselspeicher muss vorhanden sein)
Erläuterung

Mit diesem Element wird MOA SS die Verfügbarkeit eines Software-Schlüsselspeichers in Form einer PKCS#12-Datei mitgeteilt.

Das Element weist drei obligatorische Attribute auf:

  • Attribut id: Dieses Attribut vom Typ xs:token enthält einen frei wählbaren Identifikator für dieses Konfigurationselement, der innerhalb der XML-Konfigurationsdatei eindeutig sein muss. Mit Hilfe dieses Identifikators wird im Konfigurationselement cfg:KeyGroup auf dieses Konfigurationselement referenziert.
  • Attribut filename: Dieses Attribut vom Typ xs:string enthält den Dateinamen der PKCS#12-Datei, die den Software-Schlüsselspeicher repräsentiert. Der Wert enthält einen Dateinamen mit absoluter oder relativer Pfadangabe. Eine relative Pfadangabe wird von MOA SS relativ zum Pfad jenes Verzeichnisses interpretiert, in dem die zentrale Konfigurationsdatei gespeichert ist.
  • Attribut password: Dieses Attribut vom Typ xs:string enthält das Passwort zum Entschlüsseln der Inhalte der PKCS#12-Datei.

Das Element hat keinen Element-Inhalt.

2.6 Schlüsselgruppen

Name cfg:KeyGroup
Relevanz MOA SS
Gebrauch obligatorisch (zumindest eine Schlüsselgruppe muss vorhanden sein)
Erläuterung

Mit diesem Element wird in MOA SS eine Schlüsselgruppe definiert. Eine Schlüsselgruppe ist eine Zusammenfassung von einem oder mehreren privaten Schlüsseln, die in Hardware- bzw. Softwareschlüsselspeichern (vergleiche Abschnitte 2.4 bzw. 2.5) verwaltet werden. Die Schlüsselgruppe wird vom Kunden von MOA SS über einen eindeutigen Bezeichner im Request zur Signaturerstellung angesprochen.

Sinn der Zusammenfassung von mehreren privaten Schlüsseln zu einer Schlüsselgruppe ist es, dass MOA SS selbst entscheidet, welcher konkrete Schlüssel aus der Schlüsselgruppe zur Erstellung der Signatur verwendet wird. Durch die somit mögliche Parallelisierung (mehrere private Schlüssel werden parallel für Anfragen, die auf die gleiche Schlüsselgruppe referenzieren) lässt sich der Durchsatz der erstellten Signaturen verbessern.

Das Element cfg:KeyGroup weist ein obligatorisches Attribut auf:

  • Attribut id: Dieses Attribut vom Typ xs:token enthält einen frei wählbaren Identifikator für dieses Konfigurationselement, der innerhalb der XML-Konfigurationsdatei eindeutig sein muss. Mit Hilfe dieses Identifikators wird im Konfigurationselement cfg:KeyGroupMapping auf dieses Konfigurationselement referenziert. Weiters wird dieser Identifikator im Request zur Erstellung der Signatur verwendet, um die zu verwendende Schlüsselgruppe anzugeben.

Das Element cfg:KeyGroup hat folgenden Element-Inhalt:

  • Element cfg:Key: Dieses Element muss zumindest einmal vorkommen. Jedes Element beschreibt einen der privaten Schlüssel, aus denen sich die Schlüsselgruppe zusammensetzt. Das Element weist keine Attribute auf und hat folgenden Element-Inhalt:
    • Element cfg:KeyModuleID: Dieses Element kommt genau einmal vor. Mit ihm wird auf einen der konfigurierten Hardware- oder Software-Schlüsselspeicher referenziert. Sein Textinhalt vom Typ xs:token enthält den Identifikator des Hardware- oder Software-Schlüsselspeichers, so wie er in cfg:HardwareKeyModule/@id bzw. cfg:SoftwareKeyModule/@id festgelegt wurde.
    • Element cfg:KeyCertIssuerSerial: Dieses Element kommt ebenfalls genau einmal vor. Mit ihm wird ein privater Schlüssel innerhalb des mit cfg:KeyModuleID ausgewählten Schlüsselspeichers ausgewählt (sowohl Hardware- als auch Softwareschlüsselspeicher können ja prinzipiell mehr als nur einen einzigen privaten Schlüssel verwalten). Das Element weist keine Attribute auf und hat folgenden Element-Inhalt:
      • Element dsig:X509IssuerName: Dieses Element kommt genau einmal vor. Sein Textinhalt vom Typ xs:string enthält den Namen des Ausstellers des Zertifikats für den ausgewählten privaten Schlüssel.
      • Element dsig:X509SerialNumber: Dieses Element kommt genau einmal vor. Sein Textinhalt vom Typ xs:integer enthält die Seriennummer des Zertifikats für den ausgewählten privaten Schlüssel.

Um auf einfache Weise für alle in Ihren Schlüsselspeichern enthaltenen privaten Schlüssel die jeweiligen Werte für dsig:X509IssuerName und dsig:X509SerialNumber zu erhalten, gehen Sie am besten wie folgt vor:

  1. Erfassen Sie in der zentralen Konfigurationsdatei alle Ihre Schlüsselspeicher mit Hilfe der Konfigurationselemente cfg:HardwareKeyModule bzw. cfg:SoftwareKeyModule.
  2. Starten Sie nun - mit bewusst fehlenden cfg:KeyGroup Elementen - den MOA SP/SS Server. Stellen Sie dabei sicher, dass das Log-Level für den Logger moa.spss.server zumindest auf das Niveau info eingestellt ist (Informationen zur Konfiguration des Loggings von MOA SP/SS finden Sie in Abschnitt 2.1.3 des Installationshandbuchs). Im Log-File werden dann alle verfügbaren privaten Schlüssel an Hand der Werte dsig:X509IssuerName und dsig:X509SerialNumber aufgelistet. Vergleichen Sie den folgenden beispielhaften Auszug:
    INFO | 15 15:10:14,737 | moa.spss.server | TID=startup NID=node1 MSG=Key 
    ID=SKM_Kunde1;CN=Test CA - Signaturdienste,OU=Technik und Standards,O=Stabstelle IKT-Strategie des Bundes,C=AT;7 INFO | 15 15:10:14,737 | moa.spss.server | TID=startup NID=node1 MSG=Key ID=SKM_allgemein;CN=Test CA - Signaturdienste,OU=Technik und Standards,O=Stabstelle IKT-Strategie des Bundes,C=AT;9
    INFO | 15 15:10:14,737 | moa.spss.server | TID=startup NID=node1 MSG=Key
    ID=SKM_Kunde2;CN=Test CA - Signaturdienste,OU=Technik und Standards,O=Stabstelle IKT-Strategie des Bundes,C=AT;8
    Der Wert der Eigenschaft ID des Logging-Eintrags gliedert sich in drei Teile:
    1. Der erste Teil enthält den Identifikator des Hardware- bzw. Softwareschlüsselspeichers, so wie er im entsprechenden Konfigurationselement cfg:HardwareKeyModule bzw. cfg:SoftwareKeyModule erfasst wurde.
    2. Der zweite Teil enthält nach dem ersten Semikolon den Namen des Ausstellers des Zertifikats für den privaten Schlüssel, so wie er in dsig:X509IssuerName benötigt wird.
    3. Der dritte Teil enthält nach dem zweiten Semikolon die Seriennummer des Zertifikats für den privaten Schlüssel, so wie er in dsig:X509SerialNumber benötigt wird.
  3. Erfassen Sie nun mit Hilfe der neu gewonnenen Informationen die Schlüsselgruppen, die in MOA SS zur Verfügung stehen sollen.

Wenn Ihnen für einen privaten Schlüssel, den Sie in eine Schlüsselgruppe aufnehmen wollen, das Zertifikat bekannt ist und es in Form einer DER-kodierten Datei vorliegt, können Sie alternativ das Script certtool aus dem Verzeichnis tools im MOA-Installationsverzeichnis verwenden, um zu den Werten für dsig:X509IssuerName und dsig:X509SerialNumber zu kommen:

certtool -info <certfilename>

<certfilename> enthält den Namen der DER-kodierten Zertifikatsdatei, für die die beiden Werte dsig:X509IssuerName und dsig:X509SerialNumber geliefert werden sollen. Eine beispielhafte Ausgabe des Scripts sieht wie folgt aus:

SubjectDN (RFC2253): 
  CN=Test: Signaturdienst aller Kunden: ECDSA (P192v1),OU=Technik und Standards,O=Stabsstelle IKT-Strategie des Bundes,C=AT
IssuerDN (RFC2253) : 
  CN=Test CA - Signaturdienste,OU=Technik und Standards,O=Stabstelle IKT-Strategie des Bundes,C=AT
Serial Number : 9

Die Werte für IssuerDN (RFC2253) sowie Serial Number entsprechen den Werten für dsig:X509IssuerName und dsig:X509SerialNumber.

2.7 Zuordnung von Schlüsselgruppen zu Kunden

Name cfg:KeyGroupMapping
Relevanz MOA SS
Gebrauch obligatorisch (zumindest eine Zuordnung muss vorhanden sein)
Erläuterung

Das Element cfg:KeyGroupMapping ordnet einem Kunden von MOA SS die ihm zur Verfügung stehenden Schlüsselgruppen zu, indem das den Kunden repräsentierende SSL-Clientzertifikat mit einer oder mehreren Schlüsselgruppen assoziiert wird.

Das Element weist keine Attribute auf und hat folgenden Element-Inhalt:

  • Element cfg:X509IssuerSerial: Dieses Element bezeichnet auf eindeutige Weise das den Kunden repräsentierende SSL-Clientzertifikat. Der Aufbau des Elements enspricht dem Aufbau des Elements cfg:KeyCertIssuerSerial in Abschnitt 2.6. Um zu den Werten für Ausstellername und Seriennummer des SSL-Clientzertifikats zu kommen, können Sie auch hier das Script certtool (vergleiche Abschnitt 2.6) verwenden.
  • Element cfg:KeyGroup: Dieses Element kommt so oft vor, wie Schlüsselgruppen einem bestimmten SSL-Clientzertifikat zugeordnet werden sollen, mindestens jedoch einmal. Es weist ein obligatorisches Attribut id vom Typ xs:token auf, dessen Wert den Identifikator der Schlüsselgruppe enthält, so wie er in cfg:KeyGroup/@id festgelegt wurde. Das Element hat keinen Element-Inhalt.

Bitte beachten Sie: Für maximal ein Konfigurationselement cfg:KeyGroupMapping kann cfg:X509IssuerSerial auch weggelassen werden. Die darin enthaltenen Schlüsselgruppen stehen dann allen Kunden von MOA SS gleichermaßen zur Verfügung.

2.8 Gültigkeitsmodell für die Zertifikatskettenprüfung

Name cfg:ChainingModes
Relevanz MOA SP
Gebrauch optional
Erläuterung

Das Element cfg:ChainingModes legt fest, ob MOA SP für die Prüfung der Gültigkeit einer konstruierten Zertifikatskette das Kettenmodell aus ISIS-MTT oder das Schalenmodell aus dem PKIX RFC 3280 verwenden soll.

Das Element cfg:ChainingModes weist ein optionales Attribut auf:

  • Attribut systemDefaultMode: Dieses Attribut gibt das Default-Modell für die Prüfung der Gültigkeit einer konstruierten Zertifikatskette an. Gültige Werte sind chaining (Kettenmodell) oder pkix (Schalenmodell). Wird das Attribut nicht angegeben, verwendet MOA SP als Default-Modell das Schalenmodell.

Das Element cfg:ChainingModes hat folgenden Element-Inhalt:

  • Element cfg:TrustAnchor: Dieses Element kann beliebig oft (auch gar nicht) verwendet werden, um für bestimmte Vertrauensanker (vergleiche Abschnitt 2.11) Ausnahmen vom Default-Modell vorzugeben.
    Das Element weist ein obligatorisches Attribut auf:
    • Attribut mode: Dieses Attribut gibt jenes Modell an, das von MOA SP für die Prüfung von konstruierten Zertifikatsketten zu verwenden ist, die im mittels cfg:TrustAnchor/dsig:X509IssuerName und cfg:TrustAnchor/dsig:X509SerialNumber angegebenen Vertrauensanker münden. Gültige Werte sind chaining (Kettenmodell) oder pkix (Schalenmodell).

    Der Element-Inhalt von cfg:TrustAnchor entspricht jenem von cfg:KeyCertIssuerSerial in Abschnitt 2.6. Um zu den Werten für Ausstellername und Seriennummer des Vertrauensankers zu kommen, können Sie auch hier das Script certtool (vergleiche Abschnitt 2.6) verwenden.

Bitte beachten Sie: Für maximal ein Konfigurationselement cfg:KeyGroupMapping kann cfg:X509IssuerSerial auch weggelassen werden. Die darin enthaltenen Schlüsselgruppen stehen dann allen Kunden von MOA SS gleichermaßen zur Verfügung.

2.8 Archivierungsdauer für Widerrufsinformationen

Name cfg:CRLArchive
Relevanz MOA SP
Gebrauch optional
Erläuterung

Das Element cfg:CRLArchive gibt an, wie lange Widerrufsinformationen von MOA SP archiviert werden müssen. Das Element wird von MOA SP nur dann ausgewertet, wenn der generische Konfigurationsparameter für die Archivierung von Widerrufsinformationen (cfg:GenericConfiguration/@name="archiveRevocationInfo") auf true gesetzt ist.

Das Element weist ein obligatorisches Attribut auf:

  • Attribut duration: Dieses Attribut vom Typ xs:nonNegativeInteger gibt die Archivierungsdauer für Widerrufsinformationen in Tagen an.

Das Element hat keinen Element-Inhalt

2.9 Manuelle Konfiguration von Verteilungspunkten für Widerrufslisten

Name cfg:CRLDistributionPoint
Relevanz MOA SP
Gebrauch optional
Erläuterung

Das Element cfg:CRLDistributionPoint kann dazu verwendet werden, manuelle Verteilungspunkte für Widerrufslisten einer bestimmten CA zu konfigurieren.

Dies macht für veraltete Zertifikate Sinn, die nicht den aktuellen Vorgaben aus dem PKIX RFC 3280 entsprechen und im Zertifikat selbst keine Zertifikatserweiterung mit einem solchen Verteilungspunkt enthalten.

Weiters kann diese manuelle Konfiguration verwendet werden, wenn die in einem Zertifikat enthaltenen Verteilungspunkte für eine bestimmte CA durch einen manuellen Eintrag überschrieben werden soll (etwa weil die im Zertifikat enthaltenen Verteilungspunkte in Form von ldap-URLs angegeben sind, MOA SP aber der Zugriff auf ldap-URLs per Firewall-Einstellungen untersagt ist; dann könnte man stattdessen manuell eine (lokale) http-URL als Verteilungspunkt angeben, die von MOA SP dann aufgelöst werden kann).

Das Element weist keine Attribute auf und hat folgenden Element-Inhalt:

  • Element cfg:CAIssuerDN: Dieses Element enthält als Textinhalt vom Typ xs:string den Namen jener CA, die das Zertifikat ausgestellt hat, dessen Widerruf mit Hilfe des zu konfigurierenden Verteilungspunktes geprüft werden soll. Um zu diesem Wert zu kommen, können Sie auch hier das Script certtool (vergleiche Abschnitt 2.6) verwenden, in dem Sie es für das Zertifikat anwenden, dessen Widerruf mit Hilfe des zu konfigurierenden Verteilsungspunktes geprüft werden soll.
  • Element cfg:DistributionPoint: Dieses Element weist bis zu zwei Attribute auf und hat keinen Element-Inhalt:
    • Attribut reasonCodes: Dieses Attribut vom Typ xs:NMTOKENS enthält die in PKIX RFC 3280 angeführten möglichen Gründe eines Widerrufs, für welche die über den zu konfigurierenden Verteilungspunkt zu beziehende Widerrufsliste ausgestellt ist. Das Attribut kann einen oder auch mehrere Gründe enthalten. Mehrere Gründe werden durch Leerzeichen voneinander getrennt. Gültige Gründe sind unused, keyCompromise, cACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold, privilegeWithdrawn und aACompromise. Wird das Attribut reasonCodes nicht angegeben, werden alle möglichen Gründe gesetzt.
    • Attribut uri: Der Wert dieses obligatorischen Attributs vom Typ xs:anyURI enthält die URL für den zu konfigurierenden Verteilungspunkt. Es werden die Protokolle HTTP, HTTPS und LDAP unterstützt.

2.10 Vordefinierte Profile

MOA SP/SS erlaubt die Hinterlegung von vordefinierten Profilen für folgende Bereiche, um die Angabe von ständig wiederkehrenden Informationen in Requests zur Erstellung bzw. Prüfung von Signaturen zu vermeiden:

Jedes dieser Elemente kann dabei beliebig oft (auch gar nicht) vorkommen. Alle Elemente teilen den gleichen Aufbau; sie weisen zwei obligatorische Attribute auf und haben keinen Element-Inhalt:

2.11 Vertrauensprofile

Name cfg:TrustProfile
Relevanz MOA SP
Gebrauch obligatorisch (zumindest ein Vertrauensprofil muss vorhanden sein)
Erläuterung

Das Element cfg:TrustProfile wird dazu verwendet, um in MOA SP ein Vertrauensprofil für die Signaturprüfung einzurichten. Ein Vertrauensprofil besteht aus einer Menge von Vertrauensankern und einer optionalen Menge von explizit erlaubten Signatorzertifikaten.

Ein Vertrauensanker ist ein CA-Zertifikat, das explizit als vertrauenswürdig eingestuft wird. MOA SP versucht bei der Konstruktion einer Zertifikatskette, einen Pfad vom Signatorzertifikat bis hin zu einem der konfigurierten Vertrauensanker zu finden. Gelingt dies, wird auch das Signatorzertifikat als vertrauenswürdig betrachtet, ansonsten nicht.

Wird neben der Menge von Vertrauensankern auch noch eine Menge von explizit erlaubten Signatorzertifikaten angegeben, prüft MOA SP nicht nur, ob sich ein Pfad vom Signatorzertifikat zu einem konfigurierten Vertrauensanker konstruieren lässt, sondern darüber hinaus auch noch, ob das Signatorzertifikat aus der zu prüfenden Signatur in der Menge der explizit erlaubten Signatorzertifikate vorkommt. Explizit erlaubte Signatorzertifikate sollten Sie dann konfigurieren, wenn nicht allen von einer als Vertrauensanker konfigurierten CA ausgestellten Zertifikaten vertraut werden soll, sondern nur ganz bestimmten Zertifikaten dieser CA.

In MOA SP können beliebig viele solcher Vertrauensprofile konfiguriert werden. Der Kunde von MOA SP gibt im Request zur Signaturprüfung an, gegen welches Vertrauensprofil MOA SP die Zertifikatsprüfung vornehmen soll.

Das Element cfg:TrustProfile weist zwei obligatorische und ein optionales Attribut auf und hat keinen Element-Inhalt:

  • Attribut id: Dieses Attribut vom Typ xs:token enthält einen frei wählbaren Identifikator für dieses Konfigurationselement, der innerhalb der XML-Konfigurationsdatei eindeutig sein muss. Dieser Identifikator wird im Request zur Signaturprüfung verwendet, um das zu verwendende Vertrauensprofil auszuwählen.
  • Attribut uri: Dieses Attribut vom Typ xs:anyURI enthält eine relative oder absolute URL, die ein Verzeichnis im lokalen Dateisystem referenziert. Eine relative URL wird relativ zum Pfad jenes Verzeichnisses interpretiert, in dem die zentrale Konfigurationsdatei gespeichert ist. Eine absolute URL muss als Protokoll-Teil file verwenden. Das referenzierte Verzeichnis muss eine oder mehrere DER-kodierte Zertifikatsdateien beinhalten. Jede Zertifikatsdatei repräsentiert einen Vertrauensanker.
  • Attribut signerCertsUri: Dieses Attribut vom Typ xs:anyURI enthält eine relative oder absolute URL, die ein Verzeichnis im lokalen Dateisystem referenziert. Eine relative URL wird relativ zum Pfad jenes Verzeichnisses interpretiert, in dem die zentrale Konfigurationsdatei gespeichert ist. Eine absolute URL muss als Protokoll-Teil file verwenden. Das referenzierte Verzeichnis muss eine oder mehrere DER-kodierte Zertifikatsdateien beinhalten. Jede Zertifikatsdatei repräsentiert ein explizit erlaubtes Signatorzertifikat.

3 Beispielkonfigurationen

3.1 Minimale Konfiguration für MOA SS

Nachfolgend finden Sie eine zentrale Konfigurationsdatei mit den minimal notwendigen Einträgen für den alleinigen Betrieb von MOA SS. Darin enthalten sind folgende Konfigurationselemente:

Minimale Konfiguration für MOA SS

3.2 Minimale Konfiguration für MOA SP

Nachfolgend finden Sie eine zentrale Konfigurationsdatei mit den minimal notwendigen Einträgen für den alleinigen Betrieb von MOA SP. Darin enthalten sind folgende Konfigurationselemente:

Minimale Konfiguration für MOA SP

3.3 Typische Konfiguration für MOA SP/SS

Nachfolgend finden Sie eine typische zentrale Konfigurationsdatei mit Einträgen für den kombinierten Betrieb von MOA SP und SS. Diese Datei wird auch als Konfiguration von MOA SP und SS verwendet, die für das Ausführen der Beispiele des Anwenderhandbuchs notwendig ist.

Typische Konfiguration für MOA SP/SS