Project

General

Profile

open-ecard fails

Added by Jürgen Bausa over 3 years ago

I am running open-ecard-app 1.4.3-1 on debian buster (amd64) and use a SCL-011 card reader. While the open-ecard-app works in principle (eID card is detected and I can change the PIN), but I cannot authenticate via Internet (I tried KBA). Please find at the end of this message the part of the log where the error occurs (as I think). If needed I can of course provide the full log.

I also tried AusweisApp2 and it failed at exactly the same point. Of course, logs are different, but the dialog between software and card is similar. I put the AusweisApp2 error log at the end.

Any help highly appreceated.

Regrads, Jürgen

------ open-ecard-log -----------------------------------------------------
2020-08-17 21:50:06,703+02 [PAOS] DEBUG o.o.t.dispatcher.MessageDispatcher:114 - Delivering message of type: iso.std.iso_iec._24727.tech.schema.Transmit
2020-08-17 21:50:06,704+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:248 - Apply secure messaging to APDU: 00A4020402011DFF
2020-08-17 21:50:06,706+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:251 - Send APDU: 0CA4020420871101427B70BC54F006BA9B0C3D2A681C46169701FF8E08452C3B5EB6B81A2E00
2020-08-17 21:50:06,756+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:254 - Receive APDU: 874101E84A69239B0B3D3AB8923DE54B0402A644CB5FB17D656BD7954BBF43356B4CA776C77BA5A4A31028104F4C0100F62B104F6F786ACF9555D64521D2AD4FB1681D990290008E0812FC52651A359B5D9000
2020-08-17 21:50:06,758+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:257 - Remove secure messaging from APDU: 6230800207578201218302011D8801E88A0105AB1D8401A4AF0DB403950120A4069501808301428401B08401B1B4039501209000
2020-08-17 21:50:06,771+02 [PAOS] DEBUG o.o.t.dispatcher.MessageDispatcher:122 - Sending API_CALL_FINISHED event.
2020-08-17 21:50:06,771+02 [PAOS] DEBUG o.o.c.event.EventDispatcherImpl:140 - Sending event notification API_CALL_FINISHED to EventCallback org.openecard.common.sal.state.SALStateCallback@26e356f0.
2020-08-17 21:50:06,771+02 [PAOS] DEBUG o.o.c.event.EventDispatcherImpl:140 - Sending event notification API_CALL_FINISHED to EventCallback org.openecard.addon.EventHandler@942a29c.
2020-08-17 21:50:06,773+02 [PAOS] DEBUG o.o.common.util.HandlerUtils:145 - Found SlotHandle in object of type Transmit.
2020-08-17 21:50:06,786+02 [PAOS] DEBUG o.o.t.dispatcher.MessageDispatcher:105 - Sending API_CALL_STARTED event.
2020-08-17 21:50:06,787+02 [PAOS] DEBUG o.o.c.event.EventDispatcherImpl:140 - Sending event notification API_CALL_STARTED to EventCallback org.openecard.common.sal.state.SALStateCallback@26e356f0.
2020-08-17 21:50:06,787+02 [PAOS] DEBUG o.o.c.event.EventDispatcherImpl:140 - Sending event notification API_CALL_STARTED to EventCallback org.openecard.addon.EventHandler@942a29c.
2020-08-17 21:50:06,788+02 [PAOS] DEBUG o.o.t.dispatcher.MessageDispatcher:114 - Delivering message of type: iso.std.iso_iec._24727.tech.schema.Transmit
2020-08-17 21:50:06,789+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:248 - Apply secure messaging to APDU: 00B00000FF
2020-08-17 21:50:06,790+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:251 - Send APDU: 0CB000000D9701FF8E0870D5DCBE180C1FE200
2020-08-17 21:50:06,852+02 [PAOS] DEBUG o.o.i.s.wrapper.SingleThreadChannel:254 - Receive APDU: CA7C24A8497B7E9143990290008E08D3FE8C0011F23F889000
2020-08-17 21:50:06,853+02 [PAOS] ERROR o.o.ifd.protocol.pace.PACEProtocol:161 - Malformed Secure Messaging APDU
java.io.IOException: Malformed Secure Messaging APDU
at /org.openecard.ifd.protocol.pace.SecureMessaging.decrypt(SecureMessaging.java:240)
at /org.openecard.ifd.protocol.pace.SecureMessaging.decrypt(SecureMessaging.java:187)
at /org.openecard.ifd.protocol.pace.PACEProtocol.removeSM(PACEProtocol.java:155)
at /org.openecard.ifd.scio.wrapper.SingleThreadChannel.transmit(SingleThreadChannel.java:256)
at /org.openecard.ifd.scio.IFD.transmit(IFD.java:967)
at jdk.internal.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at /org.openecard.transport.dispatcher.Service.invoke(Service.java:192)
at /org.openecard.transport.dispatcher.MessageDispatcher.deliver(MessageDispatcher.java:116)
at /org.openecard.transport.dispatcher.MessageDispatcher.safeDeliver(MessageDispatcher.java:135)
at /org.openecard.common.apdu.common.CardCommandAPDU.transmit(CardCommandAPDU.java:677)
at /org.openecard.common.apdu.utils.CardUtils.readFile(CardUtils.java:277)
at /org.openecard.sal.protocol.eac.ChipAuthentication.readEFCardSecurity(ChipAuthentication.java:121)
at /org.openecard.sal.protocol.eac.AuthenticationHelper.performAuth(AuthenticationHelper.java:99)
at /org.openecard.sal.protocol.eac.TerminalAuthenticationStep.perform(TerminalAuthenticationStep.java:126)
at /org.openecard.sal.protocol.eac.TerminalAuthenticationStep.perform(TerminalAuthenticationStep.java:53)
at /org.openecard.addon.sal.SALProtocolBaseImpl.perform(SALProtocolBaseImpl.java:163)
at /org.openecard.addon.sal.SALProtocolBaseImpl.didAuthenticate(SALProtocolBaseImpl.java:244)
at /org.openecard.addon.sal.SALProtocolProxy.didAuthenticate(SALProtocolProxy.java:147)
at /org.openecard.sal.TinySAL.didAuthenticate(TinySAL.java:2057)
at /org.openecard.sal.SelectorSAL.didAuthenticate(SelectorSAL.java:536)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at /org.openecard.transport.dispatcher.Service.invoke(Service.java:192)
at /org.openecard.transport.dispatcher.MessageDispatcher.deliver(MessageDispatcher.java:116)
at /org.openecard.transport.paos.PAOS.sendStartPAOS(PAOS.java:420)
at /org.openecard.binding.tctoken.PAOSTask.call(PAOSTask.java:112)
at /org.openecard.binding.tctoken.PAOSTask.call(PAOSTask.java:53)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:832)

