| Dokumentation |

MOA: Serversignatur (SS) und Signaturprüfung (SP)

FAQ

# Inhalt

1. Allgemeines

2. Übersicht der Fragen

3. Antworten

# 1 Allgemeines

Dieses Dokument enthält eine Reihe von häufig gestellten Fragen zu Installation, Konfiguration und Verwendung von MOA Serversignatur (SS) und Signaturprüfung (SP).

# 2 Übersicht der Fragen

## Installation

1. Beim Starten von MOA SPSS tritt folgende Exception auf: `java.lang.ClassCastException: iaik.asn1.structures.Name`. Was kann der Fehler sein? [Zur Antwort]
2. Ich möchte MOA SS/SP in einer Umgebung betreiben, die einen Internet-Zugang nur über einen Proxy erlaubt. Funktioniert das? [Zur Antwort]

## Konfiguration

1. Ich möchte gerne die CRL-Archivierung von MOA verwenden, möchte aber eine andere als die in der Konfiguration erwähnte postgreSQL-Datenbank verwenden. Geht das? [Zur Antwort]
2. Ich möchte ein Zertifikat (z.B. einer Zwischen-Zertifizierungsstelle) manuell in den internen Zertifikatsspeicher von MOA SP importieren. Wie funktioniert das? [Zur Antwort]
3. Meine bestehende Konfigurationsdatei funktioniert mit MOA SP/SS 1.3 oder höher nicht mehr. Was ist passiert? [Zur Antwort]
4. Welche Netzwerkverbindungen (incoming / outgoing) werden durch MOA SP/SS benötigt? [Zur Antwort]

## Verwendung

1. Bei der Prüfung einer Signatur liefert die Prüfung des Zertifikatsstatus den Code 1. Was kann der Fehler sein? [Zur Antwort]

# 3 Antworten

## Installation

1. Beim Starten von MOA SPSS tritt folgende Exception auf: `java.lang.ClassCastException: iaik.asn1.structures.Name`. Was kann der Fehler sein?

   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 benützt, 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

2. Ich möchte MOA SS/SP in einer Umgebung betreiben, die einen Internet-Zugang nur über einen Proxy erlaubt. Funktioniert das?

   Ja, zumindest für Zugriffe über HTTP. Sie müssen dazu die nachfolgenden JAVA System-Properties setzen:

       http.proxyHost=<proxyhost>
       http.proxyPort=<proxyport>
       http.nonProxyHosts="<exceptionhosts>"

   `<proxyhost>` gibt den Namen oder die IP-Adresse des Proxies an.

   `<proxyport>` gibt den Port des Proxies an.

   `<exceptionhosts>` enthält eine Liste von Rechnernamen, die nicht über den Proxy laufen sollen. Jedenfalls müssen sie hier `localhost` angeben. Einzelne Namen sind durch eine Pipe (`|`) zu trennen. Bitte beachten Sie, dass IP-Addressen nicht angegeben werden dürfen, sowie die verpflichtend zu verwendenen Anführungszeichen.

## Konfiguration

1. Ich möchte gerne die CRL-Archivierung von MOA verwenden, möchte aber eine andere als die in der Konfiguration erwähnte postgreSQL-Datenbank verwenden. Geht das?

   Ja, das ist möglich. Wenn Sie eine mySQL-Datenbank verwenden möchten, sind folgende Maßnahmen zu treffen:

   - Laden Sie den mySQL-JDBC-Connector herunter und fügen Sie das im Download enthaltene jar-File `mysql-connector-java-3.x.x-stable-bin.jar` zum Klassenpfad für MOA SPSS hinzu.
   - Geben Sie im MOA-Konfigurationsfile mit Hilfe des generischen Konfigurationsparameters `DataBaseArchiveParameter.JDBCUrl` eine gültige JDBC-URL zu Ihrer mySQL-Datenbank angeben. Hinweise zum Format dieser URL für mySQL finden Sie hier.

   Wenn Sie eine andere Datenbank verwenden möchten, beispielsweise Oracle, gehen Sie sinngemäß wie oben vor und setzen zusätzlich noch folgenden Schritt:

   - Geben Sie im MOA-Konfigurationsfile mit Hilfe des generischen Konfigurationsparameters `DataBaseArchiveParameter.JDBCDriverClass` den vollständig qualifizierten Klassennamen des JDBC-Treibers an, der die Verbindung zu Ihrer Datenbank herstellt.
