SlideShare a Scribd company logo
FIWARE IoTデバイスを保護する方法
(How to Secure FIWARE IoT Devices)
Jason Fox, Senior Technical Evangelist
FIWARE Foundation
Translated to Japanese by Kazuhito Suda, FIWARE Evangelist
学習目標
▪ システムのセキュリティ保護に役立つ一般的なアクションは何で
すか?
• HTTP トラフィックを保護するにはどのようなオプションが
必要ですか?
• MQTT トラフィックを保護するにはどのようなオプションが
必要ですか?
• 他のプロトコルにはどのようなオプションがありますか?
▪ PEP Proxy とは何ですか?サービスとデバイスを保護するため
にどのように使用できますか?
1
前提条件
▪ Docker
▪ Docker Compose
▪ Git
▪ Postman
▪ Cygwin for Windows
2
git clone https://github.com/FIWARE/tutorials.Step-
by-Step.git
cd tutorials.Step-by-Step/
git submodule update --init --recursive
▪ https://www.docker.com/
▪ https://docs.docker.com/compose/install/
▪ https://git-scm.com/downloads
▪ https://www.getpostman.com/downloads/
▪ https://www.cygwin.com/install.html
FIWARE Catalogue
33
Data/APIManagement
PublicationMonetization
Core Context Management
(Context Broker)
Context
Processing, Analysis, Visualization
Interface to
IoT, Robotics and third party systems
Deploymenttools
3
Development of
Context-aware applications
(Orion, Orion-LD, Scorpio,
STH-Comet, Cygnus,
QuantumLeap, Draco)
Connection to the
Internet of Things
(IDAS, OpenMTC)
Real-time
processing of
context events
(Perseo)
Handling authorization
and access control to
APIs
(Keyrock, Wilma,
AuthZForce, APInf )
Publication and
Monetization of Context
Information
(CKAN extensions, Data/API
Biz Framework, IDRA)
Creation of
Application Dashboards
(Wirecloud)
Real-time
Processing of media
streams
(Kurento)
Business Intelligence
(Knowage)
Connection to robots
(FIROS, Fast RTPS,Micro XRCE-DDS)
Big Data
Context Analysis
(Cosmos)
Cloud Edge
(FogFlow)
Documents exchange
(Domibus)
復習 – HTTP マイクロサービスの保護
4
PEP Proxy を使用した安全なサービス
● 承認された HTTP トラフィックのみを許可
するには、クライアント・アプリケーション
(スーパーマーケット・アプリなど) と
Context Broker の間にセキュリティ・
コンポーネントを挿入する必要があります
● ユーザ・アカウントを提供し、パスワードを
確認するには、Identity Manager が必要で
す
安全でない HTTP トラフィックをブロックするよ
うに Web server を設定します
● 301 - Moved Permanently に転送命令を含
めます
● 詳細情報 : https://www.digicert.com/ssl/
HTTPS の構成例 : NGINX
▪ ドメイン証明書を作成する必要があります
• 信頼の連鎖 - あなたは(一連の)プロバイダによっ
て承認されています
▪ 秘密鍵を提供する必要があります
▪ 多くのチュートリアル - 詳細は使用する
Webサーバに依存します
• 例 Digital Ocean: Let‘s Encryptで Nginx を
保護する方法
• https://www.digitalocean.com/community
/tutorial_collections/22
5
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
PEP Proxy 構成の例 : Wilma
▪ どこでリッスンしていますか?
• PEP_PROXY_PORT
▪ 何を保護していますか? どこに転送しますか?
• PEP_PROXY_APP_HOST, PEP_PROXY_APP_PORT
▪ 誰がアクセス・トークンをチェックする責任がありますか?
• PEP_PROXY_IDM_PORT, PEP_PROXY_IDM_HOST
▪ IDM はどのように私を認識しますか?
• PEP_PROXY_APP_ID, PEP_PROXY_USERNAME,PEP_PASSWORD
詳細情報 : https://hub.docker.com/r/fiware/pep-proxy
6
HTTP トラフィックの保護: IoT デバイス
7
● デバイスは HTTP を使用して通信するため、クライア
ント・アプリケーション(デバイスなど)と IoT Agent の
間に PEP proxy を含めることができます
● ユーザ・アカウントを提供し、パスワードを確認するに
は、 Identity Manager が必要です
● PEP Proxy は、次の設定を使用して定義されます:
○ PEP_PROXY_APP_HOST
○ PEP_PROXY_APP_PORT
○ PEP_PROXY_PORT
● もちろん以前に示したように、HTTPS を使用して
マイクロサービス間の通信を保護することもできます
マイクロサービスのユースケースと同様の設定ですが、
現在、各 IoT device はそれ自体が(制限された)ユーザです
● DUMMY_DEVICES_USER, DUMMY_DEVICES_PASSWORD
HTTPトラフィックの保護: IoT Agent
8
IoT Agent が (制限された) ユーザになりました - Context broker と
IoT Agent の間のトラフィックが保護されます
● 永続的なトークンを保持する追加の信頼属性 (trust attribute) を使用してデバイスを
プロビジョニングします
● HTTPS も必要になる場合があります。これは、使用するアーキテクチャと、 IoT devices が IoT Agent
と通信するプロトコルによって異なります
curl -iX POST 
'http://localhost:4041/iot/services' 
-H 'Content-Type: application/json' 
-H 'fiware-service: openiot' 
-H 'fiware-servicepath: /' 
-d '{
"services": [ {
"apikey": "4jggokgpepnvsb2uv4s40d59ov",
"cbroker": "http://orion:1026",
"entity_type": "Motion",
"resource": "/iot/d",
"trust": "e37aeef5d48c9c1a3d4adf72626a8745918d4355"
} ]
}'
MQTTトラフィックの保護: IoT デバイス
9
MQTT 接続でユーザ名とパスワードを入力します
MQTTブローカーのユーザ名/パスワードのハッシュ・ファイルを
作成します 例: /etc/mosquitto/passwd
例. Hackaday の例: https://hackaday.io/project/12482-
garage-door-opener/log/43367-using-a-username-and-
password-for-mqtt
● IOTA_MQTT_USERNAME,IOTA_MQTT_PASSWORD
MQTT over SSL を使用します
証明書を作成し、MQTT ブローカーを適切に設定する必要があります
例. ThingsBoard ドキュメント: https://thingsboard.io/docs/user-guide/mqtt-over-ssl/
● IOTA_MQTT_CA, IOTA_MQTT_CERT, IOTA_MQTT_KEY
安全な MQTT を使用して IoT デバイスを接続する方法
10
const mqtt = require('mqtt');
const options = {
protocol: 'mqtt',
host: 'localhost',
port: 1883,
key: <key>,
ca: <certificate-authority>,
cert: <certificate>,
rejectUnauthorized: true,
username: <device-username>,
password: <device-password>,
keepalive: 0,
connectTimeout: 60 * 60 * 1000
};
const mqttClient = mqtt.connect(
options.protocol + '://' + <host> + ':' + <port>,
options
);
IoT Agent と IoT デバイスの両方が同じ方法で
MQTT ブローカーに接続します
豊富な MQTT クライアントライブラリが利用可能
● https://github.com/mqtt/mqtt.github.io/wiki/libraries
IoT Agent は共通の Node.js ライブラリを使用します
● https://github.com/mqttjs/MQTT.js
詳細については :
● http://mqtt.org/
サマリ: FIWARE ベースのシステムの保護
▪ 製品とデータの整合性を確保するための安全なシステムが必要です:
• 信頼できる読み取りだけを受け入れます
• 認識できるユーザにのみデータを提供します
▪ システムを保護するための最初のステップ:
• アクターを特定するために可能な限りユーザ名とパスワードを使用します
• SSLを使用します - メッセージと構成でプレーン・テキストを使用してはいけません
• ユーザ・アクセスを最小限に抑えます (例: root アクセス、開いているポートなし)
• すべてをログに記録します
▪ データのゲートキーパーとして機能する PEP Proxy を使用します
▪ FIWARE はシステムの保護に役立つ一連のコンポーネントを提供します
• FIWARE カタログのコンポーネントの使用は必須ではありませんが、それらを使用するか、
同等に安全な代替手段を使用する必要があります
11
最終的な考え
▪ 製品の評判の基礎は信頼です。
システムが安全でない場合、ユーザはどのようにあなたを信頼
できますか?
▪ このセキュリティ・プレゼンテーションは簡単な紹介であり、
常にセキュリティをより詳細に検討する機会があります
12
Thank you!
http://fiware.org
Follow @FIWARE on Twitter
13

