(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-10
(54)【発明の名称】フィンガープリント解析によりデバイスのセキュリティを評価するためのシステムおよび方法
(51)【国際特許分類】
G06F 21/55 20130101AFI20221102BHJP
【FI】
G06F21/55 340
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022506287
(86)(22)【出願日】2020-07-31
(85)【翻訳文提出日】2022-02-21
(86)【国際出願番号】 US2020044600
(87)【国際公開番号】W WO2021022209
(87)【国際公開日】2021-02-04
(32)【優先日】2019-08-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-07-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519127328
【氏名又は名称】アイオーエックスティー、エルエルシー
(74)【代理人】
【識別番号】100207837
【氏名又は名称】小松原 寿美
(74)【代理人】
【識別番号】100214640
【氏名又は名称】立山 千晶
(72)【発明者】
【氏名】リー、ブラッド
(72)【発明者】
【氏名】トリベルピース、クレイグ
(57)【要約】
モノのインターネットのデバイスが本明細書に開示されている。モノのインターネットのデバイスは、ネットワークに接続するように動作可能な通信モジュールと、複数の所定のシステムパラメータを有するデバイスフィンガープリントを格納するメモリと、メモリに結合されるとともに、メモリに格納された命令を実行するように動作可能なプロセッサと、センサおよび制御デバイスのうちの少なくとも1つを含むアクティビティモジュールであって、プロセッサの制御下で、センサおよび制御デバイスのうちの少なくとも1つを用いて所定の動作を実行するアクティビティモジュールとを備える。アクティビティモジュールは、通信モジュールを介してネットワーク上で通信する。プロセッサは、所定の動作の実行中にシステムパラメータを測定し、測定されたシステムパラメータをデバイスフィンガープリントの所定のシステムパラメータと比較し、測定されたシステムパラメータが所定のシステムパラメータに適合していないことに応答して通信モジュール、プロセッサ、またはアクティビティモジュールを無効化する。
【特許請求の範囲】
【請求項1】
モノのインターネットのデバイスであって、
ネットワークに通信可能に接続するように動作可能な回路を有する通信モジュールと、
複数の所定のシステムパラメータを有するデバイスフィンガープリントを格納するように動作可能なメモリであって、所定のシステムパラメータは、所定の動作が適切に行われていることの二次的な指標である、前記メモリと、
前記メモリに結合されるとともに、前記メモリに格納された命令を実行するように動作可能なプロセッサと、
センサおよび制御デバイスのうちの少なくとも1つを含むアクティビティモジュールであって、前記アクティビティモジュールは、前記プロセッサの制御下で動作して、センサおよび制御デバイスのうちの少なくとも1つを用いて所定の動作を実行し、前記アクティビティモジュールは、前記通信モジュールを介してコンピュータネットワーク上で通信するようにさらに動作可能である、前記アクティビティモジュールと、を備え、
前記プロセッサは、所定の動作の実行中にシステムパラメータを測定し、測定されたシステムパラメータを前記デバイスフィンガープリントの所定のシステムパラメータと比較し、少なくとも2つの測定されたシステムパラメータが前記所定のシステムパラメータに適合していないことに応答して前記通信モジュール、前記プロセッサ、または前記アクティビティモジュールのうちの少なくとも1つを無効化するようにさらに動作可能である、モノのインターネットのデバイス。
【請求項2】
電力接続を有する電力モジュールをさらに備え、前記通信モジュール、前記プロセッサ、または前記アクティビティモジュールのうちの少なくとも1つを無効化することは、前記通信モジュール、前記プロセッサ、または前記アクティビティモジュールのうちの少なくとも1つへの電力接続を無効化することを含む、請求項1に記載のモノのインターネットのデバイス。
【請求項3】
プロセッサを有する電力モジュールをさらに備え、前記通信モジュール、前記プロセッサ、または前記アクティビティモジュールのうちの少なくとも1つを無効化することは、電力サイクルコマンドを発行することを含む、請求項1および2のいずれか一項に記載のモノのインターネットのデバイス。
【請求項4】
前記通信モジュールを無効化することは、前記通信モジュールに無効化コマンドを送信して、前記通信モジュールを無効化することを含む、請求項1乃至3のいずれか一項に記載のモノのインターネットのデバイス。
【請求項5】
前記所定のシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される、請求項1乃至4のいずれか一項に記載のモノのインターネットのデバイス。
【請求項6】
モノのインターネットのデバイスを動作させる方法であって、
モノのインターネットのデバイスの電気回路に電力を供給するステップと、
1つ以上のトランシーバを有する通信モジュールを使用して、モノのインターネットのデバイスをネットワークに通信可能に結合するステップと、
モノのインターネットのデバイスのアクティビティモジュールをアクティブ化して、所定の動作を実行するステップと、を含み、前記アクティビティモジュールをアクティブ化することは、前記所定の動作の実行中に、モノのインターネットのデバイスの非一時的メモリ内に格納されたデバイスフィンガープリントの複数のシステムパラメータに対する複数の測定されたシステムパラメータの適合性を決定することと、少なくとも2つの前記測定されたシステムパラメータが所定のシステムパラメータに適合していないことにより、モノのインターネットのデバイスを無効化することとを含む、方法。
【請求項7】
モノのインターネットのデバイスを無効化することは、前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つを無効化することとしてさらに定義される、請求項6に記載の方法。
【請求項8】
前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つを無効化することは、前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つへの電力接続を無効化することを含む、請求項7に記載の方法。
【請求項9】
前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つを無効化することは、電力サイクルコマンドを発行することを含む、請求項7に記載の方法。
【請求項10】
前記通信モジュールを無効化することは、前記通信モジュールに無効化コマンドを送信して、前記通信モジュールを無効化することを含む、請求項7に記載の方法。
【請求項11】
前記所定のシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される、請求項6乃至10のいずれか一項に記載の方法。
【請求項12】
方法であって、
モノのインターネットのデバイスの少なくとも1つの構成要素によって所定の動作を実行するステップと、
所定の動作の発生中または発生後に、検出回路によってモノのインターネットのデバイスの少なくとも1つの構成要素の複数のシステムパラメータを測定して、測定されたシステムパラメータを生成するステップと、
前記測定されたシステムパラメータを、非一時的メモリに、所定の動作を識別する所定の動作識別子に関連付けられたデバイスフィンガープリントとして格納するステップと、を含む方法。
【請求項13】
前記測定されたシステムパラメータは、前記所定の動作が適切に行われていることの二次的な指標である、請求項12に記載の方法。
【請求項14】
前記測定されたシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される、請求項13に記載の方法。
【請求項15】
モノのインターネットのデバイスを製造する方法であって、
モノのインターネットのデバイスの非一時的メモリ内に複数のデバイスフィンガープリントを格納するステップと、前記複数のデバイスフィンガープリントの各々は、所定の動作識別子と、所定の動作の発生中または発生後のモノのインターネットのデバイスの少なくとも1つの構成要素の適切な動作を示す複数の測定されたシステムパラメータとを有しており、
モノのインターネットのデバイスの検出回路内にコンピュータ実行可能ロジックを格納するステップと、を含み、前記コンピュータ実行可能ロジックは、所定の動作を識別する所定の動作識別子を読み出し、前記所定の動作識別子を用いて非一時的メモリ内に格納されたデバイスフィンガープリントにアクセスし、所定の動作の発生中または発生後の複数のシステムパラメータを測定して、測定されたシステムパラメータを生成し、少なくとも2つの測定されたシステムパラメータを所定のシステムパラメータと比較して、少なくとも1つの構成要素が適切に機能しているかどうかを判断し、モノのインターネットのデバイスの少なくとも1つの構成要素を無効化するために、少なくとも1つの構成要素が適切に機能していないことを示す信号を出力するように動作可能である、方法。
【請求項16】
モノのインターネットのデバイスの少なくとも1つの構成要素を無効化することは、モノのインターネットのデバイスの通信モジュールまたはアクティビティモジュールのうちの少なくとも1つを無効化することとしてさらに定義される、請求項15に記載の方法。
【請求項17】
前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つを無効化することは、前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つへの電力接続を無効化することを含む、請求項16に記載の方法。
【請求項18】
前記通信モジュールまたは前記アクティビティモジュールのうちの少なくとも1つを無効化することは、電力サイクルコマンドを発行することを含む、請求項16に記載の方法。
【請求項19】
前記通信モジュールを無効化することは、前記通信モジュールに無効化コマンドを送信して、前記通信モジュールを無効化することを含む、請求項16に記載の方法。
【請求項20】
前記測定されたシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される、請求項15乃至19のいずれか一項に記載の方法。
【請求項21】
方法であって、
モノのインターネットのデバイスの少なくとも1つの構成要素が、所定の動作を実行して、前記所定の動作の発生中または発生後に、モノのインターネットのデバイスの少なくとも1つの構成要素の複数のシステムパラメータを監視し、前記複数のシステムパラメータを、非一時的メモリ内に、前記所定の動作を識別する所定の動作識別子に関連付けられたデバイスフィンガープリント内の測定されたシステムパラメータとして格納することを可能にするステップを含む方法。
【請求項22】
前記測定されたシステムパラメータが、前記所定の動作が適切に行われていることの二次的な指標である、請求項21に記載の方法。
【請求項23】
前記測定されたシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される、請求項22に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ネットワーク接続されたデバイス、より具体的には、そのようなデバイスに対する攻撃を防止するためのシステムおよび方法に関する。
【背景技術】
【0002】
最近、多数のデバイスがインターネット等のネットワークに接続されている。多くの場合にモノのインターネットのデバイス(IoT(Internet of Things)デバイス)と呼ばれるこれらのデバイスには、温度センサ、圧力センサ、水分センサ、光センサ、モーションセンサ等のセンサが含まれる。これらのセンサは、インターネットに接続されており、リモートでアクセス可能である。例えば、温度センサは、家屋、冷蔵庫、または冷凍庫の温度を監視できる。温度は、モバイル通信デバイス(例えば、携帯電話)等のユーザのデバイスにリモートで報告されることができる。同様に、水分センサは、洗濯機や給湯器などからの水漏れを報告することができる。モーションセンサは、セキュリティシステムの一部として使用されることができる。
【0003】
他のIoTデバイスは、リモート制御型ビデオモニタ、温度コントローラ等、といったアクティブなデバイスである。自動車におけるアクティブIoTデバイスにより、ユーザは、リモートで自動車を始動してエンジンを暖気すること、車内温度を調整することができる。各IoTデバイスに共通する機能としては、ネットワークを介して通信する機能が挙げられるが、ネットワークを介した通信には潜在的な欠点があり、IoTデバイスのセキュリティが欠如していると、多くの場合、該IoTデバイスは、悪意のある個人による攻撃に対して脆弱になる。
【0004】
従来、IoTデバイスを使用するそのような攻撃に対する防御のほとんどは、予防的ではなく反応的であった。反応的な応答は、損傷を軽減または制御しようとするが、攻撃の発生を防止していない。予防的な解決策には、ハッキングを防ぐためにIoTデバイスにセキュリティを提供することが含まれ得る。さらに、一部の地域では、自動車のIoTデバイスまたは病院で利用されているIoTデバイス等のIoTデバイスを保護するために高度なセキュリティが必要とされる。世界で数十億以上のIoTデバイスが導入されると、安全でないIoTデバイスと、ハッキング、ソフトウェアバグ、またはハードウェア障害のいずれかが原因でデバイスが故障することに伴うリスクとの問題が深刻となる。
【0005】
必要なのは、攻撃に対する予防的な防御である解決策である。本開示は、攻撃に対して予防的に防御するためのシステムおよび方法を説明している。
【発明の概要】
【0006】
モノのインターネットのデバイスが本明細書に開示されている。攻撃に対して予防的に防御する課題は、ネットワークに接続するように動作可能な通信モジュールと、複数の所定のシステムパラメータを有するデバイスフィンガープリントを格納するメモリと、メモリに結合されるとともに、メモリに格納された命令を実行するように動作可能なプロセッサと、センサおよび制御デバイスの少なくとも1つを含むアクティビティモジュールであって、プロセッサの制御下で、センサおよび制御デバイスの少なくとも1つを用いて所定の動作を実行するアクティビティモジュールと、を含むモノのインターネットのデバイスによって対処される。アクティビティモジュールは、通信モジュールを介してネットワーク上で通信する。プロセッサは、所定の動作の実行中にシステムパラメータを測定し、測定されたシステムパラメータをデバイスフィンガープリントの所定のシステムパラメータと比較し、測定されたシステムパラメータが所定のシステムパラメータに適合していないことに応答して通信モジュール、プロセッサ、またはアクティビティモジュールを無効化する。
【0007】
本明細書に組み込まれ、その一部を構成する添付図面は、本明細書で説明される1つ以上の実施形態を示し、詳細な説明とともに、これらの実施形態を説明する。図面は縮尺通りに描かれることが意図されておらず、図面の特定の特徴および特定の図は、明確さおよび簡潔さのために、誇張されて、縮尺されて、または概略的に示され得る。すべての構成要素がすべての図面でラベル付けされているわけではない。図面中の同様の参照符号は、同じかまたは類似の要素または機能を表し、それらを参照し得る。
【図面の簡単な説明】
【0008】
【
図1】本開示に従って実装されたIoTネットワークの例示的な実施形態の図である。
【
図2】本開示に従って構築されたIoTデバイスの例示的な実施形態のブロック図である。
【
図3】本開示に従って構築された電力モジュールの例示的な実施形態の機能ブロック図である。
【
図4】本開示に従って構築された検出回路の例示的な実施形態の機能ブロック図である。
【
図5】異常信号検出プロセスの例示的な実施形態のフロー図である。
【発明を実施するための形態】
【0009】
本開示の少なくとも1つの実施形態を詳細に説明する前に、本開示は、その適用において、特に断りのない限り、以下の説明に記載された、または図面に示された、構造、実験、例示的なデータ、および/または構成要素の配置の詳細に限定されないことを理解されたい。本開示は、他の実施形態が可能であるか、または様々な方法で実践または実施することができる。また、本明細書で採用される術語および用語は、説明を目的とするものであり、限定的なものと見なされるべきではないことを理解されたい。
【0010】
本明細書の説明において使用される場合、用語「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、またはそれらの任意の他の変形は、非排他的包含をカバーすることを意図している。例えば、特に断りのない限り、要素のリストを備えるプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されるわけではなく、そのようなプロセス、方法、物品、または装置に明示的にリストされていないか、または固有ではない他の要素も含み得る。
【0011】
さらに、明示的に反対に述べられていない限り、「または」は包含的なものを指し、排他的な「または」ではない。例えば、条件AまたはBは、次のいずれかによって満たされる。すなわち、Aが真(すなわち存在する)でBが偽(すなわち存在しない)、Aが偽(すなわち存在しない)でBが真(すなわち存在する)、および、AとBとの両方が真(すなわち存在する)。
【0012】
加えて、「a」または「an」の使用は、本明細書の実施形態の要素および構成要素を説明するために採用される。これは、単に便宜上、本発明の概念の一般的な意味を与えるために行われる。この説明は、1つ以上を含むように読まれるべきであり、別の意味であることが明らかでない限り、単数形には複数形も含まれる。さらに、「複数」という用語の使用は、明示的に反対の記載がない限り、「1つ超」を伝えることを意味する。
【0013】
本明細書で使用される場合、「一実施形態」、「実施形態」、「いくつかの実施形態」、「一例」、「例えば」、または「例」への任意の言及は、実施形態に関連して説明される特定の要素、特徴、構造、または特性が、少なくとも1つの実施形態に含まれ、他の実施形態と併せて使用され得ることを意味する。本明細書の様々な場所における「いくつかの実施形態において」または「一例において」という句の出現は、例えば、必ずしもすべてが同じ実施形態を指すとは限らない。
【0014】
序数の用語(すなわち、「第1」、「第2」、「第3」、「第4」等)の使用は、単に2つ以上の項目を区別することを目的とし、別様に明記しない限り、ある項目が別の項目よりも重要な、いかなる順序または順番も意味するものではない。
【0015】
「少なくとも1つ」または「1つ以上」という用語の使用は、1つ、および1つ超の任意の量を含むと理解されるであろう。加えて、「X、Y、およびZの少なくとも1つ」という句の使用は、Xのみ、Yのみ、およびZのみ、ならびに、X、Y、およびZの任意の組み合わせを含むと理解されるであろう。
【0016】
本明細書で使用される「回路」は、アナログ構成要素および/またはデジタル構成要素、または1つ以上の適切にプログラムされたプロセッサ(例えば、マイクロプロセッサ)ならびに関連するハードウェアおよびソフトウェア、またはハードワイヤードロジックであり得る。また、「構成要素」は1つ以上の機能を実行し得る。「構成要素」という用語は、プロセッサ(例えば、マイクロプロセッサ)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、ハードウェアとソフトウェアとの組み合わせ、および/または同様のもの等のハードウェアを含み得る。本明細書で使用される「プロセッサ」という用語は、タスクを集合的に実行するために独立してまたは一緒に作動する単一のプロセッサまたは複数のプロセッサを意味する。
【0017】
ソフトウェアは、1つ以上の構成要素による実行時に、構成要素に特定の機能を実行させる1つ以上のコンピュータ可読命令を含み得る。本明細書で説明されるアルゴリズムは、1つ以上の非一時的コンピュータ可読媒体に記憶され得ることを理解されたい。例示的な非一時的コンピュータ可読媒体は、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ、および/または同様のものを含み得る。そのような非一時的コンピュータ可読媒体は、電気ベース、光学ベース、磁気ベース、および/または同様のものであり得る。
【0018】
本明細書で使用される場合、攻撃は、ネットワークトラフィックを、IoTデバイス、特定のウェブサイトサーバ、または特定のインターネットインフラストラクチャ等の標的デバイスに同時に向けることを含み得る。攻撃にはさらに、BOT攻撃、DDoS攻撃、および標的デバイスハードウェア攻撃(例えば、標的デバイスの過度の電力消費を引き起こす攻撃といったバッテリ攻撃、または標的デバイスの通常動作および使用と矛盾する方法で標的デバイスの使用に影響を与えることを意図した標的デバイスの他の攻撃等)が含まれ得る。
【0019】
図1を参照すると、1つ以上の通信リンク20a~nを介してコントローラ16と通信する1つ以上のIoTデバイス14a~nと、LAN24と、ネットワーク28とを一般的に含むIoTネットワーク10の例示的な実施形態の図が示されている。一実施形態では、IoTデバイス14a、IoTデバイス14b、およびIoTデバイス14nは、それぞれ、通信リンク20a、通信リンク20b、および通信リンク20nによってコントローラ16に接続されている。コントローラ16は、
図1に示されるように、LAN24内に存在し得る。LAN24は、通信リンク20dを介してネットワーク28と通信する。一実施形態では、通信リンク20cを介してネットワーク28と通信するIoTデバイス14c、および通信リンク20dを介してネットワーク28と通信するIoTデバイス14dによって示されるように、1つ以上のIoTデバイス14a~nは、ネットワーク28に直接接続する。本実施形態では、IoTデバイス14cおよび14dは、ネットワーク28を介してコントローラ16に接続され得る。一実施形態では、IoTデバイス14aおよび14bが通信リンク20eを介して通信することが
図1において示されているように、1つ以上のIoTデバイス14a~nの各々は、コントローラ16と通信することなく、少なくとも1つの他のIoTデバイス14a~nと通信し得る。
【0020】
一実施形態では、IoTネットワーク10は、いかなる特定のタイプのIoTデバイス14a~nにも限定されない。1つ以上のIoTデバイス14a~nは、
図2に示されるとともに、以下により詳細に説明されるように、任意のIoTデバイス14であり得る。
【0021】
一実施形態では、コントローラ16は、1つ以上の通信リンク20a~nを介して1つ以上のIoTデバイス14a~nと通信する。一実施形態では、コントローラ16および1つ以上のIoTデバイス14a~nがLAN24内にある場合、コントローラ16と1つ以上のIoTデバイス14a~nとの間の通信リンク20a~nは、ネットワーク28に接続せず、LAN接続として実装される。一実施形態では、コントローラ16は、パーソナルコンピュータ、ラップトップ、サーバ、モバイル通信デバイス(例えば、携帯電話、PDA)、スタンドアロンデバイス等、またはそれらのいくつかの組み合わせの一部として実施され得る。説明を簡単にするために、これらの様々な実施形態は、コントローラ16として示されている。コントローラ16は、通信リンク20dを介してネットワーク28と通信する。一実施形態では、コントローラ16は、通信リンク20dを介して、LAN24内の1つ以上のIoTデバイス14a~nとネットワーク28との間の通信を可能にする。
【0022】
一実施形態では、コントローラ16は、LAN24の外部に実装されるとともに、通信リンク20dを介してネットワーク28と通信する。1つ以上のIoTデバイス14a~nは、依然としてLAN24内に実装され得るが、1つ以上のIoTデバイス14a~nは、ネットワーク28を介してコントローラ16に接続され得る。
【0023】
本明細書で使用される場合、エコシステムコーディネータは、1つ以上のIoTデバイス14a~nとコントローラ16、ユーザ、ネットワーク28、およびLAN24、またはそれらのいくつかの組み合わせとの間の通信を調整、編成、および/または制御するIoTデバイス制御システムまたはIoTデバイス編成システムを指す。一実施形態では、エコシステムコーディネータは、コントローラ16を含み、いくつかの実施形態では、特定のIoTデバイス14と一体化されたコントローラ16を含む。エコシステムコーディネータの非限定的な例は、Google Nest(登録商標)またはGoogleアシスタント(登録商標)(グーグル社(Google,LLC)、カリフォルニア州パロアルト)、Amazon Alexa(登録商標)(アマゾンドットコム社(Amazon.com,Inc)、ワシントン州シアトル)、およびInsteon(登録商標)(スマートラボ社(Smartlabs,Inc.)、カリフォルニア州アーバイン)である。一実施形態では、IoTネットワーク10は、1つ超のコントローラ16を含み、例えば、第1のコントローラ(図示せず)は、エコシステムコーディネータの構成要素であり、第2のコントローラ(図示せず)は、エコシステムコーディネータと通信する。一実施形態では、IoTネットワーク10は、1つ以上のエコシステムコーディネータをさらに含む。
【0024】
一実施形態では、ネットワーク28は、任意のタイプのネットワークであり得るとともに、ワールドワイドウェブ(またはTCP/IPプロトコルを使用するインターネット)、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN)、メトロポリタンネットワーク、無線ネットワーク、セルラーネットワーク、グローバルシステムフォーモバイルコミュニケーションズ(GSM(登録商標):Global System for Mobile Communications)ネットワーク、符号分割多元接続(CDMA:code division multiple access)ネットワーク、3Gネットワーク、4Gネットワーク、5Gネットワーク、衛星ネットワーク、無線ネットワーク、光ネットワーク、ケーブルネットワーク、公衆交換電話ネットワーク、イーサネット(登録商標)ネットワーク、短距離無線ネットワーク(Zigbee(登録商標)ネットワーク、IEEE802.15.4/802.15.5ネットワーク、ブルートゥース(登録商標)ネットワーク、および/または同様のもの)、無線メッシュネットワーク、P2Pネットワーク、LPWANネットワーク、Z波ネットワーク、およびそれらの組み合わせ、ならびに/または同様のもの等の1つ以上のネットワークトポロジおよび/またはプロトコルを使用することによって実装され得る。近い将来、本開示の実施形態は、より高度なネットワーキングトポロジおよび/またはプロトコルを使用し得ると考えられる。各通信リンク20a~nは、少なくとも部分的に、ネットワーク28および/またはLAN24を実現するために使用される1つ以上のネットワークトポロジの1つ以上のプロトコルに基づいて実装され得る。従って、1つ以上の通信リンク20a~nは、特定のプロトコル、特定のネットワークハードウェア、または特定のネットワークトポロジに依存しない。
図1に示すように、インターネットサービスプロバイダ、ルータ、モデム、ゲートウェイ、スイッチ、セルラーインフラストラクチャ、および/または同様のものへの有線および無線接続等のネットワークインフラストラクチャは、明確にするために省略されている。
【0025】
一実施形態では、LAN24は、ネットワーク28の実装と同様に実装することができる。コントローラ16と、LAN24に接続された1つ以上のIoTデバイス14a~nとは、ネットワーク28に接続することなく互いに通信することができ、通信リンク20aおよび通信リンク20bなどのLAN24内の1つ以上の通信リンク28a~nは、ネットワーク28を経由しない。一実施形態では、通信リンク20aおよび通信リンク20bは、ネットワーク28がインターネットとして実装される場合、ネットワーク28に直接接続せず、例えば、代わりに、コントローラ16に接続する。
【0026】
一実施形態では、1つ以上の通信リンク20a~nは、IoTネットワーク10の1つ以上の構成要素間の双方向通信のための論理経路を示しており、即ち、1つ以上の通信リンク20a~nは、1つ以上のIoTデバイス14a~n、コントローラ16、LAN24、および/またはネットワーク28の間の通信を可能にし得る。単なる例として、コントローラ16がPCである場合、通信リンク20dは、ネットワークサービスプロバイダへの有線または無線接続等の従来のネットワーク接続として実装されてもよく、またはコントローラ16が移動通信デバイスである場合、通信リンク20dは、セルラー通信リンクとして実装され得る。通信リンク20a~nは、通信リンク20a~nを実装するために使用されるネットワークトポロジに依存しない。一実施形態では、通信リンク20dは、第1のネットワークトポロジとして実装され得るものであり、通信リンク20aまたは通信リンク20bは、1つ以上の第2のネットワークトポロジとして実装され得るものである。例えば、通信リンク20dは、TCP/IPプロトコルを使用して実装され得るが、通信リンク20aまたは通信リンク20bは、Zigbee(登録商標)ネットワークとして実装され得る。
【0027】
本明細書で使用されるネットワークトラフィックは、送信デバイス(即ち、ネットワークパケットを送信する任意のデバイス)から送信され、かつアクティブなネットワーク接続中に受信デバイス(即ち、ネットワークパケットを受信する任意のデバイス)によって受信される1つ以上のネットワークパケットを含み得る。アクティブなネットワーク接続は、送信デバイスと受信デバイスとの間の1つ以上の通信リンク20a~nによって形成され得る。通信ストリームは、送信デバイスから受信デバイスへのネットワークトラフィックの実質的に連続的な伝送を含み得る。各ネットワークパケットには、ヘッダ情報およびデータが含まれ得る。各IoTデバイス14に関連付けられた通信リンク20a~nは、IoTデバイス14が、IoTデバイス14からコントローラ16、別のIoTデバイス14a~n、および/またはネットワーク28に通信ストリームとしてデータを送信することを可能にする。
【0028】
図2を参照すると、本開示に従って構築されたIoTデバイス14の例示的な実施形態のブロック図が示されている。一般に、IoTデバイス14は、プロセッサ50、メモリ54、タイマ58、ユーザインターフェース62、電力モジュール66、1つ以上のトランシーバ74を有する通信モジュール70、センサ80、制御デバイス84、および検出回路88、またはそれらのいくつかの組み合わせを含む複数の構成要素を備える。各構成要素は、システムバス92を介して1つ以上の他の構成要素に接続されている。センサ80および制御デバイス84は、以下でより詳細に説明されるように、アクティビティモジュール96の構成要素であり得る。また、IoTデバイス14は、プロセッサ50、メモリ54、タイマ58、ユーザインターフェース62、電力モジュール66、トランシーバ74を有する通信モジュール70、センサ80、制御デバイス84、および検出回路88、またはそれらのいくつかの組み合わせを取り囲むとともに、それらを含むハウジング100を含む。
【0029】
各IoTデバイス14は、ハードウェアとソフトウェアの組み合わせとして実装される。ソフトウェアは、ハッカーがIoTデバイス14の1つ以上の態様を制御して、上記したような攻撃を仕掛けることを可能にするリモートハッキングに対して脆弱であり得る。意図しないソフトウェアのバグは、攻撃に似ている可能性のある誤動作を引き起こし得る。攻撃を検出および防止するために、IoTデバイス14のハードウェアは、好ましくはソフトウェアアプリケーションの制御外で、攻撃を検出および阻止する。一実施形態では、IoTデバイス14の1つ以上の構成要素は、システムオンチップ(SOC)等の特定のチップ上またはその中の回路として実装され得る。一実施形態では、各IoTデバイス14は、IoTタイプを含み得る。IoTタイプは、実行される機能と、IoTデバイス14が使用される産業との両方または一方に基づく分類である。複数のIoTタイプの非限定的な例には、電気機器、自動車、ガーデン、家屋およびオフィス、照明および電気、マルチメディア、セキュリティ、センサおよび制御、ウェアラブルおよび健康、Wi-Fiおよびネットワーク、またはそれらのいくつかの組み合わせが含まれる。IoTタイプは、各タイプのサブタイプにさらに分類され得る。1つの非限定的な例は、HVAC、家電製品、および/または産業グレード電気機器のうちの1つ以上にさらに分類される「電気機器」のIoTタイプを有するIoTデバイス14を含み得る。サブタイプの例は、明確さと単純さのために、電気機器のIoTタイプに対してのみ提供されており、各IoTタイプには、IoTタイプに関連付けられた1つ以上のサブタイプが含まれ得ることが理解される。
【0030】
一実施形態では、IoTデバイス14は、1つ以上の検出回路88を含み得る。
図2に示されるように、検出回路88は、破線によってシステムバス92に結合されている。これは、検出回路88が、プロセッサ50、メモリ54、電力モジュール66、センサ80、制御デバイス88、通信モジュール70および/またはトランシーバ77と一体化されてもよく、または検出回路88が、プロセッサ50、メモリ54、電力モジュール66、センサ80、制御デバイス84、通信モジュール70および/またはトランシーバ74から分離されるとともに、システムバス92の全てのバスを介して接続されていなくてもよいことを示すことを意図している。別の実施形態では、検出回路88は、IoTデバイス14の1つ以上の構成要素に接続されているが、IoTデバイス14の1つ以上の他の構成要素に接続されなくてもよい。検出回路88は、
図4に示されるとともに、以下でより詳細に説明される。
【0031】
一実施形態では、IoTデバイス14は、システムバス92を介するメモリ54、タイマ58、ユーザインターフェース62、電力モジュール66、トランシーバ74を有する通信モジュール70、センサ80、制御デバイス84、および検出回路88、またはそれらの組み合わせ等の、これらに限定されない、IoTデバイス14の1つ以上の構成要素と通信する1つ以上のプロセッサ50を含み得る。プロセッサ50は、従来のマイクロプロセッサ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP:digital signal processor)、プログラマブルゲートアレイ(PGA:programmable gate array)、フィールドプログラマブルゲートアレイ(FPGA)、および/または同様のものとして実装され得る。代替的に、プロセッサ50は、IoTデバイス14の複雑さに応じて、個々の電気回路構成要素によって置き換えられ得る。IoTデバイス14は、プロセッサ50の特定の形態によって制限されない。追加的に、プロセッサ50は、タスクを集合的に実行するために独立してまたは一緒に動作する単一のプロセッサ50または複数のプロセッサ50を指し得る。プロセッサ50は、特定の周波数で動作する1つ以上のコアを含み得る。1つ以上のコードの各々は、別のコアと通信するか、または別のコアから分離して動作してもよい。
【0032】
一実施形態では、メモリ54は、プロセッサ50および/またはIoTデバイス14の別の構成要素の動作を制御するためのコンピュータ実行可能命令などのコンピュータ実行可能ロジック、およびデータを格納する1つ以上の非一時的コンピュータ可読媒体であり得る。メモリ54は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、プログラマブルメモリ、フラッシュメモリ、および同様のもの、またはそれらのいくつかの組み合わせを含み得る。メモリ54は、電気ベース、光学ベース、磁気ベース、および/または同様のものであり得る。IoTデバイス14は、メモリ54を実装するために使用される特定形態のハードウェアによって制限されない。また、メモリ54は、全体的または部分的にプロセッサ54と一体的に形成され得る。
【0033】
一実施形態では、タイマ58は、時間の増分および/または現在の時間を示す時間信号を生成する。一実施形態では、タイマ58は、タイマ開始信号を受信し、タイマ停止信号を受信すると、経過時間を示す時間信号を生成する。一実施形態では、タイマ58は、プロセッサ50等のIoTデバイス14の1つ以上の他の構成要素内に集積化されている。しかしながら、代替の実施形態では、タイマ58は、IoTデバイス14の1つ以上の構成要素とは別の回路として実装されるが、システムバス92を介して通信する。一実施形態では、タイマ58は、システムバス92のタイムバス上で時間信号を送信する。別の実施形態では、タイマ58は、プロセッサ50による実行時に、プロセッサ50にタイマ58を実装させる一組のコンピュータ実行可能命令を含み得る。
【0034】
IoTデバイス14は、ユーザインターフェース62を含み得る。一実施形態では、ユーザインターフェース62は、ユーザに視覚情報を提供するためのインジケータを含み得る。例えば、ユーザインターフェース62は、1つ以上のLEDであり得る。1つ以上のLEDは、点灯時に、ユーザにIoTデバイスの状態を示し得る。別の実施形態では、ユーザインターフェース62は、ユーザからのユーザ入力を受信するように構成された1つ以上のボタンを含み、ここで、ユーザ入力はプロセッサ50によって処理され得る。さらに別の実施形態では、ユーザインターフェース62は、例えば、LED画面、OLED画面、LDC画面、または同様の構成要素等のディスプレイであり得る。
【0035】
また、一実施形態では、IoTデバイス14は、1つ以上のトランシーバ74に関連付けられた通信モジュール70を含む。通信モジュール70は、回路上に実装され得るか、またはプロセッサ50によって実施され得る。通信モジュール70は、IoTデバイス14の1つ以上のトランシーバ74を制御するとともに、1つ以上のトランシーバ74を動作させてネットワーク送信信号を送信および/または受信する。通信モジュール70は、IoTデバイス14とコントローラ16との間の接続を提供し得る。通信モジュール70は、1つ以上のトランシーバ70を介してコントローラ16との双方向通信を確立し得る。例えば、IoTデバイス14bは、通信リンク20bを介してコントローラ16と通信し得るとともに、通信リンク20eを介してIoTデバイス14aと通信し得る。IoTデバイス14bの通信モジュール70は、例えば、WiFiプロトコルの要件に適合するように実装され得る第1のトランシーバ74を使用して通信リンク20bを確立し得る。また、IoTデバイス14bの通信モジュール70は、例えば、ブルートゥースプロトコルの要件に適合するように実装され得る第2のトランシーバ74を使用して通信リンク20eを確立し得る。一実施形態では、1つ以上のトランシーバ74の各々は、1つ以上の通信リンク20a~nを確立することが可能なハードウェアとして実装され得る。一実施形態では、特定のトランシーバ74は、1つ超の通信リンク20a~nを確立し得る。1つの非限定的な例は、特定のネットワークトポロジおよび/またはプロトコルを介して2つ以上の通信リンク20a~nを確立する特定のトランシーバ74を含んでもよく、例えば、特定のトランシーバ74は、2つ以上のWiFiプロトコル接続を確立し得る。通信モジュール70および1つ以上のトランシーバ74の使用は、IoTデバイス14の他の構成要素と比較して、IoTデバイス14のかなりの量の電力を消費することを理解されたい。送信時の通信モジュール70および1つ以上のトランシーバ74による電力消費は、送信しない場合よりも大きい。
【0036】
各IoTデバイス14a~nは、センサ80および/または制御デバイス84を含み得る。一実施形態では、センサ80の非限定的な例には、温度センサ、圧力センサ、水分センサ、光センサ、モーションセンサ、環境センサ、重力センサ、磁気計、大気質センサ、湿度センサ、気圧計、加速度計、ジャイロスコープ、赤外線センサ、フレイルセンサ、パルスセンサ、オーディオセンサ、電圧および/またはアンペア数センサ、タッチセンサ、傾斜センサ、超音波センサ、振動センサ、水位センサ、ガスセンサ、電波放射センサ、湿度計、運動センサ、ビデオカメラ、および同様のもの、またはそれらのいくつかの組み合わせが含まれ得る。
【0037】
同様に、各IoTデバイス14a~nは、制御デバイス84を含み得る。制御デバイス84は、ユーザがデバイスを動作させるためのコマンド信号を発行し得る任意のデバイスを含み得る。制御デバイス84の非限定的な例には、リモート制御型ビデオカメラ(例えば、ユーザがカメラのパン、チルト、および/またはズームを調整するためのコマンド信号を発行することができるPTZセキュリティカメラ)、温度コントローラ(例えば、ユーザが目標温度範囲を調整するためのコマンド信号を発行することができるサーモスタット)、アラーム(例えば、ユーザがアラームを無効または有効にするためのコマンド信号を発行することができるセキュリティシステム)、および同様のもの、またはそれらのいくつかの組み合わせが含まれ得る。1つ以上のIoTデバイス14a~nは、センサ80および制御デバイス84の両方を含み得る。一実施形態では、IoTデバイス14は、1つ以上のセンサ80および/または1つ以上の制御デバイス84を含み得る。
【0038】
一実施形態では、センサ80および制御デバイス84は、まとめて、アクティビティモジュール96と呼ばれ得る。IoTデバイス14は、1つ以上のアクティビティモジュール96を含んでもよく、各アクティビティモジュール96は、1つ以上のセンサ80および/または1つ以上の制御デバイス84を含む。アクティビティモジュール96は、センサ80および制御デバイス84を用いて所定の動作を実行するように構成され得る。アクティビティモジュール96の1つの非限定的な例は、温度センサとしてのセンサ80と、温度範囲を設定するためのコマンド信号を受信して、コマンド信号を実行する制御信号(例えば、空調装置を有効化または無効化する制御信号)を発行する制御デバイス84とを有するサーモスタットである。一実施形態では、アクティビティモジュール96は、通信モジュール70を動作させるようにさらに構成され得、例えば、通信モジュール70に、通信リンク20を介して、コントローラ16への1つ以上の通信を送信させる。アクティビティモジュール96は、アクティビティモジュール96が通信モジュール70を動作させるときにアクティブであると言われ、アクティビティモジュール96が通信モジュール70を動作させないときに非アクティブであると言われる。
【0039】
一実施形態では、IoTデバイス14の構成要素は、システムバス92によって共に接続される。システムバス92は、アドレスバス、データバス、制御バス、電力バス、時間バス、および/または同様のものを含み得る。便宜上、様々なバスがシステムバス92として示されている。
【0040】
一実施形態では、IoTデバイス14は、電力モジュール66を含む。
図3を参照すると、本開示に従って構築された電力モジュール66の例示的な実施形態のブロック図が示されている。一実施形態では、電力モジュール66は、ハウジング100内に配置されるとともに、プロセッサ130、メモリ134、電源138、1つ以上の制御スイッチ142a~n、および調整回路を含む。プロセッサ130は、プロセッサ50と同様の方法で構築され得る。メモリ134は、メモリ54と同様の方法で構築され得る。
【0041】
電力モジュール66の実装の詳細は、IoTデバイス14の特定の設計に依存する。例えば、電源66は、バッテリまたは電圧および/または電流調整回路146を備えたバッテリであり得る。別の実施形態では、電源66は、電気レセプタクルから等、外部ソースから電力を受け取るように構成されたポートであり得る。その実施形態では、電源66はまた、電気レセプタクルから電力を供給するように構成されたACプラグを含み得、また、携帯電話で一般的に使用されるようなモジュール式電源をも含み得る。この実施形態の電源66は、ハウジング100の外部にあり得る、変圧器、ならびに電圧および/または電流整流器回路146を含む。いずれの実施形態でも、電力モジュール66は、プロセッサ50、メモリ54、センサ80、制御デバイス84、通信モジュール70、1つ以上のトランシーバ74、および検出回路88に電力を供給するための回路を有する。電力がIoTデバイス14のハウジング100の外部の供給源から供給される場合、電力モジュール66は、外部電力モジュールと呼ばれ得る。同様に、IoTデバイス14のハウジング100の内部の電源(例えば、バッテリ)から電力を供給する回路を有する電力モジュール66は、内部電力モジュールと呼ばれることがある。
【0042】
一実施形態では、電力モジュール66は、システムバス92の電力バスに接続された1つ以上の制御スイッチ142a~nを含む。1つ以上の制御スイッチ14a~nの各々は、プロセッサ130に論理的に接続され得、それにより、プロセッサ130が、制御スイッチ142a~nの1つ以上に、電力モジュール66とIoTデバイス14の他の構成要素との間の電力バスの電力接続を有効化または無効化させることを可能にする。このようにして、電力モジュール66のプロセッサ130は、特定の構成要素に関連付けられた電源接続を有効化または無効化にすることによって、IoTデバイス14の特定の構成要素を有効化するか、またはIoTデバイス14の特定の構成要素を無効化し得る。一実施形態では、1つ以上の制御スイッチ142a~nの各々は、制御バスに接続され得、それにより、IoTデバイス14の別の構成要素(例えば、検出回路88)が、電力バスの電力接続を有効化または無効化することを可能にする。
【0043】
一実施形態では、1つ以上の制御スイッチ142a~nは、電力モジュール66によってIoTデバイス14の各構成要素に供給される電流および/または電圧を測定するための電力モニタ(例えば、電流計および/または電圧計)を含む。電流および/または電圧を示す信号がプロセッサ130に供給され得、プロセッサ130は、電力モジュール66によってIoTデバイス14の各構成要素に供給される電力の量、または電力モジュール66によってIoTデバイスの2つ以上の構成要素14に供給される総電力の量を計算し得る。一実施形態では、プロセッサ130は、各制御スイッチ142の電力モニタを測定して、供給された各電力をメモリ134に格納することによって、電力モジュール66によって供給される電力を決定し得る。一実施形態では、プロセッサ130は、バスシステム92に接続されている。そのような実施形態では、プロセッサ130は、1つ以上の電力データをIoTデバイス14の別の構成要素に送信し得る。電力データは、供給される電圧、供給される電流、および電圧と電流とを供給する期間、またはそれらのいくつかの組み合わせを含み得る。プロセッサ130は、1つ以上の制御スイッチ142a~nに無効化信号を送信して、電力モジュール66とIoTデバイスの特定の1つ以上の構成要素14との間の電力バスの電力接続を有効化または無効化にすることによって、IoTデバイス14の特定の1つ以上の構成要素を無効化し得る。
【0044】
一実施形態では、各構成要素が機能することを可能にするのに十分な電力がIoTデバイス14の構成要素に供給され得るように、調整回路146は、電源134によって供給される電力または電圧を調整して、電力または電圧を標準化し得る。一実施形態では、調整回路146は、1つ以上のセンサを含み得る。例えば、センサが温度プローブである場合、温度プローブは、プロセッサ130、メモリ134、電源134、1つ以上の制御スイッチ142a~n、および調整回路146、またはそれらのいくつかの組み合わせの温度を測定し得る。一実施形態では、プロセッサ130は、プロセッサ130、メモリ134、電源138、1つ以上の制御スイッチ142a~n、または調整回路146の温度を読み取り、メモリ134に温度を記録し得る。プロセッサ130は、1つ以上の電力モジュールデータをIoTデバイス14の別の構成要素に送信し得る。電力モジュールデータは、プロセッサ130、メモリ134、電源138、1つ以上の制御スイッチ142a~n、および調整回路146のうちの1つ以上の温度を含み得る。電力および/または温度が温度閾値を超えると、プロセッサ130は、無効化信号を制御スイッチ142a~nの1つ以上に送信して、IoTデバイス14の1つ以上の構成要素の電力接続を無効化して、従って、IoTデバイス14を無効化し得る。
【0045】
図4を参照すると、検出回路88の例示的な実施形態のブロック図が示されている。一般に、検出回路88は、ハウジング100内に配置されるとともに、プロセッサ160、メモリ164、および1つ以上の検出器168a~nを含み得る。プロセッサ160は、プロセッサ50と同様に構築され得、システムバス92のデータバスおよび/または制御バスに接続される。メモリ164は、上記で説明されたメモリ54と同様であり得る。メモリ164は、システムバス92に接続されなくてもよく、検出回路88と、メモリ54に格納されてプロセッサ50によって実行されるソフトウェアとの間の分離を維持し得る。
【0046】
一実施形態では、1つ以上の検出器168a~nは、IoTデバイス14の少なくとも1つのシステムパラメータを決定するように構成されたセンサ、例えば、IoTデバイス14の1つ以上の構成要素の温度システムパラメータを決定するための温度センサ168a、IoTデバイス14の1つ以上の構成要素の電力消費パラメータを決定するための電力センサ168b、IoTデバイス14の1つ以上の構成要素の光生成パラメータを決定するように構成された光検出器168c、およびシステムバス92の1つ以上のバスまたは制御線の使用パラメータを決定するように構成されたバスモニタ168dを含む。1つ以上の検出器168a~nは、上記の例に限定されず、IoTデバイス14のシステムパラメータを決定するように設計または構成された他の任意の検出器であり得る。一実施形態では、1つ以上の検出器168a~nは、特定のトランシーバ74がアクティブであるかどうか、即ち、特定のトランシーバ74がデータを送信または受信しているかどうかを決定するように構成された電波センサを含み得る。
【0047】
1つ以上の検出器168a~nの各々は、プロセッサ160に論理的に接続され得、それにより、プロセッサ160が、各検出器168a~nによって決定されたシステムパラメータを測定することを可能にする。一実施形態では、プロセッサ160は、各検出器168a~nによって決定された各システムパラメータを測定し、各システムパラメータをメモリ164に格納し得る。一実施形態では、プロセッサ50は、プロセッサ160と通信して、1つ以上の検出器168a~nにアクセスすることができる。
【0048】
一実施形態では、プロセッサ160は、システムバス92に接続されている。このような実施形態では、プロセッサ160は、IoTデバイス14の各構成要素から1つ以上のシステムパラメータ(例えば、限定するものではないが、電力モジュール66からの電力データ)を受信し得る。プロセッサ160はまた、システムバス92、より具体的には制御バスに論理的に接続され得、それにより、プロセッサ160が1つ以上の制御信号をIoTデバイス14の各構成要素に送信することを可能にする。一実施形態では、1つ以上の制御信号は、非アクティブ化コマンドまたは電源オフコマンドを含み得る。別の実施形態では、1つ以上の制御信号が電力モジュール66に送信され、電力モジュール66は、IoTデバイスの特定の1つ以上の構成要素への電力を無効化させる。
【0049】
一実施形態では、検出回路88は、電源172を含む。電源172は、電力モジュール66に直接接続され得、従って、システムバス92の電源バスを使用せずに、検出回路88に電力を提供する。一実施形態では、電源172は、電力モジュール66、例えば、専用バッテリから独立している。さらに別の実施形態では、電源172は、システムバス92の電力バスの1つに接続されてもよく、電力モジュール66に直接接続されてもよく、または、電力モジュール66から独立してもよく、またはそれらのいくつかの組み合わせであってもよい。
【0050】
一実施形態では、検出回路88は、1つ以上の直接検出手法、間接検出手法、またはそれらの組み合わせを使用することによって、IoTデバイス14の異常な動作を検出する。直接検出手法は、IoTデバイス14によって送信されたデータを直接検査する手法、例えば、1つ以上のデータパケット内のヘッダ情報を読み取る検出手法を含み得る。しかしながら、間接検出手法は、IoTデバイス14の特定の1つ以上の構成要素の複数の測定されたシステムパラメータをデバイスフィンガープリントの複数の所定のシステムパラメータと比較する。間接検出手法の一例は、サイドチャネル解析である。本明細書で使用されるように、サイドチャネル解析は、IoTデバイス14のシステムパラメータを継続的かつリアルタイムで測定し、測定されたシステムパラメータをデバイスフィンガープリントの所定のパラメータと比較するための間接手法を使用する非侵襲的アプローチである。測定されたシステムパラメータは、所定の動作が適切に行われていることを示す二次的な指標である。複数の測定されたシステムパラメータが所定のシステムパラメータに適合しない場合、本明細書で説明するように、IoTデバイスは無効化される。
【0051】
一実施形態では、デバイスプロファイルは、検出回路88のメモリ164に格納されている。デバイスプロファイルは、IoTデバイス14を動作/製造するための通常動作および/または所定の要件を示す複数のデバイスフィンガープリントを含む。サイドチャネル解析は、少なくとも1つ、好ましくは、複数のシステムパラメータを監視するために使用される。サイドチャネル解析によって監視される例示的なシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、システムバスアクセスパラメータ、および同様のもの、またはそれらのいくつかの組み合わせを含み得る。測定されたシステムパラメータは、例えば、メモリ164に格納され得る所定のシステムパラメータと比較される。メモリ164は、IoTデバイス14に対する所定の動作の適切なシステムパラメータを表すものとして、IoTデバイス14のディベロッパおよび/または製造業者によって供給され得る複数の所定のシステムパラメータを格納し得る。IoTデバイスのシステムパラメータを定期的に測定し、測定されたシステムパラメータを所定の動作の発生中または発生後に所定のシステムパラメータと比較することにより、プロセッサ160は、IoTデバイス14の構成要素(単数または複数)(例えば、プロセッサ50、メモリ54、センサ80、または制御デバイス84など)が適切に機能しているかどうかを決定することができる。構成要素(単数または複数)が適切に機能している場合、所定の動作が発生している場合、または発生した場合のその後続の期間中にシステムパラメータを測定する以外に、プロセッサ160によってさらなる動作は行われ得ない。構成要素(単数または複数)が適切に機能していない場合、プロセッサ160は、本明細書でより詳細に説明されるように、IoTデバイス14を無効化し得る。
【0052】
一実施形態では、処理時間パラメータは、キーネゴシエーションなどの所定の動作に関する処理時間の期間を示す時間を示し得る。この例では、処理時間パラメータは、キーネゴシエーション処理時間パラメータと呼ばれる。検出回路88は、ハードウェアベースのセキュリティエンジンまたはソフトウェアベースのセキュリティエンジンのいずれかを使用してキーネゴシエーションを実行する期間に関して、キーネゴシエーション中に含まれる時間(例えば、プロセッサ50のクロックサイクル数またはタイマ58からの時間)を測定することによって、キーネゴシエーション処理時間パラメータを決定し得る。
【0053】
一実施形態では、電力消費パラメータは、所定の動作中にプロセッサ50、またはIoTデバイス14の他の構成要素によって消費される電力を示す。例えば、所定の動作が暗号化動作である場合、暗号化動作の電力消費パラメータは、プロセッサ50に関連付けられた電力センサ168bまたはIoTデバイス14の別の構成要素に関連付けられた電力センサ168を測定することによって決定され得る。一実施形態では、暗号化動作を実行する際にIoTデバイスが同様のステップを同様の順序で実行する場合に、暗号化電力消費パラメータがより適用可能である。一実施形態では、検出回路88は、プロセッサ50、またはIoTデバイス14の他の構成要素によって消費される電力を測定するために、電力モジュール66と通信して、プロセッサ50、またはIoTデバイスの他の構成要素14によって消費される電力を示す電力データを受信し得る。
【0054】
一実施形態では、電波放射パラメータは、バスシステム92を介してアクセスされたときにメモリ構成要素(例えば、メモリ54)によって生成される電波放射があれば、どのような電波放射が発生しているかに関連する1つ以上のパラメータを含み得る。電波放射パラメータは、特定の動作が実行されるときにIoTデバイス14が一貫した順序で特定のステップを実行する場合に、より適用可能であり得る。例えば、検出回路88は、IoTデバイス14の各メモリ構成要素に関する電波放射を測定するための1つ以上の検出器168を含み得る。一実施形態では、電波放射パラメータは、プロセッサ50によって決定される動作タイプパラメータをさらに含む。動作タイプパラメータを決定するために、検出器168を備えた検出回路88は、各メモリモジュールの電波放射を測定して、特定の動作が実行されたかどうか(例えば、メモリ54またはその他のメモリ構成要素に対して読み出しまたは書き込み動作が実行されたかどうか)を決定し得る。
【0055】
一実施形態では、システムバスアクセスパラメータは、IoTデバイス14によって実行される任意の特定の動作に関して、プロセッサ50、トランシーバ74、メモリ54、電力モジュール66、タイマ58、通信モジュール70、センサ80、および/または制御デバイス84、またはそれらのいくつかの組み合わせのうちの1つ以上の間のシステムバス92のアクセスパターンなどの1つ以上のアクセスバスデータを含む。各アクセスパターンは、システムバス92にアクセスする1つ以上の構成要素に関する情報、ならびにアクセスに関するメタデータ(例えば、アクセスが読み取り/書き込みアクセスであるかどうか、アクセスのアドレス位置、または同様のもの)を含み得る。例えば、サーモスタットデバイスの例えば、温度読み取り動作のためのアクセスパターンは、プロセッサ50がセンサ80にアクセスし、読み取り値をメモリ54に格納し、次いで、通信モジュール70使用して読み取り値と、各構成要素間のアクセス時間と各構成要素間のアクセス順序に関するメタデータとを送信するというパターンを含み得る。検出回路88は、例えば、バスモニタ168dを用いて特定の温度読み取り動作を監視して、IoTデバイス14の各構成要素間のアクセスの順序およびアクセスの期間をシステムバスアクセスパラメータとして決定することができる。
【0056】
デバイスフィンガープリントは、モノのインターネットのデバイス14の少なくとも1つの構成要素(例えば、プロセッサ50、メモリ54、タイマ58、ユーザインターフェース62、電力モジュール66、1つ以上のトランシーバ74を有する通信モジュール70、センサ80、制御デバイス84、または検出回路88)によって所定の動作を実行することによって作成することができる。測定されたシステムパラメータを生成するために、所定の動作の発生中または発生後に、少なくとも1つの構成要素の複数のシステムパラメータが検出回路88によって測定される。測定されたシステムパラメータは、メモリ54などの非一時的メモリに、所定の動作を識別する所定の動作識別子(例えば、数字コード、アルファコード、または英数字コード)に関連付けられたデバイスフィンガープリントとして格納される。
【0057】
本明細書で使用されるに、デバイスフィンガープリントは、IoTデバイス14の任意のシステムパラメータの1つ以上の動作設定および/または1つ以上の閾値を含む。1つ以上の閾値および1つ以上の動作設定の各々は、シリコン層(silicon layer)、ディベロッパ層(developer layer)、および/または正規化層(normalized layer)等のフィンガープリント層に分類され得る。デバイスフィンガープリントは、フィンガープリント層に編成されていない1つ以上の動作設定を含み得、例えば、デバイスフィンガープリントは、IoTデバイス14のIoTタイプおよび/またはIoTサブタイプを識別する動作設定を含み得る。
【0058】
一実施形態では、シリコン層は、例えば、特定の構成要素の1つ以上の回路の製造業者によって決定または提供される1つ以上の動作設定および/または1つ以上の閾値を含む。回路製造業者によって提供される各閾値は、製造業者に知られている回路の予測されるパラメータに基づくものであってもよい。例えば、特定のトランシーバ74の製造業者は、1つ以上の閾値(電力消費パラメータに基づく電力消費閾値、動作温度パラメータに基づく動作温度閾値、または特定のトランシーバ74の動作に関連する測定可能なパラメータに基づく他の閾値等)を提供し得る。
【0059】
一実施形態では、ディベロッパ層は、例えば、IoTデバイス14のディベロッパ(ディベロッパ)からの1つ以上の動作設定および/または1つ以上の閾値を含むとともに、1つ以上の動作タイプに編成される。例えば、ディベロッパ層は、セキュアブート動作、セッションキーネゴシエーション動作、パケット処理動作、電源状態動作、物理イベント動作、および改ざん検出動作を含む、1つ以上の動作タイプにさらに編成され得る。各動作タイプは、システムパラメータの予測される閾値または設定を提供する1つ以上の動作設定および/または閾値を含む。一実施形態では、各動作タイプは、以下でより詳細に説明されるように、トリガイベントに関連付けられ得る。ディベロッパ層は、「既知の良好な」基準と見なすことができる。
【0060】
一実施形態では、セキュアブート動作は、例えば、コード署名設定、コード検証閾値、ソフトウェア暗号化設定、ソフトウェア復号化時間閾値、およびブートジャンプベクトルメモリ位置設定、またはそれらのいくつかの組み合わせを含む。コード署名設定は、メモリ54に格納されたソフトウェアの署名を含み得る。コード検証閾値は、メモリ54に格納されたソフトウェアをコード署名設定の署名に対して検証するために予測される期間であり得る。ソフトウェアが暗号化されている場合、ディベロッパはソフトウェア暗号化設定とソフトウェア復号化時間閾値とをセキュアブート動作に含ませてもよい。ソフトウェア暗号化設定は、暗号化アルゴリズムおよび暗号化強度等の暗号化情報を含み得る。ソフトウェア復号化時間閾値は、メモリ54に格納されたソフトウェアを復号化するために必要とされる予測期間であり得るか、またはメモリ54に格納されたソフトウェアが復号化されると予測される予測期間の範囲であり得る。コード検証閾値およびソフトウェア復号化閾値は、例えば、タイマ62によって決定されるような時間パラメータに関連付けられ得る。
【0061】
一実施形態では、セッションキーネゴシエーション動作は、例えば、セキュリティエンジン設定およびキーネゴシエーション時間閾値を含む。セキュリティエンジン設定を使用して、ディベロッパは、IoTデバイス14がハードウェアベースのセキュリティエンジンを使用するか、またはソフトウェアベースのセキュリティエンジンを使用するかを指示し得る。概して、ハードウェアベースのセキュリティエンジンは、ソフトウェアベースのセキュリティエンジンよりも高速に実行される。ほとんどのセキュリティエンジンは、実行されている動作をマスクするために電源をディザリングするが、プロセッサ50上で実行されるソフトウェアベースのセキュリティエンジンは、電源ディザリングを含まない。キーネゴシエーション時間閾値は、適切なキーネゴシエーションが発生すると予測される期間または期間の範囲とされ得る。
【0062】
一実施形態では、パケット処理動作は、例えば、パケット復号化時間閾値、パケット処理時間閾値、パケット応答生成時間閾値、応答暗号化時間閾値、および不正パケット応答時間閾値を含む。パケット復号化時間閾値は、IoTデバイス14がネットワークパケットを復号化するのにディベロッパが予測する期間または期間範囲であり得る。パケット処理時間閾値は、IoTデバイス14がネットワークパケットを処理するのにディベロッパが予測する期間または期間範囲であり得る。パケット応答生成時間閾値は、IoTデバイス14がネットワークパケットへの応答を生成するのにディベロッパが予測する期間または期間範囲であり得る。パケット応答暗号化時間閾値は、IoTデバイス14がネットワークパケットへの応答を暗号化するのにディベロッパが予測する期間または期間範囲であり得る。不正な形式のパケット応答時間閾値は、IoTデバイス14が不正ネットワークパケットに応答するのにディベロッパが予測する期間または期間の範囲であり得る。
【0063】
一実施形態では、電力状態動作は、パワーアップ時間閾値およびウェイクアップ時間閾値を含む。パワーアップ時間閾値は、IoTデバイス14がパワーオフ状態からパワーアップするのにディベロッパが予測する期間または期間範囲であり得る。ウェイクアップ時間閾値は、IoTデバイス14が低電力状態、休止状態、またはスリープ状態からウェイクアップするのにディベロッパが予測する期間または期間範囲であり得る。パワーアップ時間閾値およびウェイクアップ時間閾値は、起動時間システムパラメータに関連付けられ得る。
【0064】
一実施形態では、物理イベント動作は、イベント応答時間閾値を含む。応答時間閾値は、IoTデバイス14が物理イベントに応答するのにディベロッパが予測するイベント応答時間期間または期間範囲であり得る。例えば、イベント応答時間期間は、物理イベントの発生と、物理イベントを検出するように設計されたセンサ80による物理イベントの検出との間の期間であり得る。
【0065】
一実施形態では、ディベロッパ層は、ディベロッパによって提供される1つ以上の動作設定および/または1つ以上の閾値をさらに含み得るとともに、例えば、IoTデバイス14の1つ以上の構成要素の電力に関連する1つ以上の閾値と、IoTデバイス14の1つ以上の構成要素の予測される動作時間に関連する1つ以上の閾値と、および例えば、IoTデバイス14にアクセスするためにパスワードが必要かどうか、IoTデバイス14にアクセスするために必要なパスワードが暗号化されているかどうか、および/またはIoTデバイス14にアクセスするために必要なパスワードが変更可能であるかどうかに関連する1つ以上の動作パラメータとを含み得る。一実施形態では、ディベロッパが、例えば、ソフトウェア開発キット(SDK:software development kit)を使用してIoTデバイス14を開発またはプログラムする際に、ディベロッパ層の1つ以上の動作設定および/または閾値が作成される。
【0066】
一実施形態では、正規化層は、IoTデバイス14の通常の動作中に決定される1つ以上の動作設定および/または1つ以上の閾値を含む。正規化層は、全体が本明細書に組み込まれる、2020年7月31日に出願された「IoTデバイスにおける攻撃保護のためのシステム(System for Attack Protection in IoT Devices)」と題する米国特許出願第16/944,822号のステップ206における機械学習モードなどの初期較正シーケンスによって決定され得る。
【0067】
図5を参照すると、異常動作検出プロセス200であって、トリガイベントを受信するステップ(ステップ204)と、1つ以上のIoTデバイス14のシステムパラメータを監視するステップ(ステップ208)と、終了イベントが受信されたかどうかを判断するステップ(ステップ212)と、終了トリガが受信されなかった場合、ステップ208に戻るステップと、受信された場合、IoTデバイス14のデバイスフィンガープリントへの適合性を判断するステップ(ステップ216)と、少なくとも2つの測定されたシステムパラメータがデバイスフィンガープリントの少なくとも2つの所定のシステムパラメータと適合していないことに応答してIoTデバイス220を無効化するステップ(ステップ220)とを含む異常動作検出プロセス200のフロー図が示されている。一実施形態では、異常動作検出プロセス200は、プロセッサ50によって実行されるが、他の実施形態では、異常動作検出プロセス200は、電力モジュール66のプロセッサ130または検出回路88のプロセッサ150、またはそれらのいくつかの組み合わせによって実行される。ステップ216において、複数の測定されたシステムパラメータの全てまたは1つのみが所定のシステムパラメータに適合していると判断された場合、プロセス200は、異常動作検出プロセス200が繰り返されるように、ステップ216からステップ204に分岐する。
【0068】
一実施形態では、トリガイベントを受信すること(ステップ204)は、例えば、IoTデバイス14の別の構成要素によって生成されたトリガイベントを受信すること、またはIoTデバイス14の外部からトリガイベントを受信することを含み得る。即ち、IoTデバイス14が別のIoTデバイス14から、コントローラ16から、エコシステムコーディネータから、または同様のものからトリガイベントを受信し得る。トリガイベントは、例えば、ウェイクアップイベント、パワーオンイベント、通信イベント、またはセンサイベント等のトリガイベントタイプを有し得る。
【0069】
一実施形態では、トリガイベントは、IoTデバイス14がウェイクアップまたはパワーオンすることに応答して、プロセッサ50、または他の別の構成要素によって発生するウェイクアップイベントまたはパワーオンイベントであり得る。トリガイベントは、IoTデバイス14と通信している別のデバイスから発生することもあり、かつエコシステムプロバイダからのコマンドまたはコントローラ16からのコマンド等、IoTデバイス14をウェイクアップまたはパワーオンさせることができるものである。
【0070】
一実施形態では、トリガイベントは、プロセッサ50、通信モジュール70、またはIoTデバイス14の別の構成要素によって発生する通信イベントである。通信イベントは、通信モジュール70が送信を開始するコマンドを受信したときにトリガされ得るか、または通信モジュール70が特定のトランシーバ74をアクティブ化させたときに発生し得る。
【0071】
一実施形態では、トリガイベントはセンサイベントである。センサイベントは、アクティビティモジュール96またはセンサ80と通信するプロセッサ50によって発生し得る。例えば、センサ80がモーションセンサである場合、モーションセンサが動きを検出したときにセンサイベントが発生し得る。また、センサイベントは1つ以上の制御スイッチ142a~nの1つ以上の電力モニタからの測定値に部分的に基づいて、電力モジュール66のプロセッサ130によって発生し得る。例えば、特定の制御スイッチ142の電力モニタを測定するプロセッサ130が電力消費の変化を識別した場合、プロセッサ130は、センサイベントを発生し得る。また、センサイベントは1つ以上の検出器168a~nによって検出されたシステムパラメータの測定値に部分的に基づいて、検出回路88のプロセッサ160によって発生し得る。
【0072】
一実施形態では、1つ以上のIoTデバイス14のシステムパラメータを監視すること(ステップ208)は、トリガイベントのタイプに少なくとも部分的に基づいて、特定の1つ以上のシステムパラメータを監視することを含む。各タイプのトリガイベントは、デバイスフィンガープリントの1つ以上の動作設定および/または閾値に関連付けられ得る。一実施形態では、特定のシステムパラメータを監視することは、1つ以上のシステムパラメータを測定し、その測定値をメモリに格納することを含み得る。例えば、パワーアップイベントは、電源状態動作またはセキュアブート動作のパワーアップ時間閾値等のデバイスフィンガープリントにおいて提供される閾値または特定の1つ以上の動作タイプの選択に関連付けられ得る。従って、パワーアップイベントは、パワーアップイベントとパワーアップ時間閾値との間の関連付けのために、起動時間システムパラメータの監視をトリガし得るとともに、ソフトウェア暗号化設定に基づいて、ソフトウェアが暗号化されている場合には、コード検証時間閾値およびソフトウェア復号化時間閾値に関連付けられた時間パラメータの監視をトリガし得る。起動時間システムパラメータおよび時間パラメータは、IoTデバイス14がパワーオンされてからの時間を提供するか、またはパワーオンイベントのタイムスタンプを提供し得る。一実施形態では、トリガイベントのタイプが1つ以上の動作設定に関連付けられている場合、ステップ216は、ステップ208に続いて開始され得る。
【0073】
一実施形態では、終了イベントが受信されたかどうかを判断すること(ステップ212)は、終了イベントを受信し、1つ以上のIoTデバイス14のシステムパラメータの監視を停止すること(ステップ208)を含む。終了イベントは、例えば、時間終了イベント、ネットワーク終了イベント、外部終了イベント、または1つ以上のシステムパラメータの監視を終了するように動作可能な他の任意のイベントであり得る。例えば、デバイスフィンガープリントのセキュアブート動作に関連する時間パラメータが測定されている場合、設定時間後にタイマ終了イベントを発生させて時間パラメータのさらなる測定を停止するか、または設定時間後に、第2のタイムスタンプが記録される。同様に、起動時間システムパラメータが測定されている場合、タイマ終了イベントを発生させて、時間パラメータのさらなる測定を停止するか、または設定時間後に、第2のタイムスタンプが記録される。
【0074】
一実施形態において、IoTデバイス14のデバイスフィンガープリントへの適合性を判断すること(ステップ216)は、ステップ208において監視される特定の1つ以上のシステムパラメータをデバイスフィンガープリントと比較すること、特定の1つ以上のシステムパラメータがフィンガープリントの閾値を満たさない場合、不成立の閾値を示す適合不成立イベントを発生させることを含む。検出回路88のプロセッサ160、または他のプロセッサ構成要素は、不成立の閾値に基づいて適合不成立イベントを処理する。一実施形態では、不成立の閾値を処理するプロセッサ160は、電力モジュール66に無効化信号を送信して、プロセッサ130に1つ以上の電源接続を無効化させてもよく、電力モジュール66に電源サイクルコマンドを送信して、プロセッサ130にIoTデバイス14の電源サイクルを行わせてもよく、通信モジュール70に無効化コマンドを送信して、通信モジュール70またはトランシーバ74のいずれか、あるいは両方を無効となるようにしてもよく、適合不成立イベントが発生したことを示す通知、いくつかの実施形態では、不成立の閾値をさらに示す通知、またはそれらのいくつかの組み合わせを示す通知をユーザに送信してもよい。
【0075】
トリガイベントがパワーアップイベントである上記の例では、パワーアップ期間は、時間パラメータの測定値によって、または第2の時間と第1の時間との間の差によって決定され得る。パワーアップ期間は、例えば、ディベロッパ層のソフトウェア復号化時間閾値と比較される。パワーアップ期間がソフトウェア復号化時間閾値を超えている場合、ディベロッパ層のソフトウェア復号化時間閾値を示す適合不成立イベントが発生し得る。同様に、パワーアップ期間がコード検証時間閾値と比較されてもよく、パワーアップ期間がコード検証時間閾値の範囲外である場合、コード検証時間閾値を示す適合不成立イベントが発生し得る。
【0076】
異常動作プロセス200の1つの非限定的な例は、IoTデバイス14をサーモスタットデバイスとして含み、サーモスタットデバイスは、HVACデバイスを制御するための少なくとも1つの温度センサ80および少なくとも1つの制御デバイス84を含み得る。サーモスタットデバイスのデバイスフィンガープリントは、シリコン層、ディベロッパ層、および正規化層を含み得る。ディベロッパ層は、トランシーバ74の予測される最高温度を示すトランシーバ温度閾値、トランシーバ74が通常の動作中にアクティブである時間範囲を示すアクティブトランシーバ時間閾値、トランシーバ74の動作中に消費される電力を示すトランシーバ電力閾値、プロセッサ50の予測される最高温度を示すプロセッサ温度閾値、IoTデバイス14が非アクティブである間に消費される電力を示す非アクティブ電力消費閾値、IoTデバイス14がアクティブである間に消費される電力を示すアクティブ電力消費閾値、制御デバイス84の動作中に消費される電力を示す制御デバイス動作電力閾値、制御デバイス84が制御される時間範囲を示す制御デバイス時間閾値、温度センサの動作中に消費される電力を示すセンサ動作電力閾値、および温度センサがアクティブである時間範囲を示すセンサ時間閾値を含み得る。サーモスタットデバイスの通常の動作中、サーモスタットデバイスは、部屋の温度を定期的にチェックし、その温度を、例えば、コントローラに送信し、温度に応じて、HVACデバイスを制御することができる。サーモスタットデバイスが温度をチェックするたびに、センサイベントが発生し、センサ消費電力を示すセンサ電力パラメータと、センサ動作期間を示すセンサ動作時間パラメータとのモニタ動作が行われる。センサによって温度が決定されると、モニタ動作の終了イベントが発生し、センサ消費電力が、センサ動作電力閾値と、かつセンサ電力パラメータに関連付けられたシリコン層または正規化層の任意の閾値と比較され、センサ動作時間が、センサ時間閾値と、かつセンサ動作時間パラメータに関連付けられたシリコン層または正規化層の任意の閾値と比較される。センサの消費電力またはセンサの動作時間が個々の閾値を超えると、不成立の閾値を示す適合不成立イベントが発生する。同様に、サーモスタットデバイスが温度を送信するたびに、通信イベントが発生し、トランシーバ温度を示すトランシーバ温度パラメータ、トランシーバの消費電力を示すトランシーバ電力パラメータ、およびトランシーバのアクティブ期間を示すトランシーバ時間パラメータのモニタ動作が行われる。温度送信が完了すると、モニタ動作の終了イベントが発生し、トランシーバの温度がトランシーバ温度閾値と比較され、トランシーバの消費電力がトランシーバ電力閾値と比較され、トランシーバのアクティブ期間がアクティブトランシーバ時間閾値と比較される。トランシーバの温度、トランシーバの消費電力、またはトランシーバのアクティブ期間のいずれかが個々の閾値を超えた場合、超過した閾値を示す適合不成立イベントが発生する。
【0077】
一実施形態では、デバイスフィンガープリントが、特定のパラメータの第1の閾値(例えば、トランシーバ温度パラメータの動作温度閾値)を有するディベロッパ層と、特定のパラメータの第2の閾値を有するシリコン層とを含み、測定されたトランシーバ温度が第1の閾値または第2の閾値のいずれかを超えた場合、超過した閾値を示す適合不成立イベントが発生する。いくつかの実施形態では、デバイスフィンガープリントは、特定のパラメータの第3の閾値を有する正規化層をさらに含む。トランシーバの温度が第1の閾値、第2の閾値、または第3の閾値のいずれかを超えると、超過した閾値を示す適合不成立イベントが発生する。
【0078】
一実施形態では、検出回路88のプロセッサ160、または他のプロセッサ構成要素は、不成立の閾値、または超過した閾値に基づいて、適合不成立イベントを処理する。不成立の閾値を処理するプロセッサ160は、電力モジュール66に無効化信号を送信して、プロセッサ130に1つ以上の電源接続を無効化させてもよく、電力モジュール66に電源サイクルコマンドを送信して、プロセッサ130に電源サイクルモードを行わせて、IoTデバイス14の少なくとも1つの電力接続をサイクルさせてもよく、通信モジュール70に無効化コマンドを送信して、通信モジュール70またはトランシーバ74のいずれか、あるいは両方を無効となるようにしてもよく、適合不成立イベントが発生ししたことを示す通知、いくつかの実施形態では、不成立の閾値をさらに示す通知、またはそれらのいくつかの組み合わせを示す通知をユーザに送信してもよい。
【0079】
一実施形態では、検出回路88のプロセッサ160または他のプロセッサ構成要素は、シリコン層の閾値の不成立または超過を示す適合不成立イベントを処理することで、IoTデバイスのディベロッパが回路製造業者からの推奨ガイドラインに従っていないこと、IoTデバイスのディベロッパがソフトウェアを誤って設定したこと、シリコン層で概要が記述されたセキュリティ手順を無視していること、または回路の機能がディベロッパによって不適切に使用されていることを、ユーザに通知するか、またはそれ以外に、示すことができる。
【0080】
いくつかの実施形態では、IoTデバイス14は、IoTデバイス14のメモリ54、134、または164内にデバイスプロファイルおよび/または複数のデバイスフィンガープリントを格納することによって製造することができる。デバイスフィンガープリントの各々は、所定の動作識別子と、所定の動作の発生中または発生後のIoTデバイス14の少なくとも1つの構成要素(プロセッサ50、メモリ54、タイマ58、ユーザインターフェース62、電力モジュール66、1つ以上のトランシーバ74有する通信モジュール70、センサ80、制御デバイス84、または検出回路88)の適切な動作を示す複数の測定されたシステムパラメータと、を有している。コンピュータ実行可能ロジックは、IoTデバイス14の検出回路88内に格納される。コンピュータ実行可能ロジックは、所定の動作を識別する所定の動作識別子を読み出し、所定の動作識別子を用いて非一時的メモリ54、134、または164内に格納されたデバイスフィンガープリントにアクセスし、所定の動作の発生中または発生後に複数のシステムパラメータを測定して、測定されたシステムパラメータを生成し、少なくとも2つの測定されたシステムパラメータを所定のシステムパラメータと比較して、少なくとも1つの構成要素が適切に機能しているかどうかを判断し、IoTデバイス14の少なくとも1つの構成要素を無効化するために、少なくとも1つの構成要素が適切に機能していないことを示す信号を出力するように動作可能である。IoTデバイス14の製造において、IoTデバイス14の物理的構成要素(例えば、プロセッサ50、メモリ54、タイマ58、ユーザインターフェース62、電力モジュール66、1つ以上のトランシーバ74を有する通信モジュール70、センサ80、制御デバイス84、または検出回路88)は、デバイスフィンガープリントがメモリ54、134、または164にロードされ、コンピュータ実行可能ロジックが検出回路88内に格納される前または後に、共に接続されてハウジング100内に配置することが可能である。さらに、更新されたデバイスフィンガープリントおよび/またはコンピュータ実行可能ロジックは、IoTデバイス14が使用状態に置かれた後、メモリ54、134、または164、および/または検出回路88に提供され得る。
【0081】
使用中、IoTデバイス14の少なくとも1つの構成要素は、所定の動作を実行して、所定の動作の発生中または発生後に、IoTデバイス14の少なくとも1つの構成要素の複数のシステムパラメータを監視し、複数のシステムパラメータを、非一時的メモリ54、134、または164に、所定の動作を識別する所定の動作識別子に関連付けられたデバイスフィンガープリント内の測定されたシステムパラメータとして格納することが可能である。デバイス14が所定の動作および他のステップを実行できるようにすることは、電力モジュール66に電力を供給すること、ユーザインターフェース62を使用してIoTデバイス14をオンにすること、またはユーザインターフェース62を介して実行される所定の動作を選択することによって達成することができる。
【0082】
一実施形態では、コンピュータ実行可能ロジックは、所定の動作および他のステップを1つ以上のインスタンスインタイム(instance in time)で実行するように動作可能である。例えば、コンピュータ実行可能ロジックは、所定の動作および他のステップを、第1のインスタンスインタイム、第1のインスタンスインタイムとは第1の時間周期だけ異なる第2のインスタンスインタイム、および第2のインスタンスインタイムとは第2の時間期間だけ異なる第3のインスタンスインタイムで実行するように動作可能である。第1の時間期間および第2の時間期間は、同じ時間期間または異なる時間期間であり得る。従って、コンピュータ実行可能ロジックは、所定の時間期間の後またはランダムな時間期間の後に、所定の動作および他のステップを実行するように動作可能である。
【0083】
以下は、本明細書に開示された本発明の概念の非限定的な例示的な実施形態の番号リストである。
1.モノのインターネットのデバイスであって、
ネットワークに通信可能に接続するように動作可能な回路を有する通信モジュールと、
複数の所定のシステムパラメータを有するデバイスフィンガープリントを格納するように動作可能なメモリであって、所定のシステムパラメータは、所定の動作が適切に行われていることの二次的な指標である、メモリと、
メモリに結合されるとともに、メモリに格納された命令を実行するように動作可能なプロセッサと、
センサおよび制御デバイスのうちの少なくとも1つを含むアクティビティモジュールであって、アクティビティモジュールは、プロセッサの制御下で動作して、センサおよび制御デバイスのうちの少なくとも1つを用いて所定の動作を実行し、アクティビティモジュールは、通信モジュールを介してコンピュータネットワーク上で通信するようにさらに動作可能である、アクティビティモジュールと、を備え、
プロセッサは、所定の動作の実行中にシステムパラメータを測定し、測定されたシステムパラメータをデバイスフィンガープリントの所定のシステムパラメータと比較し、少なくとも2つの測定されたシステムパラメータが所定のシステムパラメータに適合していないことに応答して通信モジュール、プロセッサ、またはアクティビティモジュールのうちの少なくとも1つを無効化するようにさらに動作可能である、モノのインターネットのデバイス。
【0084】
2.例示的な実施形態1に記載のモノのインターネットのデバイスは、電源接続を有する電力モジュールをさらに備え、通信モジュール、プロセッサ、またはアクティビティモジュールの少なくとも1つを無効化することは、通信モジュール、プロセッサ、またはアクティビティモジュールのうちの少なくとも1つへの電源接続を無効化することを含む。
【0085】
3.例示的な実施形態1および2のいずれか1つに記載のモノのインターネットのデバイスは、プロセッサを有する電力モジュールをさらに含み、通信モジュール、プロセッサ、またはアクティビティモジュールのうちの少なくとも1つを無効化することは、電力サイクルコマンドを発行することを含む。
【0086】
4.例示的な実施形態1~3のいずれか1つに記載のモノのインターネットのデバイスにおいて、通信モジュールを無効化することは、通信モジュールに無効化コマンドを送信して、通信モジュールを無効化することを含む。
【0087】
5.例示的な実施形態1~4のいずれか1つに記載のモノのインターネットのデバイスにおいて、所定のシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される。
【0088】
6.モノのインターネットのデバイスを動作させる方法であって、
モノのインターネットのデバイスの電気回路に電力を供給するステップと、
1つ以上のトランシーバを有する通信モジュールを使用して、モノのインターネットのデバイスをネットワークに通信可能に結合するステップと、
モノのインターネットのデバイスのアクティビティモジュールをアクティブ化して、所定の動作を実行するステップと、を含み、アクティビティモジュールをアクティブ化することは、所定の動作の実行中に、モノのインターネットのデバイスの非一時的メモリに格納されたデバイスフィンガープリントの複数のシステムパラメータに対する複数の測定されたシステムパラメータの適合性を決定することと、少なくとも2つの測定されたシステムパラメータが所定のシステムパラメータに適合していないことにより、モノのインターネットのデバイスを無効化することとを含む、方法。
【0089】
7.例示的な実施形態6に記載の方法において、モノのインターネットのデバイスを無効化することは、通信モジュールまたはアクティビティモジュールのうちの少なくとも1つを無効化することとしてさらに定義される。
【0090】
8.例示的な実施形態7に記載の方法において、通信モジュールまたはアクティビティモジュールのうちの少なくとも1つを無効化することは、通信モジュールまたはアクティビティモジュールのうちの少なくとも1つへの電力接続を無効化することを含む。
【0091】
9.例示的な実施形態7に記載の方法において、通信モジュールまたはアクティビティモジュールのうちの少なくとも1つを無効化することは、電力サイクルコマンドを発行することを含む。
【0092】
10.例示的な実施形態7に記載の方法において、通信モジュールを無効化することは、通信モジュールに無効化コマンドを送信して、通信モジュールを無効化することを含む。
【0093】
11.例示的な実施形態6~10のいずれか1つに記載の方法において、所定のシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される。
【0094】
12.方法であって、
モノのインターネットのデバイスの少なくとも1つの構成要素によって所定の動作を実行するステップと、
所定の動作の発生中または発生後に、検出回路によってモノのインターネットのデバイスの少なくとも1つの構成要素の複数のシステムパラメータを測定して、測定されたシステムパラメータを生成するステップと、
測定されたシステムパラメータを、非一時的メモリに、所定の動作を識別する所定の動作識別子に関連付けられたデバイスフィンガープリントとして格納するステップと、を含む方法。
【0095】
13.例示的な実施形態12に記載の方法において、測定されたシステムパラメータは、所定の動作が適切に行われていることの二次的な指標である。
14.例示的な実施形態13に記載の方法において、測定されたシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される。
【0096】
15.モノのインターネットのデバイスを製造する方法であって、
モノのインターネットのデバイスの非一時的メモリ内に複数のデバイスフィンガープリントを格納するステップと、複数のデバイスフィンガープリントの各々は、所定の動作識別子と、所定の動作の発生中または発生後のモノのインターネットのデバイスの少なくとも1つの構成要素の適切な動作を示す複数の測定されたシステムパラメータとを有しており、
モノのインターネットのデバイスの検出回路内にコンピュータ実行可能ロジックを格納するステップと、を含み、コンピュータ実行可能ロジックは、所定の動作を識別する所定の動作識別子を読み出し、所定の動作識別子を用いて非一時的メモリ内に格納されたデバイスフィンガープリントにアクセスし、所定の動作の発生中または発生後の複数のシステムパラメータを測定して、測定されたシステムパラメータを生成し、少なくとも2つの測定されたシステムパラメータを所定のシステムパラメータと比較して、少なくとも1つの構成要素が適切に機能しているかどうかを判断し、モノのインターネットのデバイスの少なくとも1つの構成要素を無効化するために、少なくとも1つの構成要素が適切に機能していないことを示す信号を出力するように動作可能である、方法。
【0097】
16.例示的な実施形態15に記載の方法において、モノのインターネットのデバイスの少なくとも1つの構成要素を無効化することは、モノのインターネットのデバイスの通信モジュールまたはアクティビティモジュールのうちの少なくとも1つを無効化することとしてさらに定義される。
【0098】
17.例示的な実施形態16に記載の方法において、通信モジュールまたはアクティビティモジュールの少なくとも1つを無効化することは、通信モジュールまたはアクティビティモジュールのうちの少なくとも1つへの電力接続を無効化することを含む。
【0099】
18.例示的な実施形態16に記載の方法において、通信モジュールまたはアクティビティモジュールのうちの少なくとも1つを無効化することは、電力サイクルコマンドを発行することを含む。
【0100】
19.例示的な実施形態16に記載の方法において、通信モジュールを無効化することは、通信モジュールに無効化コマンドを送信して、通信モジュールを無効化することを含む。
【0101】
20.例示的な実施形態15~19のいずれか1つに記載の方法において、測定されたシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される。
【0102】
21.方法であって、
モノのインターネットのデバイスの少なくとも1つの構成要素が所定の動作を実行して、所定の動作の発生中または発生後に、モノのインターネットのデバイスの少なくとも1つの構成要素の複数のシステムパラメータを監視し、複数のシステムパラメータを、非一時的メモリ内に、所定の動作を識別する所定の動作識別子に関連付けられたデバイスフィンガープリント内の測定されたシステムパラメータとして格納することを可能にするステップを含む方法。
【0103】
22.例示的な実施形態21に記載の方法において、測定されたシステムパラメータが、所定の動作が適切に行われていることの二次的な指標である。
23.例示的な実施形態22に記載の方法において、測定されたシステムパラメータは、処理時間パラメータ、電力消費パラメータ、電波放射パラメータ、およびシステムバスアクセスパラメータからなる群から選択される。
【0104】
上記の説明から、本明細書に開示および特許請求の範囲に記載される本発明の概念は、本明細書に記載された目的を遂行するとともに、本発明に固有の利点を得るために十分に適合されていることが明らかである。本発明の概念の例示的な実施形態が本開示の目的のために説明されたが、当業者に容易に示唆され、かつ本明細書で開示されかつ特許請求の範囲に記載された本発明の概念の技術思想の範囲内で達成される多くの変更がなされ得ることが理解される。
【国際調査報告】