2

PINPAD リーダーで PIN コードを確認しようとする試みはすべて失敗に終わります。これが私の状況です。

設定

  • ベルギーの EID カード;
  • Bluetoothで接続されたVasco DIGIPASS 875。
  • Vasco の SDK を使用した Android アプリケーション。

状況

APDU コマンドを使用して、ファイルの選択と読み取り、安全な環境の設定 (MSE : SET) を行いました。さまざまなドキュメントからさまざまなソリューションを何度も調査してマージした後、リーダーに PIN コードを要求させることができます。しかし、疑似 APDU コマンドを使用すると、69|C# の応答が返されます。同じプロセス (ファイルの読み取り、安全な環境の設定、PIN の検証) は、PINPAD のない USB リーダーでも正常に機能するため、APDU コマンドは問題ないと思いますが、先行する疑似 APDU コマンドは問題ありません。

使用したドキュメント

BEID ドキュメント、PC/SC Spec part 10 (2.5.2) および補足 (2.2.1)、および6.1.11.3 から 6.1.11.6 までの章のUSB スマート カード デバイス。

私は何を理解しましたか?

最初の部分はFF C2 01 06、リーダーでの直接の PIN 検証用であり、その後に後続のデータのサイズが続きます。次に、PC/SC パート 10 の構造に従ってください。

  1. タイムアウト 1 & 2 (00デフォルト);
  2. 形式 ( 1 バイトのオフセット PIN、左揃え、BCD の89場合と同様に、私に適しているはずです);10001001
  3. PIN ブロック形式 ( 484 ビット長が含まれており、PIN ブロックに 8 バイトが含まれているためです);
  4. PIN の長さの形式 ( 04: PIN ブロックの 4 ビット オフセット);
  5. 最小/最大 PIN の長さ: 040C(しかし、そのようには機能しませんでしたが、0404確実に機能します);
  6. 検証条件は02[OK] ボタンです。
  7. メッセージ数 :01コマンド内のメッセージを使用します。
  8. 言語は0409英語用です。
  9. 表示するメッセージは00、PIN を入力するためのものです。
  10. 000000このフィールドは使用されていないためです。
  11. PINでフォーマットされた後に送信される最終的なAPDUコマンドの長さ(0000000D私の推測です)。
  12. そして、APDU コマンド:0020000108FFFFFFFFFFFFFFFF

結果

確信が持てないいくつかの値 (パディング文字が既に存在するかどうかについては 2、3、4、11、および 12) を何度か変更しましたが、成功せず、結果コードが異なる場合があります。

ここで何が間違っていますか?

事前にt​​hx!

4

1 に答える 1

2

最後の調査と検査の後、私の間違いを示す別の例を見つけました: PIN ブロックです! コントロール/有効な PIN の長さが含まれていないため、47 でした。したがって、私にとっての正解は次のとおりです。

0xFF, 0xC2, 0x01, 0x06, // Base PPDU command
0x20,                   // Length of the data
0x00,                   // timeout
0x00,                   // timeout
0x89,                   // format
0x47,                   // PIN block
0x04,                   // PIN length format
0x04,                   // Min pin size
0x04,                   // Max pin size
0x02,                   // Entry validation condition
0x01,                   // Number of messages to display
0x04, 0x09,             // English
0x00,                   // Message "Enter pin"
0x00, 0x00, 0x00,       // Non significant here
0x00, 0x00, 0x00, 0x0D, // Length of the apdu once formatted
0x00, 0x20, 0x00, 0x01, // APDU command VERIFY
0x08,                   // APDU command Data length
0x20,                   // APDU command Control data + Effective PIN length
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF // APDU command PIN + filler
于 2016-09-06T14:32:09.603 に答える