0

数日前、私は USB 非接触型スマート カード リーダーを接続し、USB スニファ ツールを介してその USB ポートをスニッフィングしました。その後、1k Mifare カードをリーダーに置き、1 バイトを読み取りました。

スニファ ツールの出力を確認すると、キー (読み取りキーと書き込みキー) が暗号化されずにカードに転送されていることがわかりました。

このメカニズムは本当に安全なのか??! リーダーの API を変更して Mifare カードのように動作させ、それを元のリーダーの近くに移動し、コンピューターを介して 2 つのカード リーダー間の通信を傍受した場合、キーを取得できませんか?!

リーダーを別の非接触リーダーのフィールドで mifare カードのように動作させることは可能ですか?


更新: 私が知っているように、認証コマンドを送信する前に、mifare カードにキーをロードすることが必須です! 以下に示すように、カードにキーをロードします! 【FF FF FF FF FF FFデフォルトです】。

ここに画像の説明を入力

同時に、ACRA122U が接続されている USB ポートを盗聴しました。以下に示すように、キーはプレーンで送信されました。

ここに画像の説明を入力

私がしたことの何が問題なのですか?!

注: ミス Hedayat (My Colleage) も確認しました! :))

4

2 に答える 2

2

いいえ、構成によっては適用する必要がある場合があるため、1 バイトを読み取るシナリオではキーを転送する必要がないため、キーはプレーンで転送されません。あなたのスニファ出力が何を伝えているのか、私にはわかりません。

いいえ、Mifare (クラシック) は安全ではありませんが、これは SO で十分に回答された別の質問です。要約: キーが短すぎるため、使用されている暗号化アルゴリズムが弱すぎます。

いいえ、リーダーはカードに変装することはできません。たとえそれができたとしても、キーはブロードキャストされているので、空中からキーを簡単につかむことができると考えているようですが、これは的外れです。

于 2014-08-16T21:43:16.287 に答える
2

リーダーと MIFARE Classic カードの間の通信ではなく、PC とリーダー (USB CCID) の間の通信を傍受しています。

MIFARE Classic カードと通信するには、アクセス キーをリーダーにロードする必要があります。それが、「認証キーの読み込み」コマンド (スクリーンショット) の機能です。ACR122U の場合、キーはリーダーの揮発性メモリに保存されます。他のリーダーも不揮発性キー スロットをサポートしている場合があります (リーダーのドキュメントと、非接触メモリ カードに関する PC/SC 仕様のセクションを参照してください)。

後で認証コマンドを発行すると、リーダーは MIFARE Classic 相互認証を実行します。これは、基本的にチャレンジ レスポンス認証と鍵合意プロトコルです。そのため、実際のキーをカードに送信する代わりに、リーダーはカードから乱数を受け取り、乱数をキーで暗号化し、その暗号化された乱数をカードに返します。次に、カードは同じキーで乱数を復号化するため、リーダーが正しいキーを使用したかどうかを確認できます。

于 2014-09-21T20:27:48.933 に答える