2017-12-25 5 views
2

Ich bin derzeit auf einigen rechtlichen Anforderungen für mein Land arbeite (elektronische Rechnungsstellung), aber ich bin fest über die Unterzeichnung Teil, hier der Hintergrund:Signing XML mit XAdES-EPES in Java

  1. Die Regierung stellt Jeder Benutzer mit einer .p12-Zertifikatsdatei
  2. Sobald ein XML generiert wurde, muss er mit XAdES-EPES basierend auf dem zuvor erwähnten .p12-Zertifikat signiert werden.

Ich weiß nicht wirklich viel verstehen über Zertifikate und Sicherheits Artefakte, fand ich eine Java-Bibliothek mit dem Namen: Xades4J aber die meisten Beispiele erwähnen einen Schlüsselspeicher und TSA (was übrigens nicht wirklich verstehen, was ein TSA ist) Das Szenario, das ich habe, scheint sehr einfach zu sein, aber ich glaube, dass die meisten der genannten Beispiele weit zu komplex sind.

Kann mir jemand eine Hand über die Konzepte geben und/oder ein Beispiel dafür geben, wie Sie mit XAdES-EPES mit einer bereits vorhandenen p12-Datei signieren können?

Ich habe einige C# -Beispiele gesehen, die ich auch testen werde, aber ich schreibe hauptsächlich in Java.

Vielen Dank im Voraus

+0

Ein Keystore ist eine Art von Speicher für einen oder mehrere Schlüssel und zugehörige Daten; PKCS12, oft abgekürzt (wie Dateiendung) P12 oder p12 und auch PFX genannt, ist ein Keystore-Format nach Industriestandard, das normalerweise einen verschlüsselten privaten Schlüssel mit Zertifikat oder Kette enthält - oder, wenn Sie es vorziehen, ein Zertifikat/Kette mit privatem Schlüssel. Java Crypto hat PKCS12 lange als _a_ keystore-Format unterstützt, und Java 9, das gerade veröffentlicht wurde, wird zum Standard. TSA ist in diesem Zusammenhang [Zeitstempelbehörde] (https://en.wikipedia.org/wiki/Trusted_timestamping#Trusted_%28digital%29_timestamping). –

+0

Wird Ihre Bewerbung einen rechtlichen Kontext in Spanien haben?Ich frage das, weil du dann die Hilfsmittel hast, um das auszuarbeiten. – UHDante

Antwort

0

Beginnen wir von Anfang an.

Keystor: In einem einfachen Konzept ist es, wo Sie Ihre Zertifikate speichern, vor der Unterzeichnung Prozess, den Sie zur Auswahl eines Zertifikats haben in der Regel aus einem Schlüsselspeicher extrahiert ->Here you get a complete perspective about what is a keyStore.

TSA: Time Stamp Autoriry, dies ist ein externe Entität muss es eine offizielle sein, wenn die Regierung Ihre Unterschriften akzeptieren muss. Dadurch erhalten Sie eine Zeitmarke und zusätzliche Informationen zu Ihrer früheren Signatur, um sicherzustellen, dass Ihr Zertifikat gültig war und die Signatur zu diesem Zeitpunkt korrekt war. Here is a close context to extend your information about signatures

Nehmen Sie daran, dass XAdES-EPES veraltet ist, sollten Sie stattdessen XAdES-A verwenden oder AdES-LTA (wenn Sie periodische timestamping benötigen).

Falls und nur in dem Fall, dass Ihre Anwendung einen rechtlichen Rahmen, in Spanien haben Sie diese Tools zu tun, verwenden könnte, was Ihr benötigt: Sing and validate signatures

Hoffnung, das hilft.

1

Vor kurzem gab es in den Problemen mit xades4j Github eine Konversation um ein Szenario, das Ihren Anforderungen sehr ähnlich war. Kasse dieses Problem:

https://github.com/luisgoncalves/xades4j/issues/134

Es Beispielcode mit einer p12-Datei für Zertifikat/Schlüssel enthält. Hoffe, das hilft.

+0

Dies sollte die akzeptierte Antwort sein. – corderazo00