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

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

Installation


Inhalt

  1. Übersicht

  2. Webservice

    1. Basisinstallation
      1. Einführung
      2. Installation
        1. Vorbereitung
        2. Konfiguration von Apache Tomcat
          1. Konfiguration des HTTP Connectors
          2. Konfiguration des HTTPS Connectors
          3. Einrichten des MOA SP/SS Administrators
        3. Einsatz des MOA SP/SS Webservices in Tomcat
        4. Starten und Stoppen von Tomcat
          1. Unter Windows
          2. Unter Unix
          3. Prüfen des erfolgreichen Starts
        5. Änderung der Konfiguration im laufenden Betrieb
      3. Logging
        1. Format der Log-Meldungen
        2. Wichtige Log-Meldungen
  3. Klassenbibliothek
    1. Basisinstallation
      1. Einführung
      2. Vorbereitung
      3. Verwendung
      4. Logging

1 Übersicht

Die Module Signaturprüfung (SP) und Serversignatur (SS) sind als plattformunabhängige Module ausgelegt, die entweder als Webservice über HTTP bzw. HTTPS oder als Klassenbibliothek über ein API angesprochen werden können. Dieses Handbuch beschreibt die Installation der beiden Module als Webservice oder als Klassenbibliothek, sowie die Einrichtung der Systemumgebung.

2 Webservice

Dieser Abschnitt beschreibt die Installation von MOA SP/SS als Webservice. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsmöglichkeiten auf.

2.1 Basisinstallation

2.1.1 Einführung

Die Basisinstallation des Webservices stellt einerseits die minimalen Anforderungen für den Betrieb von MOA SP/SS als Webservices dar, andererseits dient sie als Ausgangspunkt für optionale Erweiterungsmöglichkeiten.

Folgende Software ist Voraussetzung für die Basisinstallation des Webservices:

In diesem Betriebs-Szenario wird das MOA SP/SS Webservice in Tomcat zum Einsatz gebracht. Tomcat fungiert gleichzeitig als HTTP- und HTTPS-Endpunkt für das MOA SP/SS Webservice. Beide Protokolle werden direkt in Tomcat konfiguriert. Das MOA SP/SS Webservice verwendet Log4j als Logging Toolkit.

2.1.2 Installation

2.1.2.1 Vorbereitung

Die folgenden Schritte dienen der Vorbereitung der Installation.

Installation von J2SE SDK
Installieren Sie J2SE 1.3.1 SDK oder J2SE 1.4.2 SDK oder J2SE 5.0 SDK in ein beliebiges Verzeichnis. Wir empfehlen die Installation von J2SE 5.0 SDK. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet.
Installation von Apache Tomcat 4.1
Installieren Sie Apache Tomcat 4.1.18 oder höher in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Wir empfehlen die Installation von Apache Tomcat 4.1.31. Verwenden Sie bitte die zu Ihrem J2SE SDK passende Distribution von Tomcat. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als $CATALINA_HOME bezeichnet.
Entpacken der MOA SP/SS Webservice Distribution
Entpacken Sie die Datei moa-spss-1.2.x.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
Installation der mitgelieferten Krypographiebibliotheken

Die Installation der mitgelieferten Kryptographiebibliotheken des IAIK ist abhängig vom eingesetzten J2SE SDK:

J2SE 1.3.1 SDK
Kopieren Sie alle Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext13 in das Verzeichnis $JAVA_HOME/jre/lib/ext.
J2SE 1.4.2 SDK oder JSE 5.0 SDK
Kopieren Sie alle Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext14 in das Verzeichnis $JAVA_HOME/jre/lib/ext. Zusätzlich müssen Sie die Rechtedateien Ihres J2SE 1.4.2 SDK bzw. J2SE 5.0 SDK austauschen. Laden Sie dazu die Unlimited Strength Jurisdiction Policy Files von der J2SE 1.4.2 SDK Downloadseite bzw. J2SE 5.0 SDK Downloadseite und folgen Sie der darin enthaltenen Installationsanweisung.

2.1.2.2 Konfiguration von Apache Tomcat

Die zentrale Konfigurations-Datei von Tomcat ist $CATALINA_HOME/conf/server.xml. Tomcat wird grundsätzlich mit einer funktionierenden Default-Konfiguration ausgeliefert, die jedoch einiges an Ballast enthält und viele Ports offen lässt.

