weixin_39861955
weixin_39861955
2020-12-09 08:41

Unregelmäßige Fehler bei Signatur

Hallo!

Ich habe momentan mit unregelmäßigen Fehlern bei der Signatur zu kämpfen. Ich habe mal als Beispiel ein DEP angehängt. In diesem Fall ist Beleg 1 und 3 fehlerhaft (gezählt von 0). Ich kann jedoch keinen Fehler erkennen

dep-export.json:


{
  "Belege-Gruppe": [
    {
      "Signaturzertifikat": "MIIFHDCCAwSgAwIBAgIETxyX1DANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCQVQxSDBGBgNVBAoMP0EtVHJ1c3QgR2VzLiBmLiBTaWNoZXJoZWl0c3N5c3RlbWUgaW0gZWxla3RyLiBEYXRlbnZlcmtlaHIgR21iSDEjMCEGA1UECwwaQS1UcnVzdCBSZWdpc3RyaWVya2Fzc2UuQ0ExIzAhBgNVBAMMGkEtVHJ1c3QgUmVnaXN0cmllcmthc3NlLkNBMB4XDTE3MDMwNzExMDI1NFoXDTIyMDMwNzExMDI1NFowPjELMAkGA1UEBhMCQVQxGDAWBgNVBAMMD1VJRCBBVFU2NzQ0NTIwNDEVMBMGA1UEBRMMNDc2OTAxNDQxOTE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsRlghw2i39zIuZtcZaoCFO12jnVyXm2sAMbDjH9UKV310wKVc/keneZKIb6lynhm5HzncQDekz/uXXIld3MkhKOCAYcwggGDMH8GCCsGAQUFBwEBBHMwcTBGBggrBgEFBQcwAoY6aHR0cDovL3d3dy5hLXRydXN0LmF0L2NlcnRzL0EtVHJ1c3QtUmVnaXN0cmllcmthc3NlLUNBLmNlcjAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AuYS10cnVzdC5hdC9vY3NwMBMGA1UdIwQMMAqACEBHnq7jkN+2MBEGA1UdDgQKBAhMLsRMVV8O9TAOBgNVHQ8BAf8EBAMCBsAwHAYHKigACgELAQQRDA9VSUQgQVRVNjc0NDUyMDQwCQYDVR0TBAIwADBYBgNVHSAEUTBPME0GBiooABEBGDBDMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmEtdHJ1c3QuYXQvZG9jcy9jcC9BLVRydXN0LVJlZ2lzdHJpZXJrYXNzZTBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vY3JsLmEtdHJ1c3QuYXQvY3JsL0EtVHJ1c3QtUmVnaXN0cmllcmthc3NlLkNBMA0GCSqGSIb3DQEBCwUAA4ICAQCLE0i3JpcWvdtJRIi2aMbOabNVz2WoucJYV+jwfzjzLcLmEljbiIxvtGDMUNNbvKo6ZZLVbdGlqAudnEMUTf5wPJKhab9zDG3RSDRsOUZTHV68Hz4tWtwQzf7jVQdIq5DRA4m46zcejzRGnJhZPTZWHaUG8vfupu2uXlhoIhVSAiU7Gs4/LjARRh9tKwP5svdoL22yi7B0TUI+OvQ2O6D4Cm5fZCABroOSo+J87bqLliC+kHS6k0iHbWIBuTKtjU8LKZy5JchTD7MV46Ol+/SVyBkfZt3s4drL1YIiPCQBsfdvR7ffL32dAjjgTNpzycb85uCq3ptRPglVfzLYhYN4BujyuF7gRGOtpGo9QV96H41bljYI3kwWh0YWryx2lO4keU4Zroh9+zFRforlkKWLcnDwhzodzC1HO8D72MQIUdj/vx+wqjLoRNWBNdCj6NayYrGfJEWkoniruQdilSgydWC+tTjOB8CvHcdmjBuGlKz9libsBCvjkBSbtUphgRKv/7wlgJ0oexFTmBsuq+iMaxcIGLwqVK1ai8sVW4Bx1QFmMUUme0s3EI6LeUABsYKHbVr68CXs1V0iStotStC2fSKOQUq+T6HWTJPQHmGsZVO8YC5PnPoTcA/qFusPrM9t0l1JDwPs3HJ5d45IdOTWornbE1XS6WeD9IFzzfO/Ig==",
      "Zertifizierungsstellen": [
        "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"
      ],
      "Belege-kompakt": [
        "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9URVNUMV9CMDAwMDFfMjAxNy0wMy0xMFQwMDoxMDoxMF8wLDAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfQ0hNN25XdkRoTFU9XzRGMUM5N0Q0X2hJS1Jqa2NGeHI0PQ.yF0PrSUZmTowa9MlHRqbWIPrkzeJ5DdBN4KUcMd53KvIWozraS1H-846jzSXL3sEHT1l1pajXpqizKcxoIe84w",
        "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9URVNUMV9CMDAwMDJfMjAxNy0wMy0xMFQwMDoxOToyOF82MzIsODBfMCwwMF8wLDAwXzAsMDBfMCwwMF9zbkozK0FFM1R4Zz1fNEYxQzk3RDRfZUhwQUZnOFZlNE09.DuCJkPYRuLB379cEgcLd3DZ0mAXJVkJGQWAJ1cBZmjdUSBdWJ5DydNCFpkoqKqhhjgu1vaaPiHeM0GAkeSq2RA",
        "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9URVNUMV9CMDAwMDNfMjAxNy0wMy0xMFQwMDoxOTo0OF8yNSwxOV8wLDAwXzIzLDYxXzAsMDBfMCwwMF8xYnpPOWxqK0dQOD1fNEYxQzk3RDRfUGVUTkZuVG4wQ2M9.kM5rUV3lgs-nTG938Hg7Jxn3m4Q62t8q2MmwO8qcEMeZuK58iFIiOPIpXyIN3dWtTcanbpJCGxTvXLSyS-pbXw",
        "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9URVNUMV9CMDAwMDRfMjAxNy0wMy0xMFQwMDoxOTo1NV8xMiwwMF8wLDAwXzAsMDBfMCwwMF8wLDAwX1g3TVRIb2hweGM4PV80RjFDOTdENF85RzdqS3dKQ0xIRT0.xcw3_rq7Qu3Ija83FKNbAx1lj7Eo76BOryxEdSrlPhpiNaIPCuZ-V1rtmZhDlnD8dybaBsyH5UfPmZxTf8t4MQ"
      ]
    }
  ]
}

