Pentesting RFID

Support HackTricks

Introduction

無線周波数識別 (RFID) は、最も一般的な短距離無線ソリューションです。通常、エンティティを識別する情報を保存および送信するために使用されます。

RFIDタグは、独自の電源 (アクティブ) に依存することができ、埋め込まれたバッテリーのように、または受信した無線波から誘導された電流を使用して読み取りアンテナから電力を受け取ることができます (パッシブ)。

クラス

EPCglobalはRFIDタグを6つのカテゴリに分けています。各カテゴリのタグは、前のカテゴリにリストされているすべての機能を持ち、後方互換性があります。

  • クラス0 タグは パッシブ タグで、UHF バンドで動作します。ベンダーによって 工場で事前にプログラム されています。その結果、メモリに保存された情報を 変更することはできません

  • クラス1 タグは HF バンドでも動作できます。さらに、製造後に 一度だけ書き込むことができます。多くのクラス1タグは、受信したコマンドの 循環冗長検査 (CRC) を処理することもできます。CRCは、エラー検出のためのコマンドの最後にあるいくつかの追加バイトです。

  • クラス2 タグは 複数回書き込むことができます

  • クラス3 タグは、現在の温度やタグの動きなどの環境パラメータを記録できる 埋め込みセンサー を含むことができます。これらのタグは セミパッシブ で、埋め込まれた電源(統合された バッテリー など)を持っていますが、他のタグやリーダーとの無線 通信を開始することはできません

  • クラス4 タグは、同じクラスの他のタグとの通信を開始できるため、アクティブタグ です。

  • クラス5 タグは、他のタグに電力を供給し、すべての前のタグ クラスと通信できます。クラス5タグは RFIDリーダー として機能することができます。

RFIDタグに保存される情報

RFIDタグのメモリは通常、4種類のデータを保存します:識別データ、これはタグが取り付けられている エンティティ識別 します(このデータには、銀行口座などのユーザー定義フィールドが含まれます);補足データ、これはエンティティに関する さらなる 詳細 を提供します;制御データ、これはタグの内部 構成 に使用されます;およびタグの 製造者データ、これはタグのユニーク識別子 (UID) とタグの 製造タイプ、および ベンダー に関する詳細を含みます。最初の2種類のデータはすべての商業タグに見られますが、最後の2つはタグのベンダーによって異なる場合があります。

ISO標準は、タグが属する オブジェクトの種類 を示すコードであるアプリケーションファミリー識別子 (AFI) 値を指定します。ISOによって指定されたもう1つの重要なレジスタは、ユーザーデータの 論理的な組織 を定義するデータストレージフォーマット識別子 (DSFID) です。

ほとんどのRFID セキュリティ制御 には、各ユーザーメモリブロックおよびAFIおよびDSFID値を含む特別なレジスタに対する 読み取り または 書き込み 操作を 制限 するメカニズムがあります。これらの ロック メカニズム は、制御メモリに保存されたデータを使用し、ベンダーによって事前に構成された デフォルトパスワード を持っていますが、タグの所有者が カスタムパスワードを構成することを許可 します。

低周波数および高周波数タグの比較

低周波数RFIDタグ (125kHz)

低周波数タグ は、高いセキュリティを必要としない システムでよく使用されます:建物のアクセス、インターホンキー、ジムの会員カードなど。より高い範囲のため、支払い駐車場での使用に便利です:ドライバーはカードをリーダーの近くに持ってくる必要がなく、遠くからトリガーされます。同時に、低周波数タグは非常に原始的で、データ転送速度が低いです。そのため、残高の保持や暗号化などの複雑な双方向データ転送を実装することは不可能です。低周波数タグは、認証手段なしで短いIDを送信するだけです。

これらのデバイスは パッシブ RFID 技術に依存し、30 kHzから300 kHzの範囲 で動作しますが、125 kHzから134 kHzを使用するのが一般的です:

  • 長距離 — 低い周波数は高い範囲に変換されます。EM-MarinやHIDリーダーの中には、最大1メートルの距離から動作するものがあります。これらは駐車場でよく使用されます。

  • 原始的なプロトコル — 低いデータ転送速度のため、これらのタグは短いIDを送信することしかできません。ほとんどの場合、データは認証されず、何の保護もされていません。カードがリーダーの範囲内に入ると、ただIDの送信を開始します。

  • 低いセキュリティ — これらのカードは簡単にコピーでき、プロトコルの原始性のために他の人のポケットからでも読み取られる可能性があります。