2.1.2.2.1 Konfiguration des HTTP Connectors

Die Datei $MOA_SPSS_INST/tomcat/server.xml enthält eine minimale Tomcat-Konfiguration, die ausschließlich den Connector für HTTP auf Port 8080 freischaltet. Durch kopieren dieser Datei nach $CATALINA_HOME/conf/server.xml kann Tomcat mit dieser Konfiguration gestartet werden. Wir empfehlen diese Konfiguration nur für Fälle, in denen das MOA SP/SS Webservice in einer abgeschlossenen Netzwerkumgebung betrieben wird.

2.1.2.2.2 Konfiguration des HTTPS Connectors

Wird das MOA SP/SS Webservice in einer nicht abgeschlossenen Umgebung (z.B. Erreichbarkeit über das Internet) betrieben, ist die gegenseitige Identitätsfeststellung von Kunde und Webservice essentiell:

Beide Identitätsprüfungen können mit hoher Qualität vorgenommen werden, wenn die Erreichbarkeit des Webservice auf SSL mit Server- (für MOA SP) bzw. Client- und Serverauthentisierung (für MOA SS) eingeschränkt wird.

Für die dazu notwendige Konfiguration kann die im vorigen Abschnitt besprochene minimale Tomcat-Konfiguration als Ausgangspunkt verwendet werden: Zunächst ist der HTTP Connector abzuschalten (auszukommentieren). Anschließend ist der HTTPS Connector zu konfigurieren. Das Dokument Tomcat SSL Configuration HOW-TO gibt einen guten Überblick dazu. Grob zusammengefasst sind folgende Schritte durchzuführen:

Die Konfiguration des HTTPS Connectors kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, und dieser die SSL-Kommunikation mit dem Kunden übernimmt (siehe Abschnitt 2.2.1).

2.1.2.2.3 Einrichten des MOA SP/SS Administrators

Das MOA SP/SS Webservice kann remote durch den Aufruf einer speziellen URL des Webservices dazu veranlasst werden, seine Konfiguration neu einzulesen (vergleiche Abschnitt 2.1.2.5). Der Zugriff auf diese URL ist durch eine Passwort-Abfrage geschützt, und kann nur von Tomcat-Benutzern aufgerufen werden, denen die Tomcat-Benutzer-Rolle moa-admin zugeordnet wurde.

Um diese Benutzer-Rolle und einen oder mehrere Benutzer einzurichten, müssen in der Datei $CATALINA_HOME/conf/tomcat-users.xml unter dem Element <tomcat-users> sinngemäß folgende Einträge hinzugefügt werden:

<role rolename="moa-admin"/> 
<user username="moa-chief" password="openSesam" roles="moa-admin"/> 

Soll der Aufruf dieser URL niemandem ermöglicht werden, sind die oben beschriebenen Einträge einfach nicht vorzunehmen.

2.1.2.3 Einsatz des MOA SP/SS Webservices in Tomcat

Um das MOA SP/SS Webservice in Tomcat für den Einsatz vorzubereiten, sind folgende Schritte notwendig:

2.1.2.4 Starten und Stoppen von Tomcat

2.1.2.4.1 Unter Windows

