Grid Computing

Als Grid Computing bezeichnet man die Verwendung von Ressourcen wie Rechenleistung, Speicherplatz und Services über Institutions- und Organisationsgrenzen hinweg. Dazu sind meist Zertifikate und spezielle Softwarekomponenten (sogenannte Middleware, z.B. Globus Toolkit und UNICORE) notwendig.

Grid-Ressourcen am RRZE und eingesetzte Middleware

Aufgrund mangelnder Nachfrage werden am RRZE seit Jahren keine Grid-Gateways mehr lokal betrieben.

Das Globus Toolkit und UNICORE sind zwei unterschiedliche Ansätze für im HPC-Bereich häufig eingesetzte Middleware-Komponenten.

Kurzhinweise zu ausgewählten Grid-Softwarekomponenten:

Globus Toolkit

Das Globus Toolkit ist eine im HPC-Bereich weit verbreitete Middleware, um auf Grid-Ressourcen zuzugreifen. Globus kennt keine Client-Rechner. Daher kann das Globus Toolkit nur auf Rechnern mit einem gültigen Host-Zertifikat eingesetzt werden.

Soll das Grid-Zertifikat nur für die SSH-Authentifizierung verwendet werden, so kann auf der Clientseite GSI-SSHTerm verwendet werden, wozu kein Hostzertifikat benötigt wird. Nähere Informationen zur GSI-SSHTerm finden sich auf der GSI-SSHTerm-Sourceforce-Projektseite. GSI-SSHTerm ist eine platformübergreifende Java-Webstart Applikation und benutzt ihr Zertifikat aus dem $HOME/.globus-Verzeichnis.

UNICORE

UNICORE ist ebenfalls eine im HPC-Bereich weit verbreitete Middleware, um auf Grid-Ressourcen zuzugreifen. Der Vorteil von UNICORE ist, dass es einen Client mit grafischer Oberfläche besitzt. UNICORE unterscheidet zwischen Client-Systemen und Server-Systemen. Da auf Client-Systemen kein Maschinenzertifikat nötig ist, können Sie den UNICORE-Client jederzeit leicht auf Ihrem lokalen Rechner installieren.

Weitere Anwendungen

Grid-Zertifikate können nicht nur für Globus bzw. Unicore eingesetzt werden. Um Software zu signieren, kann ein normales DFN-Grid User-Zertifikat nicht verwendet werden, da Object Signing standardmäßig nicht als Verwendungszweck zugelassen ist. Zum Signieren von Software können Sie jedoch ein getrenntes Zertifikat beantragen.

 

Zusammenfassung der prinzipiellen Schritte zur Nutzung von Grid-Ressourcen

  1. Grid-Zertifikat besorgen (s.o.)
  2. Account auf den entsprechenden Systemen besorgen (sofern noch nicht vorhanden)
    • Accounts für die HPC-Systeme am RRZE und LRZ können über die Benutzerberatung des RRZE beantragt werden.
    • Informationen für andere Rechenzentren kann Ihnen evtl. die HPC-Beratung des RRZE geben.
  3. Verknüpfung zwischen Account und Zertifikat herstellen lassen. Hierzu sind folgende Angaben nötig:
    • Accountnummer,
    • Angaben zum Benutzer (Name, Telefon, …)
    • exakter DN, so wie er im Zertifikat enthalten ist, z. B. Ausgabe von openssl x509 -noout -subject -in cert.pem.

Grid-Zertifikate

Die Authentifikation und Autorisierung der im Grid-Bereich tätigen Personen und Ressourcen erfolgt fast immer über Zertifikate und eine sog. Public Key Infrastructure (PKI).

Bitte verwechseln Sie Grid-Zertifikate nicht mit den anderen Zertifikatstypen, die Sie über das RRZE erhalten können, wie z. B. Nutzerzertifikaten für E-Mail oder solche für Webserver. Falls Sie ein derartiges Zertifikat benötigen, sind Sie hier leider nicht auf der richtigen Seite.

Hintergrundinformationen zu Grid-Zertifikaten

Durch die Vorschriften der European Policy Management Authority for Grid Authentication in e-Science (EUGridPMA) und die Zusammenarbeit der EUGridPMA mit den entsprechenden Vereinigungen für den amerikanischen (TAGPMA) und asiatisch-pazifischen (APGridPMA) Raum gibt es inzwischen einen Standard für Grid-Computing-Zertifikate, so dass entsprechende Zertifikate im wissenschaftlichen Bereich weltweit akzeptiert werden sollten. Das Zertifikat ist dabei jedoch kein Ersatz für einen Benutzeraccount auf den entsprechenden Systemen, sondern gewissermaßen nur eine Alternative zu einem Passwort.

