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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
cyberomusubi
May 07, 2022
Technology
62
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
22
セキュアエレメントによるWireGuardのセキュリティ強化
cyberomusubi
0
6.8k
Private key protection hardened WireGuard implementation
cyberomusubi
0
550
セキュアエレメントとWireGuard
cyberomusubi
0
130
IoTデバイスセキュリティ
cyberomusubi
0
78
デバイス内データの安全な保管を考える
cyberomusubi
0
100
セキュアエレメントとIoTデバイスセキュリティ
cyberomusubi
0
180
simplecodec schematics
cyberomusubi
0
93
rainbowtype secure prototyping suite
cyberomusubi
0
48
Other Decks in Technology
See All in Technology
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
150
AI駆動開発におけるQAエンジニアの役割事例 〜AI駆動開発の現場から〜
kobayashiyorimitsu
0
290
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
130
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
250
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
130
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
0
460
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
180
Claude Code 珍プレー好プレー
shinyasaita
0
110
どうして今サーバーサイドKotlinを選択したのか
nealle
0
190
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
170
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
0
200
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
340
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1k
Six Lessons from altMBA
skipperchong
29
4.3k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Automating Front-end Workflow
addyosmani
1370
210k
Making Projects Easy
brettharned
120
6.7k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
250
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
How STYLIGHT went responsive
nonsquared
100
6.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
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は便利。