Signieren, Verschlüsseln
Added by Tobias Urban over 9 years ago
Hallo,
ich möchte aus einer Java Test-Anwendung heraus, den nPA nutzt, um Daten zu verschlüsseln bzw. zu signieren. Kann ich das Open eCard Framework nutzen um dies zu tun?
Mfg,
Tobias
Replies (5)
RE: Signieren, Verschlüsseln - Added by Tobias Wich over 9 years ago
Hallo,
der nPA hat zwei Applikationen auf der Karte die eID und die QES Applikation. Keine der beiden Applikationen kann verschlüsseln und die QES Applikation kann zum signieren nur genutzt werden, wenn ein qualifiziertes Zertifikat auf der Karte installiert wird. Dafür gibt es spezielle Zertifikatsdiensteanbieter für den nPA. Zusätzlich wird ein Komfortleser mit eingebautem Security Modul benötigt.
Wie bereits angedeutet kann die Karte selbst nicht verschlüsseln. Es ist auch nicht möglich einen Schlüssel auf Softwareseite auf basis eines Geheimnisses auf der Karte abzuleiten, da die Karte so entworfen wurde, dass keine Profilbildung außerhalb der eID Funktion möglich ist und somit alle nPAs für den Nutzer gleich aussehen.
Es ist also nur die Signatur möglich, wenn ein QES Zertifikat installiert wurde und die passende Hardware vorliegt. Ob die nPA Signatur in der OeC App bereits funktioniert müsste ich, da die Nutzerauthentisierung gegnüber der Karte anders als bei Signaturkarten ist, erst prüfen.
VG
Tobias
RE: Signieren, Verschlüsseln - Added by Dimitrios Savvidis about 9 years ago
Hallo,
ich habe ein ähnliches Vorhaben wie der Themen-Ersteller, ich möchte die Signatur Funktion des Personalausweises nutzen um eine QES aus einer Java Anwendung heraus zu implementieren.
Einen Komfortkartenleser habe ich, ein qualifiziertes Zertifikat wird die Tage neu raufgeladen. (Altes ist gestern abgelaufen).
Mir ist die Welt des Git-basierten Software-Entwicklung noch ziemlich neu. Deswegen Frage ich so ausführlich nach.
Ich habe aber einige Java Erfahrung. (Notepad++ ist mein Lieblink :-) )
Ich habe schon mit dem SecSigner von SecCommerce signieren können, möchte jedoch die Signatur-Funktion in einem selbst programmieren E-Mail Client inkludieren. Ich bin so auf die Open eCard Umsetztung des eCard-API-Frameworks gestoßen.
Ich habe schon in einigen Berichten über das Open eCard Projekt herausgefunden, dass ich für das Signieren das Modul eSign mit einem entsprechenden Binding benutzen muss.
Doch ich bin irgendwie "überwältig" von der Source auf Git und finde keinen Anhaltspunkt wie ich das in meiner Java Anwendung nutzen kann.
Ich finde leider auch keine Dokumentation oder Beispielimplementierung.
Ist es möglich aus einer eigener Java die Signatur Funktion mittels Open eCard Source zu nutzen? Oder kann ich gar die fertige Open eCard App dafür nutzen?
Wenn ja, gibt es Beispielprogramme die eine Signatur Initialisieren? Oder eine Anleitung welche Java Klassen ich wie aufrufen kann?
Ich finde leider keinerlei Dokumentation :-(
Die Einbindung der QES in meiner Anwendung wäre das i-Tüpfelchen in meiner Abschlussarbeit.
Über Hilfen würde ich mich sehr freuen.
Viele Grüße
Dimitrios
RE: Signieren, Verschlüsseln - Added by Tobias Wich about 9 years ago
Hallo,
zuerst zur QES mit dem Personalausweis.Diese ist noch nicht implementiert, die nötigen cryptographischen Bausteine sind aber vorhanden. Im groben und ganzen ist die Signatur eine einfachere Variante der eID Funktionalität (siehe Module addons/tr03112 EAC Protocol).Folgende Schritte müssen durchgeführt werden:
- PACE mit CAN
- eSign PIN eingeben (Pin Compare)
- Signatur erstellen (Generic Crypto ECDSA-SHA256)
- Signatur in Dokument einbauen
Im Rahmen des FutureID Projektes (http://futureid.eu) ist ein eSign Addon entstanden, das Open Source werden soll. Dieses Addon gibt dann schon den Rahmen vor und kümmert sich um Schritt 4. Die nPA spezifischen Schritte müssten da aber auch noch umgesetzt werden. Mir ist auch noch keine Veröffentlichung des Addons bekannt.
Folgendes Dokument gibt einen Überblick über die Erweiterungsmöglichkeiten der Open eCard App.
http://www.ecsec.de/pub/2013_OID_Platform.pdf
Die vermutlich einfachste Möglichkeit die Open eCard App in eine weitere Applikation zu integrieren ist über die integrierte HTTP Schnittstelle (localhost binding). Siehe dazu Abs. 3.4.
Es ist auch möglich die App als Bibliothek einzubauen, dazu ist aber mehr Arbeit nötig und sollte nur dann gemacht werden wenn es gute Gründe gibt. Am Ende kommt es sicher auf den Anwendungsfall an.
Wenn Interesse besteht in dieser Richtung etwas beizutragen helfe ich gerne. Größere Implementierungsarbeiten meinerseits sind aber im Moment nicht für diese Aufgabe geplant.
VG
Tobias
RE: Signieren, Verschlüsseln - Added by Dimitrios Savvidis about 9 years ago
Hallo,
vielen Dank für die Antwort.
Die Schritte die durchgeführt werden müssen, sind mir in der Theorie bekannt. Wüsste aber jetzt überhaupt garnicht wie diese praktisch angehen sollte. Ich werde mich dazu in einem späteren Zeitpunkt widmen. Bei ratlosigkeit werde ich mich dafür noch mal melden.
Eine andere wichtige Frage diesgezüglich, wie ist der gegenwärtige Status des Open-eCard Frameworks?
Als Software/Produkt die eine QES erstellt, gelten Gesetzliche Mitteilungespflichten. Es muss ja eine Herstellererklärung der Bundesnetzagentur vorgelegt werden (§ 17 Abs. 4 Satz 2 [SigG]). Und für Software die einer QES mit Anbieter-Akkreditierung erstellt, muss sogar eine bestätigung von einer Prüf- und Bestätigungsstelle eingeholt werden (§ 15 Abs. 7 [SigG]).
Gilt dies schon für das Open-eCard Framework selber? Oder erst für die daraus entstandene Software die das Umsetzt?
Viele Grüße,
Dimitrios
RE: Signieren, Verschlüsseln - Added by Detlef Hühnlein about 9 years ago
Hallo Dimitrios,
Als Software/Produkt die eine QES erstellt, gelten Gesetzliche Mitteilungespflichten.
Es muss ja eine Herstellererklärung der Bundesnetzagentur vorgelegt werden (§ 17 Abs. 4 Satz 2 [SigG]).Und für Software die einer QES mit Anbieter-Akkreditierung erstellt, muss sogar eine bestätigung
von einer Prüf- und Bestätigungsstelle eingeholt werden (§ 15 Abs. 7 [SigG]).Gilt dies schon für das Open-eCard Framework selber? Oder erst für die daraus entstandene Software die das >Umsetzt?
die Anforderungen des Signaturgesetzes richten sich insbesondere an
Zertifizierungsdiensteanbieter. Durch § 17 Abs. 2 Satz 3 SigG ("Die Signaturschlüssel-Inhaber sollen solche Signaturanwendungskomponenten einsetzen oder andere geeignete Maßnahmen zur Sicherheit qualifizierter elektronischer Signaturen treffen.") ist klargestellt, dass der Anwender letztlich nicht
verpflichtet ist, bestimmte Signaturanwendungskomponenten (SAK) (z.B. solche die eine Herstellererklärung oder
Prüfung und Bestätigung haben) einzusetzen. Vielmehr ist der Anwender in der Wahl der SAK komplett frei.
Einer qualifizierten elektronischen Signatur kann man ohnehin nicht ansehen, mit welcher SAK sie erstellt wurde.
Insofern würde nichts dagegen sprechen, selbst eine SAK from scratch zu programmieren
oder die Open eCard App in geeigneter Weise zu ergänzen (siehe z.B. http://www.ecsec.de/pub/2013_OID_Platform.pdf, http://www.ecsec.de/pub/2013_DACH.pdf, http://link.springer.com/article/10.1007/s11623-014-0098-5) und für die Erzeugung und Prüfung von qualifizierten elektronischen Signaturen einzusetzen.
Eine Herstellererklärung für eine entsprechende Open Source SAK zu erstellen,
wäre sicherlich auch problemlos möglich. Allerdings ist hier zu erwarten, dass es durch die
vor dem Hintergrund der eIDAS-Verordnung anstehende SigG-Novellierung bald keine
Herstellerklärungen und auch keine freiwillige Akkreditierung mehr geben wird.
Insofern sollte man sich hier zunächst auf die technische Umsetzung statt auf die
vermutlich bald obsolete Herstellererklärung konzentrieren.
VG,
dh