------- AusweisApp2 log --------------------------

Performing Read EF.CardSecurity
card_pcsc 2020.08.15 10:04:48.148 3697 PcscCard::transmit(card/pcsc/PcscCard.cpp:267) : SCardTransmit cmdBuffer: "0ca4020c1d871101d17f25e1fbb07cfe2838317a996e41468e08968a515b2be6b07c00"
card_pcsc 2020.08.15 10:04:48.180 3697 PcscCard::transmit(card/pcsc/PcscCard.cpp:276) : SCardTransmit for "SCL01x Contactless Reader [SCL01x Contactless Reader] (00000741000005) 00 00" : "Scard_S_Success"
card_pcsc 2020.08.15 10:04:48.180 3697 PcscCard::transmit(card/pcsc/PcscCard.cpp:286) : SCardTransmit resBuffer: "990290008e085e9ec93c2d8be9f99000"
card_pcsc 2020.08.15 10:04:48.181 3697 PcscCard::transmit(card/pcsc/PcscCard.cpp:267) : SCardTransmit cmdBuffer: "0cb000000d9701ff8e085674b27adf5fc1d300"
card_pcsc 2020.08.15 10:04:48.242 3697 PcscCard::transmit(card/pcsc/PcscCard.cpp:276) : SCardTransmit for "SCL01x Contactless Reader [SCL01x Contactless Reader] (00000741000005) 00 00" : "Scard_S_Success"
card_pcsc 2020.08.15 10:04:48.242 3697 PcscCard::transmit(card/pcsc/PcscCard.cpp:286) : SCardTransmit resBuffer: "751f0e58af21c7c5a8990290008e083796256c396144969000"
card 2020.08.15 10:04:48.242 3697 W SM_PROCESSING_STATUS](card/base/asn1/ASN1TemplateUtil.h:121) : Cannot decode ASN.1 object: "error:0D07209B:asn1 encoding routines:ASN1_get_object:too long | error:0D068066:asn1 encoding routines:asn1_check_tlen:bad object header | error:0D06C03A:asn1 encoding routines:asn1_d2i_ex_primitive:nested asn1 error | error:0D08303A:asn1 encoding routines:asn1_template_noexp_d2i:nested asn1 error"
card 2020.08.15 10:04:48.242 3697 C ...onse::SecureMessagingResponse(card/base/SecureMessagingResponse.cpp:71) : Error on encoding status
card 2020.08.15 10:04:48.243 3697 CardConnectionWorker::transmit(card/base/CardConnectionWorker.cpp:93) : Stopping Secure Messaging since it failed. The channel therefore must no be re-used.


Replies (4)

RE: open-ecard fails - Added by Tobias Wich over 3 years ago

