Wie kann der SSL-client das Zertifikat des Servers überprüfen?
Ich bin mit dem erstellen einer Anwendung und ich bin der Planung über die Verwendung von OpenSSL für das sichern von Daten-übertragungen.
Plane ich nur, dass der client das Zertifikat des Servers überprüfen. Ich bin verwirrt, wie sollte ich sichere das Zertifikat des Servers. Ich würde gerne verschlüsselt, das Zertifikat des Servers mit dem privaten Schlüssel, aber ich will nicht zu verwenden, keine hart codierte Schlüssel für diese Verschlüsselung.
Was sind einige der gängigen Praktiken, gefolgt von Anwendungen, die SSL?
InformationsquelleAutor msvcyc | 2009-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur um sicherzugehen, haben wir unsere Terminologie gerade, eine "SSL-Zertifikat" im Allgemeinen Sprachgebrauch ist wirklich besteht aus zwei Komponenten:
Dem öffentlichen Zertifikat Komponente signiert ist von der gewählten ZERTIFIZIERUNGSSTELLE (certificate authority), nach dem es kann frei verteilt werden. Es muss nicht gesichert oder verschlüsselt, und in der Tat wird es an clients gesendet werden, die Verbindung zu Ihrem server als Teil der SSL-Aushandlung.
Den privaten Schlüssel Komponente geschützt werden sollten. In den meisten Fällen ist dies einfach so gespeichert, wie Sie eine verschlüsselte Datei auf dem server. Gehobene Lösungen mit dedizierten "tamperproof" crypto-hardware (HSMs -- hardware-security-Module) zum speichern der privaten Schlüssel. Diese reichen von smart-card basierten Lösungen für multi-Schlüssel, Netzwerk-fähige Geräte mit der m/n-Steuerelemente usw usw. Gibt es Risiken (nicht zu schweigen von den Kosten) verbunden mit HSMs, dass ich nicht in zu gehen hier.
Viele Anwendungen einfach beibehalten der private Schlüssel auf der Festplatte. Es gibt ein paar Optionen zur Sicherung der key-Datei:
Wie immer, es ist ein Sicherheits-trade-off. Insbesondere, wenn Sie Passwort-geschützte Verschlüsselung der privaten Schlüssel-Datei, und Sie erleben einen unerwarteten Neustart der Anwendung (z.B. Stromausfall), dann wird jemand zur Verfügung stehen müssen ein Kennwort angeben, um die app neu gestartet wird. Speichern Sie das Passwort in eine Datei, Lesen von system-Initialisierung-Skripts (gefördert durch mindestens zwei web-server-Anbieter) bietet wenig in Bezug auf die wirkliche Sicherheit. Es ist schwer zu empfehlen, die private key-Datei unverschlüsselt, aber wenn Sie der einzige admin/techy in einem kleinen laden, sollten Sie auf jeden Fall überlegen, was könnte passieren, wenn die server neu gestartet, wenn Sie nicht verfügbar sind, und was die Kosten sein könnten für Ihr Unternehmen.
"Schlecht", im Allgemeinen. In der Regel werden die Passwörter in eine Datei, nur lesbar für den Benutzer der Anwendung, Sie sind also noch unter Berufung auf Dateisystem-perms (vor pw-Datei und nicht als Schlüssel-Datei). Einige apps verschleiern das pw in die Datei für Sie. Wieder, das ist schwach, für die hoffentlich offensichtlichen Gründen.
Nicht sicher, ob ich würde empfehlen, diese Terminologie. Die "SSL-Zertifikat" (gemeint ist das X. 509-Zertifikat, vermute ich), nicht "komponiert" von einem Public-Key-Zertifikat (PKC) und einen privaten Schlüssel: es ist die PKC, und es ist im Zusammenhang mit dem privaten Schlüssel des Schlüsselpaars. Der private Schlüssel ist nicht Teil des Zertifikats, je.
das war genau der Punkt, den ich versuche zu machen. Ich habe "air quotes" auf den ersten Satz, um zu versuchen zu machen, dass klarer und ergänzten die Wörter in der 3. para leicht.
Bezüglich der CA, dient es nur zur Validierung/Holen Sie sich die öffentlichen Schlüssel. Zum Beispiel, wenn Sie mit einem browser, weil ein Benutzer braucht, um den öffentlichen Schlüssel irgendwo. Mit desktop/mobile/nicht-browser-Anwendungen, die öffentliche Schlüssel wird in der app/client selbst, was bedeutet, dass die ZERTIFIZIERUNGSSTELLE ist nicht Teil des Prozesses.
InformationsquelleAutor Martin Carpenter
nicht ganz sicher, was Sie versuchen zu Fragen. die server-cert gesendet wird, um Sie, den Kunden; überprüfen Sie die cert durch Prüfung der Signatur (verwenden SHA-1, MD5 MD5 wurde geknackt.) Der Schlüssel, den Sie von der ZERTIFIZIERUNGSSTELLE für die öffentliche Seite; die CA-und die server-cert-Halter halten Sie Ihre privaten Schlüssel zu sich selbst. Können Sie überprüfen, cert, da der öffentliche Schlüssel ist genug, um entschlüsseln eine Nachricht verschlüsselt mit dem privaten Schlüssel. So brauchen Sie sich keine sorgen zu machen, auf der Client-Seite, über die Haltung der cert verschlüsselt ist überhaupt.
Haben Sie einen Blick auf die Wikipedia-Artikel über SSL/TLS.
Überprüfen Sie Ihre Signatur mittels beliebiger Algorithmus, mit dem die Signatur erstellt wurde. Sie nicht bekommen, zu wählen.
Und wenn es eingerichtet ist, nicht mit MD-5. In der Tat, jetzt Menschen sollten Weg fro0m SHA-1.
InformationsquelleAutor Charlie Martin
Sie nicht haben, um secure das Zertifikat des Servers. Es ist ein öffentliches Dokument
Server-Zertifikat enthält nicht den privaten Schlüssel.
Brauchen Sie nicht zu tun, keine Verschlüsselung. Der nur server-asset aus, das Sie schützen müssen, ist ein privater Schlüssel, das völlig Verschieden ist von seinem Zertifikat. Im Fall von OpenSSL, es kann auch eine andere Datei.
InformationsquelleAutor user207421