Well, it seems I answered my first question:
Code:
OpenSC [3F00]> apdu 00 A4 04 00 07 D2 76 00 00 85 01 01 00
Sending: 00 A4 04 00 07 D2 76 00 00 85 01 01 00
Received (SW1=0x90, SW2=0x00)
Success!
OpenSC [3F00]> apdu 00 A4 00 0C 02 E1 03
Sending: 00 A4 00 0C 02 E1 03
Received (SW1=0x90, SW2=0x00)
Success!
OpenSC [3F00]> apdu 00 B0 00 00 0F
Sending: 00 B0 00 00 0F
Received (SW1=0x90, SW2=0x00):
00 0F 20 00 7F 00 7F 04 06 E1 04 00 7F 00 00 .. ......?.....
Success!
OpenSC [3F00]> apdu 00 A4 00 0C 02 E1 04
Sending: 00 A4 00 0C 02 E1 04
Received (SW1=0x90, SW2=0x00)
Success!
OpenSC [3F00]> apdu 00 B0 00 00 02
Sending: 00 B0 00 00 02
Received (SW1=0x69, SW2=0x83)
Failure: Authentication method blocked
It also fails to read the OTP when using the private yubico API (which is what I would expect):
Code:
OpenSC [3F00]> apdu 00 a4 04 00 08 A0 00 00 05 27 20 01 01
Sending: 00 A4 04 00 08 A0 00 00 05 27 20 01 01
Received (SW1=0x90, SW2=0x00):
03 03 00 01 85 07 06 00 00 00 ..........
Success!
OpenSC [3F00]> apdu 00 03 00 00 00
Sending: 00 03 00 00 00
Received (SW1=0x90, SW2=0x00):
03 03 00 01 85 07 ......
Success!
OpenSC [3F00]> apdu 00 02 00 00 00
Sending: 00 02 00 00 00
Received (SW1=0x69, SW2=0x85)
Failure: Not allowed
So, unless I am interpreting these results incorrectly, it seems that you cannot read the OTP value from a slot without performing some sort of user action, either by pressing the button or by NFC NDEF. This is a good thing.
I'm curious if it is possible to read the NDEF multiple times over NFC (without removing and replacing the ykneo), but the security impact of that would be considerably less significant.