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:
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?
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 .
tiennv