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
セキュアなホームゲートウェイを作る
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
cyberomusubi
May 07, 2022
Technology
71
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
セキュアなホームゲートウェイを作る
cyberomusubi
May 07, 2022
More Decks by cyberomusubi
See All by cyberomusubi
自宅スケーラブル・ファイルシステムのご紹介
cyberomusubi
0
31
セキュアエレメントによるWireGuardのセキュリティ強化
cyberomusubi
0
6.9k
Private key protection hardened WireGuard implementation
cyberomusubi
0
560
セキュアエレメントとWireGuard
cyberomusubi
0
140
IoTデバイスセキュリティ
cyberomusubi
0
84
デバイス内データの安全な保管を考える
cyberomusubi
0
110
セキュアエレメントとIoTデバイスセキュリティ
cyberomusubi
0
190
simplecodec schematics
cyberomusubi
0
100
rainbowtype secure prototyping suite
cyberomusubi
0
55
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
2
7.7k
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.5k
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
140
FDEの心得
noriakioji
5
6.3k
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
Kiro入門|仕様駆動開発で変わるAI時代の開発スタイル
cmkudo
0
170
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
私がブラウザを自作したくなった理由
supurazako
1
270
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
3
25k
ラジオの科学
frievea
0
350
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
250
事業価値と Engineering 2026年度版
recruitengineers
PRO
51
25k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
Statistics for Hackers
jakevdp
799
230k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
280
The Language of Interfaces
destraynor
162
27k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Faster Mobile Websites
deanohume
310
32k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Building the Perfect Custom Keyboard
takai
2
840
Transcript
セキュアな ホームゲートウェイを作る 光安 健太郎
自己紹介 インフラの出身で、サイバートラストというLinuxと電子認証局のビジネスを している会社で働いています。 自宅でいろいろやってきました。 自宅外向けDNS AD構築(Samba4) Nextcloudサーバー運用 自宅Gluster分散ファイルシステム構築(infiniband) Jupyter notebook
GPU 機械学習サーバー(nvidia Geforce RTX2070) Volumio Airplayサーバー https://qiita.com/kmitsu76 https://github.com/kmwebnet https://www.slideshare.net/KentaroM itsuyasu1/iot-144602008
How to implement it ▪以前に購入した セキュアエレメント ATECC608Aを使用 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
アジェンダ • IoTデバイスのデザイン • サーバー側の実装 • プロビジョニング • 証明書更新(キーローリング) •
OTA
IoTデバイスのデザイン ▪ホームIoTゲートウェイの作成 機能: • BME280による気温、湿度、気圧の測定 • 赤外線LEDによるリモートコントロール • ボタンによるプッシュ動作送信 •
MQTTメッセージによるLED点灯 • Wifiプロビジョニングモード • OTA機能搭載 • デバイス証明書ローリング対応 仕様: • USB5V電源で動作 • MQTTSにてMosquittoへ接続
ネットワーク全体図 VPSサーバー+ ドメイン取得 ngrok1.7を使い MQTTS、HTTPS トンネリング
ハードウェア実装 ▪Kicad5.1.2にて設計、elecrowへ発注 ATECC608A以外はほとんど秋月電子
動作フローチャート MQTT イベントハンドラ GPIOボタン イベントハンドラ Wifi接続 Wifiプロビジョニング開始 ATECC608AへWifi SSID,Pass書き込み サーバー接続、
MQTTイベントハンドラ起動 再起動 リモコン(RMT)BME280初期化 GPIOボタン が押された 自分のシリアル宛 のメッセージ サブスクライブ タスクフラグを確認 BME280 測定しパブリッシュ、 ウェイト ボタン押下をパブリッシュ LED点灯、消灯 エアコン操作 (RMTタスク生成) OTAフラグ キーローリングフラグ 証明書受領フラグ I2Cバス初期化 ATECC608A初期化 ATECC608AからWifi SSID,Pass読み取り GPIO初期化 GPIOボタンが押されているか MQTT停止→公開鍵生成→ MQTT再開とパブリッシュ MQTT停止→ATECC608A 証明書更新→MQTT再開 MQTT接続終了→OTAサーバーへ https接続、ファームダウンロード+ インストール 再起動 キーローリング 証明書受領 OTA # Espressif ESP32 Partition Table # Name Type SubType Offset Size nvs data nvs 0x9000 0x4000 otadata data ota 0xd000 0x2000 phy_init data phy 0xf000 0x1000 factory 0 00x10000 1M ota_0 0ota_0 0x110000 1M ota_1 0ota_1 0x210000 1M
サーバー側の実装 Pythonで署名、 証明書作成 OTAファーム ウェア置き場 デバイス公開鍵 受領
温度測定 以下2ついずれかのモジュールの搭載に対応。 1分ごとに計測データをMQTTにて送信
赤外線リモコン ダイキンエアコンの赤外線リモコンを解析、 ESP-IDFのRMT関数で実装。
プロビジョニング シリアルコンソールを経由してpem(base64)の 公開鍵と証明書を交換。 -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQasdaghadJKNIWfEtPt61Y6O8NoQVhkrQhrracCRmGgb kinXThlKUkdB0i7uUakzcSIdonsgpdzagdPNIDW8SkGUmGz8jcDSJM2PsouJ9tA== -----END PUBLIC
KEY----- -----BEGIN CERTIFICATE----- MIIBizCCATKgAwIBAgIQXttAp9UKPvc3FMEUZoYdrjAKBggqhkjOPQQDAjAuMREw DwYDVQQKDAhrbXdlYm5ldDEZMBcGA1UEAwwQa213ZWJuZXQgUm9vdCBDQTAeFw0x OTEwMTAyMTA4MzlaFw00NDEwMTAyMTA4MzlaMC4xETAPBgNVBAoMCGttd2VibmV0 OQIHOFEROLFKFJiiphpiwgeknvspdisbpdwnepIHPIEgwkEwYHKoZIzj0CAQYIKoZIzj0D AQcDQgAEtPt61Y6O8NoQVhkIIPDSUGpou998HHIDPGwEjolKUkdB0i7uUakzcJTUP4gB aJv+kwpghwpedkjwgpkjPKJPEHGIPEihp98887889ewwIHEWBBYEFNQOhdv0lGYauUlM NRYzPg8fVWdgMA8GyioigGipugPGERJhwGWRPihgWoewoZIzj0EAwIDRwAwRAIge3M2 ePvfCr/eCDah5c3XEC8Pto2q2WBNbSL5ZpNWH7ACIHnnFVqZ4Z6Rq3Rw76OLOzKV wXTxzegp/jDA+XDKExLA -----END CERTIFICATE-----
証明書更新(キーローリング) ① ② ③ ATECC608A スロット内 秘密鍵 3つのスロットから順番に 公開鍵を取り出し、署名 して証明書を作成して
書き戻す
考察とまとめ BOM以外でかかった費用: Conoha VPS 512MBプラン 630円/月 バリュードメインキャンペーン 108円/年 ▪基盤作成がスムーズに行えることで試作が簡単にできる環境が整ってきた。 ▪ngrokは便利。