SDRを用いて無線通信の受信や解析を行うことで、一般に販売されていない通信方式についても受信することが可能となっています。 現在では2.4GHzを超え6GHzちかくまでのサンプリング周波数のSDRフロントエンド (送受信装置) も容易に手に入るようになってきました。 今回は5.8GHz帯を利用しているETCを題材にSDRをつかった受信の実例をご紹介します。
© SAKURA internet Inc.SDR (Software Defined Radio)を使った無線の解析2023-02-11 @ SECCON 2022 電脳会議さくらインターネット 執⾏役員 / CIO / CISO江草 陽太
View Slide
2⾃⼰紹介@chibiegg江草 陽太【所属】• さくらインターネット株式会社執⾏役員 技術推進統括担当 兼 CISO 兼 CIO【経歴】• ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン• ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻• 個⼈事業主 (⼤学⽣時代に開業)• ⼤阪⼤学⼤学院⼯学研究科中退• SECCON 2014 Final (Takedashi)【趣味】旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服
© SAKURA internet Inc.SDRってご存知ですか?
© SAKURA internet Inc.旧来の無線受信⽅式電⼦回路の構成が電波の変調⽅式に合わせて作られていた【出典】無線⽅式博⼠の電波講座|⽇本電業⼯作株式会社https://www.den-gyo.com/labo/kouza/radio04.html
© SAKURA internet Inc.旧来の無線受信⽅式電⼦回路の構成が電波の変調⽅式に合わせて作られていた【出典】ゲルマラジオの試作⼯房 : https://www.crystal-set.com/guide/det1.htm
© SAKURA internet Inc.Software Defined な無線受信⽅式電⼦回路は⼀つ、ソフトウェアでなんでも受信できる【出典】SDRの実験 : http://www.73net.sakura.ne.jp/radio/sdr/sdr.html
© SAKURA internet Inc.Software Defined な無線受信⽅式IQ⼆つの信号をAD変換してPCに取り込む【出典】SDRの実験 : http://www.73net.sakura.ne.jp/radio/sdr/sdr.htmlSDRフロントエンドI信号 (in-Phase)Q信号 (Quadrature-Phase)
© SAKURA internet Inc.I/Q信号直交座標にプロットすると位相と振れ幅がわかる周波数のズレは回転運動になるI信号 (in-Phase)Q信号 (Quadrature-Phase)θ : 位相A : 振幅
© SAKURA internet Inc.Takahiko Saba Dept. of Computer Science, C.I.T.ෳૉแབྷઢ DPNQMFYFOWFMPQFྖҬͰߟ͑Δ͜ͱ͕Ͱ͖ΔʹՁҬ৴߸Takahiko Saba Dept. of Computer Science, C.I.T.*JOQIBTF ಉ૬DPT2RVBESBUVSFQIBTF ަҐ૬TJO DPOTUFMMBUJPO࠲Takahiko Saba Dept. of Computer Science, C.I.T.11214,ͷ৴߸ભҠIQ༨ݭϩʔϧΦϑϑΟϧλ༻ʢϩʔϧΦϑʣҐ૬ͷભҠʹݪΛ௨ա͢Δ߹͕͋ΔͨΊৼ෯มಈ͕େ͖͍ʢޮͷѱ͍ઢܗ૿෯ثΛΘ͟ΔΛಘͳ͍ʣTakahiko Saba Dept. of Computer Science, C.I.T.Φϑηοτ214,ͱКγϑτ214, 12IQIQКγϑτ214,Φϑηοτ214,γϯϘϧຖʹКͷҐ૬ࠩΛ͚ͭΔ*࣠ͱ2࣠ʹ࣌ؒࠩΛ͚ͭͯมԽͤ͞ΔݪΛ௨ա͠ͳ͍ৼ෯มಈখ͍͞Ӵ௨৴ͳͲͰ༻ ܞଳి 1%$Ͱ༻Takahiko Saba Dept. of Computer Science, C.I.T.ෳૉแབྷઢ DPNQMFYFOWFMPQFྖҬͰߟ͑Δ͜ͱ͕Ͱ͖ΔʹՁҬ৴߸Takahiko Saba Dept. of Computer Science, C.I.T.*JOQIBTF ಉ૬DPT2RVBESBUVSFQIBTF ަҐ૬TJO DPOTUFMMBUJPO࠲Takahiko Saba Dept. of Computer Science, C.I.T.11214,ͷ৴߸ભҠIQ༨ݭϩʔϧΦϑϑΟϧλ༻ʢϩʔϧΦϑʣҐ૬ͷભҠʹݪΛ௨ա͢Δ߹͕͋ΔͨΊৼ෯มಈ͕େ͖͍ʢޮͷѱ͍ઢܗ૿෯ثΛΘ͟ΔΛಘͳ͍ʣTakahiko Saba Dept. of Computer Science, C.I.T.Φϑηοτ214,ͱКγϑτ214, 12IQIQКγϑτ214,Φϑηοτ214,γϯϘϧຖʹКͷҐ૬ࠩΛ͚ͭΔ*࣠ͱ2࣠ʹ࣌ؒࠩΛ͚ͭͯมԽͤ͞ΔݪΛ௨ա͠ͳ͍ৼ෯มಈখ͍͞Ӵ௨৴ͳͲͰ༻ ܞଳి 1%$Ͱ༻【出典】千葉⼯業⼤学 佐波孝彦 「デジタル変調⽅式(2)」http://www.saba.cs.it-chiba.ac.jp/_userdata/AdvCom04.pdf
© SAKURA internet Inc.⾼速通信の場合はhttps://www.researchgate.net/figure/a-32-QAM-b-64-QAM-c-128-QAM-constellation-maps-in-the-case-of-1100mV-driving_fig6_344313794
© SAKURA internet Inc.SDRフロントエンド⼀番有名なのは RTL-SDR ...?RealtekのSDRチップを積んだUSBドングル⼀般的にはワンセグチューナーが多い局発周波数 500KHz ~ 1.7GHz ぐらいサンプリング周波数 28.8MHz などワンセグ視聴ソフト⾃体もSDRでできている
© SAKURA internet Inc.GNU Radio様々な信号処理をブロックで繋いで処理ができる
© SAKURA internet Inc.ETCを⾒てみよう
© SAKURA internet Inc.ETCの仕様無線の通信⽅式については「ARIB STD-T75 DSRC (狭域通信) システム」として変調⽅式とMAC層が規定されているアプリケーションの仕様については「 NEXCO総研 ETC⾞載器仕様書」にて規定されている (今回は利⽤しない)
© SAKURA internet Inc.注意事項本資料は公開されている無線⽅式や規格を学習しやすくするための解説、および測定に⽤いられる機材の取り扱いノウハウを記述するものであり、検証に伴って取得された通信の内容そのものは含めません。ETCシステムは通常 「ETCシステム利⽤規程」 に従ってETCカードの貸与を受けて利⽤するものであり、その通信はシステムの構成要素同⼠での内部的な通信と思われます。よって、その通信に含まれる情報を利⽤者が公開したり、その情報を窃⽤し何らかの便益を得ることは違法となる可能性があるためです。(参考:Wikipedia - 傍受)
© SAKURA internet Inc.ETCの仕様 (無線)• 5.8GHz帯• 下り⽅向(地上局から移動局)5795MHz および 5805MHz• 上り⽅向 5835MHz および 5845 MHz• 右旋円偏波• 変調⽅式は ASK (ETC2.0 は π/4 シフト QPSK)• 符号化⽅式は 1024kbps マンチェスタ符号• 帯域4MHz (1チャンネルあたり)
© SAKURA internet Inc.ASK の コンスタレーションASKは振れ幅のみに意味があるAM変調のデジタル版ETCの場合は0%か100%かI信号 (in-Phase)Q信号 (Quadrature-Phase)振れ幅が変わる周波数が完全に⼀致していれば位相は変わらない(が実際には回転している)
© SAKURA internet Inc.ETCを受信できるフロントエンドサンプリング周波数 60MHz で全チャンネル⼀気に録るサンプリング周波数 5MHz で上り下り別々に録る
© SAKURA internet Inc.ETCを受信できるフロントエンドサンプリング周波数 60MHz で全チャンネル⼀気に録るサンプリング周波数 5MHz で上り下り別々に録るHackRF One• 局発周波数 1MHz ~ 6GHz• サンプリング周波数 ~20MHz• 量⼦化ビット数 8bit• LNAゲイン 0dB ~ 40dB
© SAKURA internet Inc.アンテナアンテナは⾞載器のものをそのまま利⽤する
© SAKURA internet Inc.ノイズ対策とにかくノイズがひどい
© SAKURA internet Inc.ノイズ対策しっかりとシールドで保護する
© SAKURA internet Inc.ノイズ対策HackRF One のLNAは5GHz帯ではつかえない5.8GHz帯のバンドパスフィルタ 外付けRFアンプ (Qorvo SBB5089Z)6GHzにおいてゲイン15.5dB
© SAKURA internet Inc.
© SAKURA internet Inc.記録⽤ GNU Radio デザインIQ信号をそのままファイルに保存2チャンネルそれぞれを中⼼に周波数シフトして表⽰
© SAKURA internet Inc.振れ幅変調されていることがなんとなくわかるA = √I^2 + Q^2
© SAKURA internet Inc. 検波検波 + マンチェスタデコードGNU Radio デザイン
© SAKURA internet Inc.ファイルから読む
© SAKURA internet Inc.複製
© SAKURA internet Inc.+5MHz周波数シフト-5MHz周波数シフト
© SAKURA internet Inc.振幅にオートゲインコントロール振幅に
© SAKURA internet Inc.マンチェスタ符号信号の⽴ち下がり/⽴ち上がりを”1”と”0”とする符号化ANALOG DEVICES「無線通信⽤のマンチェスタデータ符号化⽅式」https://www.analog.com/jp/technical-articles/manchester-data-encoding-for-radio-communications.html
© SAKURA internet Inc.マンチェスタ符号のデコードhttps://github.com/homelith/arib-t75-dsrc-toolkit/blob/main/gnuradio/etc2pcap_20m_dual.grc
© SAKURA internet Inc.ETCの仕様 (MAC層)• パケット通信である• 地上局を起点とする1往復を「スロット」と呼ぶ• スロットには⼀種類、ないしは⼆種類の「チャネル (パケット)」が含まれる• MDCパケットだけは簡易秘話スクランブルがかかっている
© SAKURA internet Inc.スロットとチャネルの関係• FCMS (フレームコントロールメッセージスロット)• FCMC (フレームコントロールメッセージチャネル)• MDS (メッセージデータスロット)• MDC (メッセージデータチャネル)• ACKC (アックチャネル)• ACTS (アクチベーションスロット)• ACTC (アクチベーションチャネル)• WCNS (ワイヤレスコールナンバースロット)• WCNC (ワイヤレスコールナンバーチャネル)
© SAKURA internet Inc.シーケンス• 地上局からの通信を開始する• FCMSからはじまり、MDS, SCTS, WCNS をいくつか含む連続した通信を⾏う• FCMSから始まるこの⼀連のシーケンスを「フレーム」と呼ぶ
© SAKURA internet Inc.FCMS (フレームコントロールメッセージスロット)• 後に続く8スロットについてどの様に利⽤するかを移動局に対して指⽰をするスロット• スロットは半⼆重か全⼆重かを選択することができる
© SAKURA internet Inc.ACTS (アクティベーションスロット)• 6個のACTCを含むことができる• 移動局はこの中から⼀つ選びACTCを送信する• ACTCにはリンクアドレス(LID)フィールドを持ち、地上局が移動局を識別するのに使う
© SAKURA internet Inc.MDS (メッセージデータスロット)• 意味のある実際のデータを含むスロット• MDCとACKCを含む• データ送出側がMDCを送信し、受信側がACKCを送信する• MDCは71バイト固定⻑
© SAKURA internet Inc.WCNS (ワイヤレスコールナンバースロット)• WCNCを⼀つ含む• 移動局に付与された固有の識別符号を地上局に伝える
© SAKURA internet Inc.シーケンス
© SAKURA internet Inc.デコードしてpcap形式で保存するデコードしてpcap形式で保存する
© SAKURA internet Inc.Wiresharkで⾒るpcapファイルをデコードできる dissector を開発https://github.com/chibiegg/arib-t75-dsrc-wireshark/途中で切れているパケットが散⾒される(原因は後述)
© SAKURA internet Inc.上りと下りを結合する⽬視で時間を合わせてツールで結合する$ go run ofsmerge.go -o {offset_in_usec} {downlink.pcap} {uplink.pcap} {output.pcap}上り 下り
© SAKURA internet Inc.秘話の仕様• DSRCの仕様ではMDCの⼀部に「簡易秘話スクランブル」をかけることになっている• MACフィールドの次のバイトから、CRCを含む末尾までがスクランブル対象• は公開情報 (FCMSとACTSにより交換されたリンクローカルアドレスから算出)
© SAKURA internet Inc.秘話デスクランブラ• 16段M系列のPNパターン (シフトレジスタ) が利⽤されている• ⽣成多項式は 1+X+X^3+X^12+X^16• 秘話 をシフトレジスタの初期値として⽤い、スクランブルされたビット列をシフトレジスタに順番に⼊れていく• ブロードキャストの場合は はゼロ
© SAKURA internet Inc.スクランブル...?仕様書には「本標準規格では、DSRC専⽤に最低限レベルでのプライバシー保護/無線傍受対策として、秘話 配送のスクランブルによる簡易秘話⽅式(秘話スクランブル⽅式)を定める。」と記載
© SAKURA internet Inc.デコード結果---- #38 packet (len=58, time=0.456430, downlink) ----parse UW : ASK UW1 (0xd815d27c) detected.calc CRC : calculated 0x1702 and reference 0x1702 matched.parse IMI : standard procedure (0x00)API #1 slot : type == 'Multi-purpose Toll Collection system (ETC)', Last Itemparse FSI : Full Duplex, 4 x 2 slot occupiedSCI #0 downlink : type == 'MDS', ask modulation, standard data channel, downlink,LID 0x5a0492b5, set 0xfba5 to MDS Key[0]SCI #0 uplink : type == 'MDS', ask modulation, empty data channel, uplinkSCI #1 downlink : type == 'MDS', ask modulation, empty data channel, downlinkSCI #1 uplink : type == 'ACTS'SCI #2 downlink : type == 'MDS', ask modulation, empty data channel, downlinkSCI #2 uplink : type == 'ACTS'SCI #3 downlink : type == 'MDS', ask modulation, empty data channel, downlinkSCI #3 uplink : type == 'ACTS'
© SAKURA internet Inc.課題なぜ途中でパケットが切れてしまうのか
© SAKURA internet Inc.原因GNU Radioの保存では float32 (IQで8バイト)= 640Mbps (80MB/sec) @ 20Msps本来は 8bit (IQで2バイト)= 160Mbps (20MB/sec) @ 20Mspsそのまま保存するツールを使って記録するべきSATA SSDの帯域が⾜りてなかった! (笑)
© SAKURA internet Inc.まとめ
© SAKURA internet Inc.まとめSDRをつかうと⼀般に⼿に⼊らない通信も受信することができる5GHzなどの⾼周波数はアンプとノイズに注意いろんな仕様書読むの楽しいこの内容は以下の記事に掲載していますSDRでETCの電波を受信しよう (フィールドワーク編) @homelithhttps://qiita.com/homelith/items/9acc6e307f33e73d676cSDRでETCの電波を受信しよう (デコード編) @chibiegghttps://qiita.com/chibiegg/items/35f60ee8d4551905f603