問題タブ [contactless-smartcard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
560 参照

nfc - Desfire EV1 ファイル アクセス バイト

MIFARE DESFire 4K EV1 カードのファイルとアプリケーションのアクセス バイトを計算する方法を誰か教えてもらえますか?

0 投票する
1 に答える
983 参照

android - NFC カード エミュレーション

NFCリーダーがアクセスできるように、NFCタグを携帯電話に保存できるアプリケーションを作成したいと思います。たとえば、搭乗券を携帯電話に保存して、空港で NFC リーダーでアクセスできるようにします。NDEF メッセージの送信を実装できると思いますが、そのためには電話がオンになっている必要があります。私の問題は、電話がオフのときに機能させる必要があることです。私の理解では、唯一の方法は、NFC タグをセキュア エレメント (SE) に格納して、カードとしてエミュレートできるようにすることです。NFC リーダーの電源を使用して、SE に保存されている情報にアクセスできます。

TAG を Secure Element に保存する方法はありますか? これまでの検索によると、SE に直接アクセスする方法はありません。次の投稿はそれについて語っていますが、投稿されてから変更されたかどうかはわかりません. NFC カード エミュレーション Android

SE に保存できない場合、電話がオフのときに NFC リーダーで読み取ることができるように、タグをデバイスに保存する他の方法はありますか。

ありがとうB

0 投票する
1 に答える
3220 参照

android - Generate AC コマンドの Android isoDep.transceive が常に 6D00 unsupported を返す

PoS、POS :)、システムをエミュレートし、2013 Nexus 7 (セキュア エレメントなし) v4.4.2 で実行されている Google ウォレットとのトランザクションを完了しようとしています。

私の PoS プロトタイプは、2013 Nexus 7 v4.4.2 でも実行されています。

2PAY_SYS_DDF01 リクエストから NFC レスポンスを取得できます。MasterCard アプリケーション ID を選択できます。処理オプションを取得できました。レコードを読むと、Google ウォレットが必須の EMV フィールドをすべて返しているようには見えません。最後に、Generate AC コマンドを要求すると、常に 6D00 unsupported が返されます。

問題のあるコードの領域:

私はTim Beckersのビデオ https://www.youtube.com/watch?v=qqobg1-HrfYをフォローしてい ました。46 分。Tim Beckers のコード サンプル: https://github.com/a2800276/29c3/blob/master/smartshell.rb

アップデート:

GPO コマンド ( 80 a8 00 00 02 83 00 00) に対する応答は、

アップデート:

私は試した:

少なくとも間違った予測不可能な数を示すエラーが発生することを望んでいますが、6700 の間違った長さが返されました。

以前に、Read Record 00 B2 01 0C 00 に対する応答を受け取りました。その応答の一部は Card Authentication Related Data [9F69]: Data (Binary): XX XX XX XX XX XX XX XX XX XX XX XX XX XX fDDA バージョン番号: 9F (カード) 予測不可能な数字: 6A 04 9F 7E

だから私はその予測不可能な数を試しました

しかし、私はまだ6700の間違った長さを取得しています

アップデート:

READ RECORD (レコード = 1、SFI = 1) コマンド (00 B2 01 0C 00) に対する応答は次のとおりです。

0 投票する
1 に答える
1486 参照

smartcard - 未知のスマートカードを読み書きするには?

私はジェムアルト製品と思われるスマートカードをいくつか購入しました。

現在、次の 4 つの ATR があります (ACR38 および ACR122U リーダーを使用)。

私はインターネットを検索しましたが、これらの ATR については何も見つかりませんでした (gemalto.com にも他のどこにもありません)。

このカードを読み書きするにはどうすればよいですか?

これらのカードの読み取りと書き込みに 2 つのスマート カード リーダーを使用できますか、それとも新しいモデルを購入する必要がありますか?

0 投票する
0 に答える
2763 参照

android - NFC HID MIFARE カード読み取り

私は Android で読み取ろうとしている HID MIFARE DESFire カードを持っています。私が知る限り、カードは ISO 14443 ですが、何も読み取っていないようです。私は、UIDであると想定しているものを読み取ることができます。

カードはフォーマットされていないように見えますが、それが HID 暗号化の一部であるかどうかはわかりません。いずれにせよ、それを読むために何もしません。フォーマットも試しましたが、うまくいきません。

暗号化を記述し、説明コードを通過してペイロードを読み取るにはどうすればよいですか。一部の NFC アプリは、カードが NDEF 形式ではないと述べています。

私が立ち往生しているので、どんな助けも本当に感謝しています。

