FUZE Card のご紹介
FUZE は、通常のクレジットカードと同じサイズの IoT デバイスで、スマートフォンのアプリとBluetooth 経由で接続して FUZE カードをプログラムします。ユーザーがクレジット カードの管理と設定を容易にするために、BrilliantTS は eCARD Manager と呼ばれるアプリケーションもリリースしました。支払いが必要な場合は、モバイル アプリで使用するクレジット カードを選択する必要があり、選択が成功すると、FUZE カードは選択したクレジット カードと同等になります。
ただし、調査の結果、カードの追加および使用プロセスのセキュリティは信頼できないことが判明しました。FUZE では、ある程度のセキュリティ保護対策を導入しています。初めて FUZE をセットアップする場合、 6 桁のパスワードを入力する必要がありますが、この手順は省略できます。パスコードを設定すると、手動でロックを解除するか、携帯電話をカードに近づけるまで、デバイスはロックされたままになります。ロックされている間は、カード上のデータにアクセスしたり、磁気ストリップをプログラムしたりすることはできません。また、ユーザーの携帯電話が Bluetooth 経由でカードに接続されている場合にのみカードを使用できる高度なセキュリティ モードも提供します。
X線スキャンのハードウェア構造
一般的なIoTデバイスと異なり、FUZEカードの厚さは1ミリメートル未満であるため、内部構造を理解するためにデバイスには光学スキャンが最適です。スキャンした構造図は次のとおりです。
メインチップはマイクロコントローラー、電子ペーパードライバー、Bluetooth SoC、マザーボードであることがわかります。多くの機能が搭載されています。 NFC や EMV などはまだ使用されていません (機能サポートは後で提供されます)。
Bluetooth プロトコルの逆分析
FUZE カードの場合、Bluetooth インターフェイスが逆分析の主なターゲットです。この目的のために、私が使用したいツールは次のとおりです:
1. Android フォン;
2. Burp Suite (オプション);
3. Wireshark シェルの Perl スクリプト;
4. Gatttool/BlueZ;
Bluetooth デバイスでブラックボックス テストを実行したい場合は、Android スマートフォンが不可欠です。電話機の Bluetooth 通信トラフィックを監視できるだけでなく、Java バイトコードを直接逆アセンブルすることもできます。 Burp は HTTP プロキシとして、Android アプリとバックエンドサーバー間の API リクエストをインターセプトできます。 Android チップには「HCI スヌープ ログ」と呼ばれる機能があり、ユーザーは開発者設定メニューでオンにすることができます。この機能を使用すると、Bluetooth アクティビティに関するすべての情報をファイルに保存でき、アプリとデバイス間のすべての対話情報が含まれます。 。 Wireshark は、HCI スヌープ ログ情報を読み取り、それに対して基本的なフィルタリングと分析を実行できます。データのテキスト ファイルへのエクスポートを半自動化するために、ここでは Perl スクリプトを使用します。最後に、gatttool または他の BlueZ ツールを使用して、デバイスの最も直接的な侵入分析を実行し、プロトコル メッセージを理解できます。
Reverse FUZE
1. Android で Bluetooth HCI スヌープ機能をオンにする; 2 . アプリで FUZE カードを操作します; 3. adb を使用して HCI ログを PC にエクスポートします; 4. 分析に Wireshark を使用します; 5. フィルターとデータをテキストにエクスポートします;6. Perl スクリプトを使用してデータを解析します;Wireshark の逆解析結果は次のとおりです:HCI スヌープの最も優れた点は、キャプチャされるデータがハードウェア Bluetooth チップによる暗号化前の平文データであり、特定の ASCII 文字列とプロトコル データ形式が含まれていることです。
エクスプロイトと PoC
注: 攻撃者がデバイスとアプリ間のペアリング セッションをキャプチャできる場合、FUZE カードのペアリング デジタル PIN コードはブルート攻撃によって解読される可能性があります。強制攻撃の。
まず、bluetoothctl を使用してデバイスをスキャンし、デバイスとペアリングする必要があります:
1。 Bluetoothctl を開始します: sudo bluetoothctl;
2。エージェント クライアントを有効にする (ペアリング用): エージェント オン;
3.スキャン デバイス: スキャン オン;
4. FUZE カードにスキャンした後、スキャンを無効にします: スキャン オフ;
5。 FUZE カードとペアリング: ペア
6.デバイスに表示される数字の PIN コード (
7) を入力します。切断: 切断 <bdaddr>
次に、gatttool を使用してカードにコマンドを送信します:
1. gatttool を開始します: sudo gatttool - I -b
2. デバイスの接続: connect;
3. 通知の購読: char-write-req 1b 0100;
4 . 送信command: char-write-req 18
送信したコマンドは次のとおりです:
最初のコマンドはバイパスできます。翌日にはデバイスのロック画面機能、最初のクレジットカード番号、有効期限、デバイス内のCVVを読み取ることができます。
概要
以前は Apple Pay と Samsung Pay があり、その後 FUZE スマート カードが登場しました。カードレス決済、個人的には Bluetooth クレジット カードに実用的な意味はあまりないと思いますが、すでに存在しているので、そのセキュリティを確保する方法を見つける必要があります。
おすすめの関連記事とチュートリアル: Web サーバーのセキュリティ
以上がBluetooth を使用してクレジット カード データを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。