Für Deutschland sind die DFN-CERT Services GmbH und das Grid Computing Centre Karlsruhe (GridKa) Mitglied der EUGridPMA. Diese betreiben eine sog. Certification Authority (CA), die berechtigt ist, eine Zertifizierung auf Grundlage der EUGridPMA-Vorgaben vorzunehmen. Um ein elektronisches Zertifikat verlässlich mit einer Person oder einer Ressource zu identifizieren, ist es notwendig, dass der Zertifikatsinhaber bzw. ein Ressourcenverantwortlicher persönlich bei einer dieser CAs erscheint und sich mittels eines Ausweispapiers authentifiziert. (Vgl. Abschnitt 3.2.3 der Grid Policy CP/CPS Dokumente der DFN PKI.) Um diesen Vorgang für die Nutzenden zu vereinfachen und ihnen den Weg nach Hamburg bzw. Stuttgart oder Berlin zu ersparen, wurden sog. Registration Authorities (RA) eingerichtet, die diesen Vorgang im Auftrag der CAs übernehmen können. Das RRZE ist akkreditiert, eine Grid-RA für den DFN-CERT zu betreiben und Zertifikatsanträge von Angehörigen der Universität Erlangen-Nürnberg entgegenzunehmen.

Schritte zu einem Grid-Zertifikat

Für Angehörige der Universität Erlangen-Nürnberg gilt folgendes Verfahren, um ein Grid-Zertifikat zu bekommen:

  1. Privaten Schlüssel und Zertifikatsantrag generieren.
  2. Termin bei der Grid-RA des RRZE vereinbaren.
  3. Persönliche Vorstellung bei der Grid-RA (Akkreditierungsschreiben, Zertifikatsantrag und Personalausweise/Reisepass mitbringen) zur Identitätsüberprüfung.
  4. Das signierte Zertifikat erhalten Sie dann einige Tage später per E-Mail von der DFN-CA.

Die einzelnen Schritte sind im Folgenden Punkt für Punkt ausführlich beschrieben:

Erzeugung eines Zertifikatsantrags

Für die Erzeugung eines Zertifikatsantrags (Certification Request, Certificate Signing Request, CSR) gibt es prinzipiell mehrere Wege. Im Folgenden soll nur der von einer Grid-Middleware unabhängige Weg mittels OpenSSL aufgezeigt werden. Auf vielen Systemen sollte OpenSSL bereits standardmäßig installiert sein. Ansonsten kann die Software von der OpenSSL-Homepage heruntergeladen und auf allen gängigen Betriebssystemen sehr leicht installiert werden.

Falls Sie eine bestimmte Grid-Middleware, wie z.B. das Globus Toolkit oder UNICORE, einsetzen, können Sie damit prinzipiell auch den passenden Request erzeugen. Achten Sie jedoch darauf, dass die Namensstruktur und der daraus abgeleitete Distinguished Name (DN) exakt stimmt, da die Anträge sonst nicht bearbeitet werden können.

Der private Schlüssel kann unter gewissen Umständen auch direkt in modernen Webbrowsern generiert werden. Die DFN-Webseiten unterstützen diese Vorgehensweise; das RRZE kann davon jedoch nur strikt abraten, da das Extrahieren des privaten Schlüssels aus dem Webbrowser immer mit erheblichen Komplikationen verbunden ist. Im Fall von Problemen kann die HPC-Gruppe des RRZE nur für die unten beschriebene Vorgehensweise via OpenSSL Unterstützung bieten.

Erzeugung eines RSA-Schlüsselpaares

Dieser Schritt kann entfallen, wenn Sie bereits einen geeigneten privaten Schlüssel besitzen.

RSA-Schlüsselpaar erzeugen
Persönliches Zertifikat Maschinen-Zertifikat
openssl genrsa -des3 -out PrivateUserKey.pem 2048 openssl genrsa -out PrivateHostKey.pem 2048
Sie werden nach einem Passphrase für Ihren neuen privaten Schlüssel gefragt. Dieses Passwort sollte den Anforderungen an ein sicheres Passwort genügen (mind. 8 Zeichen, Mischung aus Buchstaben, Zahlen und Sonderzeichen, etc.). Die Eingabe wird ein zweites Mal benötigt, um die korrekte Eingabe zu verifizieren. Der private Schlüssel von Maschinenzertifikaten kann/darf nicht durch ein Passwort geschützt werden, da Dienste später automatisch starten sollen.
Falls Sie das Passwort von einem privaten Schlüssel entfernen wollen, so kann dies mit dem folgenden Befehl erfolgen: openssl rsa -in private-key-with-passwd.pem > private-key-without-passwd.pem

