hacktricks/radio-hacking/pentesting-rfid.md

11 KiB
Raw Blame History

RFIDのペンテスト

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

はじめに

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

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

クラス

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

  • クラス0タグはUHFバンドで動作するパッシブタグです。ベンダーは製造工場で事前にプログラムします。そのため、メモリに格納された情報を変更することはできません。
  • クラス1タグはHFバンドでも動作できます。さらに、製造後に1回だけ書き込むことができます。多くのクラス1タグは、受信したコマンドの**巡回冗長検査CRC**を処理できます。CRCはエラー検出のためのコマンドの末尾に追加されるいくつかの追加バイトです。
  • クラス2タグは複数回書き込むことができます。
  • クラス3タグには、現在の温度やタグの動きなどの環境パラメータを記録できる埋め込みセンサが含まれています。これらのタグは半アクティブであり、組み込みバッテリーなどの埋め込み電源を持っているため、他のタグやリーダーとワイヤレス通信を開始することはできません。
  • クラス4タグは、同じクラスの他のタグと通信を開始できるため、アクティブタグです。
  • クラス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を使用してこれらのタグを攻撃することができます:

{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}

高周波数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のデータ転送速度により、完全な双方向データ転送を備えた複雑なプロトコルが可能になります。これにより、暗号化、データ転送などが可能になります。
  • 高いセキュリティ — 高周波数非接触カードはスマートカードに劣りませ