タグ情報はこちら。Galaxy S4を使用しています。

0 投票する
3 に答える
8740 参照

nfc - ATRからカードの種類を判別

ATR を使用して、ISO14443A または ISO14443B タイプのカードを持っているかどうかを判断することはできますか? はいの場合、どのように?

0 投票する
1 に答える
457 参照

android - Android isoDep.transceive 経由で「Compute Crytographic Checksum」が成功した後、Google ウォレットのステータスが「Unknown」になる

私はまだ販売時点管理 (POS) システムをエミュレートして、Google ウォレットで取引を完了しようとしています。スタック オーバーフローに関する優れた回答を得て、さらに前進しました。Generate AC コマンドで Android isoDep.transceive を参照すると、サポートされていない 6D00 が常に返される

POS と Google ウォレットからの通信のすべてのステップが正常に行われているにもかかわらず、「ステータスが不明です。支払いが成功したかどうかをレジで確認してください」という Google ウォレットを通過できません。

マクドナルド(米国)と同じように、Googleウォレットが「ステータス保留中」と表示される必要があります。トランザクション全体が処理され、銀行が清算されるかどうかは、実際には気にしません。

私はトランザクション処理が初めてで、基本的なステップが欠けているようです。どんなアイデアでも大歓迎です。

以下は成功した手順です。

「PayPass – M/Chip トランザクション処理」仕様には、「COMPUTE CRYPTOGRAPHIC CHECKSUM 応答の完了後、PayPass カードを PayPass リーダーから取り外すことができる」と記載されています。

ということで POS から Google Wallet への通信はできていると思っていたのですが、Google Wallet にはもっと情報が必要なようです。

0 投票する
1 に答える
10400 参照

rfid - APDU C# を使用して独自の認証キー MiFare Classic を設定する

CardWerk の SMARTCARD API を使用しています。

(byte)0xFF, (byte)0xFF, (byte)0xFF, (byte)0xFF, (byte)0xFF, (byte)0xFFAPDU を使用してデフォルト キー ( ) を変更するにはどうすればよいですか?

APDU は、CLASS、INSTRUCTION、P1、P2 で構成されます。ドキュメントを読んでいますが、実際のキーを新しいキーに変更するために必要なパラメーターが見つかりません。

0 投票する
1 に答える
3006 参照

encryption - NFC 通信 - Mifare DESFire EV1 - AES

HID Omnikey 5321 リーダーを使用して、Mifare DESFire EV1 タグと通信しています。標準データファイルに 16 バイトを書き込みたい。WinSCard DLL (C++) を使用して、ネイティブ DESFire コマンドを ISO 7816 APDU メッセージ構造にラップしています。アプリケーションの選択と認証は正常に行われましたが、Write Data コマンドに問題があります。ファイルの通信設定は、完全に暗号化された AES に設定されています。

Native コマンドから CRC を計算します。

次に、セッション キーと IV を 00 に設定して暗号化します。

APDU が送信されました:

応答として、CRC またはパディング エラーを意味する「 1E 」ステータス コードを取得します。どこに問題があるのか​​わかりませんが、なんとかデータを読み取れるので、AES 暗号化アルゴリズムは良さそうです。

それはCRCかIVかもしれません。CMAC でデータを XOR する必要がありますか?

0 投票する
0 に答える
1531 参照

encryption - NFC 通信 - Mifare DESFire EV1 - AES - Init ベクトル

HID Omnikey 5321 リーダーを使用して、Mifare DESFire EV1 タグと通信しています。標準データファイルに 16 バイトを書き込みたい。WinSCard DLL (C++) を使用して、ネイティブ DESFire コマンドを ISO 7816 APDU メッセージ構造にラップしています。

既存のファイルにデータを書き込むことができました:

Native コマンドから CRC を計算します。

次に、セッション キーと IV を 00 に設定して暗号化します。

APDU が送信されました:

しかし、以前に作成したファイルに書き込もうとすると問題が発生します。

Application Master Key による AES 認証の後、2 つのサブキー (K1 と K2) を計算します。IV を 0x00...00 に設定します。次に、2 つのファイルを作成します。

ファイル 0

ファイル 1

次に、暗号化に IV を使用してファイル 0 にデータを書き込みます。「1E」エラーが発生します。

既存のファイルでデータを読み取ることができました:

IV を使用して受信したデータを復号化すると、良好なバイト値が得られます。なので、サブキーK2がいいと思います。

データ書き込みコマンドのどこに問題があるのか​​わかりません。IVかもしれませんが、理由はわかりません。