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
IoTデバイスセキュリティ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kentaro Mitsuyasu
May 07, 2022
Technology
76
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IoTデバイスセキュリティ
Kentaro Mitsuyasu
May 07, 2022
More Decks by Kentaro Mitsuyasu
See All by Kentaro Mitsuyasu
自宅スケーラブル・ファイルシステムのご紹介
kmwebnet
0
18
セキュアエレメントによるWireGuardのセキュリティ強化
kmwebnet
0
6.8k
Private key protection hardened WireGuard implementation
kmwebnet
0
550
セキュアエレメントとWireGuard
kmwebnet
0
120
デバイス内データの安全な保管を考える
kmwebnet
0
100
セキュアなホームゲートウェイを作る
kmwebnet
0
61
セキュアエレメントとIoTデバイスセキュリティ
kmwebnet
0
180
simplecodec schematics
kmwebnet
0
90
rainbowtype secure prototyping suite
kmwebnet
0
45
Other Decks in Technology
See All in Technology
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
140
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
140
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
280
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
450
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
550
人材育成分科会.pdf
_awache
4
310
ザ・データベース、MySQL ~ OSC 2026 Sendai ~
sakaik
0
180
SONiCの統計情報を取得したい
sonic
0
290
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
160
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
150
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
7.2k
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
110
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
470
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
From π to Pie charts
rasagy
0
220
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
The agentic SEO stack - context over prompts
schlessera
0
820
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
The Curse of the Amulet
leimatthew05
1
13k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Transcript
スタートアップIoTデバイスの セキュリティを考える 光安 健太郎
Agenda • 自己紹介 • 昨今の話のまとめときっかけ • IoTセキュリティの潮流 • How to
implement it • 結果 • 展望 • まとめ
自己紹介 インフラの出身で、サイバートラストというLinuxと電子認証局のビジネスを している会社で働いています。 自宅でいろいろやってきました。 自宅外向けDNS AD構築(Samba4) Nextcloudサーバー運用 自宅Gluster分散ファイルシステム構築(infiniband) Jupyter notebook
GPU 機械学習サーバー(nvidia Geforce RTX2070) Volumio Airplayサーバー https://www.slideshare.net/KentaroM itsuyasu1/ss-12042350
昨今の話のまとめときっかけ IoTベンチャーでのいたましい事故 物を作るところから、自宅で趣味からセキュリティを検討しておこう。 そんな難しい話じゃないですよ。クライアント認証 はしてません。デバイス側のリソースが厳しいため、 サーバ証明書のフィンガープリントをハードコード してました(証明書チェーンは見ない)。サーバ証 明書はAWS ACMなんですけど、よりによって1年っ ていう短い設定かつ、自動更新(つづく)
IoTセキュリティの潮流 証明書、各クラウドベンダーの接続方法 代表的なAWS IoT,Azure IoTともにX509証明書による接続 クラウド側からデバイスの証明書と秘密鍵をダウンロードし、 デバイスに格納、接続時に使用する。 デバイス側は悪意のあるものに渡った時に秘密鍵を守れない。 それを守る方法として Hardware
Root-of-Trustという仕組みで 秘密鍵を守ることが望ましい。 参考資料: IoT開発におけるセキュリティ設計の手引き 独立行政法人情報処理推進機構 https://www.ipa.go.jp/security/iot/iotguide.html 対応している仕組み: Arm Trustzoneとしてチップ内部に融合 セキュアエレメントとしての専用チップ
How to implement it ▪セキュア機能を外部支援でやるのはそんなに難しいのか。 ▪どのくらい大変なのか。
How to implement it ▪セキュアエレメント比較 1個で買う場合の金額 MAXQ1061 897円 https://www.maximintegrated.com/jp/products/microcontrollers/MAXQ1061.html Infineon
OPTIGA™ Trust X 250円くらい https://www.infineon.com/cms/jp/product/security-smart-card-solutions/ optiga-embedded-security-solutions/optiga-trust/optiga-trust-x-sls-32aia/ NXP A71CH 350円くらい https://www.nxp.com/jp/products/identification-security/authentication/ plug-and-trust-the-fast-easy-way-to-deploy-secure-iot-connections:A71CH Microchip ATECC608 91円 https://www.microchip.com/wwwproducts/en/ATECC608A
How to implement it ▪購入 Digi-keyにて発注 25個買うと割引! SOIC⇒DIP変換のほうが高い! 索引 数量
品番 メーカー品番 商品概要 単価 金額 1 25A880AR-ND LCQT-SOIC8-8 SOCKET ADAPTER SOIC TO 8DIP 279.28¥6,982 2 25 ATECC608A- SSHDA-TCT-ND ATECC608A- SSHDA-T IC AUTHENTICATION CHIP 8SOIC 85.08¥2,127 小計 ¥9,109
How to implement it ▪実装 BOMリスト: ESP32-DevKitC 1個 ATECC608 1個
SOIC⇒DIP変換 1個 GY-BME280 1個 I2Cは100kHzで I2C0をピン21,22(ATECC608) I2C1をピン18,19(GY-BME280)へ接続 ▪開発環境 VSCode+platformio ESP-IDF 3.30
How to implement it ▪全体イメージ BME280で温度、湿度、気圧を測ってMQTTSで パブリッシュする。 Node-REDで視覚化する。 ESP32-DevkitC FreeRTOS
MQTTS ATECC608 MbedTLS Cryptoauthlib ESP-IDF BME280 サーバー 証明書 デバイス 証明書 サーバー 証明書 クライアント 証明書
How to implement it ▪証明書の構造: tbsCertificate シリアル番号 証明書発行日、有効期限 公開鍵 CN
コモンネーム など… signatureAlgorithm ecdsa-with-SHA256(一例) signatureValue 署名データ SHA256で ハッシュ化 署名対象 CA 署名
How to implement it ATECC608が対応できる楕円曲線暗号を選択 secp256r1 別名 prime256v1 または NIST
P-256(RFC4492) 256bitの秘密鍵と256bit(X)+256bit(Y)の公開鍵で構成される。 それぞれ、32バイト、64バイトとなる。 また、署名は256bit(r)+256bit(s)だが、ASN.1という形式で保存されており、 数バイトの変動がある。 ASN.1のヘッダー(オフセット計算)を付加して72~73ビット程度。
How to implement it ▪デバイスの内部概要:合計約1.1KBのEEPROMメモリを持つ。 スロ ット ブロッ ク バイト
ビット 名前 説明 0-7 2 36 288 Private or Secret Key Can also be used for data. 8 13 416 3328 Data 読み取りと書き込みは、他のすべてのスロットと同じ方 法で制限されるように設定できます。このスロットが鍵 として使用されている場合は、秘密鍵または秘密鍵の格 納に不要な残りのバイトは無視されます。 9- 14 3 72 576 Public Key, Signature or Certificate このデバイスでサポートされている曲線の場合、これら のスロットは、ECDSA公開鍵のX成分とY成分、または ECDSA署名のR成分とS成分の両方を入れるのに十分な大 きさです。 15 3 72 576 Private Data, Secret Key, Signature, or Certificate これが128カウント制限使用機能(セクション限定使用 キー(スロット15のみ))をサポートする唯一のスロッ トです。この機能が必要ない場合は、スロット9~14と 同じ目的で使用できます。
How to implement it ▪Step by stepの検証 1、ESP-IDFへのcryptoauthlib(ATECC608のライブラリ)組み込みとコンパイル 2、証明書のチップへの書き込みと読み出し、検証 3、MbedTLS上への実装とTLS1.2ハンドシェイクの確認
4、MQTTの実装と疎通(サーバー側Mosquitto+Node-REDの準備)
How to implement it ▪証明書の格納: 用意した証明書テンプレートに対して、 1、シリアル番号 2、公開鍵、署名 3、証明書発行日、有効期限 をデバイス内に保存する。
4、デバイス公開鍵は、アクセス禁止に設定された秘密鍵スロットから 計算して抽出 5、Subject/Auth Key IDは、それぞれの公開鍵から計算されて抽出
How to implement it ▪MbedTLSの設定: 重要な設定 mbedtls_ssl_conf_authmode(&ssl->conf, MBEDTLS_SSL_VERIFY_REQUIRED); MBEDTLS_SSL_VERIFY_REQUIREDにし、証明書のベリファイが必須の状態に しておく。
How to implement it ▪TLS1.2通信のパケットキャプチャ ESP32:192.168.1.93 Mosquittoブローカー:192.168.1.84
How to implement it ▪共通鍵の鍵交換による暗号化 ECDH計算 秘密鍵 公開鍵 デバイス側 公開鍵
秘密鍵 サーバー側 秘密鍵 公開鍵 公開鍵 秘密鍵 共通鍵 共通鍵 鍵計算 鍵計算 プリマスターシークレ ットとして通信を暗号 化する共通鍵となる ATECC608が担当
結果 ▪クライアント認証を有効にしたMosquittoへ接続し、Node-REDで視覚化
結果 リソース使用状況:フラッシュ(platformio ESP-IDF環境デフォルト) DATA: [= ] 11.4% (used 37508 bytes
from 327680 bytes) PROGRAM: [======= ] 69.4% (used 727774 bytes from 1048576 bytes) リソース使用状況:ヒープ 起動時: Free Heap Size 8bit = 201936 Free Heap Size 32bit = 263984 証明書ベリファイが終了し、HTTPS通信可能になった時点: Free Heap Size 8bit = 138780 Free Heap Size 32bit = 200996 BME280初期化+MQTTS通信時: Free Heap Size 8bit = 128692 Free Heap Size 32bit = 190868
展望 AWS IoT,AzureIoTへの接続。 ブログやっているのでいろいろ教えてください。 https://kmitsu76.hatenablog.com/ https://qiita.com/kmitsu76
まとめ かなり大変だけどいったんやっておけば安心してデータをやり取りできる。 日本のスタートアップIoTを安全に!