it-swarm.com.de

So validieren Sie ein Client-Zertifikat

Nach meinem Verständnis stellt man bei Verwendung eines Client-Zertifikats zur Sicherheit ein Zertifikat mit privatem und öffentlichem Schlüssel (z. B. X509) aus und sendet dieses an den Verbraucher des Dienstes, den man vor dem Konsum autorisieren möchte.

Aber was ist dann die Standardmethode , um zu überprüfen, ob es sich tatsächlich um ein gültiges Client-Zertifikat handelt, das sie präsentieren? Bitte präsentieren Sie hier den Standard-Workflow und auch die Rolle der Zertifizierungsstelle in diesem Fall.

wenn Sie sich auch fragen, was verhindert, dass jemand nur das Client-Zertifikat vom Client-Computer exportiert und woanders verwendet, ist der Export für den privaten Schlüssel sicher genug?

11
Riri

Aus einer hochrangigen Perspektive müssen drei Dinge passieren:

  1. Der Kunde muss nachweisen, dass er der ordnungsgemäße Eigentümer des Kundenzertifikats ist. Der Webserver fordert den Client auf, etwas mit seinem privaten Schlüssel zu signieren, und der Webserver überprüft die Antwort mit dem öffentlichen Schlüssel im Zertifikat.

  2. Das Zertifikat muss anhand seiner Signaturautorität validiert werden. Dies erfolgt durch Überprüfen der Signatur auf dem Zertifikat mit dem öffentlichen Schlüssel der Signaturautorität. Darüber hinaus werden Zertifikatsperrlisten (CRLs) überprüft, um sicherzustellen, dass das Zertifikat nicht auf die schwarze Liste gesetzt wurde.

  3. Das Zertifikat muss Informationen enthalten, die es als gültigen Benutzer des Webdienstes kennzeichnen. Der Webserver ist so konfiguriert, dass bestimmte Elemente im Zertifikat (normalerweise das Betrefffeld) angezeigt werden und nur bestimmte Werte zulässig sind.

19
John Wu

Der Standard heißt "X.509" und ist unter seiner Inkarnation am besten als "Internet X.509 Public Key Infrastructure Certificate und Certificate Revocation List ( CRL) Profil ", besser bekannt als RFC 528 . Der vollständige Standardalgorithmus für die Zertifikatsvalidierung ist in (Schmerz-) Details in Abschnitt 6 beschrieben.

Sie können nicht erwarten, ernsthaft zu verstehen, wie X.509 funktioniert, bis Sie sich die Mühe gemacht haben, dieses Dokument mindestens einmal zu lesen. Es wird Ihren Verstand verwirren, aber das liegt daran, dass Zertifikate und PKI eine von Natur aus komplexe Angelegenheit sind, die sehr genaue Vorstellungen von Identität, Authentifizierung, privatem Schlüssel und Vertrauen erfordert. X.509 versucht, diese Komplexität im Voraus zu bewältigen, was zu Behemoth-ähnlichen Standards wie RFC 5280 führt.


Das Markieren des privaten Schlüssels als "nicht exportierbar" ist nur Wunschdenken. Dies macht es für nicht technische Benutzer etwas schwieriger, ihren Schlüssel tatsächlich zu exportieren. Eine bessere Antwort wäre, dass es sollte keine Rolle spielen. Ein Benutzer authentifiziert sich selbst, indem er seine Kontrolle über den privaten Schlüssel demonstriert, der seinem Zertifikat zugeordnet ist. Wenn der Benutzer seinen privaten Schlüssel an einem anderen Ort speichern möchte, ist dies sein Geschäft. auf die gleiche Weise, wie es keine Rolle spielt, ob Sie Ihren Türschlüssel in Ihre links Hosentasche oder in Ihre rechts Hosentasche stecken. Und wenn Sie Ihren Türschlüssel unter der Fußmatte lassen und eine zwielichtige Person ihn von dort greift, verschwindet Ihre Sicherheit, aber Ihre Versicherungsgesellschaft wird darauf hinweisen, dass es Ihre Schuld ist.

2
Tom Leek