Der private Schüssel ermöglicht Ihre Identifikation im Grid. Das bedeutet, dass eine Person, die in den Besitz Ihres privaten Schlüssels gelangt, sich für Sie ausgeben kann. Stellen Sie deshalb unbedingt sicher, dass der private Schlüssel ausschließlich Ihnen allein zugänglich ist. Auf Linux-Systemen etwa sind alle Zugriffsrechte für group oder other zu löschen. Geben Sie das Passwort für Ihren privaten Schlüssel an keine anderen Personen weiter und sorgen Sie dafür, dass es auch nicht aus Versehen in falsche Hände geraten kann.

Erstellung des Certificate Signing Request im PKCS#10 Format

In diesem Schritt wird ein eindeutiger Identifikator, der sog. Distinguished Name (DN), abgefragt. Die meisten Teile der Namensstruktur sind dabei fest vorgegeben. Laden Sie daher die angepasste OpenSSL-Konfigurationsdatei herunter, so dass bereits die korrekten Vorgaben gesetzt sind. Sollten Sie bei der Eingabe einzelner Namenbestandteile unsicher sein, wenden Sie sich bitte an die HPC-Beratung.

CSR erzeugen
Persönliches Zertifikat Maschinen-Zertifikat
Angepasste Konfigurationsdatei rrze-grid-ra-openssl-user.cnf Angepasste Konfigurationsdatei rrze-grid-ra-openssl-host.cnf
openssl req -config rrze-grid-ra-openssl-user.cnf -new -key PrivateUserKey.pem -out usercert_request.pem openssl req -config rrze-grid-ra-openssl-host.cnf -new -key PrivateHostKey.pem -out hostcert_request.pem
Beantworten Sie die Fragen zum DN wie folgt:

  • Country Name (2 letter code) [DE]: [Return]
  • ... Grid Identifier [GridGermany]: [Return]
  • Organization Name [Universitaet Erlangen-Nuernberg]: [Return]
  • Organizational Unit Name (mandatory) []: Vollständiger Lehrstuhlname (ohne Umlaute/Sonderzeichen) s.u.
  • Common Name (mandatory) []: Ihr ausgeschriebener Vor- und Nachname (ohne Umlaute/Sonderzeichen; Titel nur soweit auch in den Ausweisen aufgeführt)
  • Email Address (mandatory) []: Ihre E-Mail-Adresse xyz@{*.uni-erlangen|fau}.de
Beantworten Sie die Fragen zum DN wie folgt:

  • Country Name (2 letter code) [DE]: [Return]
  • ... Grid Identifier [GridGermany]: [Return]
  • Organization Name [Universitaet Erlangen-Nuernberg]: [Return]
  • Organizational Unit Name (mandatory) []: Vollständiger Lehrstuhlname (ohne Umlaute/Sonderzeichen) s.u.
  • Common Name (mandatory) []: Name der Ressource (full qualified hostname) *.uni-erlangen.de
  • Email Address (mandatory) []: E-Mail-Adresse des Ressourcen-Verantwortlichen xyz@{*.uni-erlangen|fau}.de

Registrierte Lehrstuhlnamen (ohne Umlaute)

  • Erlangen Centre for Astroparticle Physics
  • Lehrstuhl für Informatik 2
  • Lehrstuhl für Informatik 3
  • Lehrstuhl für Strömungsmechanik
  • Lehrstuhl für Systemsimulation
  • Physikalisches Institut 2
  • Regionales Rechenzentrum Erlangen
  • für weitere Namen bitte bei support-hpc@fau.de nachfragen!

Hinweis: Zertifikatsanträge, die als primäre E-Mail-Adresse keine universitäre E-Mail-Adresse enthalten, werden nicht bearbeitet! Auf Wunsch können im Rahmen des Genehmigungsprozesses jedoch noch weitere E-Mail-Adressen im Zertifikat eingetragen werden, wenn diese auf dem Akkreditierungsschreiben vermerkt sind.

Hinweis: Das Feld „Organizational Unit Name“ ist verpflichtend; verwenden Sie hierfür ausschließlich mit der HPC-Gruppe abgestimmte Einrichtungsnamen und Schreibweisen.

Überprüfung des Certificate Signing Request