Das Verzeichnis $MOA_SPSS_INST/tomcat/win32 enthält Script-Dateien zum Starten und Stoppen von Tomcat. Vor der erstmaligen Verwendung der Scripts müssen in den ersten Zeilen die Umgebungsvariablen JAVA_HOME (Basisverzeichnis des eingesetzten J2SE SDK) und CATALINA_HOME (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden. Evtl. müssen Sie auch noch die in den Script-Dateien gesetzten, in Abschnitt 2.1.2.3 besprochenen System Properties anpassen.

2.1.2.4.2 Unter Unix

Zunächst müssen die in Abschnitt 2.1.2.3 besprochenen System Properties mit Hilfe der Umgebungsvariablen CATALINA_OPTS gesetzt sein. Die Datei $MOA_SPSS_INST/tomcat/unix/moa-env.sh enthält ein Beispiel dafür. Weiters müssen noch die Umgebungsvariablen JAVA_HOME (Basisverzeichnis des eingesetzten J2SE SDK) und CATALINA_HOME (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden.

Nun kann Tomcat aus seinem Basisverzeichnis mit

bin/catalina.sh start
gestartet werden. Das Stoppen von Tomcat erfolgt analog mit
bin/catalina.sh stop
2.1.2.4.3 Prüfen des erfolgreichen Starts

Ein erfolgreicher Start des MOA SP/SS Webservices ist an folgender Log-Meldung ersichtlich:

INFO | 18 10:09:45,155 | main | TID=startup NID=<null> MSG=MOA Konfiguration erfolgreich geladen

Bei leichten Fehlern in der Konfiguration geben WARN Log-Meldungen unmittelbar davor Aufschluss über fehlerhafte Konfigurations-Einträge. Nach dem Starten von Tomcat steht das MOA SP/SS Webservice für die Server-Signatur und Signatur-Prüfung unter den Endpunkten

http://<host>:<port>/moa-spss/services/SignatureCreation

bzw.

http://<host>:<port>/moa-spss/services/SignatureVerification

zur Verfügung. Die Verfügbarkeit des Services können Sie einfach überprüfen, indem Sie die Endpunkte mit einem Web-Browser aufgerufen; dies sollte nach erfolgreichem Start zur Anzeige einer Informationsseite führen.

Konnte das MOA SP/SS Webservice nicht ordnungsgemäß gestartet werden, führt das zu folgender Log-Meldung:

FATAL | 18 10:17:03,475 | main | TID=startup NID=<null> 
MSG=Fehler beim Lesen der MOA Konfiguration: das Service steht nicht zur Verfügung
In diesem Fall geben die WARN bzw. ERROR Log-Meldungen unmittelbar davor Aufschluss über den genaueren Grund.

2.1.2.5 Änderung der Konfiguration im laufenden Betrieb

Sie können die Konfiguration für MOA SP/SS im laufenden Betrieb aktualisieren, in dem Sie mittels eines Web-Browsers folgende URL aufrufen:

 http://<host>:<port>/moa-spss/ConfigurationUpdate 

Damit dies funktioniert, muss in der Konfiguration von Tomcat ein spezieller Benutzer sowie eine spezielle Benutzerrolle eingerichtet werden (vergleiche Abschnitt 2.1.2.2.3).

2.1.3 Logging

Das MOA SP/SS Webservice verwendet Jakarta Log4j für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsmöglichkeiten, die ausführlich im Jakarta Log4j Handbuch beschrieben sind. Unter anderem gibt es die Möglichkeit, folgende Einstellungen vorzunehmen:

Das MOA SP/SS Webservice verwendet folgende Log-Hierarchien:

Eine für MOA SP/SS passende Konfigurationsdatei für Log4j finden Sie hier. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Datei moa-spss.log geschrieben.

2.1.3.1 Format der Log-Meldungen

Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erläutert:

INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 
  MSG=Starte neue Transaktion: TID=1049225059594-100, Service=SignatureVerification

Der Wert INFO besagt, dass die Log-Meldung im Log-Level INFO entstanden ist. Folgende Log-Levels existieren:

Der nächste Wert 01 21:25:26,540 gibt den Zeitpunkt an, zu dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit).

Der Wert Thread-3 bezeichnet den Thread, von dem die Anfrage bearbeitet wird.

Der Wert von TID gibt die für jede Anfrage eindeutige Transaktions-ID an. Log-Meldungen, die bei der Abarbeitung dieser Anfrage geschrieben werden, enthalten alle einen Hinweis auf die entsprechende Transaktions-ID.

Der Wert von NID gibt den Rechner-Knoten an, auf dem das MOA SP/SS Webservice läuft (bei NID=<null> ist dieser Wert nicht konfiguriert, vergleiche Abschnitt 2.1.2.3).

Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist häufig ein Java Stack-Trace angefügt, der eine genauere Ursachen-Forschung ermöglicht.

2.1.3.2 Wichtige Log-Meldungen

Neben den im Abschnitt 2.1.2.4.3 beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgemäß gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss über die Abarbeitung von Anfragen.

Die Entgegennahme einer Anfrage wird angezeigt durch:

INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> 
  MSG=Starte neue Transaktion: TID=1049225059594-100, Service=SignatureVerification
INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> 
  MSG=Aufruf von Adresse=127.0.0.1
INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> 
  MSG=Client-Zertifikat nicht verfügbar

Die dritte Log-Meldung besagt, dass für die Abarbeitung dieser Anfrage kein Client-Zertifikat verfügbar ist (entweder, weil die Anfrage über HTTP eingelangt ist, oder weil die SSL Client-Authentisierung nicht eingeschaltet ist). Bei erfolgreicher SSL Client-Authentisierung, gibt beispielsweise folgende Log-Meldung Informationen über das Client-Zertifikat aus:

INFO | 12 13:58:08,772 | Thread-10 | TID=1045054687159-2 NID=<null> 
  MSG=Client-Zertifikat: Subject=CN=Testuser, OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT, 
  Serial=1.039.104.204, Issuer=CN=TestCA, OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT

Eine erfolgreich abgearbeitete Anfrage wird angezeigt durch:

INFO | 01 21:25:53,168 | Thread-3 | TID=1049225059594-106 NID=<null> 
  MSG=Anfrage erfolgreich abgearbeitet

Ein Fehler beim Abarbeiten der Anfrage wird angezeigt durch:

INFO | 01 21:25:27,642 | Thread-3 | TID=1049225059594-100 NID=<null> 
  MSG=Fehler beim Abarbeiten der Anfrage

In diesem Fall gibt der mitgeloggte Stacktrace Auskunft über die Art des Fehlers. Der Aufrufer des MOA SP/SS Webservices bekommt einen Fehlercode sowie eine kurze Beschreibung des Fehlers als Antwort zurück.

Die Tatsächlich übertragenen Anfragen bzw. Antworten werden aus Effizienzgründen nur im Log-Level DEBUG angezeigt.

2.2 Erweiterungsmöglichkeiten

Ausgehend von der Basisinstallation können die optionalen Erweiterungen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden.

2.2.1 Vorgeschalteter Webserver

2.2.1.1 Apache

2.2.1.2 Microsoft Internet Information Server

2.2.2 Datenbank

2.2.2.1 PostgreSQL

2.2.2.2 Oracle

2.2.3 Hardware Security Module (HSM)

3 Klassenbibliothek

Dieser Abschnitt beschreibt die Verwendung von MOA SP/SS als Klassenbibliothek. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsmöglichkeiten auf.

3.1 Basisinstallation

3.1.1 Einführung

Die Basisinstallation der Klassenbibliothek stellt einerseits die minimalen Anforderungen für den Einsatz von MOA SP/SS als Klassenbibliothek dar, andererseits dient sie als Ausgangspunkt für optionale Erweiterungsmöglichkeiten.

Folgende Software ist Voraussetzung für die Basisinstallation der Klassenbibliothek:

3.1.2 Vorbereitung

Die folgenden Schritte dienen der Vorbereitung der Installation.

Installation von J2SE SDK
Installieren Sie J2SE 1.3.1 SDK oder J2SE 1.4.2 SDK oder J2SE 5.0 SDK in ein beliebiges Verzeichnis. Wir empfehlen die Installation von J2SE 5.0 SDK. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet.
Entpacken der MOA SP/SS Klassenbibliotheks-Distribution
Entpacken Sie die Datei moa-spss-1.2.x-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
Installation der mitgelieferten Krypographiebibliotheken

Die Installation der mitgelieferten Kryptographiebibliotheken des IAIK ist abhängig vom eingesetzten J2SE SDK:

J2SE 1.3.1 SDK
Kopieren Sie alle Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext13 in das Verzeichnis $JAVA_HOME/jre/lib/ext.
J2SE 1.4.2 SDK oder JSE 5.0 SDK
Kopieren Sie alle Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext14 in das Verzeichnis $JAVA_HOME/jre/lib/ext. Zusätzlich müssen Sie die Rechtedateien Ihres J2SE 1.4.2 SDK bzw. J2SE 5.0 SDK austauschen. Laden Sie dazu die Unlimited Strength Jurisdiction Policy Files von der J2SE 1.4.2 SDK Downloadseite bzw. J2SE 5.0 SDK Downloadseite und folgen Sie der darin enthaltenen Installationsanweisung.

3.1.3 Verwendung

Um die MOA SP/SS Klassenbibliothek in einer Applikation verwenden zu können, müssen die mit MOA SP/SS ausgelieferten Bibliotheken in den Java Klassenpfad der Applikation eingebunden werden.

Die nachfolgende Tabelle listet diese Klassenbibliotheken auf; die Einträge in der Spalte Dateien sind relativ zum Verzeichnis $MOA_SPSS_INST zu interpretieren.

KlassenbibliothekVersionDateien
MOA SP/SS 1.2.x  moa-spss.jar, moa-common.jar
MOA IAIK 1.0.7 

lib/iaik-moa-full.jar, lib/iaikPkcs11Wrapper.jar, lib/iaik_cms.jar, lib/ixsil.jar

Bitte beachten Sie: Falls Sie J2SE 1.3.1 JRE verwenden, benötigen Sie zusätzlich auch noch folgende Bibliotheken:

lib/iaik_ecc.jar, lib/iaikPkcs11Provider.jar

JAXP1.2_01  lib/jaxp-api.jar, lib/sax.jar, lib/dom.jar
Xerces-J2.4.0  lib/xercesImpl.jar, lib/xmlParserAPIs.jar
Xalan-J2.5.1 

lib/xalan.jar

Bitte beachten Sie: Wenn Sie J2SE 1.4.2 JRE oder J2SE 5.0 JRE verwenden, müssen Sie diese Bibliothek der Java VM als endorsed bekanntgeben. Sie können dies tun, indem Sie entweder

  • die Bibliothek in das (ggf. vorher anzulegende) Verzeichnis $JAVA_HOME/jre/lib/endorsed/ kopieren; oder
  • die System Property java.endorsed.dirs verwenden, und als Wert den Pfad zu jenem Verzeichnis angeben, in dem Sie die Bibliothek vorhalten (also z.B. java.endorsed.dirs=c:/mylibdir).
Jaxen1.0  lib/jaxen-core.jar, lib/jaxen-dom.jar, lib/saxpath.jar
Commons-Logging 1.0.4  lib/commons-logging-api.jar, lib/commons-logging.jar
Log4j1.2.7  lib/log4j-1.2.7.jar
Commons-Discovery0.2  lib/commons-discovery.jar
JSSE1.0.3_01 

Diese Bibliotheken benötigen Sie nur, wenn Sie J2SE 1.3.1 verwenden:

lib/ext13/jsse.jar, lib/ext13/jcert.jar, lib/ext13/jnet.jar

Bitte beachten Sie: Diese Bibliotheken benötigen Sie nur, wenn Sie J2SE 1.3.1 verwenden.

Postgres JDBC27.3 

lib/pg73jdbc2.jar

Bitte beachten Sie: Wenn Sie keine Datenbank für MOA SP/SS verwenden (vergleiche Abschnitt TBD), benötigen Sie diese Bibliothek nicht.

3.1.4 Logging

Die MOA SP/SS Klassenbibliothek verwendet Jakarta Log4j für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Die im Abschnitt 2.1.3 gemachten Aussagen lassen sich großteils auf den Einsatz der MOA SP/SS Klassenbibliothek übertragen.

3.2 Erweiterungsmöglichkeiten

3.2.1 Datenbank

3.2.1.1 PostgreSQL

3.2.1.2 Oracle

3.2.2 Hardware Security Module (HSM)

A Referenzierte Software

Auf folgende Software-Pakete wird in diesem Handbuch verwiesen:

Name Beschreibung
Apache Tomcat 4.1.x Servlet-Container des Apache Jakarta Projekts in der Version 4.1.x
J2SE 1.3.1 SDK/JRE Java 2 Standard Edition in der Version 1.3.1 (Software Development Kit bzw. Java Runtime Environment)
J2SE 1.4.2 SDK/JRE Java 2 Standard Edition in der Version 1.4.2 (Software Development Kit bzw. Java Runtime Environment)
J2SE 5.0 SDK/JRE Java 2 Standard Edition in der Version 5.0 (Software Development Kit bzw. Java Runtime Environment)
Jakarta Log4J Logging Framework des Apache Jakarta Projekts