More Related Content

PPTX
FIWARE の ID 管理、アクセス制御、API 管理
PPTX
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
PPTX
FIWARE アーキテクチャの保護 - FIWARE WednesdayWebinars
PPTX
FIWAREシステム内の短期履歴の管理
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.13.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.5.0対応)
PPTX
Goで実装した UPSIDERの決済金額リミット機能
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)
FIWARE の ID 管理、アクセス制御、API 管理
NGSI によるデータ・モデリング - FIWARE WednesdayWebinars
FIWARE アーキテクチャの保護 - FIWARE WednesdayWebinars
FIWAREシステム内の短期履歴の管理
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.5.0対応)
Goで実装した UPSIDERの決済金額リミット機能
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.7.0対応)

What's hot (20)

PPTX
IoT Agents とは? - FIWARE WednesdayWebinars
PPTX
FIWARE Big Data Ecosystem : Cygnus and STH Comet
PDF
FIWARE勉強会 20190913
PPTX
FIWARE 概要 - FIWARE WednesdayWebinars
PDF
誰でもできるスマートシティ向けOSS : FIWAREのはじめかた
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.14.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.3.0対応)
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
PDF
DockerとPodmanの比較
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.7.0対応)
PDF
Docker入門 - 基礎編 いまから始めるDocker管理
PDF
Kongの概要と導入事例
PDF
Consulを頑張って理解する
PDF
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
PDF
Exploring the power of OpenTelemetry on Kubernetes
PDF
データセンターネットワークの構成について
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
IoT Agents とは? - FIWARE WednesdayWebinars
FIWARE Big Data Ecosystem : Cygnus and STH Comet
FIWARE勉強会 20190913
FIWARE 概要 - FIWARE WednesdayWebinars
誰でもできるスマートシティ向けOSS : FIWAREのはじめかた
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 1.14.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 2.3.0対応)
NTT DATA と PostgreSQL が挑んだ総力戦
DockerとPodmanの比較
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.7.0対応)
Docker入門 - 基礎編 いまから始めるDocker管理
Kongの概要と導入事例
Consulを頑張って理解する
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
Microsoft Graph APIを活用した社内アプリケーション開発
Exploring the power of OpenTelemetry on Kubernetes
データセンターネットワークの構成について
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
Ad

