SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
セキュアな
ホームゲートウェイを作る
光安 健太郎
自己紹介
インフラの出身で、サイバートラストという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は便利。

Más contenido relacionado

La actualidad más candente

僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
Hibino Hisashi
 

La actualidad más candente (20)

SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
 
201310 ITproEXPO_clouddaystokyo2013fall_idcf
201310 ITproEXPO_clouddaystokyo2013fall_idcf201310 ITproEXPO_clouddaystokyo2013fall_idcf
201310 ITproEXPO_clouddaystokyo2013fall_idcf
 
Aerospike on IDCF Cloud
Aerospike on IDCF CloudAerospike on IDCF Cloud
Aerospike on IDCF Cloud
 
Vagrantでクラウド上にdocker環境を作る
Vagrantでクラウド上にdocker環境を作るVagrantでクラウド上にdocker環境を作る
Vagrantでクラウド上にdocker環境を作る
 
実話!実はIDCFクラウドって◯◯なんです
 実話!実はIDCFクラウドって◯◯なんです 実話!実はIDCFクラウドって◯◯なんです
実話!実はIDCFクラウドって◯◯なんです
 
NUCで始めるVMware Tanzu
NUCで始めるVMware TanzuNUCで始めるVMware Tanzu
NUCで始めるVMware Tanzu
 
サーバー初心者のためのWordPressサイト構築手順
サーバー初心者のためのWordPressサイト構築手順サーバー初心者のためのWordPressサイト構築手順
サーバー初心者のためのWordPressサイト構築手順
 
VYATTA USERS MEETING Autumn 2013_idcf
VYATTA USERS MEETING Autumn 2013_idcfVYATTA USERS MEETING Autumn 2013_idcf
VYATTA USERS MEETING Autumn 2013_idcf
 
サバフェス上位入賞者にみる ioMemory×MySQL 最新チューニング教えます
サバフェス上位入賞者にみる ioMemory×MySQL  最新チューニング教えますサバフェス上位入賞者にみる ioMemory×MySQL  最新チューニング教えます
サバフェス上位入賞者にみる ioMemory×MySQL 最新チューニング教えます
 
安心して利用できるパブリッククラウド、安全に利用するパブリッククラウド
安心して利用できるパブリッククラウド、安全に利用するパブリッククラウド安心して利用できるパブリッククラウド、安全に利用するパブリッククラウド
安心して利用できるパブリッククラウド、安全に利用するパブリッククラウド
 
【セキュランLT】国内金融機関に激震!!仮想通貨、要求されたらあなたはどうしますか?
【セキュランLT】国内金融機関に激震!!仮想通貨、要求されたらあなたはどうしますか?【セキュランLT】国内金融機関に激震!!仮想通貨、要求されたらあなたはどうしますか?
【セキュランLT】国内金融機関に激震!!仮想通貨、要求されたらあなたはどうしますか?
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
 
Idcfクラウドhw占有タイプ開発話
Idcfクラウドhw占有タイプ開発話Idcfクラウドhw占有タイプ開発話
Idcfクラウドhw占有タイプ開発話
 
IDCFクラウド for Gaming 第四回ゲームサーバー勉強会
IDCFクラウド for Gaming 第四回ゲームサーバー勉強会IDCFクラウド for Gaming 第四回ゲームサーバー勉強会
IDCFクラウド for Gaming 第四回ゲームサーバー勉強会
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
 
Android20170201
Android20170201Android20170201
Android20170201
 
激アツ!GPUパワーとインフラの戦い
激アツ!GPUパワーとインフラの戦い激アツ!GPUパワーとインフラの戦い
激アツ!GPUパワーとインフラの戦い
 
オンラインゲームの最新ニーズに応えるネットワークインフラとは
オンラインゲームの最新ニーズに応えるネットワークインフラとはオンラインゲームの最新ニーズに応えるネットワークインフラとは
オンラインゲームの最新ニーズに応えるネットワークインフラとは
 
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
 
CyberAgentのPrivateCloudeを支えるStorage基盤
CyberAgentのPrivateCloudeを支えるStorage基盤CyberAgentのPrivateCloudeを支えるStorage基盤
CyberAgentのPrivateCloudeを支えるStorage基盤
 

Similar a Build secure io t gateway

デスクトップの仮想化とフレキシブルワークスタイル
デスクトップの仮想化とフレキシブルワークスタイルデスクトップの仮想化とフレキシブルワークスタイル
デスクトップの仮想化とフレキシブルワークスタイル
junichi anno
 
hbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフターhbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフター
semind
 
ニフティクラウドを使った安定運用のススメ
ニフティクラウドを使った安定運用のススメニフティクラウドを使った安定運用のススメ
ニフティクラウドを使った安定運用のススメ
NIFTY Cloud
 

Similar a Build secure io t gateway (20)

NCstudy 2.5
NCstudy 2.5NCstudy 2.5
NCstudy 2.5
 
デスクトップの仮想化とフレキシブルワークスタイル
デスクトップの仮想化とフレキシブルワークスタイルデスクトップの仮想化とフレキシブルワークスタイル
デスクトップの仮想化とフレキシブルワークスタイル
 
NVIDIA 入門
NVIDIA 入門NVIDIA 入門
NVIDIA 入門
 
イベント会場ネットワーク
イベント会場ネットワークイベント会場ネットワーク
イベント会場ネットワーク
 
ニフティクラウドアップデート in クラウドごった煮@青森
ニフティクラウドアップデート in クラウドごった煮@青森ニフティクラウドアップデート in クラウドごった煮@青森
ニフティクラウドアップデート in クラウドごった煮@青森
 
hbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフターhbstudy25 劇的ビフォーアフター
hbstudy25 劇的ビフォーアフター
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
.NETlab_AADDCでLinuxRDP認証.pptx
.NETlab_AADDCでLinuxRDP認証.pptx.NETlab_AADDCでLinuxRDP認証.pptx
.NETlab_AADDCでLinuxRDP認証.pptx
 
お待たせしました! 真の VDI on Azure がついに実現します!~ Citrix と Microsoft のタッグがもたらす次世代型クラウド・デス...
お待たせしました! 真の VDI on Azure がついに実現します!~ Citrix と Microsoft のタッグがもたらす次世代型クラウド・デス...お待たせしました! 真の VDI on Azure がついに実現します!~ Citrix と Microsoft のタッグがもたらす次世代型クラウド・デス...
お待たせしました! 真の VDI on Azure がついに実現します!~ Citrix と Microsoft のタッグがもたらす次世代型クラウド・デス...
 
Watsonをささえる ハイパフォーマンスクラウドで はじめるDeep Learning
Watsonをささえる ハイパフォーマンスクラウドで はじめるDeep LearningWatsonをささえる ハイパフォーマンスクラウドで はじめるDeep Learning
Watsonをささえる ハイパフォーマンスクラウドで はじめるDeep Learning
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタート
 
Cld009 お待たせしました
Cld009 お待たせしましたCld009 お待たせしました
Cld009 お待たせしました
 
Cld009 お待たせしました
Cld009 お待たせしましたCld009 お待たせしました
Cld009 お待たせしました
 
ニフティクラウドを使った安定運用のススメ
ニフティクラウドを使った安定運用のススメニフティクラウドを使った安定運用のススメ
ニフティクラウドを使った安定運用のススメ
 
2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi
 
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
 
Zabbix Conference Japan 2013 VMware monitoring
Zabbix Conference Japan 2013 VMware monitoringZabbix Conference Japan 2013 VMware monitoring
Zabbix Conference Japan 2013 VMware monitoring
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
 

Build secure io t gateway