Pentesting RFID

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

はじめに

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

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

クラス

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

  • クラス0 タグは、UHFバンドで動作するパッシブタグです。ベンダーは製造工場で事前にプログラムします。そのため、メモリに格納された情報を変更できません

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

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

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

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

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

RFIDタグに格納される情報

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

ISO標準は、タグが属するオブジェクトの種類を示す**アプリケーションファミリー識別子(AFI)値と、ユーザーデータの論理構造を定義するデータストレージフォーマット識別子(DSFID)**という重要なレジスタを指定しています。

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

低周波数と高周波数のタグの比較

低周波数RFIDタグ(125kHz)

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

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

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

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

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

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

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

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

  • Indala — Motorolaが導入し、後にHIDが取得した非常に古い低周波数プロトコル。前述の2つと比較して、野生で遭遇する可能性は低いです。

実際には、他にも多くの低周波数プロトコルがあります。しかし、これらはすべて同じ物理層で変調を使用し、ある意味で上記にリストされたものの変種と見なすことができます。

攻撃

Flipper Zeroを使用してこれらのタグを攻撃することができます:

pageFZ - 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を使用して、これらのタグを攻撃することができます:

pageFZ - NFC

またはproxmarkを使用することもできます:

pageProxmark 3

参考文献

Last updated