Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[#IoTSecJP Tokyo #4] LoRaWANとセキュリティの話し/How Can ...
Search
tokina (himitu)
September 15, 2018
Technology
2.9k
1
Share
[#IoTSecJP Tokyo #4] LoRaWANとセキュリティの話し/How Can I Hack LoRaWAN?
IoTSecJP Tokyo #4にてお話したスライドになります.
(後日一部更新しました)
tokina (himitu)
September 15, 2018
More Decks by tokina (himitu)
See All by tokina (himitu)
[SecHack367] What I can tell you as SecHack367 Vehicle Security Team #SecHack365 #SecHack367
himitu23
0
770
[SecurityCamp2018] Talk of LoRaWAN's Security
himitu23
0
1.5k
SORACOM UG Tokyo 201807 LT #4 - CloudSolution for Vehicle with SORACOM
himitu23
0
330
[JAWS-Security 09 Tokyo] Cloud Solution for management and observation vehicle
himitu23
1
4.1k
車の情報×クラウドを使って 安全・快適なカーライフをしたい! @SecHack365 '17 by 自動車セキュリティチーム
himitu23
0
1.2k
Other Decks in Technology
See All in Technology
ボトムアップの改善の火を灯し続けろ!〜支援現場で学んだ、消えないための3つの打ち手〜 / 20260509 Kazuki Mori
shift_evolve
PRO
1
260
もっとコンテンツをよく構造化して理解したいので、LLM 時代こそ Taxonomy の設計品質に目を向けたい〜!
morinota
0
120
サービスの信頼性を高めるため、形骸化した「プロダクションミーティング」を立て直すまでの取り組み
stefafafan
0
130
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.6k
AIはハッカーを減らすのか、増やすのか?──現役ホワイトハッカーから見るAI時代のリアル【MEGU-Meet】
cscengineer
PRO
0
240
音声言語モデル手法に関する発表の紹介
kzinmr
0
150
QAエンジニアはどうやって プロダクト議論の場に入れるのか?
moritamasami
0
200
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
2k
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
0
280
COBOL婆さんの伝説
poropinai1966
0
130
ServiceNow Knowledge 26 の歩き方
manarobot
0
270
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
250
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How to Ace a Technical Interview
jacobian
281
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
430
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Speed Design
sergeychernyshev
33
1.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Transcript
ిؾ௨৴େֶେֶӃ !@UPLJOB *P54FD+1 5PLZP-P3B8"/ʹ͍ͭͯͷηΩϡϦςΟͷ -P3B8"/ͱηΩϡϦςΟͱ͋ͱࡉ͔͍ 1 )PX$BO*IBDL-P3B8"/
"HFOEB nࣗݾհ n-18" -18"/ ͱ-P3B8"/ n-P3B8"/ͷٕज़తͳΈͱ๏ nωοτϫʔΫϨϕϧͷηΩϡϦςΟ n࣮ફʂ-P3B8"/εχοϑΟϯάʂʂ n·ͱΊ 2
ࣗݾհ nॴଐɿిؾ௨৴େֶେֶӃ ౡࢢཱେֶଔ p情報ネットワーク専攻 NOTセキュリティ pR社でバイトしてます p御社で自動車セキュリティをする予定 nݚڀɿ-P3B8"/ʹ͓͚ΔωοτϫʔΫޮԽʹ͍ͭͯ pかつては自動車のセキュリティについて研究 pMAC層や物理層とか少し詳しいかもしれない
nڵຯɿ3BT1J "84 ࣗಈंηΩϡϦςΟ -P3B8"/ *P5 4FD FUD n*P54FD+1̏ճͷࢀՃʹͳΓ·͢ʂ n͜ͷલηΩϡϦςΟɾΩϟϯϓͷνϡʔλΛͨ͠Γͱ͔ͯ͠·ͨ͠ )( 3
-P3B8"/ɺͬͯ·͔͢ʁ 2017/08 https://www.rs-online.com/designspark/building-a-lorawan-enabled-bat-detector-jp 4
࠷ۙΑ͘ฉ͘-18"/ͱ-P3B8"/ *P5 ۙڑ ڑ (
) km -18"/-PX1PXFS8JEF"SFB/FUXPSL ྫ -P3B8"/ɼ4JHGPYɽ-5..ɼ8J'J )BMMPX BI →Long Range WAN 5
-P3B8"/ͷΠϝʔδ Server AP AP 6
(mobility) LoRaWAN 10km
-P3B8"/ͷಛ nʂলిྗ p通常の乾電池で10年持つなど nʂڑ௨৴Մೳ p最大10km以上とも言われている n໔ڐෆཁͰར༻Մೳʴن֨ඪ४͕ެ։͞Ε͍ͯΔ GW nʂ௨৴͕͍ p送信できるデータはわずか nʂ௨৴͕ඇޮ
pMACにpureALOHAを採用 LoRa→ ←LoRaWAN (~10km) Server ηϯαͳͲͷతͰ ࠓޙͬͱΘΕͦ͏Ͱʁʁ ී௨ͷ௨৴ʹ͏ͷ͍͠ɾɾɾ 7
https://news.goo.ne.jp/article/newswitch/business/newswitch-8880.html “IoT>LP5</]?S@C (#)OWURM87” 413_D:H%*$ 5<9F"K `' &"IJA^/]?S" @C ,Z-/[0N\Y!XQ
Z-=2".B6E"; V5<G8"T+ 8
౦ژۙ߫ͷ-P3B (BUFXBZઃஔঢ়گʢ55/ʹొ͍ͯ͠Δͷʣ https://www.thethingsnetwork.org/map 9
-P3B8"/ͷٕज़తͳΈͱ๏ 10 Technology and Radio Law of LoRaWAN
-P3B8"/୭͕ఏڙ͍ͯ͠Δͷ͔ʁ nجຊతͳ༷ʢ௨৴ɼόοΫΤϯυͳͲʣެ։͞Ε͍ͯΔ p௨৴ͷ༷ެ։͞Ε͍ͯΔʢૹ৴νοϓͷ༷ެ։͞Ε͍ͯͳ͍ʣ pݱࡏͷ༷ͷ࠷৽൛ࡢʹެ։͞ΕͨW MPSBXBO TQFDJGJDBUJPO pࡉ͔͍ϩʔΧϥΠζ༷"4.)[*4# CBOEʹͯఆٛ https://lora-alliance.org/ 11
ຊͰͷݱঢ় nιϑτόϯΫɺ,%%* XJUI403"$0.ͳͲ͕αʔϏεΛఏڙ͍ͯ͠Δ pΩϟϦΞఏڙαʔϏεࣄۀ nిͷ๏ r "3*# 45%5 p࠷৽W
u༗ྉͩΑʂʢࢲݚڀඅͰങͬͨΑʂʣ p-P3B8"/ͷѻ͍ɿ ಛఆখిྗແઢہɺ্Ҡಈہ pपd.)[ d.)[ uΞϯϥΠηϯεόϯυʢ໔ڐෆཁʣ pΩϟϦΞηϯεɿNTҎ্ɼVTҎ্ p࿈ଓૹ৴࣌ؒɿTɼNT pσϡʔςΟαΠΫϧɿͳ͠ɼTҎԼ ˠૹ৴Ͱ͖ΔσʔλCZUFdेCZUF ch200kHz →Bandwidth125kHz *923.4MHz 20mW → (GW ) 12
-P3B8"/ 4QFDJGJDBUJPO n$MBTT pLoRaWANには「Class」という通信方法の概念がある u現在はClass Bがテスト実装段階(一応考慮はされている) n$MBTT" puplinkの通信タイミングはランダム = pureALOHA
(unslotted ALOHA) pメッセージの到達性を高めるため連送を行う u同時に2つのメッセージを送信、受信ウィンドウを2つ開く 13 $MBTT ϊʔυͷಈ࡞ͳͲ ಛ " • શσόΠε͕αϙʔτ͢Δ • ҙͷλΠϛϯάͰ6QMJOL͕ൃੜ • Ԇେ • ফඅిྗ # • Ϗʔίϯૹ৴ͷͨΊͷΫϥε • ωοτϫʔΫओಋͷ௨৴͕Մೳ • %PXOMJOLʹରԠ $ • ड৴εϩοτΛৗʹ։͘ • ৗ࣌ిྗڙڅՄೳͳϊʔυΛఆ • Ԇখ • ফඅిྗେ
-P3B8"/ͷηΩϡϦςΟ جຊ nͲΜͳ߈ܸ͕͋Δʁ pEvasedropping/盗聴 uトラフィックを盗聴,他の攻撃の参考になったりする pReplay attack/リプレイ攻撃 u盗聴したデータをそのまま再送する.データの中身が不明でもOK. pMan in
the middle attack/中間者攻撃 uやりとりの間に割り込んでデータを(場合によってはリアルタイムに改ざ んして)中継する pDenial of service/DoS攻撃 pKey cracking 14
-P3B8"/ͷηΩϡϦςΟ ൃల pセッションハイジャック uこの場合ほとんど中間者攻撃と同じ p不正なアクセスポイントの設置 uもともとあるゲートウェイ,もしくは完全に新しいゲートウェイとして動作 様々な攻撃が可能に pゲートウェイに対する改ざん uゲートウェイは遠隔ログイン可能な場合が多く,不正に改ざん利用される可能性 pMACスプーフィング
uLoRaWANではMACアドレスを利用せず,独自の割当アドレスを利用している そこで,そのアドレスを勝手になりすまし,データの不正取得などの可能性 15
ηΩϡϦςΟͷ ʙωοτϫʔΫϨϕϧͷʙ ࢀߟɿ -P3B8"/ 4QFDJGJDBTUJPO W BWBJMBCMFBUMPSBBMMJBODFPSH SFG &T
&FG WBO l-P3B8"/ WVMOFSBCJMJUZBOBMZTJT JO WBMJEBUJPOPGQPTTJCMFWVMOFSBCJMJUJFTJOUIF -P3B8"/ QSPUPDPMTQFDJGJDBUJPO z.BTUFSTUIFTJT 0QFO6OJWFSTJUFJU/FEFSMBOE 16 Attack to LoRaWAN in Network Level
ࠓճհ͢ΔͷͲΜͳ߈ܸʁ nμϯϦϯΫ௨৴ʢήʔτΣΠˠϊʔυʣʹண pLoRaWANにおいて様々な設定はMACメッセージで行われる uDutyCycle,参加,通信タイミング,チャンネルなど pClass Bビーコンによる情報の通知,ノードの受信ウィンドウの操作 u周期的に動作する各ノードにイベント的にダウンリンク通信を行う pReplay attack/リプレイ攻撃 u盗聴したデータをそのまま再送する.データの中身が不明でもOK.
「MACメッセージ」と「ビーコン」のリプレイ攻撃について紹介 17
-P3B8"/ ."$ .FTTBHF 'PSNBU Preamble PHDR PHDR CRC PHY Payload
CRC MHDR MAC Payload MIC FHDR FPort FRM Payload Dev Addr FCtrl FCnt FOpts Phy Phy Payload MAC Payload FHDR MH DR Dev Addr FCtrl FCnt FOpts FPort FRM Payload MIC 8 32 8 16 120 8 N 32 (bit) () 1'/ MAC %$ FPort 0x00 CID 0xXX Payload FRM Payload MIC&*!+0-# Phy Payload 18 0-# "./,
."$ϝοηʔδͷϦϓϨΠ߈ܸ ϝοηʔδͷྫ MIC 0x00 0x01 0x19
0x76 → 0x76 0x19 0x01 0x00 19
."$ϝοηʔδͷϦϓϨΠ߈ܸ nదͳ.*$ͱΧϯλΛઃఆग़དྷͨ߹ n͔͠͠ɺ.*$ͷܭࢉʹ"&4ΞϧΰϦζϜ͕࠾༻͞Ε͍ͯΔ p鍵が奪われない限り、計算能力的に現実時間的に攻撃は不可能・・・ MIC 128bit left
32-bits of a CMAC results into ( 1 / 232 ) * 2128 = 296 20
."$ϝοηʔδͷϦϓϨΠ߈ܸ n࣮҉߸Խ.*$ͷܭࢉखॱͳͲ֤ࣗͷ࣮ʹґଘ͍ͯ͠Δ nྫ͑ɾɾɾ p以前のLoRaWAN SpecificationではFOptsの暗号化がマストになっていなかった u現在のSpecification v1.1では暗号化がMUSTとなっている pこうした細かいところの実装をセキュリティを意識して実装すべき nԿ͕ى͜Δʁ pMAC層はネットワーク層より先に実行される(レイヤー的に)
p暗号化されていない(平文)+MICはネットワーク層で計算される →先にMACコマンドが処理されてしまう! 21
#FBDPO'SBNF'PSNBU n-P3B8"/ 4QFDJGJDBUJPOʹهࡌ pここにCRCの計算方法についても書かれている nϏʔίϯͷ༷Γ֤࣮ʹґଘ͍ͯ͠Δ ˠͳΓ͢·͠༰қʁ RFU Time CRC GwSpecific
CRC BCN Payload RFU... Reserved Future Used CRC... 24 32 8(16) 56 16 (bit) InfoDesc Latitude Longitude EU868 Frame format (AS923 ) 22
ϏʔίϯͷϦϓϨΠ߈ܸ nશ͘ಉ͡Ϗʔίϯͷ࠶ૹ p同じビーコンを処理しない実装にしている場合は意味がない 23
ϏʔίϯͷϦϓϨΠ߈ܸ n࣌ؒϑΟʔϧυΛมߋͯ͠Έͨྫ p同時にCRCが実装されている場合はCRCも計算する pこれにより時間フィールドの値が変更され、起動タイミングの強制的な変更などに つながる可能性がある 24
ϏʔίϯͷϦϓϨΠ߈ܸ n(BUFXBZʹ͍ͭͯͷใΛมߋͨ͠ྫ p先と同様CRCについても必要に応じて変更する必要がある pノードの位置情報がその他の情報やGW間連携などの予期しない動作に繋がる可能性 25
26 LoRaWANHackRF ONE Let’s Sniff LoRaWAN
using HackRF ONE
01/07 ݄ ࠷ऴ໘ ޚࣾʮ΄͍͠ػࡐ͋Δʁʯ ࢲʮʢνϟϯεʂʣ͋ɺ͍·)BDL3' 0/&͍ͬͯ͏ΨδΣοτ͕ʯ 27 07/07 09/02 ࢜ࢁ
09/03 ࢲʮಧ͍ͨʂʯ (Εͯͨ) (ͱΓ͋͑ͣ์ஔ)
Γ͍ͨ͜ͱ )BDL3' 0/&Λͬͯ-P3B8"/ͷใΛ͘ʂ nڥ pHackRF ONE (2017 model) pLoRa mini-JP
(ATmega328P MCU) p温度&湿度センサ (DHT11) pPC (OSX/Xubuntu 18.04 LTS on Mac) n༻ҙ͢Διϑτ pGNU Radio pGqrx prpp0/gr-lora (https://github.com/rpp0/gr-lora) u依存関係が大変 28 AP
ϊʔυɿ-P3B NJOJ+1 "5NFHB1.$6 ϓϩάϥϜ IUUQTHJUIVCDPNPQFOXBWFDPKQ-P3B5P5IJOH4QFBL ࠓճ҉߸Խͳ͠ ηϯαͷσʔλΛ-P3B8"/Ͱ%JTUSJCVUF 29
%&.0͍ͨ͠ 30
(RSYͰ-P3B8"/ͷిΛ؍ଌ nެࣜαΠτΛࢀߟʹΠϯετʔϧʢIUUQHRSYELUBHNBDPTYʣ 31 Class A
Ͳ͏ʹ͔σʔλΛ͚ͳ͍͔ʁ ʮMPSBXBO TOJGGIBDLSGʯͳͲͰݕࡧˠ SQQHSMPSB͕ώοτ ґଘؔͷͰɺ ࠓճ9VCVOUVʹڥΛ༻ҙ 32 LoRaWAN Decode
ઃఆͦͷ··Ͱπʔϧར༻Ͱ͖ͳ͍ͷͰҰ෦मਖ਼ 33 ϊʔυͷϓϩάϥϜ पͱ4'Λमਖ਼ HSMPSBͷMPSB@SFDFJWF@SFBMUJNFQZ σϑΥϧτͷ4' 4QSFBEJOH'BDPS ʢ࠷
Ͱ͖ͨʂ 34
ͲΜͳσʔλ͕ݟ͍͑ͯΔͷ͔ʁ ϊʔυͷϓϩάϥϜ ༷Λͱʹղੳ ྫ CGGGGG DGCE ˠಛʹҙຯͳ͍ ˠ࣪
ˠ D ˠؾԹ D ˠ 35 (DevAddr) CS ( ) )BDL3'Ͱ-P3B8"/ͷ σʔλΛ͚ͨʂʂ
֬ೝͯ͠ΈΑ͏ 36 ϊʔυEFWUUZ64#ʹݟ͑ΔͷͰ SPPUͰDBU͢Δͱίϯιʔϧ͕ݟ͑Δ
·ͱΊ n-P3B8"/͍ͬͯΖ͍ΖͰ͖ͦ͏ʂ p実際に最近IoTベンチャー増えてますよね pSORACOMが先導していろんなサービス事例を作っているようです(最近はSigfox..) n."$ίϚϯυͷͳΓ͢·ͦ͠͠͏͕ͩʁ p野外にノードは配置されるし、物理的なハックも不可能ではないかも・・・ p暗号化とMICの処理はきちんと,新しい仕様をきちんと確認する pビーコンの利用はまだまだ検討段階 37
·ͱΊ n)BDL3' 0/&Ͱ4%3ॳମݧʂ-P3B8"/ͷσʔλΛ͚ͨʂ p実はまだ2日しか触ってないです() p今は受信Onlyでしか検証していないので、今度は送信を試してみたい p車のキーレスなどでも検証できる? 38 Good Hack Dayʂ
ิࢿྉ 39
nIUUQTRJJUBDPNBNNPJUFNTEGCEDG n-P3B8"/Ͱ͑Δप -P3B8"/ͷपʹ͍ͭͯ 40 AS923
nӡ༻ϧʔϧ .)[ଳςϨϝʔλ༻ɺςϨίϯτϩʔϧ༻ٴͼσʔλૹ༻ແઢ ઃඋ "3*#45%5 p電波産業界で策定、全体は有料 p最新版(v1.2)は2018/01/2 u2012/02/14 v1.0 → 2017/10/17
v1.1 .)[ଳʹ͍ͭͯఆΊͨ"3*#45%5 41 .)[ଳͷपͷར༻͕͕Γɺ-18"ͳͲ༷ʑͳ௨৴χʔζʹ ରԠͨ͠ΞΫςΟϒܥখిྗແઢγεςϜʢ্ҠಈہɿN8ʣʣ ͷಋೖ͕ਐΉதͰɺ͜ͷΑ͏ͳγεςϜ͕ΑΓޮతʹӡ༻Ͱ͖ΔΑ͏ɺ νϟωϧͷ֦ுٴͼؔ࿈ͷӡ༻نఆΛՃ͢ΔͷͰ͋Δɻ
nதࠃͳͲΛআ͘ΞδΞҬͷ༷ "4.)[*4.#BOE ˠຊͰ.)[ n"3*#45%ʹΑΔͱˠ pただしノードのみなら~928MHzも可 nར༻Ͱ͖Δνϟϯωϧ -P3B8"/Ͱར༻Ͱ͖Δνϟωϧʁ 42
"3*# 45%5ΑΓ 43 ଞͷແઢઃඋ͔Βͷཁٻʢૹ৴͠Α͏ͱ͢Δແઢνϟωϧʹ͍ͭͯΩϟϦΞηϯεΛ ߦͳͬͨͷʹݶΔʣʹԠ͢Δ߹Ͱ͋ͬͯɺҎԼͷ݅Λຬͨ͢ૹ৴ʹ͍ͭͯ ΩϟϦΞηϯεΛཁͣ͞ɺ࣌ؒΓͷૹ৴࣌ؒͷ૯ʹؚ·ͳ͍͜ͱͱ͢Δɻ ᶃಉ࣌༻νϟωϧ͕ͷ߹ɺཁٻͷड৴Λྃͨ͠ޙNTҎʹ։࢝͢Δૹ৴ Ͱ͋ͬͯɺཁٻͷड৴Λྃͨ͠ޙNTҎʹྃ͢Δૹ৴ ᶄಉ࣌༻νϟωϧ͕
ͷ߹ɺཁٻͷड৴Λྃͨ͠ޙNTҎʹ։࢝ ͢Δૹ৴Ͱ͋ͬͯɺཁٻͷड৴Λྃͨ͠ޙNTҎʹྃ͢Δૹ৴ ACK 3.4.3 Ԡ࣌ͷΩϟϦΞηϯεআ֎
n ૹ৴੍࣌ؒݶஔɺ ΩϟϦΞηϯεٴͼ Ԡ࣌ ͷΩϟϦΞηϯεআ֎Ͱنఆ͞Ε͍ͯΔύϥϝʔλͷΈ߹Θͤ "3*# 45%5ΑΓ 44
n5IF5IJOHT/FUXPSLͷ࣭ p2016/4に投稿されるも議論が活発に ~2017/3 6OJWFSTBM-P3B 8"/ HBUFXBZMJNJUBUJPOT CFDBVTFQIZTJDT 45 SF=7, size:
25byte PER(PacketerrorRate) "! Packet Error Rate 1 25byte 1,000 450 lost -> 45% error University of Antwerp in Belgium
nXJUIL)XJUIEFWJDFTUSBOTNJUUJOHSBOEPNMZXJUIJO TFDPOET -P3B QBDLFUDPMMJTJPOTJNVMBUJPO 46 (* 10ms) SF SF
n-P3B NPEVMBUJPOͱ͕ؔ͋ΔΒ͍͠ nࢀߟʹͳΔಈը͕հ͞Ε͍ͯΔ phttps://youtu.be/T3dGLqZrjIQ?t=2122 4'ͱ"JSUJNFͷؔ 47 ! TTN &
https://www.thethingsnetwork.org/forum/t/how-spreading-factor-influence-time-on-air/5068 #$ % "