1

拡張長 APDU を使用して長さ 0x2CF0 バイトのデータをカードに書き込もうとしていますが、問題なく動作します。しかし、拡張された長さのapduを使用して、カードから同じ量のデータを読み取ることができません。

「sun.security.smartcardio.PCSCException: Unknown error 0x4d3」というエラーが表示されます。

サイズが 0x1af0 バイトの比較的小さいデータをロードしようとすると、拡張長の apdu を使用してカードから正常に読み書きできます。

拡張長 apdu でのカードからのデータの読み取りに関する制限はありますか? コマンドチェーンを使用しない回避策はありますか?

PS: JCOP 2.4.2 R2 カードを使用しています。

4

1 に答える 1

2

一般的なスマート カードは、リーダーに送信するデータを RAM に保存します。(特に、これにより、不揮発性メモリからの機密データが送信されないようにすることが容易になります)。スマート カード チップの RAM は限られていますが、小規模な試行 (6 k 以上) で問題なく動作することを幸運に感じることができます。

残念ながら、ATR では、カードは拡張長の APDU をサポートしていることを示すことしかできませんが、どの境界まではサポートしていません (出力が安全なメッセージング処理の対象である場合は、これも異なる可能性があります)。

典型的なアプローチは、ある種の内部パーティショニングをコマンドに提供することです。たとえば、ファイル システム ベースのファイルでは、バイナリ ファイルの概念が使用され、コマンドは開始オフセットを指定できます。この質問を参照してください。

通常、連鎖は役に立ちません。MAC 計算ではデータ全体が存在する必要があるため、アーキテクチャは通常、他のすべてのケースでもこれを強制します。

于 2016-07-22T12:44:22.593 に答える