Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SDR (Software Defined Radio) を使った無線の解析 @ 2023-02-11 SECCON 電脳会議 2022 / Wireless Analyzing using SDR @ SECCON 2022

chibiegg
February 11, 2023

SDR (Software Defined Radio) を使った無線の解析 @ 2023-02-11 SECCON 電脳会議 2022 / Wireless Analyzing using SDR @ SECCON 2022

SDRを用いて無線通信の受信や解析を行うことで、一般に販売されていない通信方式についても受信することが可能となっています。 現在では2.4GHzを超え6GHzちかくまでのサンプリング周波数のSDRフロントエンド (送受信装置) も容易に手に入るようになってきました。 今回は5.8GHz帯を利用しているETCを題材にSDRをつかった受信の実例をご紹介します。

chibiegg

February 11, 2023
Tweet

More Decks by chibiegg

Other Decks in Technology

Transcript

  1. © SAKURA internet Inc.
    SDR (Software Defined Radio)
    を使った無線の解析
    2023-02-11 @ SECCON 2022 電脳会議
    さくらインターネット 執⾏役員 / CIO / CISO
    江草 陽太

    View Slide

  2. 2
    ⾃⼰紹介
    @chibiegg
    江草 陽太
    【所属】
    • さくらインターネット株式会社
    執⾏役員 技術推進統括担当 兼 CISO 兼 CIO
    【経歴】
    • ロボカップジュニア (中学・⾼校) / NHK⼤学ロボコン
    • ⼤阪⼤学⼯学部電⼦情報⼯学科情報通信⼯学専攻
    • 個⼈事業主 (⼤学⽣時代に開業)
    • ⼤阪⼤学⼤学院⼯学研究科中退
    • SECCON 2014 Final (Takedashi)
    【趣味】
    旅⾏/温泉/写真/電⼦⼯作/プログラミング/かわいい服

    View Slide

  3. © SAKURA internet Inc.
    SDRってご存知ですか?

    View Slide

  4. © SAKURA internet Inc.
    旧来の無線受信⽅式
    電⼦回路の構成が電波の変調⽅式に合わせて作られていた
    【出典】無線⽅式博⼠の電波講座|⽇本電業⼯作株式会社
    https://www.den-gyo.com/labo/kouza/radio04.html

    View Slide

  5. © SAKURA internet Inc.
    旧来の無線受信⽅式
    電⼦回路の構成が電波の変調⽅式に合わせて作られていた
    【出典】ゲルマラジオの試作⼯房 : https://www.crystal-set.com/guide/det1.htm

    View Slide

  6. © SAKURA internet Inc.
    Software Defined な無線受信⽅式
    電⼦回路は⼀つ、ソフトウェアでなんでも受信できる
    【出典】SDRの実験 : http://www.73net.sakura.ne.jp/radio/sdr/sdr.html

    View Slide

  7. © SAKURA internet Inc.
    Software Defined な無線受信⽅式
    IQ⼆つの信号をAD変換してPCに取り込む
    【出典】SDRの実験 : http://www.73net.sakura.ne.jp/radio/sdr/sdr.html
    SDRフロントエンド
    I信号 (in-Phase)
    Q信号 (Quadrature-Phase)

    View Slide

  8. © SAKURA internet Inc.
    I/Q信号
    直交座標にプロットすると
    位相と振れ幅がわかる
    周波数のズレは回転運動になる
    I信号 (in-Phase)
    Q信号 (Quadrature-Phase)
    θ : 位相
    A : 振幅

    View Slide

  9. © SAKURA internet Inc.
    Takahiko Saba Dept. of Computer Science, C.I.T.
    ෳૉแབྷઢ DPNQMFYFOWFMPQF

    ྖҬͰߟ͑Δ͜ͱ͕Ͱ͖Δ
    ʹ౳Ձ௿Ҭ৴߸
    Takahiko Saba Dept. of Computer Science, C.I.T.
    *JOQIBTF ಉ૬
    DPT੒෼
    2RVBESBUVSFQIBTF ௚ަҐ૬
    TJO੒෼ ஫
    DPOTUFMMBUJPO੕࠲
    Takahiko Saba Dept. of Computer Science, C.I.T.
    11
    214,ͷ৴߸఺ભҠ
    I
    Q
    ༨ݭϩʔϧΦϑϑΟϧλ࢖༻
    ʢϩʔϧΦϑ཰ʣ
    Ґ૬ͷભҠʹݪ఺Λ௨ա͢Δ৔߹
    ͕͋ΔͨΊৼ෯มಈ͕େ͖͍
    ʢޮ཰ͷѱ͍ઢܗ૿෯ثΛ࢖Θ͟
    ΔΛಘͳ͍ʣ
    Takahiko Saba Dept. of Computer Science, C.I.T.
    Φϑηοτ214,ͱКγϑτ214, 12
    I
    Q
    I
    Q
    Кγϑτ214,
    Φϑηοτ214,
    γϯϘϧຖʹК
    ͷҐ૬ࠩΛ͚ͭΔ
    *࣠ͱ2࣠ʹ࣌ؒࠩ
    Λ͚ͭͯมԽͤ͞Δ
    ݪ఺Λ௨ա͠ͳ͍
    ৼ෯มಈ΋খ͍͞
    Ӵ੕௨৴ͳͲͰ࢖༻ ܞଳి࿩ 1%$
    Ͱ࢖༻
    Takahiko Saba Dept. of Computer Science, C.I.T.
    ෳૉแབྷઢ DPNQMFYFOWFMPQF

    ྖҬͰߟ͑Δ͜ͱ͕Ͱ͖Δ
    ʹ౳Ձ௿Ҭ৴߸
    Takahiko Saba Dept. of Computer Science, C.I.T.
    *JOQIBTF ಉ૬
    DPT੒෼
    2RVBESBUVSFQIBTF ௚ަҐ૬
    TJO੒෼ ஫
    DPOTUFMMBUJPO੕࠲
    Takahiko Saba Dept. of Computer Science, C.I.T.
    11
    214,ͷ৴߸఺ભҠ
    I
    Q
    ༨ݭϩʔϧΦϑϑΟϧλ࢖༻
    ʢϩʔϧΦϑ཰ʣ
    Ґ૬ͷભҠʹݪ఺Λ௨ա͢Δ৔߹
    ͕͋ΔͨΊৼ෯มಈ͕େ͖͍
    ʢޮ཰ͷѱ͍ઢܗ૿෯ثΛ࢖Θ͟
    ΔΛಘͳ͍ʣ
    Takahiko Saba Dept. of Computer Science, C.I.T.
    Φϑηοτ214,ͱКγϑτ214, 12
    I
    Q
    I
    Q
    Кγϑτ214,
    Φϑηοτ214,
    γϯϘϧຖʹК
    ͷҐ૬ࠩΛ͚ͭΔ
    *࣠ͱ2࣠ʹ࣌ؒࠩ
    Λ͚ͭͯมԽͤ͞Δ
    ݪ఺Λ௨ա͠ͳ͍
    ৼ෯มಈ΋খ͍͞
    Ӵ੕௨৴ͳͲͰ࢖༻ ܞଳి࿩ 1%$
    Ͱ࢖༻
    【出典】千葉⼯業⼤学 佐波孝彦 「デジタル変調⽅式(2)」
    http://www.saba.cs.it-chiba.ac.jp/_userdata/AdvCom04.pdf

    View Slide

  10. © 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

    View Slide

  11. © SAKURA internet Inc.
    SDRフロントエンド
    ⼀番有名なのは RTL-SDR ...?
    RealtekのSDRチップを積んだUSBドングル
    ⼀般的にはワンセグチューナーが多い
    局発周波数 500KHz ~ 1.7GHz ぐらい
    サンプリング周波数 28.8MHz など
    ワンセグ視聴ソフト⾃体もSDRでできている

    View Slide

  12. © SAKURA internet Inc.
    GNU Radio
    様々な信号処理をブロックで繋いで処理ができる

    View Slide

  13. © SAKURA internet Inc.
    ETCを⾒てみよう

    View Slide

  14. © SAKURA internet Inc.
    ETCの仕様
    無線の通信⽅式については
    「ARIB STD-T75 DSRC (狭域通信) システム」
    として変調⽅式とMAC層が規定されている
    アプリケーションの仕様については
    「 NEXCO総研 ETC⾞載器仕様書」
    にて規定されている (今回は利⽤しない)

    View Slide

  15. © SAKURA internet Inc.
    注意事項
    本資料は公開されている無線⽅式や規格を学習しやすくするための
    解説、および測定に⽤いられる機材の取り扱いノウハウを記述する
    ものであり、検証に伴って取得された通信の内容そのものは含めま
    せん。
    ETCシステムは通常 「ETCシステム利⽤規程」 に従ってETCカード
    の貸与を受けて利⽤するものであり、その通信はシステムの構成要
    素同⼠での内部的な通信と思われます。よって、その通信に含まれ
    る情報を利⽤者が公開したり、その情報を窃⽤し何らかの便益を得
    ることは違法となる可能性があるためです。
    (参考:Wikipedia - 傍受)

    View Slide

  16. © SAKURA internet Inc.
    ETCの仕様 (無線)
    • 5.8GHz帯
    • 下り⽅向(地上局から移動局)5795MHz および 5805MHz
    • 上り⽅向 5835MHz および 5845 MHz
    • 右旋円偏波
    • 変調⽅式は ASK (ETC2.0 は π/4 シフト QPSK)
    • 符号化⽅式は 1024kbps マンチェスタ符号
    • 帯域4MHz (1チャンネルあたり)

    View Slide

  17. © SAKURA internet Inc.
    ASK の コンスタレーション
    ASKは振れ幅のみに意味がある
    AM変調のデジタル版
    ETCの場合は0%か100%か
    I信号 (in-Phase)
    Q信号 (Quadrature-Phase)
    振れ幅が変わる
    周波数が完全に⼀致していれば
    位相は変わらない
    (が実際には回転している)

    View Slide

  18. © SAKURA internet Inc.
    ETCを受信できるフロントエンド
    サンプリング周波数 60MHz で全チャンネル⼀気に録る
    サンプリング周波数 5MHz で上り下り別々に録る

    View Slide

  19. © SAKURA internet Inc.
    ETCを受信できるフロントエンド
    サンプリング周波数 60MHz で全チャンネル⼀気に録る
    サンプリング周波数 5MHz で上り下り別々に録る
    HackRF One
    • 局発周波数 1MHz ~ 6GHz
    • サンプリング周波数 ~20MHz
    • 量⼦化ビット数 8bit
    • LNAゲイン 0dB ~ 40dB

    View Slide

  20. © SAKURA internet Inc.
    アンテナ
    アンテナは⾞載器のものをそのまま利⽤する

    View Slide

  21. © SAKURA internet Inc.
    ノイズ対策
    とにかくノイズがひどい

    View Slide

  22. © SAKURA internet Inc.
    ノイズ対策
    しっかりとシールドで保護する

    View Slide

  23. © SAKURA internet Inc.
    ノイズ対策
    HackRF One のLNAは5GHz帯ではつかえない
    5.8GHz帯のバンドパスフィルタ 外付けRFアンプ (Qorvo SBB5089Z)
    6GHzにおいてゲイン15.5dB

    View Slide

  24. © SAKURA internet Inc.

    View Slide

  25. © SAKURA internet Inc.
    記録⽤ GNU Radio デザイン
    IQ信号をそのままファイルに保存
    2チャンネルそれぞれを中⼼に周波数シフトして表⽰

    View Slide

  26. © SAKURA internet Inc.
    振れ幅変調されていることがなんとなくわかる
    A = √I^2 + Q^2

    View Slide

  27. © SAKURA internet Inc. 検波
    検波 + マンチェスタデコード
    GNU Radio デザイン

    View Slide

  28. © SAKURA internet Inc.
    ファイルから読む

    View Slide

  29. © SAKURA internet Inc.
    複製

    View Slide

  30. © SAKURA internet Inc.
    +5MHz周波数シフト
    -5MHz周波数シフト

    View Slide

  31. © SAKURA internet Inc.
    振幅に
    オートゲインコントロール
    振幅に

    View Slide

  32. © SAKURA internet Inc.
    マンチェスタ符号
    信号の⽴ち下がり/⽴ち上がりを”1”と”0”とする符号化
    ANALOG DEVICES「無線通信⽤のマンチェスタデータ符号化⽅式」
    https://www.analog.com/jp/technical-articles/manchester-data-encoding-for-radio-communications.html

    View Slide

  33. © SAKURA internet Inc.
    マンチェスタ符号のデコード
    https://github.com/homelith/arib-t75-dsrc-toolkit/blob/main/gnuradio/etc2pcap_20m_dual.grc

    View Slide

  34. © SAKURA internet Inc.

    View Slide

  35. © SAKURA internet Inc.
    ETCの仕様 (MAC層)
    • パケット通信である
    • 地上局を起点とする1往復を「スロット」と呼ぶ
    • スロットには⼀種類、ないしは⼆種類の「チャネル (パケット)」
    が含まれる
    • MDCパケットだけは簡易秘話スクランブルがかかっている

    View Slide

  36. © SAKURA internet Inc.
    スロットとチャネルの関係
    • FCMS (フレームコントロールメッセージスロット)
    • FCMC (フレームコントロールメッセージチャネル)
    • MDS (メッセージデータスロット)
    • MDC (メッセージデータチャネル)
    • ACKC (アックチャネル)
    • ACTS (アクチベーションスロット)
    • ACTC (アクチベーションチャネル)
    • WCNS (ワイヤレスコールナンバースロット)
    • WCNC (ワイヤレスコールナンバーチャネル)

    View Slide

  37. © SAKURA internet Inc.
    シーケンス
    • 地上局からの通信を開始する
    • FCMSからはじまり、MDS, SCTS, WCNS をいくつか含む連続し
    た通信を⾏う
    • FCMSから始まるこの⼀連のシーケンスを「フレーム」と呼ぶ

    View Slide

  38. © SAKURA internet Inc.
    FCMS (フレームコントロールメッセージスロット)
    • 後に続く8スロットについてどの様に利⽤するかを移動局に対して
    指⽰をするスロット
    • スロットは半⼆重か全⼆重かを選択することができる

    View Slide

  39. © SAKURA internet Inc.
    ACTS (アクティベーションスロット)
    • 6個のACTCを含むことができる
    • 移動局はこの中から⼀つ選びACTCを送信する
    • ACTCにはリンクアドレス(LID)フィールドを持ち、地上局が移動
    局を識別するのに使う

    View Slide

  40. © SAKURA internet Inc.
    MDS (メッセージデータスロット)
    • 意味のある実際のデータを含むスロット
    • MDCとACKCを含む
    • データ送出側がMDCを送信し、受信側がACKCを送信する
    • MDCは71バイト固定⻑

    View Slide

  41. © SAKURA internet Inc.
    WCNS (ワイヤレスコールナンバースロット)
    • WCNCを⼀つ含む
    • 移動局に付与された固有の識別符号を地上局に伝える

    View Slide

  42. © SAKURA internet Inc.
    シーケンス

    View Slide

  43. © SAKURA internet Inc.
    デコードして
    pcap形式で保存する
    デコードして
    pcap形式で保存する

    View Slide

  44. © SAKURA internet Inc.
    Wiresharkで⾒る
    pcapファイルをデコードできる dissector を開発
    https://github.com/chibiegg/arib-t75-dsrc-wireshark/
    途中で切れているパケットが散⾒される
    (原因は後述)

    View Slide

  45. © SAKURA internet Inc.
    上りと下りを結合する
    ⽬視で時間を合わせてツールで結合する
    $ go run ofsmerge.go -o {offset_in_usec} {downlink.pcap} {uplink.pcap} {output.pcap}
    上り 下り

    View Slide

  46. © SAKURA internet Inc.
    秘話の仕様
    • DSRCの仕様ではMDCの⼀部に「簡易秘話スクランブル」をかけ
    ることになっている
    • MACフィールドの次のバイトから、CRCを含む末尾までがスクラ
    ンブル対象
    • は公開情報 (FCMSとACTSにより交換されたリンクローカルア
    ドレスから算出)

    View Slide

  47. © SAKURA internet Inc.
    秘話デスクランブラ
    • 16段M系列のPNパターン (シフトレジスタ) が利⽤されている
    • ⽣成多項式は 1+X+X^3+X^12+X^16
    • 秘話 をシフトレジスタの初期値として⽤い、スクランブルされ
    たビット列をシフトレジスタに順番に⼊れていく
    • ブロードキャストの場合は はゼロ

    View Slide

  48. © SAKURA internet Inc.
    スクランブル...?
    仕様書には
    「本標準規格では、DSRC専⽤に最低限レベルでのプライバシー保
    護/無線傍受対策として、秘話 配送のスクランブルによる簡易秘話
    ⽅式(秘話スクランブル⽅式)を定める。」
    と記載

    View Slide

  49. © 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 Item
    parse FSI : Full Duplex, 4 x 2 slot occupied
    SCI #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, uplink
    SCI #1 downlink : type == 'MDS', ask modulation, empty data channel, downlink
    SCI #1 uplink : type == 'ACTS'
    SCI #2 downlink : type == 'MDS', ask modulation, empty data channel, downlink
    SCI #2 uplink : type == 'ACTS'
    SCI #3 downlink : type == 'MDS', ask modulation, empty data channel, downlink
    SCI #3 uplink : type == 'ACTS'

    View Slide

  50. © SAKURA internet Inc.
    課題
    なぜ途中でパケットが切れてしまうのか

    View Slide

  51. © SAKURA internet Inc.
    原因
    GNU Radioの保存では float32 (IQで8バイト)
    = 640Mbps (80MB/sec) @ 20Msps
    本来は 8bit (IQで2バイト)
    = 160Mbps (20MB/sec) @ 20Msps
    そのまま保存するツールを使って記録するべき
    SATA SSDの帯域が⾜りてなかった! (笑)

    View Slide

  52. © SAKURA internet Inc.
    まとめ

    View Slide

  53. © SAKURA internet Inc.
    まとめ
    SDRをつかうと⼀般に⼿に⼊らない通信も受信することができる
    5GHzなどの⾼周波数はアンプとノイズに注意
    いろんな仕様書読むの楽しい
    この内容は以下の記事に掲載しています
    SDRでETCの電波を受信しよう (フィールドワーク編) @homelith
    https://qiita.com/homelith/items/9acc6e307f33e73d676c
    SDRでETCの電波を受信しよう (デコード編) @chibiegg
    https://qiita.com/chibiegg/items/35f60ee8d4551905f603

    View Slide