Ist es möglich, ein X.509-Zertifikat aus einem privaten Ethereum/Bitcoin-Schlüssel zu erstellen?

Wir alle lieben die privaten Schlüssel von Ethereum/Bitcoin (dh EC secp256k1), weil wir damit Transaktionen signieren können. Browser unterstützen diese Schlüssel zur Authentifizierung jedoch nicht – was sie (sozusagen) unterstützen, sind clientseitige SSL-Zertifikate.

Die offensichtliche Frage, die mir in den Sinn kommt, ist also: Wie wäre es, ein X.509-SSL-Zertifikat aus einem privaten Schlüssel von Ethereum (oder Bitcoin) zu generieren? Würden Server solche authentifizierten HTTPS-Verbindungen erkennen? Welche Unterstützung würde auf Kundenseite fehlen?

Zusammenfassend ist der erste Workflow, an den ich denke, die SSL-Client-Authentifizierung:

  1. Ich (der Benutzer) generiere (einmalig) ein SSL-Zertifikat aus einem privaten Ethereum-Schlüssel und importiere es in den Browser
  2. Ich melde mich bei einer Website an, indem ich dieses Zertifikat bereitstelle
  3. Die Website vertraut darauf, dass ich die entsprechende Ethereum-Adresse besitze. Beachten Sie, dass ich dadurch keine Transaktion unterzeichnen kann, aber zumindest nachweisen kann, dass mir diese Adresse gehört. Je nach Anwendungsfall reicht das manchmal aus.

Ein weiterer Workflow, der mir in den Sinn kommt, sind CAs (Certification Authorities, denken Sie an „Verisign“). Die Aufgabe einer CA besteht darin, X.509-Zertifikate zu signieren. Wenn ich also ein Zertifikat von einer Ethereum-Adresse generieren könnte, könnte ich dieses Zertifikat von einer Zertifizierungsstelle signieren lassen und so Ethereum mit der bereits bestehenden riesigen Web-of-Trust-Infrastruktur verbinden. Alle diese etablierten Zertifizierungsstellen könnten mit der Unterzeichnung von EC-Zertifikaten beginnen und so Ethereum-Adressen mit realen Einheiten verankern.

Der Schlüsselteil besteht also darin, ein Client- oder Server-X.509-Zertifikat von einem privaten EC-Schlüssel abzuleiten. Ist das überhaupt machbar? Was sind die Hindernisse oder Hindernisse?

Sie verweisen auf diesen Link. Ich hoffe, es ist hilfreich. security.stackexchange.com/questions/44251/…

Antworten (1)

Es ist möglich, Zertifikate mit secp256k1-Schlüsseln mit OpenSSL zu erstellen, z. B. nach OpenSSL, um verschiedene Arten von selbstsignierten Zertifikaten zu generieren .

Das Hauptproblem ist, dass Zertifikate mit secp256k1-Schlüsseln nicht gut unterstützt werden . Beispielsweise unterstützen die gängigsten Browser nur secp256r1 und secp384r1, aber nicht secp256k1 https://www.ssllabs.com/ssltest/clients.html .

Danke! Die Antwort abstimmen. Ich würde es sogar als erwartete Antwort markieren, aber Sie haben den Teil über CAs nicht behandelt. vielen Dank für die Informationen und Links.
Tut mir leid, dass ich mich nicht mit CA befassen musste, also weiß ich nichts darüber. Technisch sollte es möglich sein, ein Zertifikat mit jeder elliptischen Kurve zu signieren. Aber die CAs haben ihre eigenen Regeln, die befolgt werden müssen, also müssen Sie sie direkt fragen.