cryptographicMaterialContainer.json:


{
  "base64AESKey": "AfhYnKskpr3zssMJwF/cI4CaS5S+GmINOz/CE09Kdsc=",
  "certificateOrPublicKeyMap": {
    "4F1C97D4": {
      "id": "4F1C97D4",
      "signatureDeviceType": "CERTIFICATE",
      "signatureCertificateOrPublicKey": "MIIFHDCCAwSgAwIBAgIETxyX1DANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCQVQxSDBGBgNVBAoMP0EtVHJ1c3QgR2VzLiBmLiBTaWNoZXJoZWl0c3N5c3RlbWUgaW0gZWxla3RyLiBEYXRlbnZlcmtlaHIgR21iSDEjMCEGA1UECwwaQS1UcnVzdCBSZWdpc3RyaWVya2Fzc2UuQ0ExIzAhBgNVBAMMGkEtVHJ1c3QgUmVnaXN0cmllcmthc3NlLkNBMB4XDTE3MDMwNzExMDI1NFoXDTIyMDMwNzExMDI1NFowPjELMAkGA1UEBhMCQVQxGDAWBgNVBAMMD1VJRCBBVFU2NzQ0NTIwNDEVMBMGA1UEBRMMNDc2OTAxNDQxOTE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsRlghw2i39zIuZtcZaoCFO12jnVyXm2sAMbDjH9UKV310wKVc/keneZKIb6lynhm5HzncQDekz/uXXIld3MkhKOCAYcwggGDMH8GCCsGAQUFBwEBBHMwcTBGBggrBgEFBQcwAoY6aHR0cDovL3d3dy5hLXRydXN0LmF0L2NlcnRzL0EtVHJ1c3QtUmVnaXN0cmllcmthc3NlLUNBLmNlcjAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AuYS10cnVzdC5hdC9vY3NwMBMGA1UdIwQMMAqACEBHnq7jkN+2MBEGA1UdDgQKBAhMLsRMVV8O9TAOBgNVHQ8BAf8EBAMCBsAwHAYHKigACgELAQQRDA9VSUQgQVRVNjc0NDUyMDQwCQYDVR0TBAIwADBYBgNVHSAEUTBPME0GBiooABEBGDBDMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmEtdHJ1c3QuYXQvZG9jcy9jcC9BLVRydXN0LVJlZ2lzdHJpZXJrYXNzZTBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vY3JsLmEtdHJ1c3QuYXQvY3JsL0EtVHJ1c3QtUmVnaXN0cmllcmthc3NlLkNBMA0GCSqGSIb3DQEBCwUAA4ICAQCLE0i3JpcWvdtJRIi2aMbOabNVz2WoucJYV+jwfzjzLcLmEljbiIxvtGDMUNNbvKo6ZZLVbdGlqAudnEMUTf5wPJKhab9zDG3RSDRsOUZTHV68Hz4tWtwQzf7jVQdIq5DRA4m46zcejzRGnJhZPTZWHaUG8vfupu2uXlhoIhVSAiU7Gs4/LjARRh9tKwP5svdoL22yi7B0TUI+OvQ2O6D4Cm5fZCABroOSo+J87bqLliC+kHS6k0iHbWIBuTKtjU8LKZy5JchTD7MV46Ol+/SVyBkfZt3s4drL1YIiPCQBsfdvR7ffL32dAjjgTNpzycb85uCq3ptRPglVfzLYhYN4BujyuF7gRGOtpGo9QV96H41bljYI3kwWh0YWryx2lO4keU4Zroh9+zFRforlkKWLcnDwhzodzC1HO8D72MQIUdj/vx+wqjLoRNWBNdCj6NayYrGfJEWkoniruQdilSgydWC+tTjOB8CvHcdmjBuGlKz9libsBCvjkBSbtUphgRKv/7wlgJ0oexFTmBsuq+iMaxcIGLwqVK1ai8sVW4Bx1QFmMUUme0s3EI6LeUABsYKHbVr68CXs1V0iStotStC2fSKOQUq+T6HWTJPQHmGsZVO8YC5PnPoTcA/qFusPrM9t0l1JDwPs3HJ5d45IdOTWornbE1XS6WeD9IFzzfO/Ig=="
    }
  }
}

