Also bin ich auf dieses neue Tag in HTML5 gestoßen <keygen>
. Ich kann nicht genau herausfinden, wofür es ist, wie es angewendet wird und wie es das Browserverhalten beeinflussen könnte.
Ich verstehe, dass dieses Tag für die Formularverschlüsselung vorgesehen ist, aber was ist der Unterschied zwischen <keygen>
und einem SSL-Zertifikat für Ihre Domain? Was ist das challenge
Attribut?
Ich habe nicht vor, es zu verwenden, da es bei weitem nicht in einer akzeptablen Reihe von Browsern implementiert ist, aber ich bin gespannt, was genau dieses Tag bewirkt. Alles, was ich finden kann, ist eine vage Dokumentation des Ausstechers ohne echte Anwendungsbeispiele.
Bearbeiten:
Ich habe hier ein SEHR informatives Dokument gefunden . Dies durchläuft sowohl die clientseitige als auch die serverseitige Implementierung des keygen-Tags.
Ich bin immer noch gespannt, welchen Nutzen dies gegenüber einem Domain-SSL-Zertifikat haben würde.
<keygen>
Element verbundene Herausforderung kann verwendet werden, um eine Passphrase mit dem Element bereitzustellenSPKAC
. Sobald die Clientzertifikatsignaturanforderung von der Zertifizierungsstelle verarbeitet und das resultierende Clientzertifikat im Benutzerbrowser eingerichtet wurde, kann die Herausforderung als Identitätsprüfung verwendet werden, ähnlich wie es ein typisches Kennwort bei freigegebenen oder mehreren Benutzern auf demselben Computer tut Terminal.<keygen>
in meinem HTMLform
ohne SSL-Zertifikat verwenden?Antworten:
Bei SSL geht es um "Serveridentifikation" oder "Server- UND Clientauthentifizierung (gegenseitige Authentifizierung)".
In den meisten Fällen legt nur der Server während des SSL-Handshakes sein Serverzertifikat vor, damit Sie sicherstellen können, dass dies wirklich der Server ist, zu dem Sie voraussichtlich eine Verbindung herstellen. In einigen Fällen möchte der Server auch überprüfen, ob Sie wirklich die Person sind, für die Sie sich ausgeben. Dazu benötigen Sie ein Client-Zertifikat.
Das
<keygen>
Tag generiert ein öffentliches / privates Schlüsselpaar und erstellt dann eine Zertifikatanforderung. Diese Zertifikatanforderung wird an eine Zertifizierungsstelle (CA) gesendet. Die Zertifizierungsstelle erstellt ein Zertifikat und sendet es an den Browser zurück. Jetzt können Sie dieses Zertifikat für die Benutzerauthentifizierung verwenden.quelle
<keygen>
in meinem HTMLform
ohne SSL-Zertifikat verwenden?Ihnen fehlt etwas Geschichte.
keygen
wurde zuerst von Netscape unterstützt, als es noch ein relevanter Browser war. IE, OTOH, unterstützte dieselben Anwendungsfälle über seine ActiveX-APIs. Opera und WebKit (oder sogar KHTML), die nicht bereit sind, die gesamte Win32-API zurückzuentwickeln, wurdenkeygen
stattdessen rückentwickelt.Es wurde in Web Forms 2.0 (das jetzt in die HTML-Spezifikation integriert wurde) angegeben, um die Interoperabilität zwischen den Browsern zu verbessern, die es implementiert haben.
Seitdem hat das IE-Team seine Weigerung zur Implementierung wiederholt
keygen
, und die Spezifikation (um zu vermeiden, dass sie zu trockener Science-Fiction wird) wurde geändert, um keine tatsächliche Implementierung zu erfordern:Kurz gesagt, dies ist kein neues Element, und wenn Sie den IE nicht ignorieren können, ist es wahrscheinlich nicht das, was Sie wollen.
quelle
Wenn Sie nach "genau" suchen, würde ich empfehlen, den RFC zu lesen .
Das
keygen
Element dient zum Erstellen eines Schlüssels für die Authentifizierung des Benutzers, während SSL sich um die Privatsphäre der Kommunikation und die Authentifizierung des Servers kümmert. Zitat aus dem RFC:quelle
<keygen>
Schlüsseln geht es um die Benutzeridentifikation, während es bei SSL um die Serveridentifikation geht?Veraltet
Quelle
quelle
Das Dokument ist nützlich, um das Keygen-Element zu erläutern. Seine Anforderung ergibt sich aus der WebID, die möglicherweise als Teil des Semantic Web of Linked Data unter https://dvcs.w3.org/hg/WebID/raw-file/tip/spec/index-respec.html#creating- verstanden wird. a-Zertifikat 2.1.1
quelle
Dies kann für Websites nützlich sein, die Dienste anbieten, bei denen die Nutzer für den Dienst bezahlen müssen, z. B. Video-on-Demand oder eine Nachrichten-Website für Fachleute wie Bloomberg. Mit diesen Schlüsseln können Benutzer den Inhalt nur auf ihrem Computer und nicht auf gleichzeitigen Computern anzeigen! Sie entscheiden, wie Daten gespeichert und verarbeitet werden. Sie können eine ASP- oder PHP-Datei angeben, die die Variablen empfängt, und Ihre Datei speichert diesen Schlüssel im Benutzerprofil. Auf diese Weise können sich Ihre Benutzer nicht von einem anderen Computer aus anmelden, wenn Sie möchten. Sie können sie zwingen, ihre E-Mails zu lesen, um diesen neuen Computer zu autorisieren, genau wie Steam. Grundsätzlich ermöglicht es die Individualisierung des Servicezugriffs, wenn Ihr Lizenzmodell wie das Betriebssystem pro Computer ausgeführt wird.
Sie können die technischen Daten hier überprüfen: http://www.w3.org/TR/html-markup/keygen.html
quelle