Pentesting RFID
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
**無線周波数識別(RFID)**は、最も一般的な短距離無線ソリューションです。通常、エンティティを識別する情報を保存し、送信するために使用されます。
RFIDタグは、独自の電源(アクティブ)、例えば埋め込まれたバッテリーに依存するか、受信した無線波から誘導された電流を使用して読み取りアンテナから電力を受け取ります(パッシブ)。
EPCglobalはRFIDタグを6つのカテゴリに分けています。各カテゴリのタグは、前のカテゴリにリストされているすべての機能を持ち、後方互換性があります。
クラス0タグは、UHFバンドで動作するパッシブタグです。ベンダーが製造工場で事前にプログラムします。そのため、メモリに保存された情報を変更することはできません。
クラス1タグは、HFバンドでも動作できます。さらに、製造後に一度だけ書き込むことができます。多くのクラス1タグは、受信したコマンドの循環冗長検査(CRC)を処理することもできます。CRCは、エラー検出のためのコマンドの最後にあるいくつかの追加バイトです。
クラス2タグは、複数回書き込むことができます。
クラス3タグは、現在の温度やタグの動きなどの環境パラメータを記録できる埋め込みセンサーを含むことができます。これらのタグはセミパッシブであり、埋め込まれた電源(統合されたバッテリーなど)を持っていますが、他のタグやリーダーとの無線通信を開始することはできません。
クラス4タグは、同じクラスの他のタグとの通信を開始できるため、アクティブタグです。
クラス5タグは、他のタグに電力を供給し、すべての前のタグクラスと通信できます。クラス5タグはRFIDリーダーとして機能できます。
RFIDタグのメモリは通常、4種類のデータを保存します:識別データ、これはタグが取り付けられているエンティティを識別します(このデータには、ユーザー定義のフィールド(銀行口座など)が含まれます);補足データ、これはエンティティに関するさらなる****詳細を提供します;制御データ、これはタグの内部構成に使用されます;およびタグの製造者データ、これはタグのユニーク識別子(UID)とタグの製造、タイプ、およびベンダーに関する詳細を含みます。最初の2種類のデータはすべての商業タグに見られますが、最後の2つはタグのベンダーによって異なる場合があります。
ISO標準は、タグが属するオブジェクトの種類を示すコードであるアプリケーションファミリー識別子(AFI)値を指定します。ISOによって指定されたもう1つの重要なレジスタは、ユーザーデータの論理的な組織を定義するデータストレージフォーマット識別子(DSFID)です。
ほとんどのRFID セキュリティ制御には、各ユーザーメモリブロックおよびAFIおよびDSFID値を含む特別なレジスタに対する読み取りまたは書き込み操作を制限するメカニズムがあります。これらのロック****メカニズムは、制御メモリに保存されたデータを使用し、ベンダーによって事前に構成されたデフォルトパスワードを持っていますが、タグの所有者がカスタムパスワードを構成することを許可します。
低周波数タグは、高いセキュリティを必要としないシステムでよく使用されます:建物のアクセス、インターホンキー、ジムの会員カードなど。より高い範囲のため、支払い駐車場での使用に便利です:ドライバーはカードをリーダーの近くに持ってくる必要がなく、遠くからトリガーされます。同時に、低周波数タグは非常に原始的で、データ転送速度が低いため、残高保持や暗号化などの複雑な双方向データ転送を実装することは不可能です。低周波数タグは、認証手段なしで短い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高周波数タグは、暗号化、大規模な双方向データ転送、認証などが必要なより複雑なリーダーとタグの相互作用に使用されます。 通常、銀行カード、公共交通機関、その他のセキュアパスで見られます。
高周波数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 3Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)