hacktricks/todo/radio-hacking/pentesting-rfid.md
2024-04-06 18:36:04 +00:00

89 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Pentesting RFID
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>でAWSハッキングをゼロからヒーローまで学ぶ</strong></a><strong></strong></summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンを入手**したり、HackTricksを**PDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを入手
* [**公式PEASSHackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる
* [**💬**](https://emojipedia.org/speech-balloon/) **Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングトリックを共有するには、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。**
</details>
## はじめに
\*\*無線周波数識別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値を含む特別なレジスタに対する**読み取り**または**書き込み**操作を**制限**するメカニズムがあります。これらの**ロック**メカニズムは、制御メモリに格納されたデータを使用し、ベンダーによって事前に構成された**デフォルトパスワード**を使用しますが、タグ所有者が**カスタムパスワードを構成**できるようにします。
### 低周波数と高周波数のタグの比較
<figure><img src="../../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## 低周波数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="flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## 高周波数RFIDタグ13.56 MHz
**高周波数タグ**は、暗号化、大規模な双方向データ転送、認証などが必要なより複雑なリーダータグの相互作用に使用されます。\
銀行カード、公共交通機関、その他のセキュアパスで見つかることが一般的です。
**高周波数13.56 MHzタグは、標準とプロトコルのセット**です。通常、[NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/)として言及されますが、それが常に正しいとは限りません。物理的および論理的レベルで使用される基本プロトコルセットはISO 14443です。高レベルのプロトコルやISO 19092などの代替標準は、これに基づいています。多くの人々は、この技術を\*\*近距離通信NFC\*\*と呼びますが、これは13.56 MHz周波数で動作するデバイスのための用語です。
<figure><img src="../../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
簡単に言うと、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のデータ転送速度により、完全な双方向データ転送を備えた複雑なプロトコルが可能になります。これにより、**暗号化**、データ転送などが可能になります。
* **高いセキュリティ** — 高周波数非接触カードはスマートカードに劣りませ