Der Ausweis liefert ungültige Daten bei der etablierung des Secure Messaging Kanals. Tritt dies auch bei anderen Anwendungen auf? z.B. hier https://www.buergerserviceportal.de/idp/profile/SAML2/Redirect/SSO?execution=e2s1

RE: open-ecard fails - Added by Jürgen Bausa over 3 years ago

Hallo Tobias,

ich habe inzwischen den Fehler gefunden. Es scheint ein Bug im Treiber zu sein. Hatte die neueste Version (2.16 von 2014) installiert und damit ging es nicht. Jetzt habe ich stattdessen Version 2.09 (2011) installiert und damit funktioniert das Ganze (mit open-ecard und auch mit Ausweisapp2).

Dein Link funktioniert bei mir nicht. Ich denke, den brauche ich jetzt aber auch nicht mehr. Wenn es mit dem KBA funktioniert, sollte es auch mit anderen Seiten gehen.

Gruß,

Jürgen

RE: open-ecard fails - Added by Tobias Wich over 3 years ago

Na das ist doch prima. Um welchen Treiber geht es? Dann bringt dieser Thread auch anderen Leuten, die auf das Problem stoßen etwas.

RE: open-ecard fails - Added by Jürgen Bausa over 3 years ago

Gutes Argument.

Ich besitze zwei Kartenleser:

  • SCM/Identiv SCL011 (Firmware 1.09, meldet sich mit idVendor=04e6, idProduct=5292, bcdDevice= 1.09)
  • SCM/Identiv SCL011G (Firmware 1.20, meldet sich mit idVendor=04e6, idProduct=5293, bcdDevice= 1.20)
    Es handelt sich ursprünglich auch um einen SCL011, aber durch ein Firmwareupdate hat sich der Modellname geändert

Linux-Treiber habe ich dazu drei verschiedene gefunden:

  • Version 2.06 von 2010 (nicht getestet)
  • Version 2.09 von 2011 (funktioniert, diese Version benutze ich)
    kann unter https://support.identiv.com/scl010-scl011/ heruntergeladen werden
  • Version 2.16 von 2014 (funktioniert grundsätzlich, hat aber zumindest einen Bug, so dass die Authentizierung
    sowohl mit open-ecard als auch mit AusweisApp2 nicht funktioniert)

Zu beachten ist, dass der Treiber Version 2.09 den SCL011 nicht als unterstützen Leser listet. Wenn man den ID aber unter
sclgeneric_2.09_linux_64bit/proprietary/SCLGENERIC.bundle/Contents/Info.plist einträgt (nach Auspacken des Archivs und
vor der Installation), dann klappt es mit beiden Lesern.

Dort müssen zwei Zeilen ergänzt werden:

original:

 
     <array>
        <string>0x04E6</string>
        <string>0x04E6</string>        
        <string>0x04E6</string>
        <string>0x04E6</string>
    </array>

    <key>ifdProductID</key>
    <array>
        <string>0x5591</string>
        <string>0x5291</string>
        <string>0x5290</string>
        <string>0x5293</string>
    </array>

    <key>ifdFriendlyName</key>
    <array>
        <string>SCL3711 Reader and NFC Device</string>
        <string>SCL010 Contactless Reader</string>
        <string>SCR331CL-NTTCom</string>
        <string>SCL011G Contactless Reader</string>
    </array>

Und nach Änderung:

 
    <array>
        <string>0x04E6</string>
        <string>0x04E6</string>        
        <string>0x04E6</string>
        <string>0x04E6</string>
        <string>0x04E6</string>
    </array>

    <key>ifdProductID</key>
    <array>
        <string>0x5591</string>
        <string>0x5291</string>
        <string>0x5290</string>
        <string>0x5293</string>
        <string>0x5292</string>
    </array>

    <key>ifdFriendlyName</key>
    <array>
        <string>SCL3711 Reader and NFC Device</string>
        <string>SCL010 Contactless Reader</string>
        <string>SCR331CL-NTTCom</string>
        <string>SCL011G Contactless Reader</string>
        <string>SCL011 Contactless Reader</string>
    </array>

nach der Installation mit dem im Treiber enthaltenen install.sh Skript gehen dann beide Leser.

Noch ein Hinweis zu AusweisApp2: Da die Leser beide nicht in der Datei supported-readers.json autauchen,
werden sie unter Einstellungen nicht richtig angezeigt (entweder "kein Leser" oder "fehlender Treiber").
Sie funktionieren aber trotzdem beide auch mit AusweisApp2.

Wenn man sie in supported-readers.json einträgt, werden sie auch unter Einstellungen korrekt angezeigt.
Kann man hier nachlesen: https://forum.ubuntuusers.de/topic/wer-nutzt-ausweisapp2/4/

Jürgen

    (1-4/4)