Die Daten zum siegnieren werden wie folgt aufbereitet:


AsignRkOnline asignRkOnline = (AsignRkOnline) receipt.signatureCreationUnit
MessageDigest messageDigest = MessageDigest.getInstance(asignRkOnline.algorithm.hashAlgorithm)

String jwsHeader = "{\"alg\":\"${receipt.signatureCreationUnit.algorithm}\"}"
String jwsData = Base64.encodeBase64URLSafeString(jwsHeader.getBytes("UTF-8")) + "." +
        Base64.encodeBase64URLSafeString(receiptService.getDataForSigning(receipt).getBytes("UTF-8"))
String hashEncoded = Base64.encodeBase64String(messageDigest.digest(jwsData.getBytes("UTF-8")))

RestBuilder rest = new RestBuilder()
RestResponse signHashResponse = rest.post("${WEBSERVICE_URL}/${asignRkOnline.username}/Sign/Hash") {
    json {
        password = asignRkOnline.password
        hash = hashEncoded
    }
}

Der verwendete Hash-Algorithmus ist natürlich SHA-256 und Base64 ist aus org.apache.commons.codec.binary. Erkennt jemand einen offensichtlichen Fehler?

Vielen Dank im Vorraus!

该提问来源于开源项目:BMF-RKSV-Technik/at-registrierkassen-mustercode

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • weixin_39861955 weixin_39861955 5月前

    bei dem konkreten DEP bekomme ich für Beleg #1 und #3, Beleg #0 und #2 sind gültig:

    
    {
      "verificationId" : "VERIFICATION_FROM_CASHBOX",
      "version" : 1,
      "verificationName" : "Prüfergebnis - Kasse",
      "verificationTextualDescription" : "Bei der Belegprüfung wird untersucht, ob die Vorgaben der RKSV in Bezug auf den maschinenlesbaren Code am Beleg und auf die meldepflichtigen Metadaten der Sicherheitseinrichtung befolgt werden. Im Fehlerfall sind die genauen Fehlerinformationen nachfolgend angeführt.",
      "verificationState" : "FAIL",
      "verificationResultDetailedMessage" : "Der vorliegende Beleg weist Fehler im maschinenlesbaren Code auf. Am besten, Sie  übermitteln zur Problembehandlung die nachfolgende Fehlerbeschreibung an Ihren Kassenhersteller.",
      "verificationTimestamp" : "2017-03-10T08:16:51.599+01:00",
      "verificationResultList" : [ {
        "verificationId" : "RECEIPT_FULL",
        "version" : 1,
        "verificationName" : "Detailprüfung des maschinenlesbaren Codes",
        "verificationTextualDescription" : "Dieses Modul und die dazugehörigen Submodule überprüfen die Gültigkeit des Belegs. Dabei werden sowohl Formatprüfungen, kryptographische Prüfungen (verschlüsselter Umsatzzähler, Signatur) als auch Prüfungen im Zusammenhang mit dem Status der Kasse bzw. der Signatur-/Siegelerstellungseinheit durchgeführt.",
        "verificationState" : "FAIL",
        "verificationTimestamp" : "2017-03-10T08:16:51.619+01:00",
        "verificationResultList" : [ {
          "verificationId" : "CRYPTO",
          "version" : 1,
          "verificationName" : "Kryptographische Prüfungen",
          "verificationTextualDescription" : "In diesem Modul und den dazugehörigen Submodulen werden die kryptographische Validität des Umsatzzählers und des Signaturwerts überprüft. Für den Umsatzzähler kann eine detaillierte Prüfung nur beim Startbeleg durchgeführt werden, da nur in diesem Fall der entschlüsselte Wert bekannt ist (Umsatzzähler = 0).",
          "verificationState" : "FAIL",
          "verificationTimestamp" : "2017-03-10T08:16:51.635+01:00",
          "verificationResultList" : [ {
            "verificationId" : "CRYPTO_SIGNATURE",
            "version" : 1,
            "verificationName" : "Kryptographie: Überprüfung der kryptographischen Gültigkeit der Signatur",
            "verificationTextualDescription" : "In diesem Modul wird die kryptographische Gültigkeit der Signatur mit Hilfe des öffentlichen Schlüssels überprüft.",
            "verificationState" : "FAIL",
            "verificationResultDetailedMessage" : "Die kryptographische Gültigkeit der Signatur ist nicht gegeben. Es scheint aber nicht der definierte Fall der ausgefallenen Sicherheitseinrichtung zuzutreffen.",
            "verificationTimestamp" : "2017-03-10T08:16:51.635+01:00"
          } ]
        } ]
      } ]
    }
    

    Wird das Zertifikat und Zertifizierungsstellen im DEP weggelassen kommt der gleiche Fehler.

    点赞 评论 复制链接分享
  • weixin_39861955 weixin_39861955 5月前

    Nein das habe ich überprüft, das trifft auf die oben angeführten Datensätze nicht zu. In der JWS Repräsentation sind keine = enthalten, soweit ich das feststellen konnte werden diese bereits vom dem Base64 Encoder/Decoder den ich verwendete automatisch entfernt wenn urlSafe=true verwendet wird

    点赞 评论 复制链接分享
  • weixin_39886172 weixin_39886172 5月前

    Posten sie bitte noch die zugehörigen maschinenlesbaren Codes.

    点赞 评论 复制链接分享
  • weixin_39861955 weixin_39861955 5月前

    Hier mal ein Beleg mit allen möglichen Werten, stammt aber nicht aus dem obigen DEP da ich dazu keine Debug Werte mehr habe:

    
    
    Data to sign        : _R1-AT1_TEST1_B00005_2017-03-10T10:55:05_25,19_0,00_23,61_0,00_0,00_U2Y1NfT1HCo=_4F1C97D4_tJfHjA2P1Ys=
    JWS Header+Payload  : eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9URVNUMV9CMDAwMDVfMjAxNy0wMy0xMFQxMDo1NTowNV8yNSwxOV8wLDAwXzIzLDYxXzAsMDBfMCwwMF9VMlkxTmZUMUhDbz1fNEYxQzk3RDRfdEpmSGpBMlAxWXM9
    SHA-256 Hex         : 94 1e f0 13 a6 f9 de 84 62 8b cb 95 61 3b 83 28 5b dd d6 bf be 84 8e 5f a8 ef b9 96 49 7e d1 c3
    SHA-256 Base64      : lB7wE6b53oRii8uVYTuDKFvd1r++hI5fqO+5lkl+0cM=
    Signature Base64url : ZQRO5u1owY4GpREkynpqa4_xfTueJxrVPyuzOqDVifGsXsc5O1HipBTVokuMpNf1jCAPSFIW86ITYEu3iXzAAg
    JWS Compact         : eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9URVNUMV9CMDAwMDVfMjAxNy0wMy0xMFQxMDo1NTowNl8yNSwxOV8wLDAwXzIzLDYxXzAsMDBfMCwwMF9VMlkxTmZUMUhDbz1fNEYxQzk3RDRfdEpmSGpBMlAxWXM9.ZQRO5u1owY4GpREkynpqa4_xfTueJxrVPyuzOqDVifGsXsc5O1HipBTVokuMpNf1jCAPSFIW86ITYEu3iXzAAg
    machine readable    : _R1-AT1_TEST1_B00005_2017-03-10T10:55:05_25,19_0,00_23,61_0,00_0,00_U2Y1NfT1HCo=_4F1C97D4_tJfHjA2P1Ys=_ZQRO5u1owY4GpREkynpqa4/xfTueJxrVPyuzOqDVifGsXsc5O1HipBTVokuMpNf1jCAPSFIW86ITYEu3iXzAAg==
    

    Ich habe bis zum Hash alles händisch nachgerechnet mit diversen Tools und es passt bis zum SHA-256 Hash. Ich sende an a.sign RK ONLINE entweder SHA-256 Base64 an /Sign/Hash oder JWS Header+Payload an /Sign/Plain. Bei beiden Varianten gibt es immer wieder mal Fehler bei der Signatur. Mal scheint die Signatur gültig zu sein, mal nicht.

    点赞 评论 复制链接分享
  • weixin_39861955 weixin_39861955 5月前

    Ich konnte das Problem identifizieren. Zwischen der JWS Payload beim Signieren und der Payload im DEP ist ein Zeichen anders, dekotiert sieht man dass der Timestamp im DEP eine Sekunde später ist.

    
    _R1-AT1_TEST1_B00005_2017-03-10T10:55:05_25,19_0,00_23,61_0,00_0,00_U2Y1NfT1HCo=_4F1C97D4_tJfHjA2P1Ys=
    _R1-AT1_TEST1_B00005_2017-03-10T10:55:06_25,19_0,00_23,61_0,00_0,00_U2Y1NfT1HCo=_4F1C97D4_tJfHjA2P1Ys=
    

    Da das DEP beim Export aus den Einzelfeldern erzeugt wird, und nicht der komplette JWS String gespeichert wird, vermute ich hier eventuell einen Fehler im ORM Layer (Hibernate) oder der Datenbank (MySQL). Mal sehen ob wir den JWS String und den maschinenlesbaren Code nicht noch extra in der DB speichern zur Sicherheit. Wie handhabt Ihr das?

    点赞 评论 复制链接分享
  • weixin_39861955 weixin_39861955 5月前

    Noch mal kurzer Nachtrag, eventuell hilft es ja jemand anders: DateFormat ignoriert den Millisekundenteil einfach, beim Speichern wird im Fall von Grails->Hibernate->MaSQL->DATETIME gerundet. An welcher Stelle die Rundung genau stattfindet habe ich nicht untersucht da für mich nicht relevant. Gelöst wurde es dadurch dass ich den ms-Teil bereits vorher auf 0 gesetzt habe mit DateUtils.truncate aus Apache Common Lang

    点赞 评论 复制链接分享
  • weixin_39886172 weixin_39886172 5月前

    Was ist der gemeldete Fehler? Lassen sie Signaturzertifikat und Zertifizierungsstellen mal weg, das ist nur optional.

    点赞 评论 复制链接分享

相关推荐