2. Ich möchte ein Zertifikat (z.B. einer Zwischen-Zertifizierungsstelle) manuell in den internen Zertifikatsspeicher von MOA SP importieren. Wie funktioniert das?

   Sie können für diesen Zweck ein mit MOA SP/SS mitgeliefertes Kommandozeilen-Tool verwenden, das Sie im Verzeichnis `$MOA_SPSS_INST/tools` finden. Wechseln Sie zu diesem Verzeichnis und rufen Sie die Script-Datei `certtools.bat` bzw. `certtools.sh` (je nach Betriebssystem) auf. Achten Sie darauf, dass die Umgebungsvariable `$JAVA_HOME` korrekt gesetzt ist. Die Syntax für dieses Tool lautet:

       certtool -add <cert> <store>

   `<cert>` bezeichnet dabei Pfad und Dateiname des zu importierenden X509-Zertifikats. Das Zertifikat muss DER-kodiert vorliegen.

   `<store>` bezeichnet den Pfad des internen Zertifikatsspeichers von MOA SP. Wenn Sie nach der Installationsanleitung vorgegangen sind, lautet dieser Pfad `$CATALINA_HOME/conf/moa-spss/certstore`.

3. Meine bestehende Konfigurationsdatei funktioniert mit MOA SP/SS 1.3 oder höher nicht mehr. Was ist passiert?

   Mit dem Wechsel auf Version 1.3 verwendet MOA SP/SS ein neues, übersichtlicheres Format für die XML-Konfigurationsdatei.

   Wenn Sie von einer älteren Version von MOA SP/SS auf die Version 1.3 wechseln und Ihre bestehende Konfiguration beibehalten wollen, steht Ihnen ein einfaches Kommandozeilenwerkzeug zur Verfügung, mit dem Sie Ihre Konfigurationsdatei vom bisherigen auf das neue Format migrieren können.

   Informationen zur Verwendung des Werkzeugs finden Sie in Abschnitt 1.2.1 des Konfigurationshandbuchs.

4. Welche Netzwerkverbindungen (incoming / outgoing) werden durch MOA SP/SS benötigt?

   Die nachfolgende Tabelle gibt eine Aufstellung der benötigten Netzberbindungen und eine kurze Beschreibung über deren Funktion.

   Service | URL | Port | Richtung | Beschreibung
   MOA-SP/SS | * | 80, 443 | eingehend | Verbindungen zum Signature-Creation und Signature-Verification Service
   Referenzen / TSL | * | 80, 443 | ausgehend | Zum Auflösen von externen Referenzen, welche in den Requests enthalten sind und zum Download der Trust-Status Listen (TSL). Hinweis: Werden externe Referenzen über andere Protokolle bezogen müssen die jeweiligen Ports ebenfalls freigeschalten werden.
   LDAP | * | 389, 636 | ausgehend | Zertifikatsprüfung
   OSCP / CRL | * | 80, 443 | ausgehend | Zertifikatsprüfung

## Verwendung

1. Bei der Prüfung einer Signatur liefert die Prüfung des Zertifikatsstatus den Code 1. Was kann der Fehler sein?

   Dieser Fehlercode bedeutet: Es konnte keine formal korrekte Zertifikatskette vom Signatorzertifikat zu einem vertrauenswürdigen Wurzelzertifikat konstruiert werden. Das kann grundsätzlich eine der beiden folgenden Ursachen haben:

   - Keines der Zertifikate in der Kette vom Signatorzertifikat bis zu einem selbstsignierten Wurzelzertifikat ist im anzuwendenden TrustProfile enthalten.
   - Die Zertifikatskette konnte nicht bis zu einem im anzuwendenden TrustProfile enthaltenen vertrauenswürdigen Zertifikat gebildet werden.

   Prüfen Sie also zunächst, ob sie im anzuwendenden TrustProfile ein passendes vertrauenswürdiges Zertifikat konfiguriert haben. Das kann beispielsweise das Zertifikat jener CA sein, die das Signatorzertifikat ausgestellt hat, oder aber auch das Zertifikat einer CA weiter oben in der Hierarchie des Zertifizierungsdiensteanbieters, beispielsweise das selbstsignierte Wurzelzertifikat.

   Wenn diese Prüfung das Problem nicht behebt, gelingt des MOA SP vermutlich nicht, ein für die Bildung der Zertifikatskette notwendiges Zertifikat zu lokalisieren. Mögliche Gründe sowie Lösungsmöglichkeiten dafür sind:

   - Das aktuell letzte Zertifikat in der bereits gebildeten Zertifikatskette besitzt zwar die Zertifikatserweiterung AuthorityInformationAccess mit einem Hinweis auf das nächste Zertifikat der zu bildenden Kette, das darin per URL referenzierte Zertifikat kann jedoch nicht geladen werden. Prüfen Sie daher zunächst, ob MOA SP/SS per HTTP oder LDAP Zugriffe nach außen tätigen darf.
   - Das aktuell letzte Zertifikat in der bereits gebildeten Zertifikatskette besitzt keine Zertifikatserweiterung AuthorityInformationAccess mit einem Hinweis auf das nächste Zertifikat der zu bildenden Kette, und auch im internen Zertifikatsspeicher von MOA SP ist das nächste Zertifikat nicht enthalten. Ist Ihnen das nächste Zertifikat bekannt (z.B. durch manuellen Download von der Webseite des Zertifizierungsdiensteanbieters), können Sie es manuell in den internen Zertifikatsspeicher importieren. Eine Anleitung dazu finden Sie hier.