In der in der Vorlesung vorgestellten Public-Key Infrastructure (PKI) werden zur Authentifizierung X.509-Zertifikate verwendet. Gegeben sei nun das folgende so genannte X.509-End Entity Certificate (EEC):
Als Text
Certificate: Data: Version: 3 (0x2) Serial Number: 231609375 (0xdce141f) Signature Algorithm: sha1WithRSAEncryption Issuer: C=DE, O=DFN-Verein, OU=DFN-PKI, CN=DFN-Verein PCA Grid - G01 Validity: Not Before: Mar 4 14:56:16 2024 GMT Not After : Apr 3 14:56:16 2024 GMT Subject: C=DE, O=GridGermany, OU=LMU Muenchen, CN=Max Mustermann Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:be:2b:4f:63:83:42:6a:f4:5e:6e:42:f5:ff:ea:... Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA: FALSE X509v3 Key Usage: critical Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment X509v3 Extended Key Usage: TLS Web Client Authentication, E-mail Protection X509v3 Subject Key Identifier: B3:5F:AA:32:3F:D7:6B:EF:2A:FF:79:E6:FB:1C:55:33:3F:43:7C:9A X509v3 Authority Key Identifier: keyid:96:EC:DC:AD:9A:F8:E0:3A:3C:22:E5:3D:C2:C5:FF:CA:D9:22:C6 X509v3 Subject Alternative Name: email:mustermann@nm.ifi.lmu.de X509v3 Certificate Policies: Policy: 1.3.6.1.4.1.22177.300.1.1.3.1.4 Policy: 1.2.840.113612.5.2.2.1 X509v3 CRL Distribution Points: URI:http://cdp1.pca.dfn.de/dfn-pki/certification/x509/grid/g1/data/crls/root-ca-crl.crl URI:http://cdp2.pca.dfn.de/dfn-pki/certification/x509/grid/g1/data/crls/root-ca-crl.crl Authority Information Access: CA Issuers - URI:http://cdp1.pca.dfn.de/dfn-pki/certification/x509/grid/g1/data/certs/root-ca-cert.crt CA Issuers - URI:http://cdp2.pca.dfn.de/dfn-pki/certification/x509/grid/g1/data/certs/root-ca-cert.crt Signature Algorithm: sha1WithRSAEncryption 74:89:8C:6F:30:3B:23:41:C2:76:D8:0E:1C:2b:6d:a8:36:bf:94:...-----BEGIN CERTIFICATE-----MIIFtzCCBIgAwIBAgIEdcU4HZANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJE......zfiVpXU8SiMB5BWdHuE4PImY+p3L8HNA8-----END CERTIFICATE-----
Sie sollen nun einige Grundlagen zum X.509-Zertifikatsformat und den beschriebenen Informationen wiederholen. Beantworten Sie dazu bitte folgende Fragen:
1. Was versteht man im Allgemeinen unter einem X-Zertifikat?
Ein Public-Key-Zertifikat ist eine digital signierte Erklärung einer Entität, die besagt, dass der öffentliche Schlüssel (und einige weitere Informationen) einer anderen Entität einen bestimmten Wert hat.
Leichter formuliert: Ein X-Zertifikat ist eine digitale Bestätigung, dass ein bestimmter öffentlicher Schlüssel einer bestimmten Person oder Organisation gehört. Es wird von einer vertrauenswürdigen Stelle ausgestellt und dient dazu, sichere Kommunikation und Authentifizierung im Internet zu ermöglichen.
Erklärung
Dieses Callout enthält zusätzliche Erläuterungen:
Das X.509-Format ist ein Standard für digitale Zertifikate.
Der öffentliche Schlüssel einer Person (oder eines Dienstes) wird hiermit mit einer Identität verknüpft.
2. Was ist ein End Entity Certificate (EEC)?
End Entity = User oder Host oder Service
Ein End Entity Certificate (EEC) ist ein digitales Zertifikat, das direkt einer Endentität, wie einer Person, einem Server oder einer Anwendung, ausgestellt wird. Es bestätigt die Identität des Inhabers und ermöglicht eine sichere Kommunikation, indem es dessen öffentlichen Schlüssel authentifiziert.
Erklärung
Das EEC ist das „letzte Glied“ in der Zertifikatshierarchie. Es wird nicht dazu verwendet, weitere Zertifikate auszustellen, sondern ausschließlich, um seine eigene Identität zu belegen (z. B. als Benutzerausweis oder Serverzertifikat).
3. Welcher Signaturalgorithmus wird verwendet?
sha1WithRSAEncryption
Erklärung
Dieser Algorithmus kombiniert den Hash-Algorithmus SHA-1 mit dem RSA-Verschlüsselungsverfahren. Obwohl SHA-1 in vielen neuen Anwendungen durch modernere Verfahren ersetzt wurde, taucht es in älteren oder speziellen Umgebungen (z. B. Grid-Umgebungen) noch auf.
4. Welche Lebensdauer hat das angegebene Zertifikat?
Validity:
Not Before: Mar 4 14:56:16 2024 GMT
Not After : Apr 3 14:56:16 2024 GMT
→ Lebensdauer von einem Monat
Erklärung
Die Gültigkeitsdauer wird durch „Not Before“ und „Not After“ festgelegt. Wenn man diese Daten vergleicht, sieht man, dass das Zertifikat nur 30 Tage gültig ist.
5. Welche Erweiterungen sind im Erweiterungsfeld des Zertifikats spezifiziert? Geben Sie 3 Beispiele an.
X509v3 extensions:
X509v3 Basic Constraints: critical
CA: FALSE
X509v3 Key Usage: critical
Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment
X509v3 Extended Key Usage:
TLS Web Client Authentication, E-mail Protection
Erklärung
Basic Constraints geben an, ob das Zertifikat eine CA (Certificate Authority) ist oder nicht.
Key Usage legt fest, für welche kryptografischen Zwecke der Schlüssel verwendet werden darf.
Extended Key Usage erweitert diese Zwecke, z. B. für E-Mail-Signaturen, Client-Authentifizierung etc.
6. Welche Erweiterungen sind dabei kritisch und was bedeutet das? (Hinweis: RFC 2459)
X509v3 Basic Constraints: critical
X509v3 Key Usage: critical
→ Wenn eine kritische Extension nicht erkannt wird, muss das Zertifikat abgelehnt werden.
Erklärung
„Kritische“ Erweiterungen müssen von jedem Zertifikat-verarbeitenden System verstanden werden. Ist eine kritische Extension unbekannt oder wird sie nicht ordnungsgemäß ausgewertet, muss das Zertifikat als ungültig verworfen werden.
A certificate using system MUST reject the certificate if it encounters
a critical extension it does not recognize
7. Recherchieren Sie, welche Certificate Policies in der Erweiterung spezifiziert sind.
In diesem Zertifikat tauchen folgende OIDs auf:
1.3.6.1.4.1.22177.300.1.1.3.1.4
1.2.840.113612.5.2.2.1
Erklärung
Die OIDs (Object Identifiers) verweisen auf verschiedene Zertifikatsrichtlinien (Policies). Sie legen fest, unter welchen Bedingungen das Zertifikat ausgestellt wurde und welche Regeln für Verwendung und Vertrauen gelten.
Lösung
Die OID 1.2.840.113612.5.2.2.1 steht häufig für eine IGTF-Policy (International Grid Trust Federation), speziell für „Classic“ Grid-Zertifikate.
Die OID 1.3.6.1.4.1.22177.300.1.1.3.1.4 verweist auf eine DFN-PKI-spezifische Richtlinie. Das DFN (Deutsches Forschungsnetz) hat eigene Policies für seine Zertifikatsausstellung.
8. Handelt es sich bei dem angegebenen EEC um ein User-, Host- oder Proxy-Zertifikat?
User-Zertifikat
Erklärung
Das „Subject“ enthält einen personenbezogenen Common Name (CN = Max Mustermann).
Zusätzlich weist „TLS Web Client Authentication“ in Extended Key Usage auf eine typische Nutzer-/Personen-Authentifizierung hin.
Ein Proxy- oder Host-Zertifikat würde stattdessen eher auf einen Servernamen oder Proxy-Verweis lauten.
Aufgabe 7.2: Praxis – Zertifikate
In dieser Aufgabe erstellen Sie zunächst Ihren eigenen privaten Schlüssel, generieren einen Certificate Signing Request (CSR) und signieren diesen schließlich selbst zu einem Zertifikat. Anschließend wird mit einem vorgegebenen Zertifikat eine Nachricht verschlüsselt.
Schritt 1: Keys erstellen
Erstellen Sie zunächst einen privaten Schlüssel. Dieser Schlüssel wird benötigt, um den CSR zu generieren und später Ihr Zertifikat zu signieren.
openssl genrsa -out mykey.key 2048
Hinweis:
Der private Schlüssel mykey.key muss sicher aufbewahrt werden und nicht mit abgegeben werden.
Schritt 2: CSR erstellen
Mit dem privaten Schlüssel erstellen Sie nun einen Certificate Signing Request (CSR). Dabei werden Sie nach Informationen wie Land, Bundesland, Organisation, usw. gefragt.
Nun signieren Sie den CSR mit Ihrem eigenen privaten Schlüssel, um ein selbstsigniertes Zertifikat zu erstellen. Hier legen Sie z. B. fest, dass das Zertifikat 365 Tage gültig sein soll.
Ihr Zertifikat mycert.crt enthält nun den zugehörigen öffentlichen Schlüssel und kann zur Verschlüsselung von Nachrichten verwendet werden.
Proxy-Zertifikat
Frage:Können Sie von diesem ein Proxy-Zertifikat ableiten? Antwort:
Ein Proxy-Zertifikat besitzt spezielle Eigenschaften und Erweiterungen, die über ein Standard-X.509-Zertifikat hinausgehen. Daher können Sie aus einem selbstsignierten Zertifikat, wie oben erstellt, kein direktes Proxy-Zertifikat ableiten. Für den Einsatz von Proxy-Zertifikaten sind zusätzliche Konfigurationen und oftmals spezifische Softwarelösungen erforderlich.
Teilaufgabe 7.2.1: Upload Ihres Zertifikats in Moodle
Aufgabe:
Laden Sie Ihr Zertifikat (mycert.crt) im entsprechenden Dateiformat (oder verpackt in einem Zip-Archiv) in Moodle hoch.
Wichtig:
Geben Sie nicht den privaten Schlüssel (mykey.key) mit ab, da wir das Zertifikat verwenden, um Ihnen eine verschlüsselte Nachricht zukommen zu lassen, die nur mit Ihrem privaten Schlüssel entschlüsselt werden kann.
Teilaufgabe 7.2.2: Upload einer verschlüsselten Nachricht in Moodle
Für diese Teilaufgabe nutzen Sie ein von uns bereitgestelltes Zertifikat, um eine Nachricht zu verschlüsseln. Gehen Sie dazu wie folgt vor:
1. Zertifikat herunterladen
Laden Sie das Zertifikat von der folgenden Adresse herunter (zum Beispiel mit wget):
Die Datei message.enc enthält nun die verschlüsselte Nachricht, die Sie in Moodle hochladen.
Zusammenfassung der Lösungsschritte
Keys erstellen:
Erzeugen Sie einen privaten Schlüssel: openssl genrsa -out mykey.key 2048
CSR erstellen:
Erstellen Sie den Certificate Signing Request: openssl req -new -key mykey.key -out myrequest.csr
Zertifikat selbst signieren:
Signieren Sie den CSR zu einem selbstsignierten Zertifikat: openssl x509 -req -in myrequest.csr -signkey mykey.key -out mycert.crt -days 365
Proxy-Zertifikat:
Ein Proxy-Zertifikat lässt sich nicht direkt aus einem Standard-Zertifikat ableiten.
Upload in Moodle (Teil 7.2.1):
Laden Sie ausschließlich mycert.crt hoch.
Verschlüsselte Nachricht (Teil 7.2.2):
Laden Sie das bereitgestellte Zertifikat herunter: wget http://www.nm.ifi.lmu.de/teaching/Vorlesungen/2024ws/gridcloud/lrz24.crt
Extrahieren Sie den Public Key: openssl x509 -pubkey -noout -in lrz24.crt > public.key
Erstellen Sie Ihre Nachricht (z. B. message.txt).
Verschlüsseln Sie die Nachricht: openssl rsautl -encrypt -pubin -inkey public.key -in message.txt -out message.enc
Laden Sie die verschlüsselte Datei message.enc in Moodle hoch.
Aufgabe 7.3: Proxyezertifikat
In dieser Fallstudie sollen Sie ein Protokoll entwerfen, das die Delegation von Rechten über Proxy-Zertifikate ermöglicht.
Fallbeschreibung
Hintergrund
In der Vorlesung wurden das Grid-Problem und die Kernkonzepte zur Authentifizierung und Autorisierung in Grids besprochen. Daraus leiten Sie sich das allgemeine Grid Security Problem ab, nämlich das Bereitstellen von Mechanismen, die es erlauben, in heterogenen Umgebungen auf Ressourcen zuzugreifen trotz unterschiedlicher Sicherheitsvorschriften und Prozeduren. Wir wollen uns hier auf den Teilaspekt der Delegation von Rechten konzentrieren.
Terminologie
Verwenden Sie bei der Bearbeitung des Falles die aus den Standards bekannte Terminologie für Authentifizierung und Autorisierung:
Ein subject ist ein Teilnehmer, der im Rahmen einer abgesicherten Grid-Operation auf ein object zugreifen möchte.
Ein credential bezeichnet die Identität eines subject. Beispiele: Passwörter, Zertifikate.
Autorisierung ist der Prozess zur Bestimmung der Zugriffsberechtigung eines subjects auf ein object.
Ein End Entity Certificate (EEC) ist ein X-Zertifikat, das zu einer Entität gehört, die keine CA ist, also zum Beispiel zu Personen oder Hosts.
Ein proxy-Zertifikat ist ein kurzlebiges X-Zertifikat, das von einem EEC abgeleitet wird.
Ein proxy credential besteht aus einem proxy-Zertifikat und dem dazu gehörenden privaten Schlüssel.
Eine Grid Security Infrastructure (GSI) besteht aus Bibliotheken und Werkzeugen zur Authentifizierung und zur sicheren Kommunikation auf der Basis von Public Key-Infrastrukturen (PKI), dem SSL/TLS Protokoll (RFC 5246) und X Proxy-Zertifikaten.
Aufgabenstellung
Ihre Aufgabe besteht darin, ein Delegationsprotokoll zu entwerfen. Das nachfolgende User Proxy Creation Protocol nehmen Sie bitte als Beispiel. So ähnlich sollte die Lösung Ihrer Aufgaben aussehen. Versuchen Sie, die Funktionalität Ihres Delegationsprotokolls in der richtigen Reihenfolge zu spezifizieren. Die grafische Darstellung bleibt Ihnen überlassen.
Beispiel: User Proxy Creation Protocol
Ein User Proxy ist ein Prozess, der an User Stelle agiert. Er wird typischerweise definiert als
session manager process given permission to act on behalf of a user for a limited period of time. (Foster et al., 1998)
Das User Proxy Creation Protocol erzeugt ein zeitlich beschränktes credential für den User Proxy mit eventuellen zusätzlichen Einschränkungen wie Host-Namen, Zielkonten oder ähnliche.
Die Protokollschritte 1 bis 6 sind in Abbildung 4 dargestellt.
Delegation Protocol
Schritte im Einzelnen
Schritt 1:
Der User greift über den lokalen Authentifizierungsprozess (zum Beispiel username, password) auf den Gridknoten zu, auf dem der User Proxy erzeugt werden soll.
Schritt 2:
Ein neues (public, private)-Schlüsselpaar wird auf dem Gridknoten erzeugt.
Schritt 3:
Ein neues proxy-Zertifikat wird mit Hilfe des in Schritt 2 generierten öffentlichen Schlüssels erzeugt. Signiert wird dieses Zertifikat mit dem privaten Schlüssel des Users.
Schritt 4:
Ein neuer User Proxy Process wird auf dem Gridknoten erzeugt.
Schritt 5:
Dem neu erzeugten User Proxy Process werden das proxy-Zertifikat (5a) und der assoziierte private Schlüssel (5b) zugeordnet.
Schritt 6:
Der User Proxy Process kann nun das proxy credential benutzen, um seine Identität zu beweisen.
Hier ist nun Ihre Aufgabe. Gegeben sei ein subject auf Host A, das einem anderen subject auf Host B die Verantwortung übertragen möchte, in seinem Namen einen Grid-Job auf Host C auszuführen (und dabei auf objects auf C zuzugreifen). Der Einfachheit halber (aber formal ungenau) bezeichnen wir das subject auf A, B oder C kurz selbst mit A, B oder C.
Grundprinzip des Delegationsprotokolls
A besitzt ein von einer CA signiertes Zertifikat.
A erzeugt dann ein proxy-Zertifikat und sendet dieses an B.
B benutzt das proxy-Zertifikat, um Grid-Jobs an Stelle von A auf C ausführen zu lassen.
Vervollständigung des Delegationsprotokolls
Abbildung 5 zeigt die drei Entitäten und ihre Initialisierung.
Vervollständigen Sie nun das Delegationsprotokoll zwischen A, B und C.
Gehen Sie davon aus, dass zwischen A und B eine sichere Kommunikation eingerichtet ist (über eine wechselseitige Authentifizierung).
Ablauf der Proxy-Zertifikat-Delegierung
Verbindung und Authentifizierung
Der Initiator auf Host A verbindet sich mit dem Zieldienst auf Host B.
Beide Parteien führen eine gegenseitige Authentifizierung durch:
Der Initiator nutzt sein bestehendes Proxy-Zertifikat.
Der Zieldienst verwendet sein eigenes Public-Key-Zertifikat (nicht abgebildet).
Nach der Authentifizierung wird ein integritätsgeschützter Kanal eingerichtet.
Diese Schritte können mit dem SSL-Protokoll durchgeführt werden.
Schlüsselgenerierung durch den Zieldienst
Der Initiator signalisiert seinen Wunsch zur Delegierung durch anwendungsspezifische Mittel.
Der Zieldienst erzeugt ein neues Schlüsselpaar (privater und öffentlicher Schlüssel).
Erstellung und Übermittlung der Zertifikatsanforderung
Mit dem neuen öffentlichen Schlüssel wird eine signierte Zertifikatsanforderung erstellt.
Diese wird über den gesicherten Kanal an den Initiator zurückgeschickt.
Signierung durch den Initiator
Der Initiator verwendet seinen privaten Schlüssel aus dem eigenen Proxy-Zertifikat, um:
die Zertifikatsanforderung zu signieren.
ein neues Proxy-Zertifikat zu erstellen, das den neu generierten öffentlichen Schlüssel des Zieldienstes enthält.
Bereitstellung des neuen Proxy-Zertifikats
Das neue Proxy-Zertifikat wird über den gesicherten Kanal an den Zieldienst zurückgesendet.
Der Zieldienst speichert es zusammen mit seinem neu generierten privaten Schlüssel.
Das Proxy-Zertifikat steht anschließend für Anwendungen auf dem Zieldienst zur Verfügung, die im Namen des Benutzers laufen.
---
config:
look: neo
theme: neo-dark
---
sequenceDiagram
participant A as Host A (Initiator)
participant B as Host B (Target Service)
A->>B: Step 1 - SSL
B->>B: Step 2 - Generate New Private Key
B->>A: Step 3 - Certificate Request
A->>A: Step 4 - Sign with Existing Proxy Certificate and Private Key
A->>B: Step 5 - New Proxy Certificate
B->>B: New Proxy Certificate Received
Weiterer Lösungsvorschlag
Aufgabe 7.3: Proxyezertifikat
In dieser Fallstudie sollen Sie ein Protokoll entwerfen, das die Delegation von Rechten über Proxy-Zertifikate ermöglicht.
Fallbeschreibung
Hintergrund
In der Vorlesung wurden das Grid-Problem und die Kernkonzepte zur Authentifizierung und Autorisierung in Grids besprochen. Daraus leitet sich das allgemeine Grid Security Problem ab, nämlich das Bereitstellen von Mechanismen, die es erlauben, in heterogenen Umgebungen auf Ressourcen zuzugreifen trotz unterschiedlicher Sicherheitsvorschriften und Prozeduren. Wir wollen uns hier auf den Teilaspekt der Delegation von Rechten konzentrieren.
Terminologie
Ein subject ist ein Teilnehmer, der im Rahmen einer abgesicherten Grid-Operation auf ein object zugreifen möchte.
Ein credential bezeichnet die Identität eines subject. Beispiele: Passwörter, Zertifikate.
Autorisierung ist der Prozess zur Bestimmung der Zugriffsberechtigung eines subjects auf ein object.
Ein End Entity Certificate (EEC) ist ein X-Zertifikat, das zu einer Entität gehört, die keine CA ist, also zum Beispiel zu Personen oder Hosts.
Ein proxy-Zertifikat ist ein kurzlebiges X-Zertifikat, das von einem EEC abgeleitet wird.
Ein proxy credential besteht aus einem proxy-Zertifikat und dem dazu gehörenden privaten Schlüssel.
Eine Grid Security Infrastructure (GSI) besteht aus Bibliotheken und Werkzeugen zur Authentifizierung und zur sicheren Kommunikation auf der Basis von Public Key-Infrastrukturen (PKI), dem SSL/TLS Protokoll (RFC 5246) und X Proxy-Zertifikaten.
Aufgabenstellung
Ihre Aufgabe besteht darin, ein Delegationsprotokoll zu entwerfen. Das nachfolgende User Proxy Creation Protocol nehmen Sie bitte als Beispiel. So ähnlich sollte die Lösung Ihrer Aufgaben aussehen. Versuchen Sie, die Funktionalität Ihres Delegationsprotokolls in der richtigen Reihenfolge zu spezifizieren. Die grafische Darstellung bleibt Ihnen überlassen.
Beispiel: User Proxy Creation Protocol
Ein User Proxy ist ein Prozess, der an User Stelle agiert. Er wird typischerweise definiert als
session manager process given permission to act on behalf of a user for a limited period of time. (Foster et al., 1998)
Das User Proxy Creation Protocol erzeugt ein zeitlich beschränktes credential für den User Proxy mit eventuellen zusätzlichen Einschränkungen wie Host-Namen, Zielkonten oder ähnlichem.
Die Protokollschritte 1 bis 6 sind in Abbildung 4 (s. oben) dargestellt:
Der User greift über den lokalen Authentifizierungsprozess (zum Beispiel username, password) auf den Gridknoten zu, auf dem der User Proxy erzeugt werden soll.
Ein neues (public, private)-Schlüsselpaar wird auf dem Gridknoten erzeugt.
Ein neues proxy-Zertifikat wird mit Hilfe des in Schritt 2 generierten öffentlichen Schlüssels erzeugt. Signiert wird dieses Zertifikat mit dem privaten Schlüssel des Users.
Ein neuer User Proxy Process wird auf dem Gridknoten erzeugt.
Dem neu erzeugten User Proxy Process werden das proxy-Zertifikat (5a) und der assoziierte private Schlüssel (5b) zugeordnet.
Der User Proxy Process kann nun das proxy credential benutzen, um seine Identität zu beweisen.
Delegation Protocol
Ausgangssituation
Gegeben sei ein subject auf Host A, das einem anderen subject auf Host B die Verantwortung übertragen möchte, in seinem Namen einen Grid-Job auf Host C auszuführen (und dabei auf objects auf C zuzugreifen). Der Einfachheit halber (aber formal ungenau) bezeichnen wir das subject auf A, B oder C kurz selbst mit A, B oder C.
Grundprinzip des Delegationsprotokolls
A besitzt ein von einer CA signiertes Zertifikat.
A erzeugt dann ein proxy-Zertifikat und sendet dieses an B.
B benutzt das proxy-Zertifikat, um Grid-Jobs an Stelle von A auf C ausführen zu lassen.
Vervollständigung des Delegationsprotokolls
Abbildung 5 zeigt die drei Entitäten und ihre Initialisierung.
Vervollständigen Sie nun das Delegationsprotokoll zwischen A, B und C.
Gehen Sie davon aus, dass zwischen A und B eine sichere Kommunikation eingerichtet ist (über eine wechselseitige Authentifizierung).
Eingearbeitete Lösung – Beispielhafter Ablauf eines Delegationsprotokolls
Im Folgenden ein möglicher Vorschlag, wie man die Delegation durch ein Proxy-Zertifikat in Protokollschritten umsetzen kann. Annahme: Zwischen A und B ist bereits eine gesicherte Verbindung (z. B. TLS mit gegenseitigem Zertifikatsaustausch) etabliert.
(Vorbedingung: Gesicherte Kommunikation)
A und B führen eine wechselseitige Authentifizierung durch (beispielsweise mittels TLS). Sie tauschen dabei ihre End Entity Certificates (EEC) aus, sodass beide Seiten vertrauenswürdig miteinander kommunizieren können.
(Schlüsselpaarerzeugung auf B)
B erzeugt ein neues Schlüsselpaar (public, private), das nur für das Delegations- bzw. Proxy-Zertifikat bestimmt ist.
(CSR-Erzeugung)
B erstellt eine Certificate Signing Request (CSR) mit dem neu erzeugten public key und schickt diese Anfrage über den gesicherten Kanal an A.
Zweck:B bittet A darum, diesen öffentlichen Schlüssel zu einem Proxy-Zertifikat zu machen.
(Signatur/Erstellung des Proxy-Zertifikats bei A)
A prüft die CSR von B (ggf. Berechtigungen, Gültigkeit etc.).
A generiert ein proxy-Zertifikat, indem A den öffentlichen Schlüssel von B mit dem privaten Schlüssel von A signiert.
Dieses Proxy-Zertifikat enthält u. a. zeitliche Beschränkungen und eventuell zusätzliche Einschränkungen (z. B. Hostname, Nutzungszweck).
(Übergabe des Proxy-Zertifikats an B)
A schickt das frisch signierte proxy-Zertifikat über die verschlüsselte Verbindung an B zurück.
Nun besitzt B:
das neu erzeugte private key (aus Schritt 2) und
das von A signierte proxy-Zertifikat.
(Proxy Credential verwenden)
B verfügt jetzt über ein gültiges proxy credential (Proxy-Zertifikat + passender privater Schlüssel).
Dieses Credential ermöglicht es B, sich bei C (und weiteren Grid-Ressourcen) im Namen von A zu authentifizieren.
(Authentifizierung gegenüber C)
Wenn B auf C zugreifen oder dort einen Job starten möchte, präsentiert B das proxy-Zertifikat.
C validiert die Zertifikatskette:
Proxy-Zertifikat (signiert durch A),
As EEC (signiert durch CA),
gegebenenfalls die CA-Zertifikate.
Stimmt die Kette und sind keine Sperrlisten-Einträge (CRLs/OCSP) aktiv, wird B als Delegierter von A akzeptiert.
C erlaubt somit B den Zugriff mit den Rechten, die im Proxy-Zertifikat (und durch eventuelle Policies) festgelegt sind.
(Optionale Schritte)
Widerruf des Proxy-Zertifikats: Sollte A dem B nicht länger vertrauen (oder der Zeitrahmen ist abgelaufen), kann das Proxy-Zertifikat ungültig gemacht werden (z. B. durch zeitliche Limitierung oder direkte Sperrung).
Verlängerung: Möchte A die Delegation verlängern, müsste ein neues Proxy-Zertifikat erstellt werden.
Zusammenfassung
A ist Besitzer eines CA-signierten Zertifikats (EEC).
B erzeugt ein eigenes Schlüsselpaar und eine CSR.
A signiert den öffentlichen Schlüssel von B und erstellt ein Proxy-Zertifikat.
B erhält das Proxy-Zertifikat und verwendet es in Kombination mit seinem privaten Schlüssel als Proxy-Credential.
B kann sich nun gegenüber C als Delegierter von A ausweisen und in As Namen handeln.
Damit ist das Delegationsprotokoll vollständig spezifiziert und zeigt, wie man mithilfe eines Proxy-Zertifikats Rechte an einen anderen Akteur im Grid-Umfeld weitergibt.
×
MyUniNotes is a free, non-profit project to make education accessible for everyone.
If it has helped you, consider giving back! Even a small donation makes a difference.
These are my personal notes. While I strive for accuracy, I’m still a student myself. Thanks for being part of this journey!