-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Öffentlicher-Schlüssel-Kryptosysteme
und insbesondere auf ein Öffentlicher-Schlüssel-Validierungssystem
zum Validieren eines öffentlichen
Schlüssels.
-
Öffentlicher-Schlüssel-Kryptosysteme
werden weltweit im World Wide Web verwendet, und auch bei einer
wachsenden Anzahl von Firmennetzwerken, für die Einrichtung sicherer
Kommunikationskanäle.
Jeder Nutzer in einem Öffentlicher-Schlüssel-Kryptosystem
hat ein Paar von Schlüsseln,
einschließlich
einem öffentlichen
Schlüssel
und einem privaten Schlüssel.
Der öffentliche Schlüssel wird
anderen Benutzern offenbart, während
der private Schlüssel
geheimgehalten wird. Ein Öffentlicher-Schlüssel-Kryptosystem
hat typischerweise eine bestimmte Hauptverwendung, wie z. B. für Verschlüsselung,
digitale Signatur oder Schlüsselübereinstimmung. Öffentlicher-Schlüssel-Kryptosysteme
werden auch für
Benutzerauthentifizierung verwendet. Beispielsweise kann sich ein
Benutzer selbst für
andere Benutzer authentifizieren durch Nachweisen seiner Kenntnis
seines privaten Schlüssels,
den andere Benutzer unter Verwendung des entsprechenden öffentlichen
Schlüssels
verifizieren können.
-
Bei
einer Anwendung eines Öffentlicher-Schlüssel-Kryptosystems zum
Authentifizieren eines Benutzers muss der öffentliche Schlüssel der Identität des Benutzers
sicher zugeordnet sein, der den öffentlichen
Schlüssel
besitzt, durch Authentifizieren des öffentlichen Schlüssels selbst.
Typischerweise werden Öffentlicher-Schlüssel-Zertifikate
verwendet, um den öffentlichen
Schlüssel
zu authentifizieren. Ein Öffentlicher-Schlüssel-Zertifikat
ist ein digitales Dokument, das durch eine Zertifikatautorität unterzeichnet
ist, das einen öffentlichen
Schlüssel mit
einem oder mehreren Attributen verbindet, die den Besitzer des öffentlichen
Schlüssels
eindeutig identifizieren. Das Öffentlicher-Schlüssel-Zertifikat kann
unter Verwendung des öffentlichen
Schlüssels der
Zertifikatautorität
verifiziert werden, von dem angenommen wird, dass es gut bekannt
ist oder rekursiv durch eine höhere
Autorität
zertifiziert. Beispielsweise kann in einer Firma ein Öffentlicher-Schlüssel-Zertifikat
einen öffentlichen
Schlüssel
mit einer Angestelltennummer verbinden.
-
Eine Öffentlicher-Schlüssel-Infrastruktur (PKI
= public key infrastructure) bezieht sich auf die Sammlung von Entitäten, Datenstrukturen
und Prozeduren, die verwendet werden, um öffentliche Schlüssel zu
authentifizieren. Eine traditionelle PKI umfasst eine Zertifikatautorität, Öffentlicher-Schlüssel-Zertifikate
und Prozeduren zum Verwalten und Verwenden der Öffentlicher-Schlüssel-Zertifikate.
-
Ein
Typ eines Benutzers einer PKI besitzt den öffentlichen Schlüssel, der
in einem Öffentlicher-Schlüssel-Zertifikat
enthalten ist und verwendet das Zertifikat, um die Identität des Benutzers
nachzuweisen. Dieser Typ von Benutzer wird als das Subjekt des Zertifikats
bezeichnet oder allgemeiner als das Subjekt. Ein weiterer Typ von
Benutzer verlässt
sich auf ein Öffentlicher-Schlüssel-Zertifikat,
das durch einen anderen Benutzer präsentiert wird, um zu verifizieren,
dass der andere Benutzer das Subjekt des Zertifikats ist und dass
die Attribute, die in dem Zertifikat enthalten sind, für den anderen
Benutzer gelten. Dieser Typ von Benutzer, der sich auf das Zertifikat verlässt, wird
als ein Verifizierer oder eine Vertrauenspartei bezeichnet.
-
Die
Zuordnung zwischen einem öffentlichen Schlüssel und
einer Identität
kann ungültig
werden, wenn die Attribute, die die Identität definieren, nicht mehr für den Besitzer
des öffentlichen
Schlüssels gelten,
oder weil der öffentliche
Schlüssel,
der dem öffentlichen
Schlüssel
entspricht, beeinträchtigt
wurde. Eine PKI verwendet typischerweise zwei komplementäre Techniken
zum Trennen eines öffentlichen Schlüssels von
einer Identität.
Bei der ersten Technik hat jeder öffentliche Schlüssel jedes Öffentlicher-Schlüssel-Zertifikat eine Gültigkeitsperiode,
die durch ein Ablaufdatum definiert ist, das eine wesentliche Periode
von dem Ausgabedatum entfernt ist, wie z. B. ein Jahr ab dem Ausgabedatum.
Bei der zweiten Technik hebt die Zertifikatautorität ein Öffentlicher-Schlüssel-Zertifikat
auf, falls die Bindung des Öffentlicher-Schlüssel-Zertifikats
vor dem Ablaufdatum ungültig
wird. Eine Möglichkeit
zum Aufheben eines Öffentlicher-Schlüssel-Zertifikats
ist das Aufnehmen einer Seriennummer des Öffentlicher-Schlüssel-Zertifikats
in eine Zertifikat-Aufhebungsliste (CRL = certificate revocation
list), die durch die Zertifikatautorität in bekannten regelmäßigen Intervallen,
wie z. B. alle paar Stunden oder einmal am Tag, unterzeichnet und
ausgegeben wird. Eine Entität,
die sich auf ein Zertifikat verlässt,
ist verantwortlich für
das Erhalten der neuesten Version der CRL und für das Verifizieren, dass die
Seriennummer des Öffentlicher-Schlüssel-Zertifikats
nicht auf der Liste ist.
-
CRLs
werden typischerweise sehr schnell sehr lang. Wenn die CRLs lang
werden, ist die Leistungsfähigkeit
stark beeinträchtigt.
Zunächst
verbraucht die CRL-Wiedergewinnung große Mengen an Netzwerkbandbreite.
Zweitens muss jede Anwendung die CRL regelmäßig wiedergewinnen, die CRL syntaktisch
analysieren und Speicher für
die CRL zuweisen. Dann muss die Anwendung eine lineare Suche der
CRL durchführen,
nach der Öffentlicher-Schlüssel-Zertifikat-Seriennummer, wenn
die Anwendung jedes Öffentlicher-Schlüssel-Zertifikat verifiziert.
Als Folge steigen herkömmliche
PKIs nicht über
einige tausend Benutzer an.
-
Eine
Lösung,
die vorgeschlagen wurde, um das lineare Suchproblem zu lindern,
ist das Unterteilen der CRLs. Die Seriennummer des Öffentlicher-Schlüssel-Zertifikats
bestimmt, wo die CRL-Unterteilung positioniert ist, wenn das Öffentlicher-Schlüssel-Zertifikat
aufgehoben wird. Mit unterteilten CRLs muss die Anwendung nach wie
vor die gesamte CRL wiedergewinnen und speichern, oder andernfalls
muss die Anforderung eine CRL-Unterteilung abrufen, um ein Zertifikat
zu verifizieren. Da eine Zertifikats-Verifizierung ein wahrscheinlich kritischer Weg
ist, beeinträchtigt
das Abrufen einer CRL-Unterteilung die Zeit, die benötigt wird,
um die Anwendung auszuführen.
-
Ein
On-Line-Zertifikat-Statusprotokoll (OCSP; OCSP = on-line certificate
status protocol) arbeitet, indem es dem Verifizierer des Öffentlicher-Schlüssel-Zertifikat
ermöglicht,
die Zertifikatautorität
zu fragen, ob das Zertifikat aktuell gültig ist. Die Zertifikatautorität antwortet
mit einer unterzeichneten Erklärung.
Die OCSP ermöglicht
es, dass CRLs umgangen werden, erfordert jedoch, dass der Verifizierer
die Zertifikatautorität
abfragt, als Teil der Transaktion, die die Öffentlicher-Schlüssel-Zertifikate
verwendet. Der Verifizierer, der die Zertifikatautorität abfragt,
erhöht
die Zeit, die notwendig ist, um die Transaktion durchzuführen. Das
OCSP-Schema ist stark anfällig
für einen
Dienstverweigerungsangriff, bei dem der Angreifer die Zertifikatautorität mit Abfragen überflutet.
Das Antworten auf jede Abfrage ist rechentechnisch aufwendig, weil
jede Antwort eine digitale Signatur erfordert.
-
Bei
einem Zertifikat-Statusbeweisschema behält die Zertifikatautorität eine Datenstruktur
bei, die den Satz von gültigen
und ungültigen
Zertifikaten in dem Verzeichnis beschreibt. Für jedes Öffentlicher-Schlüssel-Zertifikat,
das noch nicht abgelaufen ist, kann ein kurzer kryptographischer
Beweis von der Datenstruktur des aktuellen Status des Zertifikats
(d. h. gültig
oder ungültig)
extrahiert werden. Eine CRL kann im wesentlichen als ein kryptographischer
Beweis der Ungültigkeit
für die Öffentlicher-Schlüssel-Zertifikate
in der CRL gesehen werden, und ein Beweis für die Gültigkeit für diejenigen, die nicht in der
CRL sind. Die CRL ist jedoch kein kurzer Beweis. Der kurze kryptographische
Beweis kann durch den Verifizierer von dem Verzeichnis erhalten
werden, oder derselbe kann durch das Subjekt erhalten werden und
dem Verifizierer zusammen mit dem Öffentlicher-Schlüssel-Zertifikat
präsentiert
werden.
-
Die
SPKI-Arbeitsgruppe (SPKI = Simple Public Key Infrastructure = einfache Öffentlicher-Schlüssel-Infrastruktur)
der Internetgesellschaft (Internet Society) und der Internetarbeitsgruppe
(Internet Engineering Task Force) hat die Möglichkeit vorgeschlagen, kurzlebige
Zertifikate als ein Verfahren zum Erreichen einer dichten Steuerung über das Gültigkeitsintervall
eines Zertifikats zu erhalten. Siehe C.M. Ellison, B. Frantz, B.
Lampson, R. Rivest, B.M. Thomas and T. Ylonen, SPKI Certificate
Theory, Request for Comments 2560 of the Internet Engineering Task
Force, September 1999. Die SPKI-Zertifikats-Theorie-Referenz gibt
an, dass es Fälle
gibt, in denen ein kurzlebiges Zertifikat weniger Signaturen und
weniger Netzwerkverkehr erfordert als verschiedene On-Line-Testoptionen.
Die Verwendung eines kurzlebigen Zertifikats erfordert immer weniger
Signaturverifizierungen als die Verwendung eines Zertifikats plus
On-Line-Testergebnis.
-
RFC2510:Internetx509 Öffentlicher-Schlüssel-Infrastruktur,
Zertifikationsveraltungsprotokoll (März 1999) offenbart Protokollmitteilungen
von Zertifikatserzeugung und – verwaltung.
-
Trotzdem
wurde kein praktisches Verfahren zum Ausgeben kurzlebiger Zertifikate
vorgeschlagen. Traditionelle Zertifikate werden off-line erstellt, als
Teil eines Prozesses, der Subjektregistrierung umfasst, bei der
Geschwindigkeit von einem pro Jahr pro Benutzer. Im Gegensatz dazu
müssten
kurzlebige Zertifikate on-line bei einer Geschwindigkeit von zumindest
einem pro Tag pro Benutzer ausgegeben werden, und vielleicht auch
so oft wie alle paar Minuten für
jeden Benutzer.
-
Der
Begriff On-Line und der Begriff Off-Line haben im Zusammenhang einer
PKI bestimmte Definitionen. Der Begriff On-Line bezieht sich hierin
auf die alltägliche
Verwendung von Öffentlicher-Schlüssel-Zertifikaten
und Schlüsselpaaren
für Authentifizierung.
Der Begriff Off-Line bezieht sich hierin auf die weniger häufige Herstellung
oder Auflösung
von Öffentlicher-Schlüssel-Bindungen,
die zu dem- Ausgeben oder Aufheben von Öffentlicher-Schlüssel-Zertifikaten
führen
kann. Beispielsweise ist die traditionelle Zertifikatautorität off-line,
erteilt CRLs off-line und platziert die CRLs in ein Verzeichnis
für eine
On-Line-Wiedergewinnung.
Das Schema, das Zertifikat-Statusbeweise umfasst, verwendet auch Off-Line-Zertifikatautoritäten. Das
OCSP ist das einzige Schema, das oben beschrieben wurde, das eine On-Line-Zertifikatautorität verwendet.
-
Bei
einer herkömmlichen
PKI wird ein öffentlicher
Schlüssel
durch ein Zertifikat authentifiziert, das durch eine Zertifikatsautorität unterzeichnet
ist. Falls der private Schlüssel,
der dem öffentlichen Schlüssel zugeordnet
ist, beeinträchtigt
ist, benachrichtigt der Gegenstand des Zertifikats die Zertifikatsautorität, die das
Zertifikat aufhebt.
-
Es
ist jedoch denkbar, dass das gleiche Privater/Öffentlicher-Schlüssel-Paar
für mehrere
Zwecke verwendet werden könnte.
Für einige
Zwecke könnte
der öffentliche
Schlüssel
herkömmlicherweise durch
ein oder mehrere herkömmliche
Zertifikate authentifiziert werden, die durch eine oder mehrere
Zertifikatautoritäten
ausgegeben werden. Zu anderen Zwecken kann der öffentliche Schlüssel einem
oder mehreren Verifizierern direkt bekannt sein und muss somit nicht
authentifiziert werden.
-
Falls
ein Privater/Öffentlicher-Schlüssel-Paar
für mehrere
Zwecke verwendet wird, wird es notwendig, die weitere Verwendung
des Schlüsselpaares
für eine
der mehreren Zwecke zu verhindern, wenn der private Schlüssel beeinträchtigt ist.
Das Aufheben eines einzigen Zertifikats ist nicht länger ausreichend,
um alle Verwendungen des Privater/Öffentlicher-Schlüssel-Paars
zu verhindern. Somit wäre es
wünschenswert,
eine praktische Art und Weise für eine
Einzelaktion zu liefern, die durch den Besitzer des Privater/Öffentlicher-Schlüssel-Paars
durchgeführt
wird, um jede weitere Verwendung des Schlüsselpaars zu verhindern, die
es einem Eindringling ermöglichen
würde,
sich als der rechtmäßige Besitzer des
Schlüsselpaares
auszugeben.
-
E-Commerce-Szenario
-
In
einem E-Commerce-Szenario wäre
es wünschenswert,
mehrere Verwendungen eines einzelnen Öffentlicher/Privater-Schlüssel-Paars
zu haben. Bei derzeitigen E-Commerce-Anwendungen weist der Web-Server des
Einzelhändlers
seine Identität
unter Verwendung eines Öffentlicher/Privater-Schlüssel-Paars
und eines öffentlichen
Schlüssel-Zertifikats nach,
das durch eine Zertifikatautorität unterzeichnet
ist, deren öffentlicher
Schlüssel
in den Browsern konfiguriert ist. Der Kunde andererseits weist die
Kundenidentität
durch ein Passwort nach, das verschlüsselt gesendet wird, nachdem
eine Sicherheitssockelschicht- (SSL-) Verbindung zwischen dem Browser
und dem Server hergestellt wurde. Das Passwort wird eingerichtet,
wenn sich der Kunde bei der E-Commerce-Site des Einzelhändlers registriert und
wird verwendet, um den Kunden bei wiederholten Besuchen auf der
Site zu identifizieren.
-
Obwohl
Passwörter
verschlüsselt
gesendet werden, ist diese Verwendung von Passwörtern verletzbar, weil Kunden
wahrscheinlich das gleiche Passwort verwenden, um auf alle Sites
zuzugreifen. Ein Insider-Angriff bei einer Web-Site kann dem Angreifer
Passwörter
liefern, die verwendet werden können,
um sich als Benutzer an anderen Sites auszugeben, wie z. B. bei
beliebten Sites, wo die meisten E-Commerce-Kunden ein Konto haben. Ein Angreifer könnte auch
eine gefälschte
E-Commerce-Site einrichten, mit dem einzigen Zweck, Passwörter von Kunden
zu sammeln, um auf die Konten dieser Kunden auf anderen Sites zuzugreifen.
-
Aufgrund
dieser Verletzbarkeit von Passwörtern
gibt es einen Bedarf an der Verwendung von Öffentlicher-Schlüssel-Kryptographie für Client-Authentifizierung,
zusätzlich
zu ihrer aktuellen Verwendung für
Web-Server-Authentifizierung.
Das SSL-Protokoll ermöglicht
es dem Web-Browser,
dem Server ein Clientzertifikat vorzulegen und die Kenntnis des
privaten Schlüssels
zu zeigen, der dem öffentlichen Schlüssel zugeordnet
ist, der in dem Zertifikat enthalten ist. Der private Schlüssel kann
in einer Smartcard gespeichert sein, für den Schutz gegen einen Software-Angriff.
-
Das
herkömmliche
PKI-Paradigma für E-Commerce
verlangt, dass das Clientzertifikat durch eine Zertifikatautorität unterzeichnet
ist, die unabhängig
ist von einem bestimmten E-Commerce-Einzelhändler, wie z. B. durch eine
kommerzielle Zertifikatautorität
(z. B. Verisign). Es ist jedoch unwahrscheinlich, dass eine E-Commerce-Site
ein Zertifikat annimmt, das durch eine dritte Zertifikatautorität ausgestellt
ist, weil die E-Commerce-Site der Zertifikatautorität vertrauen
müsste,
um die Identität
des Kunden einzurichten. E-Commerce-Einzelhändler haben ihre eigenen Prozesse
zum Registrieren von Kunden entwickelt, die für ihre spezifischen Bedürfnisse
zugeschnitten sind. Daher ist es unwahrscheinlich, dass E-Commerce-Einzelhändler ihre
eigenen Prozesse verlassen und sich statt dessen auf eine Registrierung
durch eine oder mehrere dritte Zertifikats-Autoritäten verlassen, über die
sie keine Kontrolle haben.
-
Daher
gibt es einen Wunsch nach einem alternativen PKI-Paradigma für E-Commerce, in dem der Kunde
den öffentlichen
Schlüssel
des Kunden direkt bei der E-Commerce-Site registrieren könnte, als Teil
des Kundenregistrierungsprozesses. Es ist wünschenswert, dass der Kunde
bei einem solchen alternativen PKI-Paradigma den öffentlichen
Schlüssel des
Kunden liefern könnte
statt eines Passworts, wenn er sich bei der Site registriert. Um
das Modifizieren von SSL zu vermeiden, wäre es wünschenswert, dass der Kunde
den öffentlichen
Schlüssel
in einem selbstunterzeichneten Clientzertifikat sendet.
-
In
einem solchen E-Commerce-Szenario hat jeder Kunde ein Privater/Öffentlicher-Schlüssel-Paar, wobei
der private Schlüssel
sicher gespeichert ist und in einer Smartcard verwendet wird, und
registriert den öffentlichen
Schlüssel
bei vielen unterschiedlichen E-Commerce-Sites. Somit wird das Privater/Öffentlicher-Schlüssel-Paar
für viele
Zwecke verwendet. Wenn der private Schlüssel beeinträchtigt ist,
muss der Kunde die Verwendung des Privater/Öffentlicher-Schlüssels
bei allen E-Commerce-Sites verhindern, wo der Kunde den öffentlichen
Schlüssel registriert
hat, und allein das Erinnern an all diese Sites könnte eine
schwierige Aufgabe für
den Kunden sein. Somit gibt es einen Bedarf an einem neuen Mechanismus,
der es dem Kunden ermöglicht,
die weitere Verwendung des Privater/Öffentlicher-Schlüsel-Paars
auf allen Sites zu verhindern, indem eine einzige Aktion durchgeführt wird.
-
Ron
Rivest, R.L. Rivest, Can we Eliminate Certificate Revocation Lists?,
Proceedings of Financial Cryptography, 1998, („die Rivest-Schrift") hat eine Möglichkeit
zum Verhindern der Verwendung eines Privater/Öffentlicher-Schlüssel-Paars
vorgeschlagen, nachdem der private Schlüssel beeinträchtigt wurde.
Das Verfahren, das in der Rivest-Schrift vorgeschlagen
wird, verwendet eine Zuordnung von Freitod-Abteilungen. Der Besitzer
eines Privater/Öffentlicher-Schlüssel-Paars
registriert den öffentlichen Schlüssel bei
einer Freitod-Abteilung. Wenn das Privater/Öffentlicher-Schlüssel-Paar
beeinträchtigt
ist, unterzeichnet der Benutzer eine Freitodnachricht unter Verwendung
des privaten Schlüssels
und sendet die Freitodnachricht an die Freitod-Abteilung, die die Freitodnachricht
an die Vereinigung rundsendet. Obwohl der private Schlüssel nicht
beeinträchtigt
ist, kann der Besitzer ein Gesundheitszertifikat für den öffentlichen
Schlüssel
erhalten und es dem Verifizierer zusammen mit einem Öffentlicher-Schlüssel-Zertifikat
präsentieren.
Das Gesundheitszertifikat ist ein digitales Dokument, das durch
die Freitod-Abteilung unterzeichnet
ist, und bestätigt,
dass die Freitod-Abteilung den öffentlichen
Schlüssel
registriert hat und keine Kenntnis einer Freitodnachricht für diesen öffentlichen
Schlüssel
hat.
-
Ein
Nachteil des Freitodabteilungs-Verfahrens, das in der Rivest-Schrift
vorgeschlagen wird, ist, dass, nachdem der rechtmäßige Besitzer
eines Privater/Öffentlicher-Schlüssel-Paars den öffentlichen
Schlüssel
bei einer ersten Freitod-Abteilung
registriert hat, ein Angreifer den gleichen öffentlichen Schlüssel bei
einer anderen Freitod-Abteilung registrieren kann, mit der Erwartung,
Kenntnis des privaten Schlüssels
zu erlangen. Falls der Angreifer später Kenntnis des privaten Schlüssels erlangt
und die Beeinträchtigung
erfasst wird, sendet der rechtmäßige Besitzer
des Privater/Öffentlicher-Schlüssel-Paars eine
Freitodnachricht an die erste Freitod-Abteilung, aber der Angreifer
kann nach wie vor ein Gesundheitszertifikat von der zweiten Freitod-Abteilung erhalten.
Um dies zu vermeiden, müssen
alle Freitod-Abteilungen zu einer einzigen Vereinigung gehören und
müssen
durch ein zuverlässiges
Rundsendenetz verbunden sein, was in der Praxis schwierig zu erreichen
ist. Die zweite Freitod-Abteilung muss auf dem Netzwerk hören und
ihre Aufzeichnung des privaten Schlüssels ungültig machen, selbst wenn die Freitodnachricht
für einen öffentlichen
Schlüssel
ist, der bei der ersten Freitod-Abteilung registriert wurde.
-
Ein
zweiter Nachteil des vorgeschlagenen Freitod-Abteilungs-Verfahrens ist, dass nachdem
ein öffentlicher
Schlüssel
beeinträchtigt
wurde und die Freitod-Nachricht an alle Freitod-Abteilungen rundgesendet
wurde, ein Angreifer den öffentlichen Schlüssel in
einer neuen Registrierung bei der gleichen oder bei einer anderen
Freitod-Abteilung registrieren könnte,
und dann auf der Basis der neuen Registrierung Gesundheitszertifikate
erhalten könnte. Um
dies zu verhindern, muss jede Freitod-Abteilung eine perfekte Aufzeichnung
jedes öffentlichen Schlüssels beibehalten,
der in jeder Freitod-Abteilung registriert ist, für den jemals
eine Freitod-Nachricht ausgestellt wurde. Dies ist wiederum schwierig in
der Praxis umzusetzen.
-
Ein
dritter Verfahrens-Nachteil des vorgeschlagenen Freitod-Abteilung-Verfahrens
ist, dass das Verfahren nur auf Privater/Öffentlicher-Schlüssel-Paare
anwendbar ist, die zu einem Signatur-Kryptosystem gehören, weil
der private Schlüssel verwendet
werden muss, um die Freitodnachricht zu unterzeichnen. Insofern
kann das Verfahren nicht für Schlüsselpaare
verwendet werden, die zu dem Diffie-Hellman (DH-) Kryptosystem gehören, da
ein Diffie-Hellman-Privater-Schlüssel nicht
verwendet werden kann, um Dokumente zu unterzeichnen.
-
Somit
gibt es einen Bedarf an einer verbesserten Möglichkeit zum Verhindern der
Verwendung eines Privater/Öffentlicher-Schlüssel-Paars,
nachdem der private Schlüssel
beeinträchtigt
wurde, die nicht die obigen Nachteile des Freitod-Abteilung-Verfahrens
hat, das in der Rivest-Schrift vorgeschlagen wird.
-
Zusammenfassung
der Erfindung
-
Ein
Aspekt der vorliegenden Erfindung liefert einen Öffentlicher-Schlüssel-Validierungsagenten (PKVA),
der eine Off-Line-Registrierungsautorität und einen
On-Line-Berechtigungsnachweisserver umfasst.
Die Registrierungsautorität
gibt ein erstes nicht-unterzeichnetes Öffentlicher-Schlüssel-Validierungszertifikat
(nicht-unterzeichnetes PKVC) off-Line an ein Subjekt aus, das einen öffentlichen Schlüssel des
Subjekts an eine erste Öffentlicher-Schlüssel-Seriennummer
(PKVN) bindet. Die Registrierungsautorität behält eine Zertifikatdatenbank
von nicht-unterzeichneten
PKVCs bei, in denen dieselbe das erste nicht-unterzeichnete PKVC
speichert. Der Berechtigungsnachweisserver gibt ein einmaliges Öffentlicher-Schlüssel-Validierungszertifikat
(Einmal-PKVC) on-Line an das Subjekt aus. Das Einmal-PKVC bindet
den öffentlichen
Schlüssel
des Subjekts von dem ersten nicht-unterzeichneten PKVC an die erste
PKVN von dem ersten nicht-unterzeichneten PKVC. Der Berechtigungsnachweisserver
behält
eine Tabelle bei, die Einträge
enthält,
die gültigen
nicht-unterzeichneten PKVCs entsprechen, die in der Zertifikat-Datenbank
gespeichert sind.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm einer leichten Öffentlicher-Schlüssel-Infrastruktur
(PKI) gemäß der vorliegenden
Erfindung, die kurzfristige Einmalzertifikate verwendet.
-
2 ist
ein Diagramm eines nicht-unterzeichneten Zertifikats, das von einer
Registrierungsautorität
der PKI von 1 ausgegeben wurde.
-
3 ist
ein Flussdiagramm eines Off-Line-Protokolls zum Ausgeben eines nicht-unterzeichneten
Zertifikats von einer Registrierungsautorität der PKI von 1.
-
4 ist
ein Diagramm eines nicht-strukturierten kurzfristigen Einmalzertifikats,
wie es durch den Berechtigungsnachweisserver des PKI von 1 ausgegeben
wird.
-
5 ist
ein Flussdiagramm, das ein On-Line-Protokoll zum Ausgeben eines
kurzfristigen Einmalzertifikats von einem Berechtigungsnachweisserver
der PKI von 1 darstellt.
-
6 ist
ein Flussdiagramm, das ein On-Line-Protokoll für ein Subjekt darstellt, zum
Nachweisen seiner Identität
an einen Verifizierer der PKI von 1.
-
7 ist
ein Flussdiagramm, das ein Protokoll für eine Registrierungsautorität darstellt,
zum Aufheben eines nicht-unterzeichneten Zertifikats für den PKI
von 1.
-
8 ist
ein Blockdiagramm einer leichten PKI, die kurzfristige Einmalzertifikate
für eine
Autorisierung gemäß der vorliegenden
Erfindung verwendet.
-
9 ist
ein Diagramm eines strukturierten kurzfristigen Einmalzertifikats,
wie es durch einen Berechtigungsnachweisserver der PKI von 8 ausgegeben
wird.
-
10 ist
ein Flussdiagramm, das ein On-Line-Protokoll zum Ausgeben eines
strukturierten kurzfristigen Einmalzertifikats von einem Berechtigungsnachweisserver
der PKI von 8 darstellt.
-
11 ist
ein Flussdiagramm, das ein On-Line-Protokoll darstellt, das durch
ein Subjekt verwendet wird, um seine Identität einem Verifizierer der PKI
von 8 nachzuweisen.
-
12 ist
ein Blockdiagramm einer verteilten Zertifikatautorität mit verteilten
Berechtigungsnachweisservern gemäß der vorliegenden
Erfindung.
-
13 ist
ein Blockdiagramm einer PKI mit einem Öffentlicher-Schlüssel-Validierungsdienst (PKVS),
die Authentifizierung mit herkömmlichen Öffentlicher-Schlüssel-Zertifikaten
verwendet.
-
14 ist
ein Diagramm eines nicht-unterzeichneten Öffentlicher-Schlüssel-Validierungszertifikats.
-
15 ist
ein Diagramm eines einmaligen Öffentlicher-Schlüssel-Validierungszertifikats.
-
16 ist
ein Diagramm eines aufhebbaren Zertifikats.
-
17 ist
ein Blockdiagramm einer PKI mit einem PKVS, die die Authentifizierung
mit Einmalzertifikaten verwendet.
-
18 ist
ein Diagramm eines regulären nicht-unterzeichneten Zertifikats.
-
19 ist
ein Diagramm eines regulären Einmalzertifikats.
-
20 ist
ein Blockdiagramm einer PKI mit einem PKVS, die Authentifizierung
mit nicht-unterzeichneten Zertifikaten verwendet.
-
21 ist
ein Diagramm eines regulären nicht-unterzeichneten Zertifikats.
-
22 ist
ein Blockdiagramm einer PKI mit einem PKVS, die Authentifizierung
ohne Zertifikate verwendet, wie z. B. in einem E-Commerce-Szenario.
-
23 ist
ein Blockdiagramm eines Computersystems und eines entsprechenden
computerlesbaren Mediums, das eine oder mehrere Hauptsoftwareprogramm- Komponenten einer
PKI gemäß der vorliegenden
Erfindung umfasst.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
-
Bei
der folgenden detaillierten Beschreibung der bevorzugten Ausführungsbeispiele
wird auf die beiliegenden Zeichnungen Bezug genommen, die einen
Teil derselben bilden, und in der durch die Darstellung spezifische
Ausführungsbeispiele
gezeigt sind, in denen die Erfindung praktiziert werden kann. Es
ist klar, dass andere Ausführungsbeispiele
verwendet werden können
und strukturelle oder logische Änderungen
durchgeführt
werden können, ohne
von dem Schutzbereich der vorliegenden Erfindung abzuweichen. Die
folgende detaillierte Beschreibung ist daher nicht in beschränkendem
Sinne zu sehen und der Schutzumfang der vorliegenden Erfindung ist
durch die angehängten
Ansprüche
definiert.
-
Die
vorliegende Erfindung bezieht sich auf einen Öffentlicher-Schlüssel-Validierungsdienst (PKVS)
zum Validieren eines öffentlichen
Schlüssels eines
Subjekts, bevor das Privater/Öffentlicher-Schlüssel-Paar
des Subjekts für
Authentifizierungsprozesse verwendet wird. Der PKVS der vorliegenden
Erfindung ist besser verständlich,
indem zunächst
eine leichte PKI beschrieben wird, die Einmalzertifikate verwendet,
wie sie z. B. in der mitanhängigen
Patentanmeldung mit dem Titel „LIGHTWEIGHT PUBLIC
KEY INFRASTRUCTURE EMPLOYING DISPOSABLE CERTIFICATES" beschrieben ist.
-
Leichte Öffentlicher-Schlüssel-Infrastruktur,
die Einmalzertifikate verwendet
-
Eine
leichte Öffentlicher-Schlüssel-Infrastruktur
(PKI) gemäß der vorliegenden
Erfindung ist allgemein bei 30 in 1 dargestellt.
Die PKI 30 umfasst mehrere Hauptkompo nenten, die jeweils
ein Softwareprogramm sind. Die Hauptsoftware-Programmkomponenten
der PKI 30 laufen auf einem oder mehreren Computersystemen.
Bei einem Ausführungsbeispiel
läuft jede
der Hauptsoftware-Programmkomponenten auf ihrem eigenen Computersystem.
-
Eine
Zertifikatautorität 32 gibt
kurzfristige Einmalzertifikate an ein oder mehrere Subjekte aus, wie
z. B. das Subjekt 34. Das Subjekt 34 ist ein Benutzer,
der einen öffentlichen
Schlüssel
besitzt, der in dem kurzfristigen Einmalzertifikat enthalten ist
und verwendet das kurzfristige Einmalzertifikat, um die Identität des Subjekts
einem oder mehreren Verifizierern, wie z. B. dem Verifizierer 36,
nachzuweisen, durch Nachweisen, dass das Subjekt Kenntnis eines privaten
Schlüssels
hat, der dem öffentlichen
Schlüssel
in dem kurzfristigen Einmalzertifikat entspricht. Der Verifizierer 36 ist
ein Benutzer, der sich auf das kurzfristige Einmalzertifikat verlässt, das
durch das Subjekt 34 präsentiert
wird, um zu verifizieren, dass das Subjekt 34 das Subjekt
des kurzfristigen Einmalzertifikats ist und dass die Attribute,
die in dem kurzfristigen Einmalzertifikat enthalten sind, für das Subjekt 34 gelten.
Bei einigen Ausführungsbeispielen
der PKT 30 kann der gleiche Benutzer in unterschiedlichen
Situationen die Rolle des Subjekts 34 und des Verifizierers 36 spielen.
-
Die
PKI 30 gibt keine traditionellen langfristigen Zertifikate
aus, wie sie z. B. durch herkömmliche PKIs
ausgegeben werden. Traditionelle langfristige Zertifikate haben
typischerweise eine Gültigkeitsperiode,
die durch ein Ablaufdatum definiert ist, das eine wesentliche Periode
von dem Ausgabedatum entfernt ist, wie z. B. ein Jahr ab dem Ausgabedatum. Eine
herkömmliche
Zertifikatautorität
muss ein traditionelles langfristiges Zertifikat aufheben, falls
die Bindung des Öffentlicher-Schlüssel-Zertifikats
vor dem Ablaufdatum ungültig
wird. Wie es in der Beschreibungseinleitung der vorliegenden Beschreibung
erörtert
wird, wurden eine Vielzahl von Verfahren verwendet, um traditionelle langfristige
Zertifikate aufzuheben, wie z. B. durch Verwenden einer Zertifikats-Aufhebungsliste
(CHL) oder eines On-Line-Zertifikats-Statusprotokolls (OCSP).
-
Im
Gegensatz zu traditionellen langfristigen Zertifikaten sind die
kurzfristigen Einmalzertifikate, die durch die Zertifikatautorität 32 gemäß der vorliegenden
Erfindung ausgegeben werden, keiner Aufhebung unterworfen. Die kurzfristigen
Einmalzertifikate werden als einmalig bezeichnet, weil das Subjekt 34 dieselben
nach einigen Benutzungen wegwerfen kann. Als Folge werden bei einem
Ausführungsbeispiel
der vorliegenden Erfindung die kurzfristigen Einmalzertifikate in
einem flüchtigen
Speicher gespeichert und nicht auf einer Platte gespeichert. Die
PKI 30 wird als eine leichte PKI bezeichnet, weil dieselbe
wesentlich einfacher und effizienter ist als eine herkömmliche
PKI.
-
Ein
kurzfristiges Einmalzertifikat ist hierin definiert als ein Öffentlicher-Schlüssel-Zertifikat,
das den öffentlichen
Schlüssel
des Subjekts an einen oder mehrere Namen oder Identifizierer bindet
und eine kurze Gültigkeitsperiode
hat, die durch ein Ablaufdatum/-zeit bestimmt ist. Eine beispielhafte
Gültigkeitsperiode
für ein
kurzfristiges Einmalzertifikat ist ein Tag, einige Stunden oder
sogar einige wenige Minuten. Da die Gültigkeitsperiode recht kurz
ist, ist eine Aufhebung nicht notwendig. Das Subjekt 34 fordert
nach Bedarf ein neues kurzfristiges Einmalzertifikat an, und legt
es dem Verifizierer 36 vor. Der Verifizierer 36 muss
nur das Ablaufdatum/-zeit prüfen, um
zu verifizieren, dass das kurzfristige Einmalzertifikat gültig ist.
-
Aus
der Sicht des Verifizierers 36 ist die Verwendung von kurzfristigen
Einmalzertifikaten ein viel besseres Schema als das Verwenden traditioneller langfristiger
Zertifikate, weil der Verifizierer 36 nur eine Signatur
des kurzfristigen Einmalzertifikats verifizieren muss und das Ablaufdatum/-zeit
des kurzfristigen Einmalzertifikats prüfen muss. Da die Zertifikatvalidierungsarbeit
des Verifizierers 36 höchstwahrscheinlich
ein kritischer Weg bei der Gesamtarbeit des Verifizierers 36 ist,
sind kurzfristige Einmalzertifikate eine gute Lösung für den Verifizierer. In vielen Fällen ist
der Verifizierer ein Leistungsfähigkeitsengpass
und somit sind kurzfristige Einmalzertifikate eine gute Gesamtlösung für die PKI 30.
-
Die
Zertifikatautorität 32 umfasst
eine Registrierungsautorität 38,
die eine Zertifikatdatenbank (DB) 40 beibehält, die
nicht-unterzeichnete Zertifikate enthält. Die Zertifikatautorität 32 umfasst
auch einen Berechtigungsnachweisserver 42, der eine Hash-Tabelle
(HAT) 44 beibehält,
die kryptographische Hash-Werte von nicht-unterzeichneten Zertifikaten
enthält.
-
Die
Registrierungsautorität 38 ist
eine Off-Line-Komponente der Zertifikatautorität 32 und ist verantwortlich
für Subjektregistrierung
und für
das Beibehalten einer Zertifikatdatenbank 40. Jedes nicht-unterzeichnete
Zertifikat in einer Zertifikatdatenbank 40 bindet einen öffentlichen
Schlüssel
eines Subjekts an ein oder mehrere Attribute, die das Subjekt eindeutig
identifizieren.
-
Der
Berechtigungsnachweisserver 42 ist eine On-Line-Komponente der Zertifikatautorität 32 und
ist verantwortlich für
das Ausgeben der kurzfristigen Einmalzertifikate und für das Beibehalten
der Liste von kryptographischen Hash-Werten von aktuell gültigen nicht-unterzeichneten
Zertifikaten in der Hash-Tabelle 44. Jeder kryptographische
Hash-Wert in der Hash-Tabelle 44 wird von einem nicht-unterzeichneten Zertifikat
berechnet, unter Verwendung einer vereinbarten kollisionsresistenten
Hash-Funktion, wie z. B. SHA-1 oder MD5. Die Hash-Tabelle 44 ist
im wesentlichen eine Liste der aktuell gültigen nicht-unterzeichneten
Zertifikate, die durch den kryptographischen Hash-Wert mit einem
Schlüssel
versehen wird. Kryptographische Hash-Werte funktionieren gut als
Schlüssel
für die
Hash-Tabelle 44, weil sich kryptographische Hash-Werte
statistisch als Zufallsgrößen verhalten.
-
Das
Subjekt 34 hat einen privaten Schlüssel 46, der in einem
sicheren Speichermedium 48 gespeichert ist, wie z. B. einer
Smartcard oder einer sicheren Softwaretasche. Das Subjekt 34 hat
auch einen öffentlichen
Schlüssel,
der mathematisch dem privaten Schlüssel 46 zugeordnet,
ist. Das Subjekt 34 registriert den öffentlichen Schlüssel, der
dem privaten Schlüssel 46 entspricht,
bei der Registrierungsautorität 38,
durch Senden des öffentlichen
Schlüssels
und eines oder mehrerer Attribute, die die Identität des Subjekts 34 eindeutig
identifizieren, an die Registrierungsautorität 38 und Nachweisen,
dass die Identifikations-Attribute
für das
Subjekt 34 gelten. Beispiele solcher Identifikationsattribute
umfassen den Namen, die Sozialversicherungsnummer und die Angestelltennummer.
-
Die
Komponenten der PKI 30 sind durch ein oder mehrere Computernetzwerke
verbunden. Eine Netzwerkverbindung 50 koppelt den Berechtigungsnachweisserver 42 und
das Subjekt 34. Eine Netzwerkverbindung 52 koppelt
das Subjekt 34 und den Verifizierer 36. Netzwerkverbindungen 50 und 52 sind
in 1 als durchgezogene Linien gezeigt und werden
für On-Line-Kommunikation
verwendet. Eine Netzwerkverbindung 54 koppelt die Registrierungsautorität 38 und
das Subjekt 34. Eine Netzwerkverbindung 56 koppelt
die Registrierungsautorität 38 und
den Berechtigungsnachweisserver 42. Netzwerkverbindungen 54 und 56 sind
in 1 als gestrichelte Linien dargestellt und werden
für Off-Line-Kommunikation
verwendet. Die Registrierungsautorität 38 ist nur bei Off-Line-Kommunikation beteiligt
und kommuniziert durch Off-Line-Netzwerkverbindungen 54 und 56.
Andererseits ist der Berechtigungsnachweisserver 42 durch
die Netzwerkverbindung 50 bei der On-Line-Kommunikation
beteiligt.
-
Ein
Ausführungsbeispiel
eines nicht-unterzeichneten Zertifikats, das durch die Registrierungsautorität 38 ausgegeben wird,
ist in 2 allgemein bei 60 dargestellt. Das nicht-unterzeichnete
Zertifikat 60 umfasst ein Metadaten- (MD-) Feld 61, das Daten über nicht-
unterzeichnete Zertifikate 60 selbst anstatt Daten enthält, die
sich auf das Subjekt beziehen. Beispiele von Daten, die in dem Metadatenfeld 61 gespeichert
sind, umfassen Seriennummer und Ausgebername. Das nicht-unterzeichnete
Zertifikat 60 umfasst einen öffentlichen Schlüssel (PK) 62 des Subjekts.
Das nicht-unterzeichnete Zertifikat 60 umfasst ein Langfristige-Identifikationsinformationen- (LTI-)
Feld 63, das Attribute enthält, die das Subjekt 34 eindeutig
identifizieren, wie z. B. den Namen des Subjekts, die Sozialversicherungsnummer
des Subjekts oder die Angestelltennummer des Subjekts.
-
Das
nicht-unterzeichnete Zertifikat 60 umfasst optional ein
Langfristiger-Ablauf- (EXP-) Feld 64, das ein Datum/eine
Zeit des Ablaufs für
das nicht-unterzeichnete Zertifikat 60 enthält. Das
Ablaufdatum/-zeit, die in dem Langfristiger-Ablauf-Feld 64 enthalten ist,
ist für
Verwaltungszwecke sinnvoll, aber ist für eine ordnungsgemäße Funktion
der PKI 30 nicht erforderlich. Im Gegensatz dazu ist bei
einer herkömmlichen
PKI das Ablaufdatum erforderlich, um die Größe der CRL zu reduzieren, wenn
aufgehobene Zertifikate ihre Ablaufdaten erreichen. Das nicht-unterzeichnete
Zertifikat 60 umfasst optional ein Dauer- (DUR-) Feld 65,
das eine Dauer für
die Gültigkeitsperiode
aller kurzfristigen Einmalzertifikate spezifiziert, die für das nicht-unterzeichnete Zertifikat 60 ausgegeben
wurden.
-
Ein
Off-Line-Protokoll zum Ausgeben eines nicht-unterzeichneten Zertifikats 60 von
der Registrierungsautorität 38 ist
in 3 allgemein bei 100 dargestellt. Bei
Schritt 102 sendet das Subjekt 34 seinen öffentlichen
Schlüssel
und ein oder mehrere Attribute, die das Subjekt 34 eindeutig
identifizieren, an die Registrierungsautorität 38.
-
Bei
Schritt 103 weist das Subjekt 34 Kenntnis des
privaten Schlüssels 46 nach,
der dem öffentlichen
Schlüssel
des Subjekts 34 zugeordnet ist. Schritt 103 wird
auf eine Weise durchgeführt,
die von dem Kryptosystem abhängt,
für das
das Privater-Öffentlicher-Schlüssel-Paar
durch das Subjekt 34 erzeugt wurde. Beispielsweise weist
das Subjekt 34 bei einem digitalen Signaturkryptosystem
Kenntnis des privaten Schlüssels 46 nach
durch Verwenden des privaten Schlüssels 46 zum digitalen
Unterzeichnen einer Menge, die von einer Zufallsmenge abgeleitet wird,
die durch die Registrierungsautorität 38 erzeugt wird.
Die Registrierungsautorität 38 verifiziert
dann diese digitale Signatur unter Verwendung des öffentlichen
Schlüssels
des Subjekts 34.
-
Bei
Schritt 104 weist das Subjekt 34 der Registrierungsautorität 38 durch
eine Außerbandverwaltungs-Einrichtung
nach, dass die Identifikations-Attribute, die in Schritt 102 gesendet
werden, für das
Subjekt 34 gelten.
-
Bei
Schritt 106 erzeugt die Registrierungsautorität 38 ein
nicht-unterzeichnetes Zertifikat 60 und speichert das nicht-unterzeichnete
Zertifikat 60 in der Zertifikatdatenbank 40. Bei
Schritt 108 sendet die Registrierungsautorität 38 das
nicht-unterzeichnete Zertifikat 60 an das Subjekt 34.
-
Bei
Schritt 110 berechnet die Registrierungsautorität 38 einen
kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 unter
Verwendung einer vereinbarten kollisionsresistenten Hash-Funktion,
wie z. B. SHA-1 oder MD5. Bei Schritt 110 sendet die Registrierungsautorität 38 den berechneten
kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 an
den Berechtigungsnachweisserver 42 über die Netzwerkverbindung 56,
die Datenintegritätsschutz
liefert, wie z. B. mit einer SSL-Verbindung (SSL = Secure Sockets Layer
= Sicherheitssockelschicht).
-
Bei
Schritt 112 speichert der Berechtigungsnachweisserver 42 den
kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60, das
in Schritt 110 berechnet wird, in der Hash-Tabelle 44.
-
Ein
Ausführungsbeispiel
eines kurzfristigen Einmalzertifikats, wie es durch den Berechtigungsnachweisserver 42 ausgegeben
wird, ist in 4 allgemein bei 70 dargestellt.
Das kurzfristige Einmalzertifikat 70 umfasst ein Metadaten-
(MD-) Feld 71, das Daten über das kurzfristige Einmalzertifikat 70 enthält, anstatt über das
Subjekt des kurzfristigen Einmalzertifikats 70. Das kurzfristige
Einmalzertifikat 70 umfasst einen öffentlichen Schlüssel (PK) 72,
der der gleiche öffentliche
Schlüssel
ist wie der öffentliche
Schlüssel 62 des
nicht-unterzeichneten Zertifikats 60. Das Subjekt des nicht-unterzeichneten
Zertifikats 60 und des kurzfristigen Einmalzertifikats 70 hat
nur ein Privater-Öffentlicher-Schlüssel-Paar,
das dem privaten Schlüssel 46 zugeordnet
ist, der in der Smartcard oder der sicheren Softwaretasche 48 gespeichert
ist. Das kurzfristige Einmalzertifikat 70 umfasst ein Langfristige-Identifikationsinformationen- (LTI-)
Feld 73, das Attribute enthält, die das Subjekt 34 eindeutig
identifizieren. Das Langfristige-Identifikationsinformationen-Feld 73 ist
identisch mit dem Langfristige-Identifikationsinformatione-Feld 63 des nicht-unterzeichneten
Zertifikats 60.
-
Das
kurzfristige Einmalzertifikat 70 umfasst auch ein Kurzfristiger-Ablauf-
(EXP-) Feld 76, das ein Datum und eine Zeit des Ablaufs
für ein
kurzfristiges Einmalzertifikat 70 spezifiziert. Bei einem
Ausführungsbeispiel,
bei dem das nicht-unterzeichnete Zertifikat 60 ein Dauerfeld 65 enthält, das
eine Dauer für die
Gültigkeitsperiode
der kurzfristigen Einmalzertifikate spezifiziert, die von demselben
ausgegeben werden, werden das Datum und die Zeit, die durch das
Kurzfristiger-Ablauf-Feld 56 spezifiziert sind, erhalten
durch Hinzufügen
der Dauer, die durch das Dauerfeld 65 spezifiziert wird,
zu dem Datum und der Zeit, zu dem das kurzfristige Einmalzertifikat 70 durch den
Berechtigungsnachweisserver 42 ausgegeben wird. Bei einem
Ausführungsbeispiel
ist die Dauer der Gültigkeitsperiode
des kurzfristigen Einmalzertifikats 70 nicht explizit spezifiziert
durch ein Dauerfeld 65 in dem nicht-unterzeichneten Zertifikat 60.
Bei diesem Ausführungsbeispiel
ist die Dauer der Gültigkeitsperiode
des kurzfristigen Einmalzertifikats 70 durch eine Richtlinie
festgelegt.
-
Das
kurzfristige Einmalzertifikat 70 umfasst auch ein Signaturfeld 77,
das eine Signatur eines Berechtigungsnachweisservers 42 enthält. Die
Signatur in dem Signaturfeld 77 wird hergestellt durch
den Bezugnachweisserver 42 auf der Sequenz der Felder 71, 72, 73 und 76 und
auch, falls notwendig, der Spezifikation des Kryptosystems, das
verwendet wurde, um die Signatur zu erzeugen, und verwendet werden muss,
um die Signatur zu verifizieren.
-
Bei
einem Ausführungsbeispiel
ist das kurzfristige Einmalzertifikat 70 mit einem X.509v3-Zertifikat
implementiert.
-
Ein
On-Line-Protokoll zum Ausgeben eines kurzfristigen Einmalzertifikats 70 an
das Subjekt 34 von dem Berechtigungsnachweisserver 42 für das nicht-unterzeichnete
Zertifikat 60 ist in 5 allgemein
bei 200 dargestellt. Bei Schritt 202 sendet das Subjekt 34 eine
Mitteilung an den Berechtigungsnachweisserver 42, die das
nicht-unterzeichnete
Zertifikat 60 enthält
und anfordert, dass ein kurzfristiges Einmalzertifikat für das nicht-unterzeichnete Zertifikat 60 ausgegeben
wird.
-
Bei
Schritt 204 berechnet der Berechtigungsnachweisserver 42 einen
kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 durch
die vereinbarte kollisionsresistente Hash-Funktion. Bei Schritt 204 verifiziert
der Berechtigungsnachweisserver 42 dann, dass der berechnete
kryptographische Hash-Wert in der Hash-Tabelle 44 vorliegt.
Bei Schritt 206 erzeugt der Berechtigungsnachweis server 42 das
kurzfristige Einmalzertifikat 70 und sendet das kurzfristige
Einmalzertifikat 70 an das Subjekt 34.
-
Bei
Schritt 204 führt
der Berechtigungsnachweisserver 42 den Nachschlag in der
Hash-Tabelle 44 mit einer effizienten und rechentechnisch
unaufwendigen Operation durch. Die Signaturoperation, die durch
den Berechtigungsnachweisserver 42 in Schritt 206 durchgeführt wird,
um das kurzfristige Einmalzertifikat 70 zu erzeugen, ist
jedoch eine rechentechnisch aufwendige Operation. Trotzdem wird der
Schritt 206 mit der rechentechnisch aufwendigen Signatur-Operation
nur durchgeführt,
falls der Nachschlag in der Hash-Tabelle 44 erfolgreich
ist. Die Auswirkung eines Dienstverweigerungsangriffs gegen den
Berechtigungsnachweisserver 42 ist reduziert, indem der
Schritt 206 nur durchgeführt wird, falls der Nachschlag
in Schritt 204 erfolgreich ist.
-
Ein
On-Line-Protokoll, das durch das Subjekt 34 verwendet wird,
um dem Verifizierer 36 seine Identität nachzuweisen, ist allgemein
bei 300 in 6 dargestellt. Bei Schritt 302 sendet
das Subjekt 34 das ausgegebene kurzfristige Einmalzertifikat 70 an
den Verifizierer 36. Bei Schritt 304 verifiziert
der Verifizierer 36, dass das Ablaufdatum und die Ablaufzeit,
die in dem kurzfristigen Ablauffeld 76 des kurzfristigen
Einmalzertifikats 70 spezifiziert sind, nicht erreicht
wurden.
-
Bei
Schritt 306 verwendet der Verifizierer 36 einen öffentlichen
Schlüssel
des Berechtigungsnachweisservers 42 zum Verifizieren der
Signatur in dem Signaturfeld 77 des kurzfristigen Einmalzertifikats 70. Der
Verifizierer 36 kennt den öffentlichen Schlüssel des
Berechtigungsnachweisservers 42 entweder direkt oder durch
die Zertifizierung durch eine höhere Zertifikatautorität.
-
Bei
Schritt 308 weist das Subjekt 34 die Kenntnis
des privaten Schlüssels 46 nach,
der dem öffentlichen
Schlüssel 72 zugeordnet
ist, der in dem kurzfristigen Einmalzertifi kat 70 enthalten
ist. Schritt 308 wird auf eine Weise durchgeführt, die
von dem Kryptosystem abhängt,
für das
das private/öffentliche Schlüssel-Paar
durch das Subjekt 34 erzeugt wurde. Beispielsweise weist
das Subjekt 34 bei einem digitalen Signaturkryptosystem
Kenntnis des privaten Schlüssels 46 nach
durch Verwenden des privaten Schlüssels 46 zum digitalen
Unterzeichnen einer Menge, die von einer Zufallsmenge abgeleitet
wird, die durch den Verifizierer 36 erzeugt wird. Der Verifizierer 36 verifiziert
dann die digitale Signatur unter Verwendung des öffentlichen Schlüssels 72 in
dem kurzfristigen Einmalzertifikat 70.
-
Das
Subjekt 34 kann das kurzfristige Einmalzertifikat 70 löschen, wenn
das kurzfristige Einmalzertifikat abläuft, weil das Subjekt 34 ein
neues kurzfristiges Einmalzertifikat erhalten kann durch Senden des
nicht-unterzeichneten Zertifikats an den Berechtigungsnachweisserver 42.
Bei einem Ausführungsbeispiel
speichert das Subjekt 34 das kurzfristige Einmalzertifikat
in dem flüchtigen
Speicher und speichert es nicht auf Platte.
-
Ein
Off-Line-Protokoll zum Aufheben des nicht-unterzeichneten Zertifikats 60 ist
allgemein bei 400 in 7 dargestellt.
Das Off-Line-Protokoll 400 wird durchgeführt, wenn
der private Schlüssel 46 des Subjekts 34 verfälscht ist
oder die Identifikations-Attribute in dem Langfristige-Identifikationsinformationen-Feld 63 nicht
mehr für
das Subjekt 34 gelten, weil in jedem Fall das Binden des öffentlichen Schlüssels 62 an
die Identifikations-Attribute ungültig ist.
-
Bei
Schritt 402 gewinnt die Registrierungsautorität 38 das
nicht-unterzeichnete Zertifikat 60 von der Zertifikatdatenbank 40 wieder
und berechnet einen kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 unter
Verwendung der vereinbarten kollisionsresistenten Hash-Funktion.
Bei einem Ausführungsbeispiel
markiert die Registrierungsautorität 38 das nicht-unterzeichnete
Zertifikat 60 in der Zertifikatdatenbank 40 als
ungültig
für Prüfungszwecke.
Bei einem alternativen Ausführungsbeispiel,
wo die Beibehaltung des nicht-unterzeichneten Zertifikats 60 in
der Zertifikatdatenbank 40 für Prüfungszwecke nicht erforderlich
ist, löscht
die Registrierungsautorität 38 das
nicht-unterzeichnete
Zertifikat 60 von der Zertifikatdatenbank 40.
-
Bei
Schritt 404 sendet die Registrierungsautorität 38 eine
Mitteilung an den Berechtigungsnachweisserver 42, die den
kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 enthält, der in
Schritt 402 berechnet wird. Die Mitteilung, die in Schritt 404 gesendet
wird, erfordert auch, dass der Berechtigungsnachweisserver 42 den
entsprechenden kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 von
der Hash-Tabelle 44 entfernt.
-
Bei
Schritt 406 entfernt der Berechtigungsnachweisserver 42 den
kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 60 von
der Hash-Tabelle 44, was dem kryptographischen Hash-Wert
entspricht, der in der Mitteilung von der Registrierungsautorität 38 in
Schritt 404 gesendet wurde. Nachdem Schritt 406 abgeschlossen
ist, gibt der Berechtigungsnachweisserver 42 keine kurzfristigen
Einmalzertifikate 70 für
das nicht-unterzeichnete Zertifikat 60 mehr aus. Sobald
das Protokoll 40 ausgeführt
wurde, kann folglich weder das Subjekt 34 noch ein Angreifer
ein kurzfristiges Einmalzertifikat erhalten, indem er das nicht-unterzeichnete Zertifikat 60 dem
Berechtigungsnachweisserver 42 präsentiert.
-
Ein
alternatives Ausführungsbeispiel
einer leichten PKI gemäß der vorliegenden
Erfindung ist allgemein bei 30' in 8 dargestellt.
Die Komponenten 32', 34', 36', 38', 40' , 42' , 44' , 46' , 48' , 50' , 52' , 54' und 56' der PKI 30' arbeiten im
wesentlichen gleich und sind im allgemeinen wesentlich gleich gekoppelt
wie die entsprechenden Kompo nenten 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54 und 56 der
PKI 30, die oben beschrieben sind.
-
Die
PKI 30' umfasst
jedoch ein Verzeichnis 90. Bei einem Ausführungsbeispiel
ist das Verzeichnis 90 ein leichtes Verzeichniszugriffsprotokoll- (LDAP-)
Verzeichnis. Die PKI 30' umfasst
auch eine Netzwerkverbindung 92 zum Koppeln des Berechtigungsnachweisservers 42' mit dem Verzeichnis 90, um
es dem Berechtigungsnachweisserver 42' zu ermöglichen, auf das Verzeichnis 90 zuzugreifen.
Der Berechtigungsnachweisserver 42' erhält kurzfristige Autorisierungs-Informationen, die
in dem Verzeichnis 90 gespeichert sind. Der Berechtigungsnachweisserver 42' fügt die kurzfristigen
Autorisierungs-Informationen, die von dem Verzeichnis 90 erhalten
werden, den kurzfristigen Einmalzertifikaten hinzu, die durch den
Berechtigungsnachweisserver 42' ausgegeben werden, auf eine ähnliche
Weise, wie es in der mitanhängigen
Anmeldung mit dem Titel „AUTHORIZATION
INFRASTRUCTURE BASED ON PUBLIC KEY CRYPTOGRAPHY" beschrieben ist, um kurzfristige Berechtigungsnachweiszertifikate
zu erzeugen, die für
die Autorisierung des Subjekts 34' verwendet werden können.
-
Die
kurzfristigen Autorisierungsinformationsdaten, die in dem Verzeichnis 90 enthalten
sind, beziehen sich auf Attribute oder Autorisierungs-Informationen über das
Subjekt 34'.
Beispielhafte kurzfristige Autorisierungs-Informationen umfassen die Kostenautorisierungsgrenze
für eine
Firmenanwendung, die Mitfinanzierungsmenge für eine Versicherungsanwendung,
die Plattenspeicherquote für
eine Informationstechnologie- (IT-) Anwendung, und Benutzer-ID plus
Gruppen-ID für
Unix-Zugriffsanwendungen.
-
Bei
der PKI 30' ist
der Verifizierer 36' ein
Anwendungsprogramm, das auf einem Servercomputersystem läuft und
das Subjekt 34' ist
ein Clientprogramm, das die Anwendung verwendet.
-
Nicht-unterzeichnete
Zertifikate, die durch die Registrierungsautorität 38' ausgegeben werden, sind im wesentlichen ähnlich wie
die nicht-unterzeichneten Zertifikate, die durch die Registrierungsautorität 38 ausgegeben
werden, wie z. B. das nicht-unterzeichnete Zertifikat 60 von 2.
-
Die
PKI 30' verwendet
das Off-Line-Protokoll 100, das in 3 dargestellt
ist, zum Ausgeben des nicht-unterzeichneten
Zertifikats 60 von der Registrierungsautorität 38.
Außerdem
verwendet die PKI 30' das
in 7 dargestellte Off-Line-Protokoll 400 für die Registrierungsautorität 38' zum Aufheben
des nicht-unterzeichneten Zertifikats 60.
-
Ein
Ausführungsbeispiel
eines strukturierten kurzfristigen Einmalzertifikats, das durch
den Berechtigungsnachweisserver 42 ausgegeben wird, ist in 9 allgemein
bei 80 dargestellt. Das kurzfristige Einmalzertifikat 80 ist
ein strukturiertes Zertifikat, wie die strukturierten Zertifikate,
die in der mitanhängigen Anmeldung
mit dem Titel „METHOD
AND APPARATUS FOR PROVIDING FIELD CONFIDENTIALITY IN DIGITAL CERTIFICATES" definiert und beschrieben
sind.
-
Das
strukturierte kurzfristige Einmalzertifikat 80 umfasst
ein Metadaten- (MD-) Feld 81, einen öffentlichen Schlüssel (PK) 82,
ein Kurzfristiger-Ablauf-Feld 86 und ein Signaturfeld 87,
die im wesentlichen ähnlich
sind wie das Metadatenfeld 71, der öffentliche Schlüssel 72,
das Kurzfristiger-Ablauf-Feld 76 und das Signaturfeld 77 des
nicht strukturierten kurzfristigen Einmalzertifikats 70 von 4.
Das strukturierte kurzfristige Einmalzertifikat 80 umfasst jedoch
Ordner 88a–88n,
die jeweils den Anwendungen 36'a–36'n entsprechen. Für jeden
Verifizierer/Anwendung 36',
auf die das Subjekt/der Client 34' zugreifen kann, wie es beispielsweise
durch ein Benutzerprofil spezifiziert ist, gibt es einen kryptographischen
Ordner 88. Jeder kryptographische Ordner 88 enthält langfristige
Identifikationsinformationen 83 und/oder kurzfristige Autorisierungsin formationen 89, wie
sie für
den entsprechenden Verifizierer/die entsprechende Anwendung 36' zum Durchführen von Autorisierungs-Entscheidungen über das
Subjekt/den Client 34' erforderlich
sind. Bei einem Ausführungsbeispiel
ist das strukturierte kurzfristige Einmalzertifikat 80 durch
Hinzufügen
einer Ordnererweiterung zu einem X.509v3-Zertifikat implementiert.
-
Ein
On-Line-Protokoll zum Ausgeben eines strukturierten kurzfristigen
Einmalzertifikats 80 an das Subjekt/den Client 34' von dem Berechtigungsnachweisserver 42' für das nicht-unterzeichnete
Zertifikat 60 ist in 10 allgemein
bei 500 dargestellt. Bei Schritt 502 sendet das
Subjekt/der Client 34' eine Mitteilung
an den Berechtigungsnachweisserver 42, die das nicht-unterzeichnete
Zertifikat 60 enthält
und fordert an, dass ein kurzfristiges Einmalzertifikat für das nicht-unterzeichnete
Zertifikat 60 ausgegeben wird.
-
Bei
Schritt 504 berechnet der Berechtigungsnachweisserver 42' einen kryptographischen Hash-Wert
des nicht-unterzeichneten
Zertifikats 60 mit einer vereinbarten kollisionsresistenten Hash-Funktion.
Bei Schritt 504 verifiziert der Berechtigungsnachweisserver 42' dann, dass
der berechnete kryptographische Hash-Wert in der Hash-Tabelle 44 vorliegt.
-
Bei
Schritt 506 greift der Berechtigungsnachweisserver 42 über die
Netzwerkverbindung 92 auf das Verzeichnis 90 zu
und erhält
kurzfristige Autorisierungs-Informationen für das strukturierte kurzfristige
Einmalzertifikat 80.
-
Bei
Schritt 508 kombiniert der Berechtigungsnachweisserver 42' die kurzfristigen
Autorisierungs-Informationen, die von dem Verzeichnis 90 bei Schritt 506 erhalten
werden, mit den Identifikationsattributen in dem Langfristige-Identifikationsinformationen-Feld 63 des
nicht-unterzeichneten
Zertifikats 60. Bei Schritt 508 erzeugt der Berechtigungsnachweisserver 42' einen kryptographischen Ordner 88 für jeden
Verifizierer/jede Anwendung 36', auf die durch das Subjekt/den
Client 34' zugegriffen
werden kann, wobei jeder kryptographische Ordner 88 alle langfristigen
Identifikationsinformationen und/oder kurzfristigen Autorisierungs-Informationen
enthält, die
durch den Verifizierer/die Anwendung 36' erforderlich sind, um Autorisierungsentscheidungen über das
Subjekt/den Client 34' zu
treffen. Bei Schritt 508 verwendet der Berechtigungsnachweisserver 42' kryptographische
Ordner 88 zum Erzeugen des strukturierten kurzfristigen
Einmalzertifikats 80.
-
Bei
Schritt 510 sendet der Berechtigungsnachweisserver 42' das strukturierte
kurzfristige Einmalzertifikat 80 an das Subjekt/den Client 34', wobei alle
Ordner des kurzfristigen Einmalzertifikats offen sind.
-
Ein
On-Line-Protokoll zum Autorisieren des Subjekts/Client 34' ist in 11 allgemein
bei 600 dargestellt. Das On-Line-Protokoll 600 wird durch das
Subjekt/den Client 34' verwendet,
um dem Verifizierer/der Anwendung 36' seine Identität nachzuweisen. Das On-Line-Protokoll 600 wird
auch durch den Verifizierer/die Anwendung 36' verwendet, um Autorisierungsentscheidungen
bezüglich
des Subjekts/Client 34' zu
treffen, wie z. B. Erlauben/Verweigern von Zugriff oder Autorisieren
von spezifischen Transaktionen.
-
Bei
Schritt 602 schließt
das Subjekt/der Client 34' alle
Ordner 88 in dem strukturierten kurzfristigen Einmalzertifikat 80,
außer
dem Ordner, der die notwendigen Identifikations-/Autorisierungs-Informationen 83/89 enthält, die
durch den Verifizierer/die Anwendung 36' erforderlich sind, um Autorisierungsentscheidungen
bezüglich
des Subjekts/des Client 34' zu
treffen. Bei Schritt 604 sendet das Subjekt/der Client 34' das strukturierte
kurzfristige Einmalzertifikat 80 an den Verifizierer/die
Anwendung 36'.
-
Bei
Schritt 606 verifiziert der Verifizierer/die Anwendung 36', dass das Ablaufdatum/-zeit,
die in dem Ablauffeld 86 des strukturierten kurzfristigen Einmalzertifikats 80 spezifiziert
ist, nicht abgelaufen ist.
-
Bei
Schritt 608 verwendet der Verifizierer/die Anwendung 36' einen öffentlichen
Schlüssel
des Berechtigungsnachweisservers 42' zum Verifizieren der Signatur
in dem Signaturfeld 87 des strukturierten kurzfristigen
Einmalzertifikats 80. Der Verifizierer/die Anwendung 36' kennt den öffentlichen
Schlüssel
des Berechtigungsnachweisservers 42 entweder direkt oder
durch Zertifizierung durch eine höhere Zertifikatautorität.
-
Bei
Schritt 610 weist das Subjekt/der Client 34' Kenntnis des
privaten Schlüssels 46' nach, der dem öffentlichen
Schlüssel 82 des
strukturierten kurzfristigen Einmalzertifikats 80 zugeordnet
ist. Schritt 610 wird auf eine Weise durchgeführt, die
von dem Kryptosystem abhängt,
für das
das Privater/Öffentlicher-Schlüssel-Paar
durch das Subjekt/den Client 34' erzeugt wurde. Beispielsweise
weist das Subjekt/der Client 34' in einem digitalen Signaturkryptosystem
Kenntnis des privaten Schlüssels 46' nach, durch
Verwenden des privaten Schlüssels 46' zum digitalen
Unterzeichnen einer Menge, die von einer Zufallsmenge abgeleitet
wird, die durch den Verifizierer/die Anwendung 36' erzeugt wird.
Der Verifizierer/die Anwendung 36' verifiziert dann diese digitale Signatur
unter Verwendung des öffentlichen
Schlüssels 82 des
strukturierten kurzfristigen Einmalzertifikats 80'.
-
Bei
Schritt 612 extrahiert der Verifizierer/die Anwendung 36' die Identifikations-/Autorisierungs-Informationen 83/89,
die in dem offenen Ordner 88 des strukturierten kurzfristigen
Einmalzertifikats 80 enthalten sind. Bei Schritt 612 verwendet
der Verifizierer/die Anwendung 36' dann die Identifizierungs-/Autorisierungs-Informationen 83/89 zum
Treffen von Autorisierungsentscheidungen bezüglich des Subjekts/Clients 34'.
-
Das
On-Line-Protokoll 600 zum Autorisieren des Subjekts/Client 34' verwendet das
strukturierte kurzfristige Einmalzertifikat 80 mit einem
Ordner für jede
Anwendung, auf die durch das Subjekt/den Client 34' zugegriffen
werden kann, wie es durch ein Benutzerprofil bestimmt ist. Dies
stellt sicher, dass jede Anwendung nur Zugriff zu Autorisierungs-Informationen
hat, die dieselbe erfordert. Trotzdem kann die Autorisierung, die
durch die PKI 30' durchgeführt wird,
mit nicht strukturierten kurzfristigen Einmalzertifikaten implementiert
werden, wo statt einem strukturierten kurzfristigen Einmalzertifikat 80 mehrere
nicht strukturierte kurzfristige Einmalzertifikate verwendet werden.
-
Die
PKI 30/30' gemäß der vorliegenden
Erfindung ist stark vereinfacht und wesentlich effizienter als herkömmliche
PKIs. Beispielsweise müssen
Anwendungen das kurzfristige Einmalzertifikat nur für Authentifizierung
und/oder Autorisierung verwenden. Das nicht-unterzeichnete Zertifikat 60,
das das traditionelle langfristige Zertifikat ersetzt, kann für die Verwendung
durch das Subjekt reserviert werden, wenn ein kurzfristiges Einmalzertifikat
angefordert wird. Da das nicht-unterzeichnete Zertifikat 60 nicht
durch Anwendungen verwendet wird, muss es nicht-unterzeichnet werden.
Anstatt dem Unterzeichnen des nicht-unterzeichneten Zertifikats 60 hält der Berechtigungsnachweisserver
die kryptographische Hash-Tabelle 44, die kryptographische
Hash-Werte der nicht-unterzeichneten Zertifikate enthält, die
aktuell gültig
sind. Auf diese Weise wird die Zertifikatsaufhebung einfach durch
Entfernen des kryptographischen Hash-Werts des nicht-unterzeichneten
Zertifikats von der Hash-Tabelle 44 durchgeführt. Daher ist
anders als bei herkömmlichen
PKIs keine Signatur erforderlich, kein Ablaufdatum erforderlich
und es besteht kein Bedarf an CRLs für das nicht-unterzeichnete
Zertifikat 60 der PKI 30/30'.
-
Die
PKI 30/30' erfordert
eine Zertifikatstatusprüfung, ähnlich wie
die On-Line-Zertifikatstatusprüfung,
die durch das OCSP erforderlich ist. Die Zertifikatstatusprüfung der
PKI 30/30' gemäß der vorliegenden
Erfindung tritt jedoch auf, wenn das Subjekt das kurzfristige Einmalzertifikat
anfordert, und nicht wenn das Subjekt auf die Anwendung zugreift,
wie es z. B. durch das OCSP erforderlich ist.
-
Eine
verteilte Zertifikatautorität 132 für die Verwendung
bei der PKI 30/30' gemäß der vorliegenden
Erfindung ist in 12 dargestellt. Die verteilte Zertifikatautorität 132 umfasst
eine Registrierungsautorität 138 mit
einer Zertifikatdatenbank 140, die mit einem verteilten
Berechtigungsnachweisserver 142 kommuniziert.
-
Der
verteilte Berechtigungsnachweisserver 142 umfasst Berechtigungsnachweisserver 142a–142n.
Jeder Berechtigungsnachweisserver 142 umfasst eine entsprechende
Hash-Tabellen-Unterteilung 144.
Bei einem Ausführungsbeispiel
ist die kryptographische Hash-Tabelle 144 in Hash-Tabellen-Unterteilungen 144a–144n unterteilt,
gemäß einem
Wert von einigen der Bits des kryptographischen Hash-Werts. Bei
einer PKI 30/30',
die eine verteilte Zertifikatautorität 132 verwendet, die
verteilte Berechtigungsnachweisserver 142a–142n aufweist, sendet
das Subjekt eine Anforderung für
ein kurzfristiges Einmalzertifikat direkt an die korrekte Hash-Tabellen-Unterteilung 144.
-
Die
Zertifikatautorität 132 wird
ferner optimiert durch direktes Koppeln jedes Berechtigungsnachweisservers 142 mit
seiner eigenen Kopie des Verzeichnisses 190.
-
Die
PKI 30/30' gemäß der vorliegenden
Erfindung ist hoch skalierbar, weil viele Engpässe der herkömmlichen
PKIs entfernt sind. Die nicht-unterzeichneten Zertifikate 60,
die durch die PKI 30/30' verwendet werden, laufen nicht
ab und müssen
nicht regelmäßig erneuert
werden. Außerdem
werden CRLs nicht verwendet. Mit der PKI 30/30' wurden keine
wesentlichen Engpässe
eingeführt.
-
Ein
potentieller Engpass der PKI 30/30' ist, dass der Berechtigungsnachweisserver 42/42'/142 kurzfristige
Einmalzertifikate sehr häufig
ausgibt, wie z. B. einmal am Tag, alle paar Stunden oder sogar alle
paar Minuten. Diese Frequenz des Ausgebens kurzfristiger Einmalzertifikate
von dem Berechtigungsnachweisserver gemäß der vorliegenden Erfindung
ist jedoch kein wesentlicher Engpass, -weil die Hash-Tabelle unterteilt
werden kann, wie z. B. in Hash-Tabellen-Abschnitte 144a–144n der
verteilten Zertifikatautorität 132,
die in 12 dargestellt ist, und der
Berechtigungsnachweisserver kann wie erforderlich reproduziert werden,
wie z. B. die Berechtigungsnachweisserver 142a–142n der
verteilten Zertifikatautorität 132.
-
Ein
weiterer potentieller Engpass mit der PKI 30/30' ist die Zertifikatdatenbank 40/40' der Registrierungsautorität 38/38'. Die Zertifikatdatenbank 40/40' ist jedoch
kein wesentlicher Engpass, weil auf die Zertifikatdatenbank nur
zugegriffen wird, wenn nicht-unterzeichnete Zertifikate 60 ausgegeben
oder aufgehoben werden. Die Zertifikatdatenbank 40/40' kann unter
Verwendung eines Relationale-Datenbank-Verwaltungssystems (DBMS) implementiert werden,
das Millionen nicht-unterzeichneter Zertifikate handhaben kann.
-
Ein
weiterer potentieller Engpass mit dem PKI 30/30' ist das Verzeichnis 90.
Das Verzeichnis 90 ist kein wesentlicher Engpass, weil
das Verzeichnis 90 reproduziert werden kann, um es möglich zu
machen, Millionen von Benutzer zu handhaben. Außerdem ist der LDAP-Verkehr
zu dem Verzeichnis 90 wesentlich reduziert, da Anwendungen
nicht auf das Verzeichnis 90 zugreifen, um Autorisierungsentscheidungen
zu treffen, da bei dem Ausführungsbeispiel,
wo die PKI 30' verwendet
wird, um das Subjekt zu autorisieren, alle notwendigen Autorisierungs-Informationen
in dem kurzfristigen Einmalzertifikat 80 enthalten sind.
Daher kann die PKI gemäß der vorliegenden
Erfindung Millionen von Benutzern skalieren.
-
Öffentlicher-Schlüssel-Validierungsdienst
-
Die
vorliegende Erfindung bezieht sich auf einen Benutzer eines Öffentlicher-Schlüssel-Kryptosystems,
der als Subjekt bezeichnet wird (z. B. eine Person oder ein Computersystem),
der ein Öffentlicher-Privater-Schlüssel-Paar
hat, und der das Schlüssel-Paar
verwendet, um seine Identität
einem anderen Benutzer des gleichen Kryptosystems nachzuweisen,
der als Verifizierer bezeichnet wird. Das Subjekt verwendet einen Öffentlicher-Schlüssel-Validierungsdienst
(PKVS), um den öffentlichen
Schlüssel
des Subjekts zu validieren, bevor das Schlüssel-Paar für Authentifizierungszwecke
verwendet wird, auf eine solche Weise, dass der öffentliche Schlüssel nicht
mehr für
Authentifizierungszwecke verwendbar ist, falls das Subjekt den PKVS
benachrichtigt, dass der private Schlüssel beeinträchtigt wurde.
-
Der
PKVS hat einen oder mehrere Öffentlicher-Schlüssel-Validierungsagenten
(PKVAs). Jeder PKVA hat ein Privater/Öffentlicher-Schlüssel-Paar
für ein
digitales Signatur-Kryptosystem.
Der PKVA verwendet seinen privaten Schlüssel, um Öffentlicher-Schlüssel-Validierungszertifikate
(PKVCs) zu unterzeichnen, wie es nachfolgend beschrieben ist. Der
Grund, weshalb ein PKVS mehr als einen PKVA haben kann, ist das
Erhöhen
der Rate, mit der der PKVS PKVCs ausgeben kann. Unterschiedliche
PKVAs des gleichen PKVS sind funktional unabhängig. Insbesondere haben dieselben
unterschiedliche Signatur-Schlüsselpaare.
-
Das
Subjekt registriert den öffentlichen Schlüssel des
Subjekts bei einem PKVA. Der PKVA wirkt als eine Zertifikatautorität, die Einmalzertifikate ausstellt, ähnlich wie
die oben beschriebene leichte PKI 30/30', die Einmalzertifikate
verwendet, außer dass
der PKVA nicht an der Identität
des Subjekts interessiert ist. Anstatt den öffentlichen Schlüssel des Subjekts
an die Subjektidentität
zu binden, bindet der PKVA den öffentlichen
Schlüssel
des Subjekts an eine Seriennummer, die durch den PKVA erzeugt wird
und anders ist als alle vorhergehenden solchen Nummern, die durch
den gleichen PKVA erzeugt werden. Diese Seriennummer wird hierin
als eine Öffentlicher-Schlüssel-Validierungsnummer
(PKVN) bezeichnet.
-
Der
PKVA gibt ein nicht-unterzeichnetes Zertifikat aus, das den öffentlichen
Schlüssel
an die PKVN bindet und sendet dasselbe an das Subjekt. Dieses Zertifikat
wird hierin als ein nicht-unterzeichnetes Öffentlicher-Schlüssel-Validierungszertifikat (nicht-unterzeichnetes
PKVC) bezeichnet. Der PKVA sendet dem Subjekt auch einen Öffentlicher-Schlüssel-Aufhebungscode
(PKRC). Der PKRC sollte über einen
sicheren Kanal gesendet werden, der Datenvertraulichkeit liefert,
wie z. B. eine SSL-Verbindung, und sollte durch das Subjekt geheimgehalten
werden. Der PKVA gibt später
Einmalzertifikate an das Subjekt aus, für das nicht-unterzeichnete PKVC. Ein Einmalzertifikat,
das für
die PKVC ausgegeben ist, wird hierin als einmaliges Öffentlicher-Schlüssel-Validierungszertifikat
(Einmal-PKVC) bezeichnet. Falls der private Schlüssel des Subjekts beeinträchtigt ist, fragt
das Subjekt den PKVA, das Ausgeben von Einmal-PKVCs zu stoppen, unter Verwendung des PKRC,
um die Anforderung zu authentifizieren.
-
Das
Subjekt kann sein Privater/Öffentlicher-Schlüssel-Paar
für mehrere
Authentifizierungszwecke verwenden, und kann für jeden Zweck ein anderes Authentifizierungsverfahren
verwenden. Vier unterschiedliche beispielhafte Authentifizierungsverfahren
sind nachfolgend beschrieben und umfassen: 1) Authentifizierung
unter Verwendung herkömmlicher Öffentlicher-Schlüssel-Zertifikate;
2) Authentifizierung unter Verwendung von Einmalzertifikaten, wie
sie oben und in der mitanhängigen
Patentanmeldung mit dem Titel „LIGHTWEIGHT
PUBLIC KEY INFRASTRUCTURE EMPLOYING DISPOSABLE CERTIFICATES" beschrieben sind
3) Authentifizierung unter Verwendung nicht-unterzeichneter Zertifikate,
die den Verifizierern direkt präsentiert werden,
wie es in der mitanhängigen
Patentanmeldung mit dem Titel „LIGHTWEIGHT
PUBLIC KEY INFRASTRUCTURE EMPLOYING UNSIGNED CERTIFICATES" beschrieben ist;
und 4) Authentifizierung ohne Zertifikate.
-
Die
Authentifizierung, die das Verfahren der nicht-unterzeichneten Zertifikate verwendet,
ist geeignet, wenn es nur wenige Verifizierer gibt (z. B. bis zu
einige hundert Verifizierer). Das Verfahren der Authentifizierung
ohne Zertifikate umfasst nur einen Verifizierer. Jedes dieser vier
Verfahren kann modifiziert werden, um ein PKVA gemäß der vorliegenden
Erfindung zu nutzen.
-
Die
Authentifizierungsverfahren, die herkömmliche Öffentlicher-Schlüssel-Zertifikate,
Einmalzertifikate oder nicht-unterzeichnete
Zertifikate verwenden, umfassen Zertifikate, die durch eine Zertifikatautorität ausgegeben
werden. Zwei Zertifikatautoritäten
werden verwendet, wenn eines dieser Authentifizierungsverfahren
in Verbindung mit einem PKVA verwendet wird. Die beiden Zertifikatautoritäten geben
Zertifikate für
den gleichen öffentlichen Schlüssel aus.
Die erste Zertifikatautorität
ist der PKVA, der Zertifikate ausgibt, die den öffentlichen Schlüssel an
eine PKVN binden. Die zweite Zertifikatautorität gibt Zertifikate aus, die
den öffentlichen Schlüssel an
die Identität
des Subjekts binden. Die zweite Zertifikatautorität wird hierin
als die reguläre Zertifikatautorität bezeichnet.
Wenn es Verwirrung gibt, werden Zertifikate jeder Art, die durch
die reguläre
Zertifikatautorität
ausgestellt werden, hierin als reguläre Zertifikate bezeichnet.
-
Bei
einer herkömmlichen
PKI muss ein Zertifikat eventuell aufgehoben werden, weil die Attribute, die
in dem Zertifikat enthalten sind, nicht mehr für das Subjekt gelten oder weil
der private Schlüssel
beeinträchtigt
wurde. In jedem Fall muss die gleiche Zertifikatautorität benachrichtigt
werden und gefragt werden, das Zertifikat aufzuheben. Wenn ein PKVA
verwendet wird, wird der PKVA durch das Subjekt benachrichtigt,
wenn der private Schlüssel
des Subjekts beeinträchtigt
ist, während
die reguläre
Zertifikatautorität
durch einen Administrator benachrichtigt wird, wenn die Attribute
nicht mehr für
das Subjekt gelten.
-
Authentifizierung
mit herkömmlichen Öffentlicher-Schlüssel-Zertifikaten
-
Bei
der Authentifizierung mit herkömmlichen Öffentlicher-Schlüssel-Zertifikaten
registriert ein Subjekt seinen öffentlichen
Schlüssel
und Identitätsattribute
bei einer herkömmlichen
Zertifikatautorität.
Die Zertifikatautorität
verifiziert, dass die Attribute für das Subjekt gelten und unterzeichnet
dann ein Zertifikat, das den öffentlichen
Schlüssel
an die Attribute bindet. Das Subjekt beweist seine Identität einem
Verifizierer durch Vorlegen des Zertifikats und Nachweisen der Kenntnis
des privaten Schlüssels,
der dem öffentlichen
Schlüssel
zugeordnet ist, der in dem Zertifikat enthalten ist.
-
Um
einen PKVA vorteilhaft zu nutzen, wird das obige Authentifizierungsverfahren,
das herkömmliche Öffentlicher-Schlüssel-Zertifikate
nutzt, wie folgt modifiziert. Wenn es sich bei der regulären Zertifikatautorität registriert,
legt das Subjekt das nicht-unterzeichnete PKVC und den öffentlichen Schlüssel des
PKVA vor, anstatt einfach nur seinen öffentlichen Schlüssel vorzulegen.
Das Subjekt legt auch wie vorher die Identitätsattribute vor. Die reguläre Zertifikatautorität berechnet
einen Öffentlicher-Schlüssel-Validierungs-Hash-Wert
(PKVH) durch Anlegen einer kollisionsresistenten kryptographischen
Hash-Funktion, wie z. B. MD5 oder SHA-1, an den öffentlichen Schlüssel des
Subjekts und die PKVN, die in dem nicht-unterzeichneten PKVC enthalten
ist, verkettet mit dem öffentlichen
Schlüssel des
PKVA.
-
Die
reguläre
Zertifikatautorität
gibt ein herkömmliches
Zertifikat an das Subjekt aus, das den PKVH als ein kritisches Feld
enthält,
zusätzlich
zu dem öffentlichen
Schlüs sel
und Attributen des Subjekts. Später
legt das Subjekt das herkömmliche
Zertifikat dem Verifizierer vor und weist Kenntnis des privaten
Schlüssels
nach, der dem öffentlichen
Schlüssel
zugeordnet ist, der in dem Zertifikat enthalten ist. Das Subjekt
legt auch ein Einmal-PKVC, das von dem PKVA erhalten wird, und den öffentlichen Schlüssel des
PKVA dem Verifizierer vor.
-
Der
Verifizierer verifiziert das herkömmliche Zertifikat, das durch
die reguläre
Zertifikatautorität ausgegeben
wird, auf die übliche
Weise. Der Verifizierer verifiziert, dass das Einmal-PKVC nicht
abgelaufen ist und verifiziert die Signatur des PKVA auf dem Einmal-PKVC
unter Verwendung des öffentlichen
Schlüssels
des PKVA. Der Verifizierer berechnet den PKVH von dem öffentlichen
Schlüssel
des Subjekts, der PKVN, die in dem Einmal-PKVC enthalten ist, und
dem öffentlichen
Schlüssel
des PKVA und prüft,
dass derselbe mit dem PKVH zusammenfällt, der in dem herkömmlichen
Zertifikat enthalten ist.
-
Falls
der private Schlüssel
beeinträchtigt
ist, benachrichtigt das Subjekt den PKVA, der das nicht-unterzeichnete
PKVC aufhebt. Nachdem der PKVA das nicht-unterzeichnete PKVC aufhebt,
gibt der PKVA keine Einmal-PKVCs mehr aus, die den öffentlichen
Schlüssel
des Subjekts an die gleiche PKVN binden. Daher wird ein Angreifer
mit Kenntnis des öffentlichen
Schlüssels
des Subjekts nicht in der Lage sein, sich unter Verwendung des herkömmlichen
Zertifikats als das Subjekt auszugeben, das durch die Zertifikatautorität ausgegeben
wird. Der Angreifer kann den öffentlichen
Schlüssel
des Subjekts bei dem gleichen PKVA oder bei einem anderen PKVA registrieren
und ein Einmal-PKVC für
den öffentlichen
Schlüssel
erhalten. Der Angreifer kann dann das herkömmliche Zertifikat, das Einmal-PKVC und
den öffentlichen
Schlüssel
des PKVA vorlegen, die der Angreifer verwendet hat. Der PKVH, der durch
den Verifizierer berechnet wird, wird jedoch nicht mit dem PKVH übereinstimmen,
der durch die reguläre
Zertifikatautorität
berechnet wird und in dem herkömmlichen
Zertifikat enthalten ist. Falls der Angreifer einen anderen PKVA
verwendet hat, ist in der Tat der öffentliche Schlüssel des
PKVA, der in der Hash-Berechnung
verwendet wird, unterschiedlich. Falls der Angreifer den gleichen
PKVA verwendet hat, hat der PKVA eine andere PKVN erzeugt, und somit
ist die PKVN, die in der Hash-Berechnung verwendete wird, anders.
Da die Hash-Berechnung
eine kollisionsresistente Hash-Funktion verwendet, falls sich entweder
der öffentliche
Schlüssel
des PKVA oder die PKVN ändert,
ist es sehr wahrscheinlich, dass das Ergebnis der Hash-Rechnung
anders ist.
-
Eine
PKI gemäß der vorliegenden
Erfindung, die die Verwendung von PKVS mit der Verwendung herkömmlicher
Zertifikate kombiniert, ist allgemein bei 700 in 13 dargestellt.
Die PKI 700 umfasst mehrere Hauptkomponenten, die jeweils
ein Softwareprogramm sind. Die Hauptsoftwareprogrammkomponenten
der PKI 700 laufen auf einem oder mehreren Computersystemen.
Bei einem Ausführungsbeispiel
läuft jede
der Hauptsoftwareprogrammkomponenten auf ihrem eigenen Computersystem.
-
Der
PKVS der PKI 700 umfasst eine oder mehrere PKVAs 701 mit
der Funktionalität
einer Zertifikatautorität,
die Einmalzertifikate ausgeben kann, ähnlich wie die Zertifikatautorität 32/32' der oben beschriebenen
leichten PKI 30/30',
die Einmalzertifikate verwendet. Als solcher umfasst der PKVA 701 eine Registrierungsautorität (RA) 702,
die eine Zertifikatdatenbank beibehält, die nicht-unterzeichnete Zertifikate
enthält.
Der PKVA 701 umfasst auch einen Berechtigungsnachweisserver
(CS) 703, der eine Hash-Tabelle (HAT) 704 beibehält, die
kryptographische Hash-Werte von nicht-unterzeichneten Zertifikaten
enthält.
-
Die
Registrierungsautorität 702 ist
eine Off-Line-Komponente
des PKVA 701 und ist verantwortlich für Subjektregistrierung, Beibehalten
der Zertifikatdatenbank und Ausgeben von nicht-unterzeichneten Zertifikaten.
-
Der
Berechtigungsnachweisserver 703 ist eine On-Line-Komponente des PKVA 701 und
ist verantwortlich für
das Ausgeben der Einmalzertifikate und für das Beibehalten der Liste
von kryptographischen Hash-Werten von derzeit gültigen nicht-unterzeichneten
Zertifikaten in der Hash-Tabelle 704. Jeder kryptographische
Hash-Wert in der Hash-Tabelle 704 wird unter Verwendung
einer vereinbarten kollisionsresistenten Hash-Funktion, wie z. B.
SHA-1 oder MD5, von einem nicht-unterzeichneten Zertifikat berechnet.
Die Hash-Tabelle 704 ist
im Wesentlichen eine Liste der aktuell gültigen nicht-unterzeichneten Zertifikate,
die durch den kryptographischen Hash-Wert verschlüsselt wird.
Kryptographische-Hash-Werte funktionieren gut als Schlüssel für die Hash-Tabelle 704,
weil sich kryptographische Hash-Werte statistisch als Zufallsgrößen verhalten.
-
Der
PKVA 701 hat ein Privater/Öffentlicher-Schlüssel-Paar
für ein
Digitale-Signatur-Kryptosystem.
-
Die
PKI 700 umfasst auch eine herkömmliche Zertifikatautorität (CA) 705 mit
der Fähigkeit,
aufhebbare Öffentlicher-Schlüssel-Zertifikate
und Zertifikataufhebungslisten und auch ein oder mehrere Subjekte 706 und
einen oder mehrere Verifizierer 707 auszugeben. Jedes Subjekt 706 ist
mit einem Privater/Öffentlicher-Schlüssel-Paar
ausgestattet, für
ein Kryptosystem jeder Art. Die Zertifikatautorität 705 ist mit
einem Privater/Öffentlicher-Schlüssel-Paar
für ein
Digital-Signatur-Kryptosystem ausgestattet. Der öffentliche Schlüssel der
Zertifikatautorität 705 ist den
Verifizierern gut bekannt oder durch eine höhere Autorität zertifiziert.
-
Das
Subjekt 706 verwendet das folgende Protokoll P1, um seinen öffentlichen
Schlüssel
bei dem PKVA 701 zu registrieren.
-
Protokoll P1
-
- 1. Das Subjekt 706 sendet seinen öffentlichen Schlüssel an
die Registrierungsautorität 702.
- 2. Die Registrierungsautorität 702 erzeugt
eine Öffentlicher-Schlüssel-Validierungsnummer (PKVN),
die sich von allen PKVNs unterscheidet, die vorher durch den PKVA 701 erzeugt
wurden.
- 3. Registrierungsautorität 702 erzeugt
ein nicht-unterzeichnetes Öffentlicher-Schlüssel-Validierungszertifikat
(nicht-unterzeichnetes PKVC) 800. Das nicht-unterzeichnete
PKVC 800 ist in 14 dargestellt
und umfasst ein Feld 801, das den öffentlichen Schlüssel des
Subjekts 706 enthält,
und ein Feld 802, das die PKVN enthält, die in Schritt 2 des
Protokolls 1 erzeugt wurde. Die Registrierungsautorität 702 sendet
das nicht-unterzeichnete PKVC 800 an das Subjekt 706.
- 4. Die Registrierungsautorität 702 erzeugt
eine geheime Größe, die
durch das Subjekt 706 als ein Öffentlicher-Schlüssel-Aufhebungscode
(PKRC) zu verwenden ist und sendet dieselbe an das Subjekt 706 über einen
sicheren Kanal, der Datenvertraulichkeit liefert.
- 5. Die Registrierungsautorität 702 berechnet
einen kryptographischen Hash-Wert des nicht-unterzeichneten Zertifikats 800 unter
Verwendung einer kollisionsresistenten Hash-Funktion, wie z. B.
MD5 oder SHA-1.
- 6. Die Registrierungsautorität 702 sendet
den kryptographischen Hash-Wert, der bei Schritt 5 des Protokolls
P1 erzeugt wurde, und den PKRC, der bei Schritt 4 des Protokolls
P1 erzeugt wurde, an den Berechtigungsnachweisserver 703.
- 7. Der Berechtigungsnachweisserver 703 erzeugt eine
Aufzeichnung in seiner Hash-Tabelle 704, die den kryptographischen
Hash-Wert und den PKRC enthält,
der durch die Registrierungsautorität 702 bei Schritt
6 des Protokolls P1 gesendet wurde. Die Aufzeichnung wird durch
den kryptographischen Hash-Wert verschlüsselt.
-
Das
Subjekt 706 verwendet das folgende Protokoll P2, um ein
einmaliges Öffentlicher-Schlüssel-Validierungszertifikat
(Einmal-PKVC) zu erhalten.
-
Protokoll P2
-
- 1. Das Subjekt 706 sendet eine Mitteilung
an den Berechtigungsnachweisserver 703, die die nicht-unterzeichnete PKVC 800 enthält, und
anfordert, dass ein Einmal-PKVC gegen das nicht-unterzeichnete PKVC 800 ausgegeben wird.
- 2. Der Berechtigungsnachweisserver 703 berechnet den
kryptographischen Hash-Wert des nicht-unterzeichneten PKVC 800 durch
die gleiche kollisionsresistente Hash-Funktion, die bei Schritt 5 des Protokolls
P1 verwendet wurde und verifiziert, dass es für diesen kryptographischen Hash-Wert
eine Aufzeichnung in der Hash-Tabelle 704 gibt.
- 3. Der Berechtigungsnachweisserver 103 erzeugt eine
Einmal-PKVC 900. Das Einmal-PKVC 900 ist in 15 dargestellt
und umfasst: ein Feld 901 mit den gleichen Inhalten wie
das Feld 801 des nicht-unterzeichneten PKVC 800;
ein Feld 902 mit den gleichen Inhalten wie das Feld 802 des nicht-unterzeichneten
PKVC 800; ein Feld 903, das ein Ablaufdatum und
-zeit enthält,
die eine kurze Gültigkeitsperiode
für das
Einmal-PKVC 900 spezifizieren; und ein Signaturfeld 904.
Die Dauer der Gültigkeitsperiode
kann durch das Subjekt 706 spezifiziert werden. Die Signatur,
die in dem Feld 904 enthalten ist, wird durch den Berechtigungsnachweisserver 703 berechnet,
unter Verwendung des privaten Schlüssels des PKVA 701,
auf einer Sequenz 905 von Nicht-Signaturfeldern, wie z. B. Felder 901, 902 und 903.
Der Berechtigungsnachweisserver 703 sendet das PKVC 900 an
das Subjekt 706.
-
Falls
sein privater Schlüssel
beeinträchtigt ist,
verwendet das Subjekt 706 das folgende Protokoll P3, um
eine Nachahmung durch einen Angreifer zu verhindern.
-
Protokoll P3
-
- 1. Das Subjekt 706 sendet eine Öffentlicher-Schlüssel-Aufhebungsanforderung
an den Berechtigungsnachweisserver 703, die das nicht-unterzeichnete
PKVC 800, das durch die Registrierungsautorität 702 bei
Schritt 3 von Protokoll P1 gesendet wurde und den PKRC enthält, der
durch die Registrierungsautorität 702 bei Schritt
4 des Protokolls P1 gesendet wurde.
- 2. Der Berechtigungs-Server 703 berechnet den kryptographischen
Hash-Wert des nicht-unterzeichneten PKVC 800, unter Verwendung
der gleichen kollisionsresistenten Hash-Funktion, die durch die
Registrierungsautorität 702 bei
Schritt 5 des Protokolls P1 verwendet wurde.
- 3. Der Berechtigungsnachweisserver 703 schlägt in seiner
Hash-Tabelle 704 nach, findet die Aufzeichnung, die durch
den kryptographischen Hash-Wert, der bei Schritt 2 von Protokoll
3 berechnet wurde, verschlüsselt
wurde, und prüft, dass
das PKRC-Feld dieser Aufzeichnung mit dem PKRC zusammenfällt, das
durch das Subjekt 706 bei Schritt 1 des Protokolls 3 gesendet
wurde. Falls dies der Fall ist, entfernt der Berechtigungsnachweisserver 703 die
Aufzeichnung von seiner Hash-Tabelle 704.
-
Das
Subjekt 706 verwendet das folgende Protokoll P4, um sich
bei der herkömmlichen
Zertifikatautorität 705 zu
registrieren.
-
Protokoll P4
-
- 1. Das Subjekt 706 sendet die folgenden
Daten an die herkömmliche
Zertifikatautorität 705:
das nicht-unterzeichnete
PKVC 800; den öffentlichen Schlüssel des
PKVA 701; und ein oder mehrere Identitätsattribute.
- 2. Die Zertifikatautorität 705 verifiziert
durch eine Außerband-Administrationseinrichtung,
dass das eine oder die mehreren Identitätsattribute, die durch das
Subjekt 706 bei Schritt 1 des Protokolls P4 gesendet werden,
für das
Subjekt gelten.
- 3. Die Zertifikatautorität 705 berechnet
einen Öffentlicher-Schlüssel-Validierungs-Hash-Wert (PKVH)
durch Anlegen einer kollisionsresistenten Hash-Funktion, wie z.
B. MD5 oder SHA-1, an die Verkettung des öffentlichen Schlüssels des
Subjekts 706, der PKVN, die in dem Feld 802 des nicht-unterzeichneten
PKVC 800 enthalten ist, und des öffentlichen Schlüssels des
PKVA 701.
- 4. Die Zertifikatautorität 705 erzeugt
und unterzeichnet ein aufhebbares Zertifikat 1000 und sendet
das aufhebbare Zertifikat an das Subjekt 706. Das aufhebbare
Zertifikat 1000 ist in 16 dargestellt
und umfasst: ein Feld 1001, das eine Seriennummer enthält; ein
optionales Feld 1002, das den öffentlichen Schlüssel des
Subjekts enthält (der
von dem Feld 801 des nicht-unterzeichneten PKVC 800 erhalten
wird); ein Feld 1003, das das eine oder die mehreren Identitätsattribute
enthält, die
bei Schritt 1 des Protokolls 4 gesendet werden; ein Feld 1004,
das den PKVH enthält,
der bei Schritt 3 des Protokolls P4 berechnet wird; und ein Feld 1005,
das ein Ablaufdatum/-zeit enthält. Falls
das X.509v3-Format verwendet wird, wird bei einem Ausführungsbeispiel
das Feld 1004 als kritisch markiert, um sicherzustellen,
dass es durch einen älteren
Verifizierer nicht ignoriert wird, der den Zweck dieses Feldes nicht
versteht. Das aufhebbare Zertifikat 1000 umfasst auch ein
Signaturfeld 1006, das eine digitale Signatur enthält, die über eine
Sequenz von Nicht-Signatur-Feldern 1007 berechnet wird,
wie z. B. Felder 1001, 1002, 1003, 1004 und 1005,
unter Verwendung des privaten Schlüssels der Zertifikatautorität 705. Das
Feld 1002 ist optional, weil das aufhebbare Zertifikat 1000 in
Verbindung mit einem Einmal-PKVC 900 verwendet wird, das
den öffentlichen
Schlüssel
des Subjekts enthält
und der PKVH 1004 von dem öffentlichen Schlüssel des Subjekts
abgeleitet ist.
-
Das
folgende Protokoll P5 wird durch das Subjekt 706 verwendet,
um seine Identität
dem Verifizierer 707 zu beweisen.
-
Protokoll P5
-
- 1. Das Subjekt 706 sendet die folgenden
Daten an den Verifizierer 707: das aufhebbare Zertifikat 1000,
ein kürzlich
ausgegebenes Einmal-PKVC 900; und den öffentlichen Schlüssel des
PKVA 701.
- 2. Der Verifizierer 707 validiert das aufhebbare Zertifikat 1000.
Der Verifizierer 707 verwendet das Feld 1005, um zu verifizieren,
dass das Zertifikat 1000 nicht abgelaufen ist. Der Verifizierer 707 verifiziert die
Signatur 1006 unter Verwendung des öffentlichen Schlüssels der
Zertifikatautorität 705. Der
Verifizierer 707 verifiziert, dass die Seriennummer 1001 nicht
in der aktuellsten Zertifikataufhebungsliste erscheint, die durch
die Zertifikatautorität 705 ausgegeben
wird.
- 3. Der Verifizierer 707 validiert das Einmal-PKVC 900.
Der Verifizierer 707 verwendet das Feld 903, um
zu verifizieren, dass das Einmal-PKVC 900 nicht abgelaufen
ist. Der Verifizierer 707 verifiziert die Signatur 904 unter
Verwendung des öffentlichen
Schlüssels
des PKVA 701, der durch das Subjekt 706 bei Schritt
1 des Protokolls P5 gesendet wurde.
- 4. Der Verifizierer 707 berechnet einen PKVH durch
Anlegen der gleichen kollisionsresistenten Hash-Funktion, die durch
die Zertifikatautorität 705 bei
Schritt 3 des Protokolls P4 verwendet wurde, an die Verkettung des öffentlichen
Schlüssels
des Subjekts 706, der PKVN in Feld 902, die in
der Einmal-PKVC 900 enthalten ist, die durch das Subjekt 706 bei
Schritt 1 des Protokolls P5 gesendet wurde, und des öffentlichen
Schlüssels des
PKVA 701, der ebenfalls durch das Subjekt 706 bei
Schritt 1 des Protokolls P5 gesendet wurde. Der Verifizierer 707 prüft, dass
der berechnete PKVH mit dem Feld 1004 des aufhebbaren Zertifikats 1000 zusammenfällt, der
durch das Subjekt 706 bei Schritt 1 des Protokolls P5 gesendet
wird.
- 5. Das Subjekt 706 weist die Kenntnis des privaten
Schlüssels
nach, der dem öffentlichen
Schlüssel
zugeordnet ist, der in Feld 901 des Einmal-PKVC 900 enthalten
ist, das bei Schritt 1 des Protokolls P5 gesendet wird. Das Verfahren,
bei dem das Subjekt 706 Kenntnis des privaten Schlüssels nachweist,
hängt von
dem Kryptosystem ab, für
den das Privater/Öffentlicher-Schlüssel-Paar
des Subjekts erzeugt wurde. Falls dieses Kryptosystem beispielsweise
ein Digital-Signatur-Kryptosystem ist, kann das Subjekt 706 Kenntnis
des privaten Schlüssels
nachweisen durch Verwenden des privaten Schlüssels, um eine Größe zu unterzeichnen,
die von einer Zufallsgröße abgeleitet
ist, die durch den Verifizierer 707 erzeugt wird. Der Verifizierer 707 kann
dann die Signatur unter Verwendung des öffentlichen Schlüssels 901 verifizieren.
-
Authentifizierung
mit Einmalzertifikaten
-
Bei
der Authentifizierung mit Einmalzertifikaten, wie es oben für die leichte
PKI 30/30' beschrieben
ist, die Einmalzertifikate verwendet, hat die Zertifikatautorität eine Off-Line-Komponente,
die Registrierungsautorität,
und eine On-Line-Komponente, den Berechtigungsnachweisserver. Das
Subjekt registriert seinen öffentlichen
Schlüssel
und Identitätsattribute
bei der Registrierungsautorität.
Die Registrierungsautorität
gibt ein nicht-unterzeichnetes Zertifikat an das Subjekt aus, das
den öffentlichen
Schlüssel
an die Attribute bindet und sendet den kryptographischen Hash-Wert
des nicht-unterzeichneten Zertifikats an den Berechtigungsnachweisserver,
der den kryptographischen Hash-Wert in einer Hash-Tabelle speichert.
Später
legt das Subjekt das nicht-unterzeichnete Zertifikat dem Berechtigungsnachweisserver
vor und erhält
ein Einmalzertifikat, so lange der Hash-Wert des nicht-unterzeichneten
Zertifikats noch in der Hash-Tabelle ist. Schließlich verwendet das Subjekt
das Einmalzertifikat und auch die Kenntnis seines privaten Schlüssels, um
seine Identität
einem Verifizierer nachzuweisen.
-
Um
einen PKVA zu nutzen, wird das obige Authentifizierungsverfahren,
das Einmalzertifikate verwendet, wie folgt modifiziert. Wenn sich
das Subjekt bei der Registrierungsautorität der regulären Zertifikatautorität registriert,
legt das Subjekt das nicht-unterzeichnete PKVC und den öffentlichen Schlüssel des
PKVA vor, anstatt einfach nur seinen öffentlichen Schlüssel vorzulegen.
Das Subjekt legt auch wie vorher seine Identitätsattribute vor. Die Registrierungsautorität gibt ein
reguläres
nicht-unterzeichnetes Zertifikat an das Subjekt aus, das den öffentlichen
Schlüssel
an die Attribute bindet. Die Registrierungsautorität sendet
einen kryptographischen Hash-Wert an den Berechtigungsnachweisserver, der
berechnet wird durch Anlegen einer kollisionsresistenten Hash-Funktion,
wie z. B. MD5 und SHA-1, an
die Verkettung des regulären
nicht-unterzeichneten Zertifikats mit der PKVN und dem öffentlichen Schlüssel des
PKVA. Der Berechtigungsnachweisserver fügt den kryptographischen Hash-Wert
wie vorher seiner Hash-Tabelle hinzu.
-
Später legt
das Subjekt das reguläre nicht-unterzeichnete
Zertifikat dem Berechtigungsnachweisserver der regulären Zertifikatautorität vor, zusammen
mit einem Einmal-PKVC und dem öffentlichen
Schlüssel
des PKVA. Der Berechtigungsnachweisserver verwendet den öffentlichen
Schlüssel
des PKVA, um die Signatur auf dem Einmal-PKVC zu verifizieren. Der
Berechtigungsnachweisserver prüft, dass
der öffentliche
Schlüssel,
der in dem regulären nicht-unterzeichneten
Zertifikat erscheint, der gleiche öffentliche Schlüssel ist,
der in dem Einmal-PKVC erscheint. Der Berechtigungsnachweisserver
berechnet einen kryptographischen Hash-Wert durch Anlegen der gleichen
kollisionsresistenten Hash-Funktion an
die Verkettung des regulären
nicht-unterzeichneten
Zertifikats, der PKVN, die in dem PKVC enthalten ist, und des öffentlichen
Schlüssels
des PKVA und prüft,
dass der kryptographische Hash-Wert in seiner Hash-Tabelle erscheint.
Falls der berechnete kryptographische Hash-Wert in der Hash-Tabelle
des Berechtigungsnachweisservers erscheint, gibt der Berechtigungsnachweisserver
ein reguläres
Einmalzertifikat an das Subjekt aus, das den öffentlichen Schlüssel des
Subjekts an die Identitätsattribute
bindet. Das Einmal-PKVC muss nach wie vor gültig sein und das Ablaufdatum/-zeit
des regulären
Einmalzertifikats ist so eingestellt, dass dasselbe nicht später abläuft als
das Einmal-PKVC. Wie bei den obigen unmodifizierten Authentifizierungsverfahren,
das Einmalzertifikate verwendet, verwendet das Subjekt das reguläre Einmalzertifikat
und auch die Kenntnis seines privaten Schlüssels, um seine Identität einem
Verifizierer nachzuweisen.
-
Es
ist anzumerken, dass der Verifizierer nicht modifiziert werden muss,
um den PKVA zu nutzen. Das Subjekt legt dem Verifizierer nur das
reguläre Einmalzertifikat
vor, das durch den Berechtigungsnachweisserver ausgegeben wird,
nicht das Einmal-PKVC. Das Einmal-PKVC wird nur dem Berechtigungsnachweisserver
vorgelegt.
-
Falls
der private Schlüssel
beeinträchtigt
ist, benachrichtigt das Subjekt den PKVA, der das nicht-unterzeichnete
PKVC aufruft. Nachdem der PKVA das nicht-unterzeichnete PKVC aufruft,
gibt der PKVA keine weiteren Einmal-PKVCs mehr aus, die den öffentlichen
Schlüssel
des Subjekts an die gleiche PKVN binden. Daher kann ein Angreifer
keine regulären
Einmalzertifikate von dem Berechtigungsnachweisserver erhalten.
Der Angreifer kann den öffentlichen
Schlüssel
des Subjekts bei dem gleichen PKVA oder bei einem anderen PKVA registrieren
und ein Einmal-PKVC für
den öffentlichen Schlüssel erhalten.
Der Angreifer kann dann das reguläre nicht-unterzeichnete Zertifikat
des Subjekts, das Einmal-PKVC, und den öffentlichen Schlüssel des
PKVA dem Berechtigungsnachweisserver vorlegen. Der Hash-Wert, der
durch den Berechtigungs-Server berechnet wird, wird jedoch nicht
mit dem Hash-Wert übereinstimmen,
der durch die Registrierungsautorität an den Berechtigungsnachweisserver
gesendet wurde, wenn sich das Subjekt bei der Registrierungsautorität registriert
hat. Falls der Angreifer in der Tat einen andren PKVA verwendet hat,
ist der öffentliche
Schlüssel
des PKVA, der bei der Hash-Berechnung verwendet wird, anders. Falls der
Angreifer den gleichen PKVA verwendet hat, hat der PKVA eine andere
PKVN erzeugt und somit ist die PKVN, die bei der Hash-Berechnung
verwen det wird, anders. Da die Hash-Berechnung eine kollisionsresistente
Hash-Funktion verwendet, ist das Ergebnis der Berechnung höchstwahrscheinlich
unterschiedlich, wenn entweder der öffentliche Schlüssel des
PKVA oder die PKVN sich ändern.
-
Eine
PKI gemäß der vorliegenden
Erfindung, die die Verwendung eines PKVS mit der Verwendung von
regulären
Einmalzertifikaten kombiniert, ist allgemein bei 1100 in 17 dargestellt.
Die PKI 1100 umfasst mehrere Hauptkomponenten, die jeweils
ein Softwareprogramm sind. Die Hauptsoftwareprogrammkomponenten
der PKI 1100 laufen auf einem oder mehreren Computersystemen.
Bei einem Ausführungsbeispiel
läuft jede
der Hauptsoftwareprogrammkomponenten auf ihrem eigenen Computersystem.
-
Die
PKI 1100 von 17 unterscheidet sich von der
in 13 dargestellten PKI 700 dadurch, dass
anstatt dieselbe die reguläre
Zertifikatautorität 705 des
PKI 700 aufweist, die aufhebbare Zertifikate und Zertifikataufhebungslisten
ausgibt, die PKI 1100 eine reguläre Zertifikatautorität 1101 umfasst,
die Einmalzertifikate ausgibt. Die Zertifikatautorität 1101 umfasst
eine Off-Line-Komponente 1102, die als Registrierungsautorität (RA) wirkt,
und eine On-Line-Komponente 1103,
die als ein Berechtigungsnachweisserver (CS) wirkt. Die Registrierungsautorität 1102 behält eine
Datenbank 1104 bei, während
der Berechtigungsnachweisserver 1103 eine Hash-Tabelle 1105 beibehält.
-
Das
Subjekt 706 verwendet das obige Protokoll P1, um seinen öffentlichen
Schlüssel
bei dem PKVA 701 zu registrieren und ein nicht-unterzeichnetes
PKVC 800 zu erhalten.
-
Das
Subjekt 706 verwendet das obige Protokoll P2, um ein Einmal-PKVC 900 zu
erhalten.
-
Falls
der private Schlüssel
des Subjekts beeinträchtigt
ist, verwendet das Subjekt 706 das obige Protokoll P3,
um eine Nachahmung durch einen Angreifer zu verhindern.
-
Das
Subjekt 706 verwendet das folgende Protokoll P6, um sich
bei der regulären
Zertifikatautorität 1101 zu
registrieren und ein reguläres
nicht-unterzeichnetes Zertifikat zu erhalten.
-
Protokoll P6
-
- 1. Das Subjekt 706 sendet die folgenden
Daten an die Registrierungsautorität 1102: das nicht-unterzeichnete
PKVC 800; den öffentlichen
Schlüssel des
PKVA; und ein oder mehrere Identitätsattribute.
- 2. Die Registrierungsautorität 1102 verifiziert durch
eine Außerband-Administrationseinrichtung,
dass das eine oder die mehreren Identitätsattribute, die durch das
Subjekt 706 bei Schritt 1 des Protokolls P6 gesendet werden,
für das
Subjekt 706 gelten.
- 3. Die Registrierungsautorität 1102 erzeugt
ein reguläres
nicht-unterzeichnetes Zertifikat 1200, speichert nicht-unterzeichnete
Zertifikate 1200 in seiner Datenbank 1104 und
sendet das nicht-unterzeichnete Zertifikat 1200 an das
Subjekt 706. Das reguläre
nicht-unterzeichnete
Zertifikat 1200 ist in 18 dargestellt
und umfasst die folgenden Felder: ein oder mehrere Felder 1201,
die Metadaten enthalten, wie z. B. Seriennummer und Ausgebername;
ein optionales Feld 1202, das den öffentlichen Schlüssel des
Subjekts 706 enthält;
ein oder mehrere Felder 1203, die das eine oder die mehreren
Identitätsattribute
enthalten, die durch das Subjekt 706 bei Schritt 1 des
Protokolls P6 gesendet wurden; ein optionales Feld 1204,
das ein Ablaufdatum/-zeit spezifiziert; und ein optionales Feld 1205,
das eine Dauer für
die Gültigkeitsperiode
jedes Einmalzertifikats spezifiziert, das gegen das nicht-unterzeichnete Zertifikat 1200 ausgegeben
wird.
- 4. Die Registrierungsautorität 1102 erzeugt
einen kryptographischen Hash-Wert durch Anlegen einer kollisionsresistenten
Hash-Funktion, wie z. B. MD5 oder SHA-1, an die Verkettung des regulären nicht-unterzeichneten Zertifikats 1002,
des PKVN-Felds 802, das in der PKVC 800 enthalten ist,
die bei Schritt 1 des Protokolls P6 gesendet wird, und des öffentlichen
Schlüssels
des PKVA, der ebenfalls bei Schritt 1 des Protokolls P6 gesendet
wurde. Die Registrierungsautorität 1102 sendet
diesen kryptographischen Hash-Wert an den Berechtigungsnachweisserver 1103.
- 5. Der Berechtigungsnachweisserver 1103 speichert den
kryptographischen Hash-Wert, der durch die Registrierungsautorität 1102 bei
Schritt 4 des Protokolls 6 gesendet wurde, in seiner Hash-Tabelle 1105.
-
Das
Subjekt 706 verwendet das folgende Protokoll P7, um ein
reguläres
Einmalzertifikat von dem Berechtigungsnachweisserver 1103 zu
erhalten.
-
Protokoll P7
-
- 1. Das Subjekt 706 sendet die folgenden
Daten an den Berechtigungsnachweisserver 1103: das reguläre nicht-unterzeichnete Zertifikat 1200,
das von der Registrierungsautorität 1102 unter Verwendung
des Protokolls P6 erhalten wurde; ein Einmal-PKVC 900,
das vor kurzem von dem PKVA 701 unter Verwendung des Protokolls
P2 erhalten wurde; und den öffentlichen
Schlüssel des
PKVA 701.
- 2. Der Verifizierer 707 validiert das Einmal-PKVC 900,
das bei Schritt 1 des Protokolls P7 gesendet wurde. Der Verifizierer 707 verwendet
das Feld 903, um zu verifizieren, dass das Zertifikat 900 nicht
abgelaufen ist. Der Verifizierer 707 verifiziert die Signatur 904 unter
Verwendung des öffentlichen
Schlüssels
des PKVA 701, der ebenfalls bei Schritt 1 des Protokolls
P7 gesendet wurde.
- 3. Der Berechtigungsnachweisserver 1103 berechnet einen
kryptographischen Hash-Wert durch Anlegen der gleichen kollisionsresistenten Hash-Funktion,
die durch die Registrierungsautorität 1102 bei Schritt
4 des Protokolls P6 verwendet wurde, an eine Verkettung des regulären nicht-unterzeichneten
Zertifikats 1200, das durch das Subjekt 706 bei
Schritt 1 des Protokolls P7 gesendet wurde, der PKVN 902,
die in dem PKVC 900 enthalten ist, das durch das Subjekt 706 bei Schritt
1 des Protokolls P7 gesendet wurde, und des öffentlichen Schlüssels des
PKVA 701, der ebenfalls durch das Subjekt 706 bei
Schritt 1 des Protokolls P7 gesendet wurde.
- 4. Der Berechtigungsnachweisserver 1103 verifiziert,
dass der bei Schritt 3 des Protokolls P7 berechnete kryptographische
Hash-Wert in seiner Hash-Tabelle 1105 vorliegt.
- 5. Der Berechtigungsnachweisserver 1103 erzeugt, unterzeichnet
und sendet ein reguläres Einmalzertifikat 1300 an
das Subjekt 706. Das reguläre Einmalzertifikat 1300 ist
in 19 dargestellt und umfasst die folgenden Felder:
ein oder mehrere Felder 1301, die Metadaten enthalten, wie
z. B. Seriennummer und Ausgebername; ein Feld 1302, das
den öffentlichen
Schlüssel
des Subjekts 706 enthält,
das identisch ist mit dem Feld 901 des Einmal-PKVC 900,
das durch das Subjekt 706 bei Schritt 1 des Protokolls
P7 gesendet wurde; ein oder mehrere Felder 1303, die identisch
sind mit dem einen oder den mehreren Subjekt-Identitätsattributen 1203 des
regulären nicht-unterzeichneten Zertifikats 1200;
ein Feld 1304, das ein Ablaufdatum/-zeit für das reguläre Einmalzertifikat 1300 spezifiziert;
und ein oder mehrere Felder 1305, die die Signatur des
Berechtigungsnachweisservers 1103 auf einer Sequenz von
Nicht-Signaturfeldern 1306 enthalten. Das Ablaufdatum/-zeit,
das durch das Feld 1304 spezifiziert wird, darf nicht später sein
als das Ablaufdatum/-zeit, das durch das Feld 903 des Einmal-PKVC 900 spezifiziert
wird, das durch das Subjekt 706 bei Schritt 1 des Protokolls
P7 gesendet wird. Falls das reguläre nicht-unterzeichnete Zertifikat 1200,
das durch das Subjekt 706 bei Schritt 1 des Protokolls
P7 gesendet wird, das optionale Feld 1205 enthält, das
eine Dauer für
das Gültigkeitsintervall
der Einmalzertifikate spezifiziert, darf das Ablaufdatum/-zeit,
das durch das Feld 1304 spezifiziert wird, ebenfalls nicht
später sein
als das Ende eines Intervalls von einer solchen Dauer, die beginnt,
wenn das Einmalzertifikat 1300 erzeugt wird.
-
Das
Subjekt 706 verwendet das reguläre Einmalzertifikat 1300 in
Verbindung mit seinem privaten Schlüssel, um seine Identität einem
Verifizierer 707 zu beweisen. Dies wird erreicht wie bei
dem unmodifizierten Protokoll für
Authentifizierung durch Einmalzertifikate, wie es oben für die leichte
PKI 30/30' beschrieben
ist, die Einmalzertifikate verwendet.
-
Authentifizierung
mit nicht-unterzeichneten Zertifikaten
-
Bei
der Authentifizierung mit nicht-unterzeichneten Zertifikaten, wie
sie in der mitanhängigen Patentanmeldung
mit dem Titel „LIGHTWEIGHT
PUBLIC KEY INFRASTRUCTURE EMPLOYING UNSIGNED CERTIFICATES" beschrieben ist,
registriert das Subjekt seinen öffentlichen
Schlüssel
und Identitätsattribute
mit der Zertifikatautorität.
Die Zertifikatautorität
gibt ein nicht-unterzeichnetes Zertifikat an das Subjekt aus, das
den öffentlichen
Schlüssel
an die Attribute bindet und sendet den kryptographischen Hash-Wert
des nicht-unterzeichneten
Zertifikats an jeden Verifizierer, der den kryptographischen Hash-Wert
in seiner Hash-Tabelle speichert. Später legt das Subjekt das nicht-unterzeichnete
Zertifikat einem Verifizierer vor und weist die Kenntnis des privaten
Schlüssels
nach, der dem öffentlichen
Schlüssel
zugeordnet ist, der in dem Zertifikat enthalten ist. Der Verifizierer
berechnet den kryptographischen Hash-Wert des nicht-unterzeichneten
Zertifikats und prüft,
dass der berechnete kryptographische Hash-Wert in seiner Hash-Tabelle erscheint.
-
Um
einen PKVA zu nutzen, wird das obige Authentifizierungsverfahren,
das nicht-unterzeichnete Zertifikate verwendet, wie folgt modifiziert.
Wenn es sich bei der regulären
Zertifikatautorität
registriert, legt das Subjekt das nicht-unterzeichnete PKVC unter
den öffentlichen
Schlüssel
des PKVA vor, anstatt einfach seinen öffentlichen Schlüssel vorzulegen. Das
Subjekt legt auch seine Identitätsattribute
vor, wie bei dem nicht-modifizierten Verfahren. Die reguläre Zertifikatautorität gibt dem
Subjekt ein reguläres nicht-unterzeichnetes
Zertifikat aus, das den öffentlichen
Schlüssel
an die Attribute bindet. Die Zertifikatautorität sendet jedem Verifizierer
einen kryptographischen Hash-Wert,
der berechnet wird durch Anlegen einer kollisionsresistenten Hash-Funktion,
wie z. B. MD5 und SHA-1, an die Verkettung des regulären nicht-unterzeichneten
Zertifikats mit der PKVN und dem öffentlichen Schlüssel des
PKVA. Jeder Verifizierer addiert den kryptographischen Hash-Wert
zu seiner Hash-Tabelle, wie bei dem unmodifizierten Verfahren.
-
Später legt
das Subjekt das reguläre nicht-unterzeichnete
Zertifikat einem Verifizierer vor, zusammen mit einer Einmal-PKVC
und dem öffentlichen
Schlüssel
des PKVA. Der Verifizierer prüft,
dass das Einmal-PKVC nicht abgelaufen ist und verwendet den öffentlichen
Schlüssel
des PKVA, um die Signatur auf dem Einmal-PKVC zu verifizieren. Der
Verifizierer prüft,
dass der öffentliche
Schlüssel,
der in dem regulären
nicht-unterzeichneten Zertifikat erscheint, der gleiche öffentliche
Schlüssel
ist, der in dem Einmal-PKVC
erscheint, und das Subjekt weist die Kenntnis des privaten Schlüssels nach,
der diesem öffentlichen
Schlüssel
zugeordnet ist. Der Verifizierer berechnet einen kryptographischen
Hash-Wert durch Anlegen der gleichen kollisionsresistenten Hash-Funktion
an die Verkettung des nicht-unterzeichneten
Zertifikats, der PKVN, die in dem PKVC enthalten ist und des öffentlichen
Schlüssels
des PKVA und prüft,
dass der kryptographische Hash-Wert in seiner Hash-Tabelle erscheint.
-
Falls
der private Schlüssel
beeinträchtigt
ist, benachrichtigt das Subjekt den PKVA, der das nicht-unterzeichnete
PKVC aufhebt. Nachdem der PKVA das nicht-unterzeichnete PKVC aufhebt,
gibt der PKVA keine Einmal-PKVCs mehr aus, die den öffentlichen
Schlüssel
des Subjekts an die gleiche PKVN binden. Daher kann sich ein Angreifer
nicht als das Subjekt ausgeben, wenn er mit einem Verifizierer interagiert.
Der Angreifer kann den öffentlichen Schlüssel des
Subjekts bei dem gleichen oder einem anderen PKVA registrieren und
eine Einmal-PKVC für
den öffentlichen
Schlüssel
erhalten. Der Angreifer kann dann das reguläre nicht-unterzeichnete Zertifikat des Subjekts,
das Einmal-PKVC und den öffentlichen
Schlüssel
des PKVA einem Verifizierer vorlegen. Der Hash-Wert, der durch den
Verifizierer berechnet wird, wird jedoch nicht mit dem Hash-Wert übereinstimmen,
der durch die Zertifikatautorität
an den Verifizierer gesendet wurde, als sich das Subjekt bei der
Zertifikatautorität
registriert hat. Falls der Angreifer einen anderen PKVA verwendet
hat, ist in der Tat der öffentliche
Schlüssel
des PKVA, der bei der Hash-Berechnung verwendet wird, anders. Falls
der Angreifer den gleichen PKVA verwendet hat, hat der PKVA eine
andere PKVN erzeugt, und somit ist die PKVN, die bei der Hash-Berechnung
verwendet wird, anders. Da die Hash-Berechnung eine kollisionsresistente
Hash-Funktion verwendet, ist das Ergebnis höchstwahrscheinlich anders,
wenn sich entweder der öffentliche
Schlüssel
des PKVA oder die PKVN ändern.
-
Eine
PKI gemäß der vorliegenden
Erfindung, die die Verwendung eines PKVS mit der Verwendung von
regulären
nicht-unterzeichneten
Zertifikaten kombiniert, die direkt den Verifizierern vorgelegt
werden, ist allgemein bei 1400 in 20 dargestellt.
Die PKI 1400 umfasst mehrere Hauptkomponenten, die jeweils
ein Softwareprogramm sind. Die Hauptsoftwareprogrammkomponenten
der PKI 1400 laufen auf einem oder mehreren Computersystemen.
Bei einem Ausführungsbeispiel
läuft jede
der Hauptsoftwareprogramm-Komponenten auf ihrem eigenen Computersystem.
-
Die
PKI 1400 unterscheidet sich von der PKI 700 und
der PKI 1100 dadurch, dass die reguläre Zertifikatautorität, die die
Identität
des Subjekts zertifiziert, in PKI 1400 als eine reguläre Zertifikatautorität 1401 implementiert
ist, die nicht-unterzeichnete Zertifikate für die direkte Verwendung durch
Verifizierer ausgibt. Die reguläre
Zertifikatautorität 1401 behält eine
Datenbank 1402 bei. Außerdem
ist jeder Verifizierer 707 in der PKI 1400 mit
der Zertifikatautorität 1401 verbunden,
von der jeder Verifizierer 707 kryptographische Hash-Werte
empfängt,
die jeder Verifizierer 707 in einer Hash-Tabelle 1403 speichert.
-
Das
Subjekt 706 verwendet das obige Protokoll P1, um seinen öffentlichen
Schlüssel
bei dem PKVA 701 zu registrieren und ein nicht-unterzeichnetes
PKVC 800 zu erhalten.
-
Das
Subjekt 106 verwendet das obige Protokoll P2, um ein Einmal-PKVC 900 zu
erhalten.
-
Falls
der private Schlüssel
des Subjekts beeinträchtigt
ist, verwendet das Subjekt 706 das obige Protokoll P3,
um eine Nachahmung durch einen Angreifer zu verhindern.
-
Das
Subjekt 706 verwendet das folgende Protokoll P8, um sich
bei der Zertifikatautorität 1401 zu
registrieren und ein nicht-unterzeichnetes Zertifikat zu erhalten.
-
Protokoll P8
-
- 1. Das Subjekt 706 sendet die folgenden
Daten an die Zertifikatautorität 1401:
das nicht-unterzeichnete PKVC 800; den öffentlichen Schlüssel des PKVA 701;
und ein oder mehrere Identitätsattribute.
- 2. Die Zertifikatautorität 1401 verifiziert
durch eine Außerband-Administrationseinrichtung,
dass das eine oder die mehreren Identitätsattribute, die durch das
Subjekt 706 bei Schritt 1 des Protokolls P8 gesendet werden,
für das
Subjekt 706 gelten.
- 3. Die Zertifikatautorität 1401 erzeugt
ein reguläres
nicht-unterzeichnetes Zertifikat 1500, speichert das reguläre nicht-unterzeichnete
Zertifikat 1500 in ihrer Datenbank 1402 und sendet
das reguläre
nicht-unterzeichnete
Zertifikat 1500 an das Subjekt 706. Das reguläre nicht-unterzeichnete Zertifikat 1500 ist
in 21 dargestellt und umfasst die folgenden Felder:
ein oder mehrere Felder 1501, die Metadaten enthalten,
wie z. B. Seriennummer und Ausgebername; ein optionales Feld 1502,
das den öffentlichen
Schlüssel
des Subjekts 706 enthält;
ein oder mehrere Felder 1503, die das eine oder die mehreren
Identitätsattribute
enthalten, die durch das Subjekt 706 bei Schritt 1 des
Protokolls P8 gesendet wurden; und ein optionales Feld 1504,
das ein Ablaufdatum/-zeit spezifiziert.
- 4. Die Zertifikatautorität 1401 erzeugt
einen kryptographischen Hash-Wert durch Anlegen einer kollisionsresistenten
Hash-Funktion, wie z. B. MD5 oder SHA-1, an die Verkettung des regulären nicht-unterzeichneten Zertifikats 1501,
der PKVN 802, die in dem PKVC 800 enthalten ist, das
bei Schritt 1 des Protokolls P8 enthalten ist, und des öffentlichen
Schlüssels
des PKVA 701, der ebenfalls bei Schritt 1 des Protokolls
P8 gesendet wurde. Die Zertifikatautorität 1401 sendet diesen
kryptographischen Hash-Wert an jeden Verifizierer 707.
- 5. Jeder Verifizierer 707 addiert den kryptographischen
Hash-Wert, der durch die Zertifikatautorität 1401 bei Schritt
4 des Protokolls P8 gesendet wurde, zu seiner Hash-Tabelle 1403.
-
Das
Subjekt 706 verwendet das folgende Protokoll P9, um seine
Identität
einem Verifizierer 707 zu beweisen.
-
Protokoll P9
-
- 1. Das Subjekt 706 sendet die folgenden
Daten an den Verifizierer 707: das reguläre nicht-unterzeichnete
Zertifikat 1500, das von der Zertifikatautorität 1401 unter
Verwendung des Protokolls P8 erhalten wurde; ein Einmal-PKVC 900,
das vor kurzem von dem PKVA 701 unter Verwendung des Protokolls
P2 erhalten wurde; und den öffentlichen
Schlüssel
des PKVA 701.
- 2. Der Verifizierer 707 validiert das Einmal-PKVC 900,
das bei Schritt 1 des Protokolls P9 gesendet wurde. Der Verifizierer 707 verwendet
das Feld 903, um zu verifizieren, dass das Zertifikat 900 nicht
abgelaufen ist. Der Verifizierer 707 verifiziert die Signatur 904 unter
Verwendung des öffentlichen
Schlüssels
des PKVA 701, der ebenfalls bei Schritt 1 des Protokolls
P9 gesendet wurde.
- 3. Der Verifizierer 707 berechnet einen kryptographischen
Hash-Wert durch Anlegen der gleichen kollisionsresistenten Hash-Funktion,
die durch die Zertifikatautorität 1401 bei
Schritt 4 des Protokolls P8 verwendet wurde, an die Verkettung des
regulären
nicht-unterzeichneten
Zertifikats 1500, das durch das Subjekt bei Schritt 1 des
Protokolls P9 gesendet wurde, der PKVN 902, die in dem
PKVC 900 enthalten ist, das durch das Subjekt bei Schritt
1 des Protokolls P9 gesendet wurde, und des öffentlichen Schlüssels des
PKVA 701, der ebenfalls durch das Subjekt bei Schritt 1
des Protokolls P9 gesendet wurde.
- 4. Der Verifizierer 707 verifiziert, dass der kryptographische
Hash-Wert, der bei Schritt 3 des Protokolls P9 gesendet wurde, in
seiner Hash-Tabelle 1403 vorliegt.
- 5. Das Subjekt 706 weist Kenntnis des privaten Schlüssels nach,
der dem öffentlichen
Schlüssel zugeordnet
ist, der in dem Feld 901 der Einmal-PKVC 900 zugeordnet
ist, die bei Schritt 1 des Protokolls P9 gesendet wurde. Das Verfahren,
bei dem das Subjekt 706 Kenntnis des privaten Schlüssels nachweist,
hängt von
dem Kryptosystem ab, für
das das Privater/Öffentlicher-Schlüssel-Paar
des Subjekts erzeugt wurde. Falls dieses Kryptosystem beispielsweise
ein Digital-Signatur-Kryptosystem
ist, kann das Subjekt 706 Kenntnis des privaten Schlüssels nachweisen durch
Verwenden des privaten Schlüssels,
um eine Größe zu unterzeichnen,
die von einer Zufallsgröße abgeleitet
ist, die durch den Verifizierer 707 erzeugt wird. Der Verifizierer 707 verifiziert dann
die Signatur unter Verwendung des öffentlichen Schlüssels 901,
der in dem PKVC 900 enthalten ist.
-
Authentifizierung ohne
Zertifikate
-
Wenn
es nur einen Verifizierer gibt, gibt es keinen Bedarf, reguläre Zertifikate
für Authentifizierung
zu verwenden. Das Subjekt kann seinen öffentlichen Schlüssel und
Identitätsattribute
direkt bei dem Verifizierer registrieren. Der Verifizierer verifiziert durch
ein Außerband-Administrationsverfahren,
dass die Attribute nur für
das Subjekt gelten, und zeichnet die Bindung des öffentlichen
Schlüssels
an die Identitätsattribute
auf. Später
bei einem wiederholten Besuch beweist das Subjekt seine Identität einfach durch
Nachweisen der Kenntnis des privaten Schlüssels, der dem öffentlichen
Schlüssel
zugeordnet ist, der durch den Verifizierer aufgezeichnet wird.
-
Um
einen PKVA zu nutzen, wird das obige Authentifizierungsverfahren
ohne Zertifikate wie folgt modifiziert. Wenn es sich bei dem Verifizierer
registriert, legt das Subjekt das nicht-unterzeichnete PKVC und
den öffentlichen
Schlüssel
dem PKVA vor, anstatt nur seinen öffentlichen Schlüssel vorzulegen. Das
Subjekt legt auch seine Identitätsattribute
vor, wie bei dem unmodifizierten Verfahren. Der Verifizierer berechnet
einen kryptographischen Hash-Wert durch Anlegen einer kollisionsresistenten Hash-Funktion,
wie z. B. MD5 und SHA-1, an den öffentlichen
Schlüssel
des Subjekts, die PKVN und den öffentlichen
Schlüssel
des PKVA. Der Verifizierer zeichnet die Identitätsattribute und den kryptographischen
Hash-Wert auf. Eine Hash-Tabelle, die durch den kryptographischen
Hash-Wert verschlüsselt
ist, kann verwendet werden, um die Aufzeichnung zu finden, die dem
kryptographischen Hash-Wert effizient gegeben ist.
-
Bei
einem wiederholten Besuch legt das Subjekt ein Einmal-PKVC zusammen mit
dem öffentlichen
Schlüssel
des PKVA vor und weist Kenntnis des privaten Schlüssels nach,
der dem öffentlichen Schlüssel zugeordnet
ist, der in dem Einmal- PKVC enthalten
ist. Der Verifizierer prüft,
dass das Einmal-PKVC nicht abgelaufen ist und verifiziert die Signatur
auf dem Einmal-PKVC unter Verwendung des öffentlichen Schlüssels des
PKVA. Der Verifizierer extrahiert die PKVN von dem Einmal-PKVC und
berechnet einen kryptographischen Hash-Wert durch Anlegen der gleichen
kollisionsresistenten Hash-Funktion an den öffentlichen Schlüssel des Subjekts,
die PKVN und den öffentlichen
Schlüssel des
PKVA. Der Verifizierer verwendet diesen Hash-Wert, um die Aufzeichnung
wiederzugewinnen, die die Identitätsattribute des Subjekts enthält.
-
Authentifizierung
ohne Zertifikate in einem E-Commerce-Szenario
-
Eine
Authentifizierung ohne reguläre
Zertifikate ist sinnvoll in dem Szenario, wo ein E-Commerce-Kunde,
der einen Web-Browser verwendet, auf eine E-Commerce-Web-Site zugreift.
In dem E-Commerce-Szenario ist es wünschenswert, in der Lage zu sein,
das SSL-Protokoll, das Kommunikation zwischen Web-Browsern und Web-Servern
schützt, ohne
Modifikation zu verwenden. Dies kann erreicht werden durch eine
kleine Variation des obigen modifizierten Protokolls für Authentifizierung
ohne reguläre
Zertifikate.
-
Bei
diesem Szenario ist das Subjekt der Kunde, der den Web-Browser verwendet
und der Verifizierer ist der Web-Server der E-Commerce-Site.
-
Bevor
es sich bei dem Verifizierer registriert, erhält das Subjekt ein Einmal-PKVC
von dem PKVA. Um sich bei dem Verifizierer zu registrieren, legt
das Subjekt eine Kette von Zertifikaten vor, die folgendes umfassen:
das gerade erhaltene Einmal-PKVC, unterzeichnet durch den PKVA;
und ein selbst-unterzeichnetes Zertifikat, das den öffentlichen
Schlüssel des
PKVA enthält.
Die Signaturen auf diesen beiden Zertifikaten sind nicht funktional
notwendig, aber sie sind praktisch notwendig, so dass die Implementierung
des SSL-Protokolls bei der E-Commerce-Site die Zertifikatkette annimmt.
Die SSL-Implementierung prüft
auch, dass das Einmal-PKVC nicht abgelaufen ist.
-
Gleichartig
dazu legt das Subjekt erneut bei einem wiederholten Besuch eine
Zertifikatkette vor, die ein aktuell gültiges Einmal-PKVC und ein selbst-unterzeichnetes
Zertifikat umfasst, das den öffentlichen
Schlüssel
des PKVA enthält.
-
Eine
PKI gemäß der vorliegenden
Erfindung, die einen PKVS aufweist, der bei einem E-Commerce-Szenario
verwendet wird, wo es nur einen Verifizierer gibt, ist allgemein
bei 1600 in 22 dargestellt. Die PKI 1600 umfasst
mehrere Hauptkomponenten, die jeweils ein Softwareprogramm sind.
Die Hauptsoftwareprogrammkomponenten der PKI 1600 laufen
auf ein oder mehreren Computersystemen. Bei einem Ausführungsbeispiel
läuft jede
der Hauptsoftwareprogrammkomponenten auf ihrem eigenen Computersystem.
-
Der
PKVS des PKI 1600 verwendet einen oder mehrere PKVAs 701,
die ähnlich
sind wie die PKVAs 701, die durch die PKVSs der PKIs 700, 1100 und 1400 verwendet
werden. Die PKI 1600 verwendet jedoch keine reguläre Zertifikatautorität.
-
Bei
der PKI 1600 ist das Subjekt 706 ein E-Commerce-Kunde,
der einen Web-Browser verwendet, während der Verifizierer 707 eine
E-Commerce-Site ist, die einen Web-Server verwendet. Das Subjekt 706 und
der Verifizierer 707 verwenden das SSL-Protokoll für gegenseitige
Authentifizierung und für
den Schutz empfindlicher Kommunikation. Die Protokolle, die bei
diesem Ausführungsbeispiel
verwendet werden, sind auf solche Weise entworfen, dass das SSL-Protokoll
ohne Modifikation zwischen dem Subjekt 706 und dem Verifizierer 707 verwendet werden
kann.
-
Bei
der PKI 1600 hat der Verifizierer 707 eine Datenbank 1601 aus
Kundenaufzeichnungen, auf die effizient durch eine Hash-Tabelle 1602 zugegriffen werden
kann. Jeder Eintrag in der Hash-Tabelle 1602 wird durch
einen kryptographischen Hash-Wert wie oben beschrieben verschlüsselt und
enthält
einen Zeiger zu einer Kundenaufzeichnung in der Datenbank 1601.
-
Bei
der PKI 1600 verwendet das Subjekt 706 das obige
Protokoll P1, um seinen öffentlichen Schlüssel bei
dem PKVA 701 zu registrieren und ein nicht-unterzeichnetes
PKVC 800 zu erhalten.
-
Das
Subjekt 706 verwendet das obige Protokoll P2, um ein Einmal-PKVC 900 zu
erhalten.
-
Falls
der private Schlüssel
des Subjekts beeinträchtigt
ist, verwendet das Subjekt 706 das obige Protokoll P3,
um eine Nachahmung durch einen Angreifer zu verhindern.
-
Das
Subjekt 706 verwendet das folgende Protokoll P10, um sich
direkt bei dem Verifizierer 707 zu registrieren.
-
Protokoll P10
-
- 1. Das Subjekt 706 und der Verifizierer 707 richten eine
SSL-Verbindung ein. Als Teil des SSL-Handshake, der die SSL-Verbindung
einrichtet, sendet das Subjekt 706 dem Verifizierer 707 eine
Clientzertifikatkette, die ein aktuell gültiges Einmal-PKVC 900 und
ein selbstunterzeichnetes Zertifikat umfasst, das den öffentlichen
Schlüssel des
PKVA 701 enthält.
Außerdem
weist das Subjekt 706 als Teil des SSL-Handshake die Kenntnis des
privaten Schlüssels
nach, der dem öffentlichen
Schlüssel 901 zugeordnet
ist, der in dem PKVC 900 enthalten ist. Der Verifizierer 707 authentifiziert
sich selbst auf übliche
Weise als Teil des SSL-Handshake.
- 2. Das Subjekt 706 sendet Kundeninformationen, wie
z. B. Name, Adresse, Kreditkartennummer usw. an den Verifizierer 707 unter
dem Schutz der SSL-Verbindung, die bei Schritt 1 des Protokolls P10
eingerichtet wird.
- 3. Der Verifizierer 707 führt jegliche Außerbandverifizierung
der Daten, die durch das Subjekt 706 bei Schritt 2 des
Protokolls P10 gesendet werden, durch, die durch die Sicherheitsrichtlinie
erforderlich sein könnte.
Dann erzeugt der Verifizierer 707 eine Kundenaufzeichnung
in seiner Datenbank 1601, die die Informationen enthält, die
durch das Subjekt 706 bei Schritt 2 des Protokolls P10
gesendet werden.
- 4. Der Verifizierer 707 berechnet einen kryptographischen
Hash-Wert durch Anlegen einer kollisionsresistenten Hash-Funktion,
wie z. B. MD5 oder SHA-1, an den öffentlichen Schlüssel des Subjekts 706,
die PKVN 902, die in dem Einmal-PKVC 900 enthalten
ist, das durch das Subjekt 706 bei Schritt 1 des Protokolls
P10 gesendet wurde, und den öffentlichen
Schlüssel
des PKVA 701, der ebenfalls bei Schritt 1 des Protokolls
P10 gesendet wurde.
-
Bei
einem wiederholten Besuch auf die E-Commerce-Web-Site wird das folgende
Protokoll P11 durch das Subjekt 706 verwendet, um seine Identität zu beweisen,
und durch den Verifizierer 707, um die Kundenaufzeichnung
wiederzugewinnen, die bei Schritt 3 des Protokolls P10 für das Subjekt 706 eingerichtet
wurde.
-
Protokoll P11
-
- 1. Das Subjekt 706 und der Verifizierer 707 richten eine
SSL-Verbindung ein. Als Teil des SSL-Handshake sendet das Subjekt 106 eine
Clientzertifikatkette, die ein aktuell gültiges Einmal-PKVC 900 und
ein selbstunterzeichnetes Zertifikat umfasst, das den öffentlichen
Schlüssel des
PKVA 701 enthält.
Außerdem
weist das Subjekt 706 als Teil des SSL-Handshake Kenntnis des
privaten Schlüssels
nach, der dem öffentlichen
Schlüssel 901 zugeordnet
ist, der in dem PKVC 900 enthalten ist. Außerdem verwendet
der Verifizierer 707 als Teil des SSL-Handshake das Ablaufdatum/-zeit-Feld
903 in dem Einmal-PKVC 900, um zu verifizieren, dass das
Einmal-PKVC nicht abgelaufen ist. Außerdem verifiziert der Verifizierer 707 als
Teil des SSL-Handshake die Signatur 904 in dem Einmal-PKVC 900 unter
Verwendung des öffentlichen
Schlüssels
des PKVA 701, der in dem selbst-unterzeichneten Zertifikat enthalten
ist.
Der Verifizierer 707 authentifiziert sich auch
selbst auf die übliche
Weise als Teil des SSL-Handshake.
- 2. Der Verifizierer 707 berechnet einen kryptographischen
Hash-Wert durch Anlegen der gleichen kollisionsresistenten Hash-Funktion,
die bei Schritt 4 des Protokolls P10 verwendet wird, an den öffentlichen
Schlüssel
des Subjekts 706, die PKVN 902, die in dem Einmal-PKVC 900 enthalten
ist, das durch das Subjekt 706 bei Schritt 1 des Protokolls
P11 gesendet wird, und den öffentlichen
Schlüssel
des PKVA 701, der auch bei Schritt 1 des Protokolls P11
gesendet wurde.
- 3. Der Verifizierer 707 verwendet den kryptographischen
Hash-Wert, der bei Schritt 2 des Protokolls P11 berechnet wird,
um seine Hash-Tabelle 1602 nachzuschlagen. Das Nachschlagen
gewinnt einen Hash-Tabelleneintrag
wieder, der einen Zeiger zu einer Aufzeichnung in der Datenbank 1601 enthält. Der
Verifizierer 707 verwendet diesen Zeiger, um die Aufzeichnung
wiederzugewinnen, die für
das Subjekt 706 bei Schritt 3 des Protokolls P10 eingerichtet
wurde.
-
Zusammenfassung
-
Bei
einem wahrscheinlichen Szenario für zukünftigen E-Commerce erzeugt ein Benutzer ein Öffentlicher/Privater-Schlüssel-Paar
und registriert die Öffentlicher-Schlüssel-Komponente des Schlüssel-Paars
bei einer beliebigen Anzahl von E-Commerce-Sites. Bei wiederholten
Besuchen dieser Sites authentifiziert der Benutzer den Benutzer
durch Nachweisen der Kenntnis des entsprechenden privaten Schlüssels. Dieses
Szenario liefert eine höhere Sicherheit
als die aktuelle Verwendung eines Passworts, das über eine
SSL-Verbindung gesendet
wird, das verletzlich ist, weil Benutzer typischerweise das gleiche
Passwort für
alle Sites verwenden. Dieses Szenario vermeidet auch die Übertragung
der Verantwortlichkeit für
Kundenregistrierung von der E-Commerce-Site
an eine Zertifikats-Autorität,
was für
die meisten E-Commerce-Sites unannehmbar ist. Eine Schwierigkeit
bei diesem Szenario ist, dass der Benutzer jede einzelne E-Commerce-Site
benachrichtigen muss, bei der der Benutzer den privaten Schlüssel registriert
hat, falls der private Schlüssel des
Benutzers beeinträchtigt
ist.
-
Die
vorliegende Erfindung löst
diese Schwierigkeit durch die Verwendung eines Öffentlicher-Schlüssel-Validierungsdienstes
(PKVS). Der Benutzer registriert den öffentlichen Schlüssel des Benutzers
bei dem PKVS und erhält
ein nicht-unterzeichnetes Zertifikat ähnlich wie die oben beschriebene
leichte PKI, die Einmalzertifikate verwendet, außer dass der öffentliche
Schlüssel
anstatt an die Identität
des Benutzers an eine Seriennummer gebunden ist. Somit übernimmt
der PKVS keine Verantwortung für
das Identifizieren des Benutzers durch den Registrierungsprozess.
Der PKVS garantiert nur, dass die Seriennummer einmalig ist. Sobald
der Benutzer den öffentlichen
Schlüssel
bei dem PKVS registriert hat, und das nicht-unterzeichnete Zertifikat erhalten
hat, kann der Benutzer Einmalzertifikate gegen das nicht-unterzeichnete
Zertifikat erhalten, ähnlich
wie die oben beschriebene leichte PKI, die Einmalzertifikate verwendet.
-
Wenn
sich der Benutzer als ein Kunde bei einer E-Commerce-Site registriert,
legt der Benutzer den öffentlichen
Schlüssel
des Benutzers, die Seriennummer, die durch den PKVS ausgegeben wird,
und den öffentlichen
Schlüssel
des PKVS vor. Die E-Commerce-Site berechnet einen kryptographischen
Hash-Wert des öffentlichen
Schlüssels
des Benutzers, der Seriennummer, die durch den PKVS ausgegeben wurde,
und den öffentlichen
Schlüssel des
PKVS und speichert den Hash-Wert
als Teil der Kundenaufzeichnung. Bei einem nachfolgenden Besuch
der Site präsentiert
der Benutzer ein Einmalzertifikat, das durch den PKVS ausgegeben
wurde, zusammen mit dem öffentlichen
Schlüssel
des PKVS. Die Site verifiziert die Signatur auf dem Einmalzertifikat,
verifiziert, dass das Einmalzertifikat nicht abgelaufen ist, berechnet
den kryptographischen Hash-Wert des öffentlichen Schlüssels des
Benutzers und der Seriennummer, die in dem Zertifikat enthalten
ist, das mit dem öffentlichen
Schlüssel
des PKVS verkettet ist, und verifiziert, dass der Hash-Wert mit
dem einen zusammenfällt,
der als Teil der Kundenaufzeichnung gespeichert ist.
-
Falls
der private Schlüssel
beeinträchtigt
ist, fragt der Benutzer den PKVS, das nicht-unterzeichnete Zertifikat
aufzuheben. Der PKVS hebt das nicht-unterzeichnete Zertifikat auf, ähnlich wie
die oben beschriebene leichte PKI, die Einmalzertifikate verwendet.
Nachdem der PKVS das nicht-unterzeichnete
Zertifikat aufhebt, gibt der PKVS nie mehr Einmalzertifikate für die gleiche
Seriennummer aus, die mit dem gleichen privaten Schlüssel unterzeichnet
ist. Dies macht es für
einen Angreifer, der den privaten Schlüssel des Benutzers kennt, unmöglich, eine
E-Commerce-Site zu besuchen und vorzugeben, bei einem wiederholten
Besuch der Benutzer zu sein.
-
Die
vorliegende Erfindung kann auch verwendet werden, um andere Verwendungen
eines öffentlichen
Schlüssels
neben der beispielhaften Registrierung des öffentlichen Schlüssels mit
einer E-Commerce-Site zu validieren. Darüber hinaus kann das Subjekt
sein Privater/Öffentlicher-Schlüssel-Paar
für mehrere
Authentifizierungszwecke verwenden, und kann ein anderes Authentifizierungsverfahren
für jeden
Zweck verwenden, wie z. B. die unterschiedlichen beispielhaften
Authentifizierungsverfahren, die oben beschrieben sind, einschließlich: 1)
Authentifizierung unter Verwendung herkömmlicher öffentlicher Schlüssel-Zertifikate;
2) Authentifizierung unter Verwendung von Einmalzertifikaten; 3) Authentifizierung
unter Verwendung nicht-unterzeichneter Zertifikate, die den Verifizierern
direkt präsentiert
werden; und 4) Authentifizierung ohne Zertifikate. Die Authentifizierung,
die das Verfahren der nicht-unterzeichneten
Zertifikate verwendet, ist geeignet, wenn es nur einige wenige Verifizierer
gibt (z. B. bis zu einige hundert Verifizierer). Das Verfahren der
Authentifizierung ohne Zertifikate umfasst nur einen Verifizierer.
Jedes dieser vier Verfahren kann modifiziert werden, um einen PKVA
gemäß der vorliegenden
Erfindung zu nutzen.
-
23 stellt
ein Ausführungsbeispiel
eines Computersystems 250 und ein externes computerlesbares
Medium 252 dar, das gemäß der vorliegenden
Erfindung verwendet werden kann, um eine oder mehrere der Hauptsoftware-Programmkomponenten einer
leichten PKI gemäß der vorliegenden
Erfindung zu implementieren, wie z. B. PKI 30, PKI 30', PKI 730,
PKI 830 und PKI 930. Ausführungsbeispiele des externen
computerlesbaren Mediums 252 umfassen, sind aber nicht
beschränkt
auf: eine CD-ROM, eine Diskette und eine Plattenkassette. Jede der Hauptsoftware-Programmkomponenten
einer leichten PKI gemäß der vorliegenden
Erfindung kann in einer Vielzahl von kompilierten und interpretierten Computersprache
implementiert sein. Das externe computerlesbare Medium 252 speichert
Quellcode, Objektcode, ausführbaren
Code, Shell-Skripte und/oder
Dynamische-Verbindung-Bibliotheken für eine der Hauptsoftware-Programmkomponenten
einer leichten PKI gemäß der vorliegenden
Erfindung. Ein Eingabegerät 254 liest
das externe computerlesbare Medium 252 und liefert diese
Daten an das Computersystem 250. Ausführungsbeispiele des Eingabegeräts 254 umfassen,
sind aber nicht beschränkt
auf: einen CD-ROM-Leser, ein Disketten-Laufwerk und eine Datenkassettenlesevorrichtung.
-
Das
Computersystem 250 umfasst eine zentrale Verarbeitungseinheit 256 zum
Ausführen
einer der Hauptsoftware-Programmkomponenten
einer leichten PKI gemäß der vorliegenden
Erfindung. Das Computersystem 250 umfasst auch einen lokalen Plattenspeicher 262 zum
lokalen Speichern einer der Hauptsoftware-Programmkomponenten einer
leichten PKI gemäß der vorliegenden
Erfindung vor, während
und nach der Ausführung.
Jede der Hauptsoftware-Programmkomponenten einer leichten PKI gemäß der vorliegenden
Erfindung verwendet auch den Speicher 260 in dem Computersystem
während
der Ausführung.
Auf die Ausführung
einer der Hauptsoftware-Programmkomponenten
einer leichten PKI gemäß der vorliegenden
Erfindung hin werden Ausgangsdaten erzeugt und zu dem Ausgabegerät 258 gerichtet.
Ausführungsbeispiele
des Ausgabegeräts 258 umfassen,
sind aber nicht beschränkt
auf: eine Computeranzeigevorrichtung, einen Drucker und/oder eine
Plattenspeichervorrichtung.
-
Obwohl
hierin zu Darstellungszwecken des bevorzugten Ausführungsbeispiels
spezifische Ausführungsbeispiele
dargestellt und beschrieben wurden, ist für Durchschnittsfachleute auf
diesem Gebiet klar, dass eine große Vielzahl von Implementierungen
für die
spezifischen gezeigten und beschriebenen Ausführungsbeispiele eingesetzt
werden kann, ohne von dem Schutzbereich der vorliegenden Erfindung
abzuweichen. Fachleute auf dem Gebiet der Chemie, Mechanik, Elektromechanik,
Elektrizität
und Computer werden ohne weiteres erkennen, dass die vorliegende
Erfindung in einer großen
Vielzahl von Ausführungsbeispielen
implementiert werden kann. Diese Anwendung soll alle Adaptionen
oder Variationen der hierin erörterten
bevorzugten Ausführungsbeispiele
abdecken. Daher ist klar, dass diese Erfindung nur durch die Ansprüche begrenzt
ist.