Upgrade to Pro — share decks privately, control downloads, hide ads and more …

電子証明書でデバイス認証を強化せよ

 電子証明書でデバイス認証を強化せよ

2022/11/28 【オンライン】エッジAI入門&活用シリーズ#4『Azure IoTサービス』編
https://algyan.connpass.com/event/265438/

MATSUOKA Takashi

November 28, 2022
Tweet

More Decks by MATSUOKA Takashi

Other Decks in Technology

Transcript

  1. Takashi Matsuoka @matsujirushi12 2017~ MVP for Windows Development 2020~ for

    Microsoft Azure 2022~ for Internet of Things 「e」3つ 1991年大手メーカーに入社し、工場の自動 化や情報システムの開発、運用に従事。 2017年8月、Seeed株式会社設立時に転職。 組み込みデバイスの開発環境整備やライブ ラリ開発を担当。 “初心者の次”へ行くのに身に付けるべきスキルをとりまとめた書籍 ↑
  2. 本セッションで話すこと • Azure IoT Hubとデバイスの認証 • Azure IoT Hub Device

    Provisioning Service、Azure IoT Centralは除外 • X.509証明書や公開鍵暗号、デジタル署名、PKI、TLSは解説しません • 良質な書籍やWebで学んでください 言いたいことがあれば#ALGYANでツィートを! (質問、要望、感想、意見、反論などなど)
  3. 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
  4. 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
  5. 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
  6. 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 対称鍵 一致
  7. 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署名
  8. SAS方式、X.509方式 SAS方式 ✓ 取り扱いがシンプル 対称鍵 ✓ 隠蔽は難しいかも? HSMのHMAC-SHA256を使う? ✓ TLS以外でも使える

    X.509方式 ✓ 柔軟かつ堅牢な認証基盤 拇印、中間証明書、ルート証明書 有効期間、失効 暗号スイート HSM ✓ 選択と運用が必要 証明書の再発行 ✓ コア部分の実装が辛い ✓ Azure IoT Edgeの透過ゲートウェイでは使えない?
  9. 本番環境は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.”
  10. X.509方式 – 選択と運用 ✓ デバイス秘密鍵隠蔽 ✓ ルート証明書更新 ✓ デバイス公開鍵正当性確認 ✓

    デバイス証明書期間 ✓ デバイス証明書更新 FOTA HSM FOTA ✓ デバイス証明書発行 拇印、PKI (自己署名)、私設CA署名、CAサービス署名
  11. 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
  12. まとめ • 正しいAzure IoT Hubなのかは、サーバ証明書で確認 • 正しいデバイスなのかは、SASトークン or デバイス証明書で認証 •

    SAS方式 … SASトークン • X.509方式 … デバイス証明書 • X.509方式はイロイロと考えなければいけないことが多い • デバイス証明書発行 • デバイス証明書更新 • マイクロソフトは本番環境ではX.509方式を推奨 • 暗に、開発環境はSAS方式のが良いと言ってる?
  13. 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