Open3

Bluetooth信号機のセキュリティは大丈夫なのか問題

okuokuokuoku

いわゆる交通弱者向けにBluetooth LEで制御(青延長、音の有効化、現在状態取得)できる信号機が全国にいくつか設置されている。ただ、これどうも認証とかやってないんじゃないかという気がする。

okuokuokuoku

高度化PICS

Bluetooth LEによる信号機とのI/Fは "高度化PICS" と呼び、警視庁が一覧や運用ガイドラインを公開している。

このガイドラインには、特に暗号学的な保護をしている様子はない。

クライアント

現時点では日本信号が "信Go!"(しんごー と発音する) として独占的に提供している。

ちなみにこのアプリのロードマップ https://www.signal.co.jp/wordpress/wp-content/uploads/2022/02/07_高度化PICS.pdf としては駅構内の案内やSOSボタンなどの機能追加も検討しているらしい。

仕様

基本的には UTMS協会の "BLE路側機-携帯電話間通信 アプリケーション規格" に従っていると見られる。しかし、この規格は一般公開されておらず、NDAが必要となっている。

UTMS協会の実証実験 https://www.sip-adus.go.jp/file/154_s.pdf では、 少くとも平成28年(2016)の実験では青時間延長リクエストには暗号学的な保護があった ことがわかる。平成30年(2018)では、これはアドバタイズに置き換えられている。言い換えると、少くともこのタイミングの仕様では双方がアドバタイズを使って 非接続で 処理を行うようになっている。アドバタイズには容量制限があり、セキュアなコミュニケーションには向かない方式と言える。

ITS情報通信システム推進会議はBluetooth 5.0のextended advertising に従来のITSメッセージをそのまま載せることを提案 https://itsforum.gr.jp/Public/J7Database/p68/ITS_FORUM_RC-016_v10.pdf している。光ビーコンやVHFと違ってBluetoothのアドバタイズは誰でも出せてしまえる以上あまり良いデザインでは無いように思える。ただし、extended advertisingであれば長大なメッセージをアドバタイズとして処理できるため、暗号学的な保護を後から提供することは可能と考えられる。

okuokuokuoku

実地に行って確認するしかないか...

たぶん UTMS_PICS0001 をキーにしてアドバタイズしているBLEビーコンを探せば良いんだとは思うけど細かいパケットフォーマットは判然としない。

どのような攻撃が考えられるか

仮にアドバタイズ側に認証がなかったとすると、 偽信号機 を作ることが可能なのではないか。これを行うには:

  1. 実際の高度化PICS対応信号機のあるところにいって、アドバタイズパケットをキャプチャする
  2. おうちに帰ってからAndroidのデバッグ機能でGPS場所をfakeして、別の機材でアドバタイズパケットをリプレイする
  3. 画面に信号機が出るか確認する

このためだけに新宿とか神奈川行かないとイカンのか。。

geojsonにする

https://tableconvert.com で座標をjsonにした https://gist.github.com/okuoku/ebc07b68bdda98d88ba630876d177f20

適当にgeojsonに変換 https://gist.github.com/okuoku/af54eab378c43041017a12b68146fc9d (GitHubはgeojsonを地図上に表示できる -- ただみづらいので↓のは国土地理院地図Vector https://maps.gsi.go.jp/vector/ にドロップしたもの)。

結構日本全国にあるもんだな。。

川崎あたりが狙い目かな。。