web-dev-qa-db-ja.com

ワイヤレス充電のセキュリティ脅威?

マイクロUSBを介して公共/管理されていない場所で充電するためにモバイルデバイスを接続すると、セキュリティ上の問題が発生する可能性があることがよく知られています。 USBプロトコルは、電力の転送だけでなく、デバイスをあらゆる種類の悪意のあるデータ転送にさらしたままにします。

だから私は私の電話を信頼できない有線充電器に接続しませんが、wireless充電技術-Qiのような-がセキュリティへの脅威をもたらすかどうか、たとえば、あらゆる種類のバックドア/悪用アクセスを許可することによってデバイス自体?

周波数が高くなっている公共のワイヤレス充電パッド(カフェなど)に遭遇しましたが、スマートフォン(ほとんどの場合、Nexus 4)をほぼシームレスに維持するのに非常に便利な方法のようです。したがって、セキュリティの脅威を心配せずにこの素晴らしい新技術を利用できるかどうか、私は非常に興味があります。

20
Xion

古い充電器は、単なるダイオード電源でした-ダイオードブリッジ、コンデンサ、電圧レギュレータICにすぎません。彼らは電話に安定した電圧を供給し、多くの場合+ 5Vでした。最近の電話にUSB接続が導入されたとき、+ 5Vが標準になり、USBヘッダーの電源ピンがまったく同じ充電に使用されました。 2つのデータピンはフローティングのままにするか、グランドに接続し、使用されません。

最近は状況が変わりました。現代の電話は、電力を大量に消費するスマートデバイスであり、大きなバッテリーを備えています。古いUSB規格では、デバイスに供給できる電流の量が大幅に制限されています。 USB 1.1ポートでは、+ 5Vラインで最大100mAの電流を引き出すことができます。これは0.5Wに相当し、充電時には確かに多くはありません。 USB 2.0はこれを500mAに増やし、USB 3.0はさらに900mAに増やしました。ただし、実際に許容される電力消費量はそれほど単純ではありません。デバイスが取り外せる最大値に接続されている場合、USB 2.0/3.0の場合、それぞれ100mA/150mAです。デバイスは、それが接続されているドックと同様に、特定のtypeを指定する必要があります。これは交渉と呼ばれます。

USBの電源状態には、主に3つのタイプがあります。

  • デッドバッテリーなし(NDB)モード-ネゴシエーションなしでデバイスに接続すると、100mA(USB3では150mA)を引き出すことができます。データを転送することはできません。
  • ホスト充電器モード-デバイスがホストに登録された後、USB 1.1で100mA、USB 2.0で500mA、USB 3.0で900mAを許可し、全二重通信が可能です。これは、ほとんどのデバイスがコンピュータに接続されたときに入る「通常の」モードです。
  • 専用充電器モード-USB 2.0および3.0でのみ定義され、専用充電器デバイスで1.5Aを許可します。このモードの間、データは転送されません。ただし、デバイスは充電器とこのモードをネゴシエートする必要があります

ネゴシエーションが発生していない場合、デバイスが消費できるのは150mAのみであることに注意してください。これは安全機能です。デバイスの過電流保護には、交換するためにはんだ除去を必要とする表面実装ヒューズが含まれる場合があるためです。そのため、デバイスが100mAのみをサポートするUSB​​ 1.1ホストで1.5Aをプルしようとした場合、ホストが溶ける可能性があります。そのため、データ転送を含む適切なネゴシエーションを行う必要があります。

ここで問題が発生します。

  • ネゴシエーションフェーズは、ハードウェア、ファームウェア、またはソフトウェアで実装できます。通常、最初のステップはハードウェア、次に次のステップはファームウェア、最後のステップ(PnPによるOS認識)はソフトウェアです。
  • 最初のネゴシエーションハンドシェイクに含まれるデータには、(私が知る限り)任意の長さのバッファーは含まれていません。電力交渉を伴うのはこの段階です。
  • 完全なプラグアンドプレイネゴシエーションに含まれるデータは複雑であり、ほとんどの場合、任意の長さのバッファが含まれます。

そのため、最新の専用充電器には通常、ネゴシエーションフェーズに対応するための小さなマイクロコントローラーまたは専用USBホストチップが搭載されています。これは、通常、ファームウェアベースの攻撃面が充電器にあり、最も確実にデバイスにあることを意味します。ただし、一部の専用充電器(iPhoneなど)は、検出トリック(たとえば、データラインでの容量検知)を使用して仕様をごまかし、充電器の製造を安くするため、データ転送を行う必要がありません。これはUSB仕様に違反している場合と違反していない場合がありますが、大企業はそのようなものを過去の規制機関から入手できる傾向があります。

ワイヤレス充電側は、電流の実際の伝達が振動電磁場を介して行われることを除いて、ほぼ同じように機能します。 [〜#〜] nfc [〜#〜] スタイルの通信チャネルを介して、ネゴシエーションは同じ方法で機能します。その通信チャネルにデータを注入できれば、ネゴシエーションの動作を変更できるかもしれませんが、プロトコルに違反せずに興味深いことを何でもできるとは思いません。興味深い研究方法は、プロトコルにバッファオーバーフローまたは同様の問題があるデバイスがあるかどうかを確認することです。

したがって、結論として、あなたはデバイスのエクスプロイトを見つけることができる可能性がありますが、USBコントローラICを一時的にブリックする以外に何もしない可能性がありますデバイス。または、充電器をアクティブなホストに交換し、それを使用してデバイスと完全にネゴシエートし、コマンドを送信することもできます。これは、iPhoneおよびAndroidデバイスでは、デバイスのメモリにアクセスできるため、特に危険です。

13
Polynomial

ワイヤレス充電器やUSB充電器によるセキュリティ上の脅威はありません。 USB充電器をスマートフォンに接続すると充電が始まりますが、ストレージへのアクセスが有効になっていない場合は、スマートフォンのストレージへのアクセスを手動で有効にする必要があります。ただし、ADBとUSBのデバッグが無効になっていることを確認する必要があります。LinuxUSBドライバーのいずれかでエクスプロイトが存在する可能性がありますが、コードがかなり前から存在し、何も見つからなかったため、その可能性は低いです。

ワイヤレス充電では、電話をリモートで悪用することは不可能だと思います。ワイヤレスバッテリー回路とバッテリーパーツ自体はメインCPUから分離されており、バッテリーパーツとCPUの間の唯一の通信はバッテリーのステータスです。また、実用的な攻撃を成功させるには、双方向通信が必要です。充電パッドはEMエネルギーを送信していますが、そのエネルギーは、情報を表すことができる特定の方法で「成形」されていません。さらに、ワイヤレス充電器のEMエネルギーをデータとして解釈するための電話内のロジックはありません。誘導のストーブのような誘導の原理で動作します。

私が目にするワイヤレス充電パッドの唯一の脅威は、それらがあまりにも多くのエネルギーを送ることによってあなたの電話の電子回路を損傷する(「揚げる」)ことによってDoSを引き起こすために使用される可能性があるということです。しかし、電話メーカーがそのようなことに対して何らかの保護を実装してくれれば幸いです。しかし、充電器からのエネルギーが本当に多い場合、電話が接地されていないので、保護は役に立ちません。ただし、このような攻撃は破壊以外の目的には役立ちません。

2
Matrix