Empfehlungen zu digitalen X.509-Signaturen / Verschlüsselungsworkflows / Bibliotheken?

Mein spezieller Anwendungsfall ist, dass ich auf digitale Zertifikate zugreifen muss, die auf dem Client gespeichert sind, und diese zum Signieren, Überprüfen, Ver- und Entschlüsseln auf Client- und Serverseite verwenden muss. Für den letzteren Teil gibt es viele, viele Lösungen. Der Knackpunkt ist die Möglichkeit, auf auf dem Client gespeicherte Zertifikate zuzugreifen.

Beachten Sie, dass ich "auf dem Client gespeicherte Zertifikate" sage, was absichtlich vage ist. Ich möchte meine Gedanken nicht auf den Systemspeicher, den Benutzerspeicher, den Browserspeicher, das kryptografische Token oder den Java-Schlüsselspeicher beschränken.

Im Laufe der Jahre habe ich die folgenden Methoden verwendet. Neben jedem von ihnen gebe ich die Vor- und Nachteile.

CAPICOM / ActiveX. Dies war zwar am einfachsten zu handhaben, schränkt den Benutzer jedoch auf IE unter Windows ein. Was schlimmer ist, ist es jetzt veraltet und funktioniert nur auf 32-Bit.Java-Applet. Dies ist plattform- und browserübergreifend, aber Java im Browser ist nicht so verbreitet, wie man es gerne hätte, und verblasst schnell (anscheinend hat Apple es kürzlich entfernt). Es ist also mühsam, den Benutzer zum Herunterladen und Installieren der JRE zu bewegen. Zusätzlich müssen Benutzer die relativ technische Aufgabe ausführen, die Kryptographie-Erweiterungen mit unbegrenzter Stärke festzulegen, damit der Unterzeichner arbeiten kann.

Dinge, von denen ich gehört habe / an die ich gedacht habe, die ich aber nicht weit gebracht habe

Die meisten Javascript-Lösungen. Sie implementieren den RSA-Algorithmus, haben jedoch keine Möglichkeit, auf digitale Zertifikate im Client-Zertifikatspeicher zuzugreifen. Die meisten von ihnen generieren ein neues Schlüsselpaar.Flash / Flex. Flash / Flex scheint die am weitesten verbreitete clientseitige Technologie zu sein. Sie können bereits auf Client-Hardware wie Kameras und Mikrofone zugreifen. Es wäre schön, wenn sie auf Zertifikatspeicher zugreifen könnten.Alternativen zu CAPICOM finden Sie auf der Microsoft-Website. Es schreibt Alternativen zu CAPICOM vor, die meistens das .NET-Framework verwenden. Dies ist ideal für Desktop-Clients. Aber für "Skripte" steht in einem "wichtigen Hinweis" sehr deutlich, dass Sie Ihre eigenen ActiveX-Steuerelemente schreiben müssen. Das bringt uns zurück zu Punkt eins.

Was ich suche, ist eine Möglichkeit, das Hauptproblem des Zugriffs auf Zertifikatspeicher auf dem Client zu umgehen. Ich suche keine Diskussion über den RSA-Algorithmus oder warum PKI dumm ist oder eine Alternative zur asymmetrischen Verschlüsselung oder Verwendung anderer Architekturen als Webanwendungen oder auf Apple.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage