デバイスをクラウドに接続する
パスワードや証明書などのセキュリティで保護された情報をデバイスに格納すると、デバイスが露出に対して脆弱になる可能性があります。 パスワードの漏洩は、デバイスやシステム全体のセキュリティが侵害されてしまう確実な方法です。 Windows ファミリには、トラステッド プラットフォーム モジュールという、OS のセキュリティを支える技術があります。
トラステッド プラットフォーム モジュール (TPM) デバイスとは、データを格納したり、計算を実行したりすることができるマイクロコントローラーです。 これは、コンピューターのマザーボードにはんだ付けされた個別のチップである場合と、製造元による SoC (システムオンチップ) モジュールである場合があります。
TPM について
TPM の重要な機能の 1 つが、書き込み専用メモリーです。 TPM は、内部のデータに基づいて、暗号化されたハッシュ (HMAC など) を計算することもできます。 ハッシュからシークレットを解読することは不可能ですが、通信の両側がシークレットを知っている場合、もう一方から受け取ったハッシュがそのシークレットから生成されたものかどうかを判断することはできます。
暗号化キーの使用の背後にある基本的な考え方は、デバイス プロビジョニング プロセス中に、IoT デバイスとクラウドの間でシークレット (共有アクセス キーとも呼ばれる) が確立され、共有されるということです。 それ以降、IoT デバイスの認証には、そのシークレットから生成された HMAC が使用されることになります。
デバイスのプロビジョニング
Windows 10 IoT Core デバイスのプロビジョニング ツールは IoT Core ダッシュボードと呼ばれており、これはダウンロードして簡単に構成することができます。
ダッシュボードでは OS のイメージが生成され、デバイスを Azure に安全に接続します。 これは、物理デバイスを Azure IoT Hub のデバイス ID と関連付け、デバイス固有の共有アクセス キーをデバイスの TPM にインプリントすることで実現します。
TPM チップが搭載されていないデバイスの場合は、このツールを使用してソフトウェアでエミュレートされた TPM をインストールすることができます。 これはセキュリティを提供するものではありませんが、ユーザーはメーカー製のデバイス (Raspberry Pi 2 や 3 など) を使用してアプリを開発したり、アプリを変更せずにハードウェア TPM が搭載されたデバイスでセキュリティを "点灯" することができます。
デバイスを Azure に接続するには、"Azure に接続する" タブをクリックします。
Azure アカウントにログインするように求めるメッセージが表示されます。 目的の Azure IoT Hub のインスタンスを選び、そこに物理デバイスを関連付けます。 Azure サブスクリプションに IoT Hub インスタンスがない場合は、このツールで無料のインスタンスを作成することができます。
IoT Hub と、デバイスを関連付けるデバイス ID を選択したら、そのデバイスの共有アクセス キーを TPM にインプリントできます。
これで、デバイスを安全な方法で Azure に接続する準備が整いました。
また、プロビジョニング後に初めてインターネットに接続する際に、Windows デバイス ポータルを使用して IoT Hub の接続文字列を動的に取得することもできます。 これは、デバイス ポータルの "Azure クライアント" タブから行うことができます。