Zertifikate können eine Vielzahl von Parametern enthalten, mit denen die Verwendung des Zertifikats eingeschränkt werden kann. Beispielsweise kann ein Zertifikat mit Anwendungsname und Benutzername ausgestellt werden, sodass die Anwendung bestätigen kann, dass das Zertifikat für die jeweilige Anwendung gültig ist. Führen Sie dann die Standardzertifizierung des x.509-Zertifikats durch und beschränken Sie die zulässigen Benutzeranmeldeinformationen auf die der Person an wen das Zertifikat ausgestellt wurde.

Dies ist eine robuste Verwendung von clientseitigen Zertifikaten, bei der das Unternehmen, das die Anwendung veröffentlicht, die Ausstellung der Zertifikate spezifizieren und/oder steuern muss und die zertifikatbasierte Authentifizierung auf derselben Architekturebene beendet oder an diese weitergeleitet wird, die die Benutzeranmeldeinformationen authentifiziert . [Mit anderen Worten, SSL/TLS-Konzentratoren können Probleme verursachen.]

HINWEIS: Die zusätzlichen Felder im Zertifikat sind kryptografisch geschützt, sodass sie zwar sichtbar sind, jedoch nicht geändert werden können, ohne die Gültigkeit des Zertifikats zu beeinträchtigen. Infolgedessen kann die Einbeziehung dieser Parameter nicht mit weniger Schwierigkeiten gefälscht werden als die Fälschung des gesamten Zertifikats.

[~ # ~] Referenzen [~ # ~]

1
el viejo

Zunächst denke ich wirklich, dass Sie herausfinden müssen, was genau mit der Zertifizierung des privaten Schlüssels los ist:

  1. Privater Schlüssel: Dies ist etwas, das Sie nur für Ihre Augen geheim halten müssen.
  2. Öffentlicher Schlüssel: Dies wird von Benutzern verwendet, damit sie Sie kontaktieren können (es ist, als würden Sie eine Sprache verwenden, die nur der Eigentümer des privaten Schlüssels kennt).
  3. Zertifikat: Hiermit wird überprüft, ob der öffentliche Schlüssel tatsächlich dem Eigentümer des privaten Schlüssels zugeordnet ist.

Denken Sie also daran, dass ein Zertifikat etwas Öffentliches ist, das Sie verschenken können, ohne sich darüber Sorgen zu machen.

Wie funktioniert ein Zertifikat? Lassen Sie es mich in einfachen Worten sagen: Wenn Sie einen öffentlichen Schlüssel ausstellen, fügt die Zertifizierungsstelle dem Zertifikat eine "geheime Markierung" hinzu. Wenn Sie es validieren möchten, müssen Sie das Zertifikat vom Eigentümer an die Zertifizierungsstelle senden, damit es prüfen kann, ob Der "geheime Teil" ist in Ordnung. Wenn die Zertifizierungsstelle den geheimen Teil überprüft und konsistent ist, erhalten Sie das "OK", um den öffentlichen Schlüssel zu verwenden, wenn Sie nicht misstrauisch sind, ihn zu verwenden.

Schauen Sie sich dieses Wikimedia-Diagramm an, um mehr über den gesamten Prozess der Erstellung und Validierung (einschließlich CA) zu erfahren:

http://upload.wikimedia.org/wikipedia/commons/9/96/Usage-of-Digital-Certificate.svg

Dieses andere Diagramm könnte ebenfalls nützlich sein:

http://blog.securism.com/wordpress/wp-content/uploads/2009/01/pki-simple-diag.jpeg

Beachten Sie auch, dass es sich bei der Zertifizierungsstelle in der Regel um bekannte vertrauenswürdige Agenturen handelt und in Browsern normalerweise eine Liste enthalten ist. Einige Unternehmen (normalerweise öffentliche Stellen oder Organisationen) verwenden jedoch ihre eigene Zertifizierungsstelle, und Sie müssen diese manuell zur Liste hinzufügen (bitte seien Sie äußerst vorsichtig, da eine böswillige Zertifizierungsstelle Ihre Kommunikation wirklich beeinträchtigen könnte).

Hoffe das hilft dir.

(Fühlen Sie sich frei, eine Grammatik-/Syntaxkorrektur hinzuzufügen, da Englisch nicht meine Muttersprache ist).

0
kiBytes

In mehreren Projekten wie pathfinder-pki können Sie Zertifikate auf vollständig konforme Weise validieren.

0
mricon