Slide 1

Slide 1 text

電子証明書で デバイス認証を 強化せよ Takashi Matsuoka @matsujirushi12 - 2022/11/28 【オンライン】エッジAI入門&活用シリー ズ#4『Azure IoTサービス』編 -

Slide 2

Slide 2 text

Takashi Matsuoka @matsujirushi12 2017~ MVP for Windows Development 2020~ for Microsoft Azure 2022~ for Internet of Things 「e」3つ 1991年大手メーカーに入社し、工場の自動 化や情報システムの開発、運用に従事。 2017年8月、Seeed株式会社設立時に転職。 組み込みデバイスの開発環境整備やライブ ラリ開発を担当。 “初心者の次”へ行くのに身に付けるべきスキルをとりまとめた書籍 ↑

Slide 3

Slide 3 text

本セッションで話すこと • Azure IoT Hubとデバイスの認証 • Azure IoT Hub Device Provisioning Service、Azure IoT Centralは除外 • X.509証明書や公開鍵暗号、デジタル署名、PKI、TLSは解説しません • 良質な書籍やWebで学んでください 言いたいことがあれば#ALGYANでツィートを! (質問、要望、感想、意見、反論などなど)

Slide 4

Slide 4 text

オススメの書籍 発売日:2003/5/31 ページ数:848 発売日:2017/8/3 ページ数:720 発売日:2018/10/2 ページ数:196 発売日:2018/6/4 ページ数:520

Slide 5

Slide 5 text

Azureサービスとデバイスの接続 Azure IoT Hub Azure Event Hubs Devices Cloud Gateway Azure Stream Analytics Azure Functions Azure Digital Twins Azure Data Explorer Azure Logic Apps Azure App Service Azure Services IoT Device Azure IoT Edge One-way Two-way Internet Azure IoT Edge IoT Device

Slide 6

Slide 6 text

Azure IoT CentralはAzure IoT Hubでインプリ 引用:【オンライン】『Azure IoT Central』入門セミナー!エンジニア達が全体像を解説します。 https://youtu.be/hmoRw4WqtMc?t=1884

Slide 7

Slide 7 text

Azure IoT Hubとデバイスの認証 IoT Device #1 Azure IoT Hub IoT Device #1 IoT Device #2 1.Azure IoT Hubを認証 2.デバイスを認証 サーバ証明書とドメイン確認 2-A. SAS方式 2-B. X.509方式 参考:デバイスの認証 https://learn.microsoft.com/ja-jp/azure/iot-hub/iot-hub-tls-support#device-authentication

Slide 8

Slide 8 text

1. Azure IoT Hubを認証 IoT Device Azure IoT Hub サーバ証明書とドメイン確認 サーバ証明書(+公開鍵) *.azure-devices.net サーバ秘密鍵 中間証明書(+公開鍵) MSFT BALT RS256 CA ルート証明書(+公開鍵) Baltimore CyberTrust Root 発行者 発行者 参考:IoT Hub でのトランスポート層セキュリティ (TLS) のサポート https://learn.microsoft.com/ja-jp/azure/iot-hub/iot-hub-tls-support

Slide 9

Slide 9 text

2-A. デバイスを認証 – SAS方式 IoT Device Azure IoT Hub 対称鍵 SASトークン SharedAccessSignature sr=myhub.azure-devices.net%2fdevices%2fdevice1& sig=13y8ejUk2z7PLmvtwR5RqlGBOVwiq7rQR3WZ5xZX3N4%3D&se=1456971697 SAS確認 生成 参考:デバイスとして SAS トークンを使用する https://learn.microsoft.com/ja-jp/azure/iot-hub/iot-hub-dev-guide-sas? tabs=node#use-sas-tokens-as-a-device 引用:IoT Hubへ接続するときの認証やキーなど https://matsujirushi.hatenablog.jp/entry/2019/12/31/113519 対称鍵 一致

Slide 10

Slide 10 text

2-B. デバイスを認証 – X.509方式 IoT Device Azure IoT Hub デバイス 秘密鍵 デバイス証明書確認 拇印 デバイス証明書(+公開鍵) device1 ルート証明書(+公開鍵) 発行者 参考:デバイスの認証 https://learn.microsoft.com/ja-jp/azure/iot-hub/iot-hub-tls-support#device-authentication 一致 X.509自己署名 X.509CA署名

Slide 11

Slide 11 text

SAS方式、X.509方式 SAS方式 ✓ 取り扱いがシンプル 対称鍵 ✓ 隠蔽は難しいかも? HSMのHMAC-SHA256を使う? ✓ TLS以外でも使える X.509方式 ✓ 柔軟かつ堅牢な認証基盤 拇印、中間証明書、ルート証明書 有効期間、失効 暗号スイート HSM ✓ 選択と運用が必要 証明書の再発行 ✓ コア部分の実装が辛い ✓ Azure IoT Edgeの透過ゲートウェイでは使えない?

Slide 12

Slide 12 text

本番環境はX.509方式を推奨 引用:Device authentication concepts in IoT Central https://learn.microsoft.com/en-us/azure/iot-central/core/concepts-device-authentication “Devices authenticate with the IoT Central application by using either a shared access signature (SAS) token or an X.509 certificate. X.509 certificates are recommended in production environments.”

Slide 13

Slide 13 text

X.509方式 – 選択と運用 ✓ デバイス秘密鍵隠蔽 ✓ ルート証明書更新 ✓ デバイス公開鍵正当性確認 ✓ デバイス証明書期間 ✓ デバイス証明書更新 FOTA HSM FOTA ✓ デバイス証明書発行 拇印、PKI (自己署名)、私設CA署名、CAサービス署名

Slide 14

Slide 14 text

Device Update for Azure IoT Hub 引用:Device Update for IoT Hub is now generally available https://techcommunity.microsoft.com/t5/internet-of-things-blog/device-update-for-iot-hub-is-now-generally-available/ba-p/3664784

Slide 15

Slide 15 text

まとめ • 正しいAzure IoT Hubなのかは、サーバ証明書で確認 • 正しいデバイスなのかは、SASトークン or デバイス証明書で認証 • SAS方式 … SASトークン • X.509方式 … デバイス証明書 • X.509方式はイロイロと考えなければいけないことが多い • デバイス証明書発行 • デバイス証明書更新 • マイクロソフトは本番環境ではX.509方式を推奨 • 暗に、開発環境はSAS方式のが良いと言ってる?

Slide 16

Slide 16 text

Azure IoT TLS: Critical changes are almost here! https://techcommunity.microsoft.com/t5/internet-of-things-blog/azure-iot-tls-critical-changes-are-almost-here-and-why-you/ba-p/2393169 参考:待ったなし! いますぐAzure IoTのルート証明書を確認せよ!(2023年2月期限) https://qiita.com/matsujirushi/items/6234b7ff79acb355f876

Slide 17

Slide 17 text

https://algyan.connpass.com/event/267859/