Linaro / Debianオペレーティングシステムでは、USBカードリーダーを介していくつかのNFCカードを読む必要があります。
USBカードリーダーにはHIDプロファイルがあります。
13.56MHzカードが提示されると、キーパッドはコードを返します。
デバイスにコマンドを送信する方法について読みましたが(仮想)キーボードなので、コマンドを送信できませんでした。どのデバイスにコマンドを送信する必要がありますか?
カードのメモリをダンプする方法は?
ありがとう
答え1
Marcus Müllerの回答に対するコメントで、読者はElatec TWN4 Multitech 2と言いました。
Elatec DevKitの文書によると、さまざまなインターフェースをサポートするさまざまなファームウェアパッケージがあり、現在リーダーは他のファームウェアパッケージと比較して非常に制限された機能のみを提供するUSBキーボードインターフェースファームウェアを使用してプログラムされているようです。
さまざまな種類のインターフェイスを有効にするには(残念ながら、WindowsアプリElatec AppBlasterを使用して)、カードリーダーにさまざまなファームウェアをインストールする必要があります。
私が正しく理解した場合、読者の現在のファームウェアはまたはですTWN4_CK*.bix
。TWN4_NK*.bix
ここで、KはUSBキーボードインタフェースを表します。
代わりに、仮想COMポートインターフェイス(Linuxなど)を提供する1つ以上のファームウェアバージョン、またはTWN4_CC*.bix
Linux PCSCliteでサポートされているUSB CCID準拠のスマートカードリーダーインターフェイスを提供する1つ以上のファームウェアバージョンが必要になる場合があります。 +ほとんどのUSBスマートカードリーダーと同様にlibccidです(libccidバージョン1.4.28以降が必要です)。TWN4_NC*.bix
/dev/ttyACMx
TWN4_CP*.bix
TWN4_NP*.bix
お好みのプログラミングインターフェイスの種類によっては、ファームウェアの選択が必要になる場合があります。仮想COMポートインターフェイスはテストするのが最も簡単ですが、より広範なアプリケーションを開発したい場合は、CCID準拠のインターフェイスが賢明な選択かもしれません。
DevKitには、さまざまなリーダーとアプリケーション用のさまざまなファームウェアバリアントが含まれています。 Elatecカードリーダーにはファームウェアにいくつかのアプリケーションコードスペースがあるため、組み込みシステムの一部として使用されている場合はアプリケーション固有のファームウェアを持つことができます。
NFCカードのメモリを捨てています... NFCカードの種類によって異なります。
単純なメモリーカードであれば、カードメモリーを捨てることは容易だろう。ただし、暗号化キーやその他の秘密を保持するように設計されたスマートカードの場合、カードは暗号化キーを読み取れないように設計されている可能性があります。代わりに、データを暗号化/復号化したいものと一緒にカードにコマンドを送信するだけです。カードプロセッサは、実際の鍵を公開せずに操作を実行します。
これらのスマートカードのプロセッサは、カードリーダーを介して厳密に制限されたAPIを提供するハードコードされたプログラムを実行します。適切に設計され初期化されたスマートカードは、内部メモリから秘密をダンプする方法はまったくありません。
答え2
USB HIDを介してNFCカードと通信するための標準化されたプロファイルがないと思います。 (私にはわかりません。NFCは実際にはキーボードよりもシリアルリンクに近いです。)これはいくつかの特定のカードタイプによって異なります。 FIDO U2Fが好きです。 U2F-over-USB-HID仕様があります。
したがって、私が知っている限り、使用している特定のリーダーデバイスに100%依存します。幸いなことに、この分野の主要プレイヤーは通常、少なくともWindowsドライバAPIドキュメント、さらには低レベルのUSB記述も公開します(例:HID フルキー)。