Similar to FIWARE IoTデバイスを保護する方法 (20)

PPTX
IoT Agents をデバッグする方法 - FIWARE WednesdayWebinars
PDF
20200219-iot@loft#8_security_of_smarthome
PDF
IoT Cyber Security Counter Measurement
PDF
IoTセキュリティ概観 (供養)
PDF
Internet of Toilet / Jaws festa 2016
PDF
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
PDF
Rainbowtype secure IoT prototyping system
PPTX
FIWARE Connecting to IoT
PPTX
FIWARE Building your own IoT agent
PDF
IoT のセキュリティアーキテクチャと実装モデル on Azure
PDF
デバイスの運用で使える AWS IoTサービスの紹介
PDF
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
PDF
JTF2018 FIWARE x robot x IoT
PDF
IoTデバイスセキュリティ
PPTX
エッジコンピューティングで実現できる活用シナリオ3選
PDF
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
PDF
Io t security-suzki-20170224
PDF
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
PDF
2016年9月6日 IoTとセキュリティ『IoT開発におけるセキュリティ設計の手引き』
PDF
2019 1009 f-secure_ali_eater_tokyo13_slideshare
IoT Agents をデバッグする方法 - FIWARE WednesdayWebinars
20200219-iot@loft#8_security_of_smarthome
IoT Cyber Security Counter Measurement
IoTセキュリティ概観 (供養)
Internet of Toilet / Jaws festa 2016
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
Rainbowtype secure IoT prototyping system
FIWARE Connecting to IoT
FIWARE Building your own IoT agent
IoT のセキュリティアーキテクチャと実装モデル on Azure
デバイスの運用で使える AWS IoTサービスの紹介
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
JTF2018 FIWARE x robot x IoT
IoTデバイスセキュリティ
エッジコンピューティングで実現できる活用シナリオ3選
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Io t security-suzki-20170224
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
2016年9月6日 IoTとセキュリティ『IoT開発におけるセキュリティ設計の手引き』
2019 1009 f-secure_ali_eater_tokyo13_slideshare
Ad

More from fisuda (20)

PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.2.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.1.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.11.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.10.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.8.0対応)
PPTX
FIWARE - スマートサービスを支えるオープンソース
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.6.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.5.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.4.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.3.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.2.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.1.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
PPTX
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.0.0対応)
PPTX
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.2.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.1.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.12.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.11.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.10.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.9.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.8.0対応)
FIWARE - スマートサービスを支えるオープンソース
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.5.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.4.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.2.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.1.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.0.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)

FIWARE IoTデバイスを保護する方法

  • 1. FIWARE IoTデバイスを保護する方法 (How to Secure FIWARE IoT Devices) Jason Fox, Senior Technical Evangelist FIWARE Foundation Translated to Japanese by Kazuhito Suda, FIWARE Evangelist
  • 2. 学習目標 ▪ システムのセキュリティ保護に役立つ一般的なアクションは何で すか? • HTTP トラフィックを保護するにはどのようなオプションが 必要ですか? • MQTT トラフィックを保護するにはどのようなオプションが 必要ですか? • 他のプロトコルにはどのようなオプションがありますか? ▪ PEP Proxy とは何ですか?サービスとデバイスを保護するため にどのように使用できますか? 1
  • 3. 前提条件 ▪ Docker ▪ Docker Compose ▪ Git ▪ Postman ▪ Cygwin for Windows 2 git clone https://github.com/FIWARE/tutorials.Step- by-Step.git cd tutorials.Step-by-Step/ git submodule update --init --recursive ▪ https://www.docker.com/ ▪ https://docs.docker.com/compose/install/ ▪ https://git-scm.com/downloads ▪ https://www.getpostman.com/downloads/ ▪ https://www.cygwin.com/install.html
  • 4. FIWARE Catalogue 33 Data/APIManagement PublicationMonetization Core Context Management (Context Broker) Context Processing, Analysis, Visualization Interface to IoT, Robotics and third party systems Deploymenttools 3 Development of Context-aware applications (Orion, Orion-LD, Scorpio, STH-Comet, Cygnus, QuantumLeap, Draco) Connection to the Internet of Things (IDAS, OpenMTC) Real-time processing of context events (Perseo) Handling authorization and access control to APIs (Keyrock, Wilma, AuthZForce, APInf ) Publication and Monetization of Context Information (CKAN extensions, Data/API Biz Framework, IDRA) Creation of Application Dashboards (Wirecloud) Real-time Processing of media streams (Kurento) Business Intelligence (Knowage) Connection to robots (FIROS, Fast RTPS,Micro XRCE-DDS) Big Data Context Analysis (Cosmos) Cloud Edge (FogFlow) Documents exchange (Domibus)
  • 5. 復習 – HTTP マイクロサービスの保護 4 PEP Proxy を使用した安全なサービス ● 承認された HTTP トラフィックのみを許可 するには、クライアント・アプリケーション (スーパーマーケット・アプリなど) と Context Broker の間にセキュリティ・ コンポーネントを挿入する必要があります ● ユーザ・アカウントを提供し、パスワードを 確認するには、Identity Manager が必要で す 安全でない HTTP トラフィックをブロックするよ うに Web server を設定します ● 301 - Moved Permanently に転送命令を含 めます ● 詳細情報 : https://www.digicert.com/ssl/
  • 6. HTTPS の構成例 : NGINX ▪ ドメイン証明書を作成する必要があります • 信頼の連鎖 - あなたは(一連の)プロバイダによっ て承認されています ▪ 秘密鍵を提供する必要があります ▪ 多くのチュートリアル - 詳細は使用する Webサーバに依存します • 例 Digital Ocean: Let‘s Encryptで Nginx を 保護する方法 • https://www.digitalocean.com/community /tutorial_collections/22 5 server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl default_server; listen [::]:443 ssl default_server; include snippets/ssl-example.com.conf; include snippets/ssl-params.conf; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
  • 7. PEP Proxy 構成の例 : Wilma ▪ どこでリッスンしていますか? • PEP_PROXY_PORT ▪ 何を保護していますか? どこに転送しますか? • PEP_PROXY_APP_HOST, PEP_PROXY_APP_PORT ▪ 誰がアクセス・トークンをチェックする責任がありますか? • PEP_PROXY_IDM_PORT, PEP_PROXY_IDM_HOST ▪ IDM はどのように私を認識しますか? • PEP_PROXY_APP_ID, PEP_PROXY_USERNAME,PEP_PASSWORD 詳細情報 : https://hub.docker.com/r/fiware/pep-proxy 6
  • 8. HTTP トラフィックの保護: IoT デバイス 7 ● デバイスは HTTP を使用して通信するため、クライア ント・アプリケーション(デバイスなど)と IoT Agent の 間に PEP proxy を含めることができます ● ユーザ・アカウントを提供し、パスワードを確認するに は、 Identity Manager が必要です ● PEP Proxy は、次の設定を使用して定義されます: ○ PEP_PROXY_APP_HOST ○ PEP_PROXY_APP_PORT ○ PEP_PROXY_PORT ● もちろん以前に示したように、HTTPS を使用して マイクロサービス間の通信を保護することもできます マイクロサービスのユースケースと同様の設定ですが、 現在、各 IoT device はそれ自体が(制限された)ユーザです ● DUMMY_DEVICES_USER, DUMMY_DEVICES_PASSWORD
  • 9. HTTPトラフィックの保護: IoT Agent 8 IoT Agent が (制限された) ユーザになりました - Context broker と IoT Agent の間のトラフィックが保護されます ● 永続的なトークンを保持する追加の信頼属性 (trust attribute) を使用してデバイスを プロビジョニングします ● HTTPS も必要になる場合があります。これは、使用するアーキテクチャと、 IoT devices が IoT Agent と通信するプロトコルによって異なります curl -iX POST 'http://localhost:4041/iot/services' -H 'Content-Type: application/json' -H 'fiware-service: openiot' -H 'fiware-servicepath: /' -d '{ "services": [ { "apikey": "4jggokgpepnvsb2uv4s40d59ov", "cbroker": "http://orion:1026", "entity_type": "Motion", "resource": "/iot/d", "trust": "e37aeef5d48c9c1a3d4adf72626a8745918d4355" } ] }'
  • 10. MQTTトラフィックの保護: IoT デバイス 9 MQTT 接続でユーザ名とパスワードを入力します MQTTブローカーのユーザ名/パスワードのハッシュ・ファイルを 作成します 例: /etc/mosquitto/passwd 例. Hackaday の例: https://hackaday.io/project/12482- garage-door-opener/log/43367-using-a-username-and- password-for-mqtt ● IOTA_MQTT_USERNAME,IOTA_MQTT_PASSWORD MQTT over SSL を使用します 証明書を作成し、MQTT ブローカーを適切に設定する必要があります 例. ThingsBoard ドキュメント: https://thingsboard.io/docs/user-guide/mqtt-over-ssl/ ● IOTA_MQTT_CA, IOTA_MQTT_CERT, IOTA_MQTT_KEY
  • 11. 安全な MQTT を使用して IoT デバイスを接続する方法 10 const mqtt = require('mqtt'); const options = { protocol: 'mqtt', host: 'localhost', port: 1883, key: <key>, ca: <certificate-authority>, cert: <certificate>, rejectUnauthorized: true, username: <device-username>, password: <device-password>, keepalive: 0, connectTimeout: 60 * 60 * 1000 }; const mqttClient = mqtt.connect( options.protocol + '://' + <host> + ':' + <port>, options ); IoT Agent と IoT デバイスの両方が同じ方法で MQTT ブローカーに接続します 豊富な MQTT クライアントライブラリが利用可能 ● https://github.com/mqtt/mqtt.github.io/wiki/libraries IoT Agent は共通の Node.js ライブラリを使用します ● https://github.com/mqttjs/MQTT.js 詳細については : ● http://mqtt.org/
  • 12. サマリ: FIWARE ベースのシステムの保護 ▪ 製品とデータの整合性を確保するための安全なシステムが必要です: • 信頼できる読み取りだけを受け入れます • 認識できるユーザにのみデータを提供します ▪ システムを保護するための最初のステップ: • アクターを特定するために可能な限りユーザ名とパスワードを使用します • SSLを使用します - メッセージと構成でプレーン・テキストを使用してはいけません • ユーザ・アクセスを最小限に抑えます (例: root アクセス、開いているポートなし) • すべてをログに記録します ▪ データのゲートキーパーとして機能する PEP Proxy を使用します ▪ FIWARE はシステムの保護に役立つ一連のコンポーネントを提供します • FIWARE カタログのコンポーネントの使用は必須ではありませんが、それらを使用するか、 同等に安全な代替手段を使用する必要があります 11