Die Angaben im CSR können Sie mit folgendem Befehl überprüfen:

CSR überprüfen
Persönliches Zertifikat Maschinen-Zertifikat
openssl req -noout -text -in usercert_request.pem openssl req -noout -text -in hostcert_request.pem
openssl req -noout -subject -in usercert_request.pem openssl req -noout -subject -in hostcert_request.pem

Entscheidend ist hierbei die Subject-Zeile mit dem DN. Die ersten Bestandteile müssen C=DE, O=GridGermany, OU=Universitaet Erlangen-Nuernberg sein.

Übertragung des Certificate Signing Request

CSR übertragen
Persönliches Zertifikat Maschinen-Zertifikat
Rufen Sie in einem Web-Browser das DFN-Webformular der Grid CA der Uni-Erlangen auf und gehen Sie dort den Karteireiter Serverzertifikat – ungeachtet dessen, dass Sie ein Benutzerzertifikat beantragen wollen.
Bitte verwenden Sie nicht den Kartenreiter Nutzerzertifikat, da in diesem Fall der private Schlüssel im Webbrowser generiert wird und nur sehr umständlich nach erfolgreichem Import des Zertifikats extrahiert werden kann!
Rufen Sie in einem Web-Browser das DFN-Webformular der Grid ServerCA der Uni-Erlangen auf und wählen Sie den Karteireiter Serverzertifikat aus.
Laden Sie nun den eben erstellen Zertifikatsantrag zum DFN hoch, indem Sie auf Browse/Durchsuchen klicken und dort die Dateiusercert_request.pem auswählen. Laden Sie nun den eben erstellen Zertifikatsantrag zum DFN hoch, indem Sie auf Browse/Durchsuchen klicken und dort die Dateihostcert_request.pem auswählen.
Wählen Sie als Zertifikatsprofil User aus. Wählen Sie als Zertifikatsprofil Grid Server aus.
Die PIN, die auf diesem Formular abgefragt wird, kann frei gewählt werden und hat nichts mit dem Passphrase Ihres privaten Schlüssels zu tun. Die PIN, die auf diesem Formular abgefragt wird, kann frei gewählt werden und hat nichts mit dem Passphrase Ihres privaten Schlüssels zu tun. Auch für Maschinenzertifikate müssen Sie hier eine PIN vergeben.

Vervollständigen Sie noch fehlende Angaben und folgen Sie den Hinweisen auf dem Web-Formular. Drucken Sie am Ende den Antrag auf Papier aus.

Überprüfung des Fingerprints

Um den Fingerprint, der auf dem Zertifizierungsantrag automatisch ausgegeben wird, zu überprüfen, können Sie eine der beiden folgenden Befehlssequenz verwenden: (jeweils eine lange Befehlszeile!)

Fingerprint überprüfen (ausgehend vom Privaten Schlüssel)
Persönliches Zertifikat Maschinen-Zertifikat
openssl
rsa -in PrivateUserKey.pem -pubout | openssl rsa -pubin -text -noout |
sed -e '/Modulus:$/d' | sed -e 's/Public-Key: (\(.*\))/Modulus (\1):/' |
openssl sha1 -c
openssl rsa -in PrivateHostKey.pem
-pubout | openssl rsa -pubin -text -noout | sed -e '/Modulus:$/d' | sed
-e 's/Public-Key: (\(.*\))/Modulus (\1):/' | openssl sha1 -c

alternativ

Fingerprint überprüfen (ausgehend vom Certificate Signing Request)
Persönliches Zertifikat Maschinen-Zertifikat
openssl
req -in usercert_request.pem -pubkey | openssl rsa -pubin -text -noout |
sed -e '/Modulus:$/d' | sed -e 's/Public-Key: (\(.*\))/Modulus (\1):/' |
openssl sha1 -c
openssl req -in
hostcert_request.pem -pubkey | openssl rsa -pubin -text -noout | sed -e
'/Modulus:$/d' | sed -e 's/Public-Key: (\(.*\))/Modulus (\1):/' |
openssl sha1 -c

Durch diese Prüfsumme kann sichergestellt werden, dass bei der Übermittlung an die RA/CA keine Übertragungsfehler aufgetreten sind.

Persönliche Vorstellung

Vereinbaren Sie mit der Grid-RA des RRZE einen Termin für die Vorlage eines Ausweisdokuments (Personalausweis, Reisepass). Bringen Sie den im letzten Schritt erzeugten Antrag ausgefüllt und unterschrieben zu diesem Termin mit. Zusätzlich benötigen Sie auch noch ein formloses Akkreditierungsschreiben für persönliche Zertifikate bzw. ein formloses Akkreditierungsschreiben für Maschinenzertifikate, das von der RRZE-Kontaktperson und einer autorisierten Person Ihres Lehrstuhls unterschrieben ist.