人気のある125 kHzプロトコル:

  • EM-Marin — EM4100、EM4102。CISで最も人気のあるプロトコル。シンプルさと安定性のため、約1メートルの距離から読み取ることができます。

  • HID Prox II — HID Globalによって導入された低周波数プロトコル。このプロトコルは西洋諸国でより人気があります。より複雑で、このプロトコル用のカードとリーダーは比較的高価です。

  • Indala — Motorolaによって導入された非常に古い低周波数プロトコルで、後にHIDに買収されました。前の2つと比較して、使用されることは少なくなっています。

実際には、もっと多くの低周波数プロトコルがあります。しかし、すべて同じ物理層の変調を使用し、上記のもののいずれかのバリエーションと見なすことができます。

攻撃

これらのタグは Flipper Zeroで攻撃できます

FZ - 125kHz RFID

高周波数RFIDタグ (13.56 MHz)

高周波数タグ は、暗号化、大規模な双方向データ転送、認証などが必要なより複雑なリーダーとタグの相互作用に使用されます。 通常、銀行カード、公共交通機関、その他のセキュアパスで見られます。

高周波数13.56 MHzタグは一連の標準とプロトコルです。通常、NFC と呼ばれますが、必ずしも正しいわけではありません。物理的および論理的レベルで使用される基本的なプロトコルセットはISO 14443です。高レベルのプロトコルや代替標準(ISO 19092など)はこれに基づいています。この技術は 近接通信 (NFC) と呼ばれることが多く、13.56 MHzの周波数で動作するデバイスの用語です。

簡単に言えば、NFCのアーキテクチャは次のように機能します:送信プロトコルはカードを製造する会社によって選択され、低レベルのISO 14443に基づいて実装されます。たとえば、NXPはMifareという独自の高レベル送信プロトコルを発明しました。しかし、低レベルでは、MifareカードはISO 14443-A標準に基づいています。

Flipperは、低レベルのISO 14443プロトコルとMifare Ultralightデータ転送プロトコルおよび銀行カードで使用されるEMVと相互作用できます。Mifare ClassicおよびNFC NDEFのサポートを追加する作業を進めています。NFCを構成するプロトコルと標準についての詳細な検討は、別の記事に値するものであり、後で公開する予定です。

ISO 14443-A標準に基づくすべての高周波数カードには、ユニークなチップIDがあります。これはカードのシリアル番号として機能し、ネットワークカードのMACアドレスのようなものです。通常、UIDは4または7バイトの長さですが、まれに 10バイトまで 行くことがあります。UIDは秘密ではなく、簡単に読み取ることができ、時にはカード自体に印刷されていることもあります

UIDに依存して 認証およびアクセスを許可する アクセス制御システムが多数あります。時には、RFIDタグが 暗号化をサポートしている 場合でも、これが発生します。このような 誤用 により、セキュリティの観点から 125 kHzカード のレベルにまで落ちてしまいます。仮想カード(Apple Payなど)は、電話の所有者が支払いアプリでドアを開けることがないように、動的UIDを使用します。

  • 低い範囲 — 高周波数カードは、リーダーの近くに置かなければならないように特別に設計されています。これにより、カードが不正な相互作用から保護されます。私たちが達成した最大の読み取り範囲は約15 cmで、これはカスタムメイドの高範囲リーダーを使用した場合です。

  • 高度なプロトコル — データ転送速度が424 kbpsまで可能で、完全な双方向データ転送を伴う複雑なプロトコルを可能にします。これにより、暗号化、データ転送などが可能になります。

  • 高いセキュリティ — 高周波数の非接触カードは、スマートカードに劣ることはありません。AESのような暗号的に強いアルゴリズムをサポートし、非対称暗号化を実装するカードもあります。

攻撃

これらのタグは Flipper Zeroで攻撃できます

FZ - NFC

または proxmark を使用して:

Proxmark 3

参考文献

Support HackTricks

Last updated