「Security in IoT」シリーズの最新記事に注目し、Microsoftの
会議 「Business.IoT:モノのインターネットを発見する」に参加してください。 この記事では、Azure IoTベースのIoTインフラストラクチャのセキュリティ機能について詳しく説明し、個々のコンポーネントの構成および展開中の実装レベルについて説明します。 さまざまな手法の比較分析も提示されます。
一連の記事「IoTのセキュリティ」
1.
ゼロから始める人向けのAzure IoT Suite 。
2.
包括的な保護戦略 。
3.
セキュリティシステムアーキテクチャ 。
4.
Azure IoT展開のセキュリティ保護 。
はじめに
Azure IoT展開のセキュリティ保護は、次の3つのセキュリティ領域の観点から評価する必要があります。
- デバイスのセキュリティ 現場での展開中にIoTデバイスを保護します。
- 接続保護 。 データの機密性を確保し、IoTデバイスとIoT Hubサービスの間の転送中の不正な変更からデータを保護します。
- クラウドのセキュリティ 。 クラウドでのデータ転送およびストレージ中のデータセキュリティの確保。
安全なデバイスのプロビジョニングと認証
Azure IoT Suiteは、2つの方法を使用してIoTデバイスを保護します。
- 各デバイスに一意の識別キー(セキュリティトークン)を割り当てます。これは、IoT Hubとデータを交換するときにも使用できます。
- IoT Hubサービスでのデバイス認証のために、デバイスにX.509証明書と秘密キーをインストールします。 この認証方法により、このデバイスの外部にあるデバイス上の秘密鍵を誰も見ることができなくなります。 これにより、より高いレベルのセキュリティが提供されます。
セキュリティトークンは、デバイスがIoT Hubサービスに対して行うすべての呼び出しを認証します。 このために、個々のコールごとに対称キーの関係を設定します。 X.509証明書ベースの認証により、TLS接続中に物理層でIoTデバイスを認証できます。 セキュリティトークンメソッドは、X.509証明書ベースの認証なしでも使用できますが、このシナリオは同じ高レベルのセキュリティを保証しません。 示されている2つの方法のどちらを選択するかは、主に、デバイス認証中の必要なセキュリティレベル、およびデバイス上の安全なストレージ(秘密キーが格納される)の可用性に依存します。
IoT Hubサービスセキュリティトークン
IoT Hubは、セキュリティトークンを使用してデバイスとサービスを認証します。これにより、ネットワークを介したキーの送信が回避されます。 さらに、セキュリティトークンは時間と範囲が制限されています。 Azure IoT Hub SDKはトークンを自動的に作成するため、特別な構成は必要ありません。 ただし、AMQP、MQTT、またはHTTPプロトコルを直接使用する場合、またはトークンサービステンプレートを展開する場合など、セキュリティトークンを作成して使用する必要がある場合があります。
セキュリティトークンの構造とその使用方法の詳細については、「
セキュリティトークンの構造 」および「
SASトークンをデバイスとして使用する 」の記事を参照してください。
IoT Hubサービスの各インスタンスには、サービス内の個々のデバイスリソース(たとえば、クラウドとデバイス間で現在送信されている現在のメッセージを含むキュー)を作成し、エンドポイントへのアクセス許可を構成するために使用できる
デバイスIDレジストリが含まれています。デバイスとの対話。 IoT Hub IDレジストリは、デバイスIDとソリューションセキュリティキーの安全なストレージを提供します。 個々のデバイスIDまたはIDグループをホワイトリストまたはブラックリストに追加することにより、デバイスへのアクセスを完全に制御できます。
IoT Hub
は 、AMQP、MQTT、HTTPSなどのプロトコルを
サポートしています。 これらの各プロトコルは、IoTデバイスから受信し、さまざまな方法でIoT Hubサービスに送信されるセキュリティトークンを使用します。
- AMQPプロトコル 。 SASL PLAINおよびAMQPステートメントによる保護({policyNameasket@sas.root.{iothubName}-ハブレベルのサービストークンの場合、{deviceId}-デバイスに使用されるトークンの場合)。
- MQTTプロトコル 。 CONNECTパッケージは、 Usernameフィールドで{DeviceId}を{ClientId}、{IoThubhostname} / {deviceId}として使用します。 [パスワード]フィールドのSASトークン。
- HTTPプロトコル 有効なトークンは、認可リクエストのヘッダーです。
IoT HubデバイスIDレジストリを使用して、デバイスのセキュリティ資格情報とアクセス制御を構成できます。 ただし、大量のIoTソリューションリソースが
ユーザーデバイスIDレジストリおよび/または認証スキームに既に割り当てられ
ている場合 、トークンサービスを作成することにより、IoT Hubサービスが使用される既存のインフラストラクチャにソリューションを統合できます。
X.509証明書ベースのデバイス認証
デバイスとそれに関連付けられた秘密キーと公開キーのペアに
基づいたX.509証明書を使用
すると、物理レベルでの追加認証が可能になります。 秘密鍵は、デバイスの安全なストレージに保存されます。 デバイス外での検出は不可能です。 X.509証明書には、デバイスに関する情報(デバイス識別子およびその他の組織データ)が含まれています。 秘密鍵を使用して、証明書の署名が作成されます。
高レベルのデバイスを準備するプロセス:
- 識別子と物理証明書「デバイス-デバイス」および(または)X.509証明書との接続を構成します。これは、製造または試運転の段階でデバイスに関連付けられます。
- IoT HubデバイスIDに適切なIDレコードを作成し、関連付けられたデバイス情報をIoT Hubデバイスレジストリに追加します。
- IoT Hubデバイスレジストリ内の保護されたX.509証明書指紋ストレージ。
デバイスルート証明書
IoT HubサービスとのセキュアなTLS接続を確立するプロセス中に、IoTデバイスは、デバイスのSDKに含まれているルート証明書を使用してサービスを認証します。 クライアントC SDKの証明書は、リポジトリのルートにある\ c \ certsフォルダーにあります。 これらのルート証明書は長期間発行されますが、有効期限が切れたり失効したりする可能性があります。 デバイスで証明書を更新できない場合は、IoT Hub(または他のクラウドサービス)へのデバイスの後続の接続も利用できない場合があります。 これらのリスクは、IoTデバイスの展開後に効果的なルート証明書更新ツールによって軽減できます。
接続保護
IoTデバイスとIoT Hubサービス間のインターネット接続は、TLS標準によって保護されています。 Azure IoTは、
TLS 1.2 、TLS 1.1、およびTLS 1.0をサポートしてい
ます 。 TLS 1.0は、下位互換性のためにのみサポートされています。 このバージョンのプロトコルは最高レベルのセキュリティを提供するため、TLS 1.2が推奨されます。
Azure IoT Suiteは、次の暗号スイートをサポートしています。
暗号スイート | 長さ |
---|
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xc028)ECDH secp384r1(eq。7680ビットRSA)FS | 256 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xc027)ECDH secp256r1(eq。3072ビットRSA)FS | 128 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xc014)ECDH secp384r1(eq。7680ビットRSA)FS | 256 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xc013)ECDH secp256r1(eq。3072ビットRSA)FS | 128 |
TLS_RSA_WITH_AES_256_GCM_SHA384(0x9d) | 256 |
TLS_RSA_WITH_AES_128_GCM_SHA256(0x9c) | 128 |
TLS_RSA_WITH_AES_256_CBC_SHA256(0x3d) | 256 |
TLS_RSA_WITH_AES_128_CBC_SHA256(0x3c) | 128 |
TLS_RSA_WITH_AES_256_CBC_SHA(0x35) | 256 |
TLS_RSA_WITH_AES_128_CBC_SHA(0x2f) | 128 |
TLS_RSA_WITH_3DES_EDE_CBC_SHA(0xa) | 112 |
クラウドセキュリティ
Azure IoT Hubでは、個々のセキュリティキーごとに
アクセス制御ポリシーを定義
できます。 このポリシーでは、各IoT Hubエンドポイントへのアクセスを構成できる次のアクセス許可セットを使用します。 許可は、必要な機能に応じてIoT Hubサービスへのアクセスを制限します。
- RegistryRead 。 デバイスIDレジストリを読み取る許可を付与します 。
- RegistryReadWrite 。 デバイスIDレジストリへの読み取りおよび書き込みアクセスを提供します。
- ServiceConnect 。 クラウドサービスと対話するデータ交換および監視エンドポイントへのアクセスを提供します。 たとえば、この権限により、サーバー側のクラウドサービスは、デバイスからクラウドに送信されたメッセージを受信し、デバイスからクラウドにメッセージを送信し、適切な配信確認を受信できます。
- DeviceConnect 。 デバイスと通信するデータ交換エンドポイントへのアクセスを提供します。 たとえば、この権限により、デバイスからクラウドにメッセージを送信し、クラウドからデバイスに送信されたメッセージを受信できます。 この許可はデバイスで使用されます。
セキュリティトークンを使用してIoT Hubの
DeviceConnect権限を取得するには、デバイスのIDキーまたは共有アクセスポリシーキーを使用する2つの方法
があります。 さらに、デバイスで使用可能なすべての機能は、デフォルトで、プレフィックス
/ devices / {deviceId}を持つエンドポイントで提供されることに注意することが重要です。
サービスコンポーネントは、適切なアクセス許可を提供する共有アクセスポリシーを使用してのみセキュリティトークンを
作成でき
ます 。
ソリューション内のAzure IoT Hubおよびその他のサービスのユーザーは、Azure Active Directoryを使用して管理されます。
IoT Hubサービスが受信したデータは、さまざまなサービス(Azure Stream Analytics、blobストレージなど)で使用できます。 これらのサービスは管理アクセスを提供します。
- Azure DocumentDB 。 半構造化データの格納に使用される、スケーラブルで完全にインデックス可能なデータベースサービス。 作業の準備として、デバイスのメタデータ(属性、構成、およびセキュリティ設定)を管理します。 DocumentDBは、高いパフォーマンスとデータスループット、スキーマフリーのインデックス作成、およびSQLクエリを作成するための改良されたインターフェイスを提供します。
- Azure Stream Analytics 。 クラウドのリアルタイムストリーミング処理により、低コストの分析ソリューションを迅速に開発および展開して、デバイス、センサー、インフラストラクチャ、およびアプリケーションからのデータをリアルタイムで分析できます。 この完全に管理されたサービスからのデータは、高いスループット、復元力、および低遅延を維持しながら、制限なしにスケーリングできます。
- Azureアプリケーションサービス 。 クラウド内とローカルの両方のデータに接続できる強力なWebおよびモバイルアプリケーションを開発するためのクラウドプラットフォーム。 iOS、Android、およびWindowsプラットフォーム向けの魅力的なモバイルアプリケーションの開発。 多数のクラウドサービスおよびエンタープライズアプリケーションへの組み込み接続により、SaaSアプリケーションおよびエンタープライズソフトウェアと統合することができます。 任意の優先言語およびIDE(.NET、NodeJS、PHP、Python、またはJava)でコードを作成できるため、WebアプリケーションとAPIをすばやく作成できます。
- ロジックアプリケーション 。 Azure Application Serviceのアプリケーションロジック機能を使用すると、IoTソリューションを既存のビジネスシステムに統合し、ワークフローを効率的に自動化できます。 開発者は、ロジックアプリケーションを使用して、トリガーによってトリガーされるワークフローを作成し、一連のアクション(効率的なコネクターを使用して既存の企業ビジネスプロセスと統合するルールと操作)を実行できます。 ロジックアプリケーションは、SaaSエコシステム、クラウド、およびオンプレミスアプリケーションへのビルトイン接続も提供します。
- BLOBストレージ 。 デバイスからクラウドに送信されるデータ用の信頼性が高く費用対効果の高いクラウドストレージ。
おわりに
この記事では、Azure IoTサービスを使用したIoTインフラストラクチャの設計および展開中の実装レベルの概要を説明します。 特定の各コンポーネントのセキュリティを構成することは、IoTインフラストラクチャ全体のセキュリティにとって重要です。 Azure IoTで使用できる設計ツールは、柔軟性と選択肢を提供します。 ただし、選択したオプションには、独自のセキュリティ要件がある場合があります。 リスクとコストの評価手順を使用して、利用可能な各オプションを評価することをお勧めします。 ここでは、Microsoft Azureを無料
で試用できることをお知らせします。
Business.IoT:モノのインターネットを発見する
2017年3月30日には
、Microsoft Online Conference Business.IoT:Discovering the Internet of Thingsが
開催されます 。 このプログラムには、モノのインターネット、機械学習、予測分析の分野の主要な専門家からのベストプラクティスと推奨事項が記載された2つの並行するトラック(ビジネスとテクノロジー)があります。
スピーカーには、ミハイル・チェルノモルディコフ(Microsoft)、セルゲイ・オシポフ(MAYKOR-GMCS)、ドミトリー・ベルゲルソン(GuaranaCam)、アンナ・クラシコワ(Microsoft)、ドミトリー・マルチェンコ(Microsoft)、アンドレイ・メルゾフ(KORUS Consulting)、ヴァシリー・イェシポフ( KPMG)。
参加するには、
ここで登録する必要があり
ます 。
IoTコミュニティ
技術専門家向けのIoTコミュニティのリストも共有したいと思います。
イベント:
Meetup.com ここでは、ロシアのIoTコミュニティが開催した会議を見つけることができます。
ソーシャルネットワーク:
VK 、
Facebook 、
Telegramのチャンネル、Telegramの チャット 。