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
1
2.6k
[#IoTSecJP Tokyo #4] LoRaWANとセキュリティの話し/How Can I Hack LoRaWAN?
IoTSecJP Tokyo #4にてお話したスライドになります.
(後日一部更新しました)
tokina (himitu)
September 15, 2018
Tweet
Share
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
720
[SecurityCamp2018] Talk of LoRaWAN's Security
himitu23
0
1.3k
SORACOM UG Tokyo 201807 LT #4 - CloudSolution for Vehicle with SORACOM
himitu23
0
280
[JAWS-Security 09 Tokyo] Cloud Solution for management and observation vehicle
himitu23
1
3.9k
車の情報×クラウドを使って 安全・快適なカーライフをしたい! @SecHack365 '17 by 自動車セキュリティチーム
himitu23
0
1k
Other Decks in Technology
See All in Technology
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.1k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
240
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
Lambdaと地方とコミュニティ
miu_crescent
2
370
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Happy Clients
brianwarren
98
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
How GitHub (no longer) Works
holman
310
140k
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 #$ % "