問題タブ [mifare]
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.
android - Mifare DESFire カードで PICC をフォーマットすると、使い物にならなくなりますか?
IsoDep および DESFire ネイティブ コマンドを使用して、Android で Mifare DESFire 4k タグに取り組んでいます。PICC フォーマット コマンドをカードに送信すると、TagLostException が発生し、その後、Android のどのソフトウェアを使用してもタグを検出できなくなります。これは予想される動作ですか?タグをフォーマット前と同じように動作させる方法はありますか?
nfc - MIFARE Ultralightページでアクセス状況を確認
ページが Mifare Ultralight タグで書き込み可能かどうかを確認する方法は? 例に従って NFC TagInfo NFC Research Lab メニュー「アクセス条件」 Page1..Page15 read-only/writable(factory locked/locked)/reserved/lock bits
java - DESFire認証のDES送信および受信モード
AndroidアプリケーションでDESFireカードを認証しようとしています。このリンクの例を使用して、カードから取得したバイトを解読します。そのため、DESFireのドキュメントで指摘されているため、復号化でのパディングを除外しました(以下でコメント)。また、そうしないと、復号化は8バイトの入力に対して7バイトを返します。以下は、私が使用するDESおよびTripleDES復号化関数です。
DesFireのドキュメントによると、送信と受信の2つの復号化モードが必要です。このブログ投稿には、それについての説明があります。
ただし、DESFire暗号化は通常のDES / CBCスキームとは少し異なります。PCDはデータの送信時にDESの「送信モード」を使用し(DESの前のxor)、カードはデータの受信時にDESの「受信モード」を使用します(DESの後にxor)。 )。ただし、PCDがデータを受信するときは、通常のDES / CBCモード(DESの後のxor)を使用し、カードはデータを送信するときに(DESの前のxor)通常のDES送信モードを使用します。
そしてAndroid側では、例と推奨事項に従います。
最初の結果、暗号化されたrandBを取得します。ただし、2番目の「結果」は常に「91ae」であり、認証エラーを意味します。私はここで何か間違ったことをしています。間違ったデータをカードに送信します。
これらのモードで動作するためにコードを変更する必要があることを誰かに教えてもらえますか?TripleDESの前後のデータと何をXORする必要がありますか?
本当の質問ではありませんが、DesFireカードのデフォルトの「キー」は16個のゼロバイトであると読みました。また、このドキュメントでは、16バイトのキーにTripleDESを使用し、8バイトのキーにDESを使用する必要があると指摘しています。デフォルトのキーを変更していないので、TripleDESを使用していますが、使用する必要があります。
CipherBlockChainingについて知る必要がある人のために。
編集:TripleDESの前後にXORを実行する必要があり、TripleDESの内部操作にまったく触れてはならないことがわかりました。しばらくしてみます。
質問を初めて見た人のために言って、内側のTripleDES行を削除しました。
c# - MifareClassic1kキーAとキーBを変更する方法
私はMifareクラシック1kリーダーを使用していますが、デフォルトのキーAとBが付属しています。
キーAを使用して作品を読み書きします。でもキーを変えたいです。
セクターの正しいアクセスビットを取得する方法はありますか?フォーマットは何ですか?
私が今やったことは、
078069
セクター1のブロック7の読み取りから取得したアクセスビットは、次のようになります。
しかし、エラーがあります。
アクセスビットが間違っていますか、それともフォーマットが間違っていますか?
java - NDEF が検出された/アクティビティが開始された後に NDEF メッセージを表示する方法は?
私と同様の質問をいくつか読んだ - 私は自分の問題の解決策を見逃した場合にのみ謝罪することができますが、本当にこれを解決することはできません!
タグをタップすると、アプリの正しいアクティビティが起動しますが、ndef メッセージが表示されず、理由がわかりません...
タグは、プレーン テキスト メッセージがエンコードされた Mifare Ultralight です。(mimetype: プレーン/テキスト)
これが私のコードです。ご協力ありがとうございます。このフォーラムには「ビールを寄付する」ボタンが必要です!
c# - Mifare カードの種類を取得
スマート カード リーダーを介して Mifare カードで I/O 操作を実行するために、簡単なアプリ (C#) を作成しました (明らかに、いくつかの Win API ラップを使用しました)。
私が得ている mifare に関する情報は「Mifare 1k」のみですが、私の mifare カードの正確なタイプを知る方法はありますか? (たとえば、Classic、DESFire、Plus、Ultralight など)?
それとも、アプリから返された Mifare 1k の説明は、それが単なるクラシック Mifare であることを意味するのでしょうか?
c# - Global.Multi-ISO Mifare リーダー バイナリ プロトコルを非表示
HID-MULTI-ISO Mifareリーダーのバイナリプロトコルがどのように機能するかを説明できる人はいますか?
MIFARE リーダー (HID HF マルチ ISO リーダー) にフレームを送信していますが、失敗しました。データシートによると、フレームは次のようになります。
ここ02
で、 は STX、01
はデバイス ID、78
はコマンドであるデータreset
、もう 1 つ78
は 01、01、および 78 xored の結果である BCC (ブロック チェック キャラクタ) です。最後03
はETXです。
フレームを送信すると、? ? ?
コマンドエラーを意味するエラーが発生します。
私はASCIIプロトコルに精通しており、うまく機能していますが、フレームを含むバイナリプロトコルを使用してリーダー構成を行いたいです。
どんな答えでも大歓迎です..
c# - desfire ev1でネイティブ認証を行うにはどうすればよいですか
ネイティブ モードで desfire カードを使用して認証したいと考えています。これが私の現在の手順です:
- マスター アプリケーションを選択します
(AID = 0×00 0×00 0×00)
- カードからの応答 (「チャレンジ」、randB) を受け取る
- 次に、2 番目のステップで、応答 (randA) を生成します。8 バイトの rand A と、復号化およびローテーションされた 8 バイトの rand B を連結します。
- 暗号化してカードに送り返します。
答えが返ってきました91 ae
が、理由がわかりません。メッセージのシーケンスは次のとおりです。
- カードへ: 90 0A 00 00 01 00 00
- カードから 5B 57 69 C7 CE 4B 16 7B 91 AF
- 暗号化された RandB = 5B 57 69 C7 CE 4B 16 7B
- 解読された RandB' = 17 8D 23 57 10 C9 32 D5
- 1 バイト lshitf RandB' = 8D 23 57 10 C9 32 D5 17
- 生成されたランド A = 43 9D 17 8E 9A 5F BA 70
- Rand A と Rand B を連結する'' = 43 9D 17 8E 9A 5F BA 70 8D 23 57 10 C9 32 D5 17
- 暗号化された Rand A + Rand B'' = 9E ED DC 4F BC E7 BE BD 09 02 CF 99 F7 40 34 7B
- カードへ: 90 AF 00 00 10 43 9D 17 8E 9A 5F BA 70 8D 23 57 10 C9 32 D5 17 00
- カードから: 91 AE
何か間違っているところがありましたらご指摘いただけますでしょうか。どのような問題が発生する可能性がありますか?
mifare - キーBでmifareタグ1Kを検索
キー A で読み書きでき、このコードをセクター トレーラーに設定できます。
キー A で読み取ることができますが、キー B で読み取ることができず、次のメッセージを表示します。