Die persönliche Überprüfung wird der DFN-CA gemeldet. Erst dann kann Ihr Request signiert werden. Dieser Vorgang kann unter Umständen mehrere Tage in Anspruch nehmen.

Erhalt des Zertifikats

Nach der Signierung erhalten Sie Ihr Zertifikat per Mail von der DFN-CA. Speichern Sie die Mail in die Datei cert.pem und löschen Sie alle Zeilen bis auf den Bereich unter „Ihr Zertifikat:“ von
-----BEGIN CERTIFICATE-----
bis
-----END CERTIFICATE-----

Kontrollieren Sie mit Hilfe des Befehls openssl x509 -in cert.pem -text, ob der DN in der Subject-Zeile korrekt ist. Der Fingerprint, der von openssl x509 -in cert.pem -pubkey | openssl rsa -pubin -text -noout | openssl sha1 -c ausgegeben wird, muss auch wieder mit dem Fingerprint übereinstimmen, den Sie im Zusammenhang mit dem CSR bestimmt haben.

Das signierte Zertifikat (cert.pem) können Sie nun im Grid für Ihre Authentifizierung nutzen. Die Gültigkeitsdauer für DFN-Zertifikate beträgt standardmäßig ein Jahr und muss danach auf die beschriebene Weise erneuert werden.

Konvertierung des Zertifikats in einen pkcs12-Keystore

Für UNICORE oder zum Import in einen Web-Browser muss aus privatem Schlüssel und Zertifikat vorher noch ein sog. pkcs12-Keystore erzeugt werden. Dies geschieht durch:
openssl pkcs12 -export -in cert.pem -inkey PrivateUserKey.pem -name "Ihr Name" -out keystore.p12

Wenn im Keystore die komplette Zertifikatskette aufgenommen werden soll, so müssen Sie zunächst die entsprechenden Zertifikate der DFN-CA im PEM-Format herunterladen. Den entsprechenden Link finden Sie weiter unten. Wenn Sie root-Rechte auf Ihren Maschinen haben, so können Sie das Wurzelzertifikat in /etc/ssl/certs allgemein installieren, anderenfalls können Sie auch ein beliebiges anderes Verzeichnis verwenden.
Zunächst muss dann aber noch das Zertifikat über den Hash-Wert zugänglich gemacht werden: (1 bzw. 2 Befehlszeilen)
cd /etc/ssl/certs # OPTIONAL
ln -s dfn-pca-grid.pem `openssl x509 -hash -noout -in dfn-pca-grid.pem`.0

Nun können Sie den Keystore mit der gesamten Zertifikatskette erzeugen:
openssl
pkcs12 -export -in cert.pem -inkey PrivateUserKey.pem -name "Ihr Name"
-out keystore-chain.p12 -chain [-CApath dir-with-hash-files]

Die Angabe von -CApath dir kann entfallen, wenn das Zertifikat der DFN-Zertifizierungsstelle in /etc/ssl/certs abgelegt wurden.

Ablage der Zertifikate für die Benutzung

Nun muss das Zertifikat bzw. der Keystore nur noch an der richtigen Stelle abgelegt werden.

  • für Globus: im Verzeichnis $HOME/.globus
  • GSI-SSHTerm: kann entweder auf das $HOME/.globus-Verzeichnis oder auch auf einen pkcs12-Keystore zugreifen; es wird Java/Java-Webstart benötigt.
  • im UNICORE-Client: bei „User Settings“ / „Keystore Editor“
  • im Web-Browser: bei „Einstellungen“ / „Verschlüsselung“ oder „Zertifikate“
  • für mutt kann der Keystore via smime_keys zugänglich gemacht werden (vgl. Anleitung im persönlichen BLOG von Dr. Zeiser)

Quellen für die Wurzelzertifikate des DFN

Manche Grid-Resource-Provider verlangen zusätzlich zu Ihrem Zertifikat auch die Schlüssel der signierenden CA. Diese finden Sie in der Mail, die Sie von der DFN-CA erhalten haben. Alternativ finden Sie hier die entsprechenden Links auf die DFN Cert Webseiten. Die Fingerprints dieser Zertifikate können Sie manuell mit openssl x509 -fingerprint -noout [-md5|-sha1] -in xyz.pem überprüfen.