Things Cloud のセキュリティ

概要

ここでは Things Cloud の複数のセキュリティー面(物理的セキュリティー、ネットワークセキュリティー、アプリケーションセキュリティー、アクセス制御)について詳しく説明していきます。さらに Things Cloud がIoTソリューションのセキュリティー管理をどのように手助けできるか説明します。

このセクションは、特にITセキュリティ担当者と管理者を対象としています。Things Cloud を実行するには、ITセキュリティーの専門知識が必要です。

詳細については、リファレンスガイドのREST 実装ユーザー APIなど、ドキュメントのセキュリティ関連のセクションをご覧ください。個々のAPIコールに必要なパーミッションについては、該当のリファレンスガイドのAPIセクションに記載されています。

物理的セキュリティー

ITシステムの物理的セキュリティーとはサーバー、ストレージ、ネットワークなどの各デバイスへの無許可アクセスを防止することを表します。

Things Cloud は NTTコミュニケーションズのクラウド上で、日本国内のデータセンターに構築されており、Enterprise Cloud の持つ強固な物理的セキュリティーが適用されます。

IoTの物理的セキュリティーはデータセンターのみでなく、デバイスに対しても守る必要があるべき点に留意してください。例えば、デバイスからのデータをリダイレクトしたり操作したり、デバイス自身の情報を得たり、デバイスの設定を変更されたりなど外部からの進入を防止する必要があります。IoTを用いたシステムで使用するデバイスの物理的セキュリティーについて必ず確認するよう留意ください。例えば設定用のポートに対する物理的なアクセス防止対策をとるなどが当てはまります。

ネットワークセキュリティー

ネットワークセキュリティーは、ネットワーク上にあるデータへの無許可アクセス、データの改ざんなどを防止すると同時に安全で安定したネットワークサービスの接続を確保することも含まれます。

Things Cloud は、NTTコミュニケーションズ WideAngle マネージドセキュリティーサービスの定める基準をクリアしており、Web Application Firewallに守られています。 さらに Things Cloud はデータが改ざんされないよう、デバイスからアプリケーションまでエンド・ツー・エンドのHTTPS通信を行っています。SSLlabsより"A"評価されている最新の暗号化テクノロジーを使用しています。すべての通信は、個々の認証および許可に従います。

下図は Things Cloud のネットワークダイアグラムです。センサーネットワーク内とセンサーネットワークからエージェントへの通信にはデバイスやゲートウェイ固有のプロトコル(ZigBee や Modbusなど)を使用しています。これにより、安全性の確保をセンサーネットワークに限定することができるようになります。エージェントは Things Cloud に対し https を使用します。同様に IoTアプリケーションは Things Cloud 上で https を使用します。もしIoTアプリケーションが独自のプロトコルをウェブブラウザ上で利用する場合、これらを https 対応にすることを推奨します。これにより、エージェントからエンドユーザーへのパス全体が保護されます。

Communication security

上記の通り Things Cloud ではインターネットに対するサーバーポートや独自のプロトコルが必要ありません。このことは、セキュリティー確保に大きく貢献します。デバイスの Things Cloud 接続の単純化のみならず、デバイスの安全性確保も大きく単純化されます。IoTプロジェクトでは、Things Cloud で提供するセキュリティー特性を元に、全体のセキュリティー設計を十分行うようにしてください。

暗号化されていない通信

Things Cloud では、HTTPなどの暗号化されていないプロトコルを介して、古いデバイスや低電力デバイスへ接続することが可能です。 このようなデバイスは暗号化を実行できないか、弱い暗号化方法(TLSv1.0など)のみに対応しているためです。 古いデバイスと暗号化されていない通信の使用は任意であり、そのような通信が攻撃を受けやすいというリスクを考慮する必要があります。例えば、正規のデバイスのネットワークトラフィックを見るのに適切な位置にいる侵入者は、プラットフォームとのやりとりを記録して監視し、デバイスが提供する情報を取得してしまいます。暗号化された通信と暗号化されていない通信を混在させて使用すると、勢力的な侵入者に対する防御には効果がありません。これは、暗号化されたリソースへのリファレンスが暗号化されていない接続を介して送信される場合に、これらのリファレンスを簡単に解除できるためです。

そのため、トランスポートレベルの暗号化(SSL/TLS)を使用して、デバイスとプラットフォーム間のすべての通信を保護することをお勧めします。デバイスが安全でない通信を介して接続した場合、プラットフォームへのアクセスを確実に拒否するためにStrict-Transport-Security HTTPヘッダーを使用してください。

アプリケーションセキュリティー

アプリケーションセキュリティーとはソフトウェアレベルの安全性についてのことです。

Things Cloud では WideAngle マネージドセキュリティーサービスの定める基準をクリアするのみではなく、その他にもいくつかのベストプラクティスも追加しており、 Things Cloud の安全性を確立しています。

アクセス制御

Things Cloud は領域, ユーザー、ユーザーグループ、権限を基盤とした認証モデルを使用しています。まず、領域は同じ認証・権限ポリシーを使用するユーザーとユーザーグループの集まりを指します。ユーザーは Things Cloud にアクセス許可を持つ個人または外部システムを指します。全てのアクセスは権限によって制御されます。

Things Cloud は各テナントにユーザーの属する領域を新しく作成します。この領域では各ユーザーとして好きなユーザー名を利用できます。領域をまたがって同一のユーザー名があっても区別されます。テナントAの"コム太郎”はテナントBの"コム太郎"とは別に扱われます。このユーザー名はユーザーの所属するテナントが利用する全ての Things Cloud アプリケーションで使用可能です。

それぞれの領域には自動的に管理者ユーザーが指定され、この管理者は自由にユーザーやユーザーグループを追加し(例:グローバルロール)、許可を与えることができます。各企業ではこの管理アプリケーションを利用して自由にユーザー、権限管理することができます。

User management

権限と所有者

システム上で特定の機能を実行するためには2つのコンセプトが必要になります:権限と所有者です。

権限はユーザーの実行できる機能を定義します。

Things Cloud では読み取り権限と管理者権限を区別します。読み取り権限は各ユーザーにデータの閲覧を許可します。管理者権限はユーザーにデータの作成・更新・削除を許可します。この二つの権限は Things Cloud 内の各データタイプ別に定義できます。例えば、インベントリ、メジャーメント、オペレーション、などにそれぞれに読み取り権限が存在します。

権限をより簡単に管理するために、権限はいわゆる “ロール” にグループ化されています。すべてのユーザーを複数のロールに関連付けることができ、ユーザーの権限を追加できます。

次のタイプのロールをユーザーに関連付けることができます:

グローバルロール: テナント内のすべてのデータに適用される権限。 インベントリロール: デバイスのグループに適用される権限

インベントリ内のオブジェクトは全て所有者が存在します。所有者は自分の持つ他の権限に関係なく常に以下のことができます:

例えば、インベントリ内にあるスマートメーターを所有していたとします。所有者であるかぎり、他の権限がなくてもこのスマートメーターが抽出した全てのデータを利用することができます。

インベントリには"作成"機能があります。この機能の権限のみを持つユーザーは新しいオブジェクトをインベントリ内に作成できますが、データの閲覧・変更・削除などはできません。この機能はデバイス設置のときに利用できます。この"作成"権限でオブジェクトを他のオブジェクトへ子デバイス・子アセットとして登録することもできます。

ただし、更新権限、または該当のインベントリロールがない限り、自分で作成していないデバイスやグループを管理することはできません。

このコンセプトは、デバイスに最小限のアクセス許可を割り当てるのに役立ちます。

管理オブジェクトへのアクセスの制限

Things Cloud を使用すると、すべての管理対象オブジェクト、メジャーメント、イベントなどに適用できるグローバルなアクセス権限を設定できます。同時に以下へのアクセス制限を設けることもできます。

ロールの管理と権限の割り当て

グローバルロールおよびインベントリロールは、管理アプリケーションのロールページにて権限を作成・管理することができます

Permission page

使用可能なデフォルトロール、およびグローバルロールとインベントリロールの作成と割り当ての詳細については、ユーザーガイドのアドミニストレーションセクションにある 権限の管理 でご覧できます。

グローバルにアクセス可能なオブジェクト

特別の権限のないユーザーも含め全てのユーザーにオブジェクトへアクセスする許可を与えることができます。“c8y_Global” というフラグメントを新しく追加してください。

権限の拡張

権限は、次の2つの拡張が可能です:

デバイス名 “10200” の温度測定値の読み取り権限をユーザーに付与します:

10200, MEASUREMENT, c8y_TemperatureMeasurement, READ 

デバイス名 “10200” の全ての測定値の読み取り権限をユーザーに付与します:

10200, MEASUREMENT, *, READ

デバイス名 “10200” の再起動の権限をユーザーに付与します:

10200, OPERATION, c8yRestart, ADMIN

セキュリティーマネジメント

セキュリティー関連のイベントを監視のためにログとして保存することができます。セキュリティー関連イベントはアプリケーション上、またはIoTネットワーク上で発生します。”アプリケーションへログインする”という操作がアプリケーション上で起きるセキュリティー関連イベントの一例です。ネットワーク上のセキュリティー関連イベントの一例としては”ローカルのソフトウェアかローカルの制御を活用してデバイスを操作する”などになります。

セキュリティー関連のイベントを試したい方のために Things Cloud 監視インターフェイスを提供しています。 このインターフェース上ではアプリケーションやエージェントに監視ログを作成させることができ、この監視ログは一度保存されたら外部からの変更が不可能で継続的に保存されます。 Things Cloud 自体もログインやデバイス管理運用に関する自身の監視ログを作成します。

概略

Things Cloudのセキュリティーはさまざまなレベルで対処しています。

すべてのビジネスパートナーおよびサービスプロバイダはセキュリティー証明書を認証しています。 Things Cloudは、個々の認証および認可方法によってネットワークセキュリティーの側面を扱っています。

Things Cloudとの接続はHTTPSテクノロジを使用して確立されます。

すべてのテナントは、ユーザーおよびユーザーグループを追加または廃止するための全権限を与えられています。 テナントはエージェントとデバイスにも権限を割り当てます。