(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-08
(54)【発明の名称】複数のコントローラの識別及び認証
(51)【国際特許分類】
G06F 21/44 20130101AFI20231201BHJP
H04L 9/32 20060101ALI20231201BHJP
G06F 21/31 20130101ALI20231201BHJP
【FI】
G06F21/44
H04L9/32 200B
H04L9/32 200F
G06F21/31
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023527757
(86)(22)【出願日】2021-11-10
(85)【翻訳文提出日】2023-07-06
(86)【国際出願番号】 US2021058855
(87)【国際公開番号】W WO2022103890
(87)【国際公開日】2022-05-19
(32)【優先日】2020-11-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】516064183
【氏名又は名称】サードウェイブ,インコーポレイティド
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【氏名又は名称】森本 有一
(72)【発明者】
【氏名】マイケル アテフ アユーブ
(72)【発明者】
【氏名】ナビル ワシリー
(57)【要約】
デバイスを識別及び認証するためのシステム、方法及びデバイスは、複数のコントローラと、組み込み機器と、を有する。第1のコントローラは、リモートネットワークリソースのような中央集権的な仲介者なしで他のコントローラの組み込み機器へのアクセスを許可又は拒否してもよい。このようにして、デバイス間又はデバイスの集合と認証サーバのようなネットワーク接続リソースとの間に一定のネットワーク接続がない場合に、異なるデバイス制御権限を異なるデバイスに設定してもよい。
【特許請求の範囲】
【請求項1】
第1のデバイス証明書を有する第1のコントローラと、第2のデバイス証明書を有する第2のコントローラと、を有する複数のコントローラであって、前記第1のデバイス証明書は、第1のユーザ識別子及び第1のセットのデバイス制御権限を有し、前記第2のデバイス証明書は、第2のユーザ識別子及び第2のセットのデバイス制御権限を有する、複数のコントローラと、
組み込み機器であって、
組み込み機器メモリと、
前記第1のコントローラから前記第1のデバイス証明書を取得し、
前記第2のコントローラから前記第2のデバイス証明書を取得し、
前記第2のデバイス証明書内の第2のユーザ識別子が前記第1のデバイス証明書内の第1のユーザ識別子と同一であるかを判断し、
前記判断に基づいて、前記第2のコントローラによる前記組み込み機器へのアクセスを許可又は防止するように構成された組み込み機器プロセッサと、
を有する、組み込み機器と、
を備える識別及び認証システム。
【請求項2】
前記第1のコントローラは、
第1のアプリケーションを格納するように構成された第1のメモリと、
前記第1のユーザ識別子及び第1のユーザパスワードを受信するように構成された第1のユーザインターフェースと、
サーバ又は前記組み込み機器と通信を行うように構成された第1のネットワークアクセスデバイスと、
前記第1のユーザインターフェース及び前記第1のネットワークアクセスデバイスに結合された第1のプロセッサであって、
前記第1のユーザ識別子及び前記第1のユーザパスワードをサーバに送信し、
サーバから第1のデバイス証明書を取得し、
前記第1のデバイス証明書を前記組み込み機器に送信するように構成された、第1のプロセッサと、
を有する、請求項1に記載の識別及び認証システム。
【請求項3】
前記第2のコントローラは、
第2のアプリケーションを格納するように構成された第2のメモリであって、前記第2のアプリケーションは、限定機能アプリケーション又はビューオンリーアプリケーションであり、前記第1のアプリケーションは、前記限定機能アプリケーション又は前記ビューオンリーアプリケーションよりも多くの権限を有する完全機能アプリケーションである、第2のメモリと、
前記第2のユーザ識別子及び第2のユーザパスワードを受信するように構成された第2のユーザインターフェースであって、前記第2のユーザ識別子は、前記第1のユーザ識別子と同一である、第2のユーザインターフェースと、
前記サーバ又は前記組み込み機器と通信を行うように構成された第2のネットワークアクセスデバイスと、
前記第2のユーザインターフェース及び前記第2のネットワークアクセスデバイスに結合された第2のプロセッサであって、
前記第2のユーザ識別子及び前記第2のユーザパスワードを前記サーバに送信し、
前記第2のコントローラに関連付けられた前記第2のデバイス証明書を前記サーバから取得し、前記第2のデバイス証明書は、前記第2のユーザ識別子と、前記第1のセットのデバイス制御権限とは異なる前記第2のセットのデバイス制御権限と、を含み、
第2のデバイス証明書を組み込み機器に送信するように構成された、第2のプロセッサと、
を有する、請求項2に記載の識別及び認証システム。
【請求項4】
前記組み込み機器メモリは、前記第1のデバイス証明書を格納するように構成され、前記組み込み機器の前記組み込み機器プロセッサは、前記第1のデバイス証明書から前記第1のユーザ識別子及び前記第1のセットの機器制御権限を抽出するように構成された、請求項1に記載の識別及び認証システム。
【請求項5】
前記組み込み機器の前記組み込み機器プロセッサは、前記第2のユーザ識別子と前記第1のユーザ識別子とを比較するように構成された、請求項4に記載の識別及び認証システム。
【請求項6】
前記組み込み機器の前記組み込み機器プロセッサは、
前記第2のユーザ識別子が前記第1のユーザ識別子と同一であると判断し、
前記第2のデバイス証明書から前記第2のセットのデバイス制御権限を取得し、
サーバに接続することなく前記第2のコントローラの前記組み込み機器へのアクセスを認証し、
前記第2のセットのデバイス制御権限に基づいて、前記第2のコントローラによる前記組み込み機器へのアクセスを許可し、
前記第2のセットのデバイス制御権限に基づいて、第2のコントローラからのコマンドの拒否又は受入を行うように構成された、請求項5に記載の識別及び認証システム。
【請求項7】
前記組み込み機器の前記組み込み機器プロセッサは、前記第2のユーザ識別子が前記第1のユーザ識別子と異なるときに、前記第2のコントローラによる前記組み込み機器へのアクセスを防止するように構成された、請求項1に記載の識別及び認証システム。
【請求項8】
サーバであって、
ユーザが前記第1のコントローラの第1のアプリケーションにログインするときに、前記第1のコントローラから前記第1のユーザ識別子を取得し、ユーザが第2のアプリケーションにログインするときに、前記第2のコントローラから前記第2のユーザ識別子を取得し、
前記第1のユーザ識別子及び前記第1のセットのデバイス制御権限を前記第1のデバイス証明書にバインドすることにより、前記第1のデバイス証明書を要求するアプリケーションのタイプに基づいて、前記第1のデバイス証明書を生成し、
前記第2のデバイス証明書に前記第2のユーザ識別子及び前記第2のセットのデバイス制御権限をバインドすることにより、前記第2のデバイス証明書を要求するアプリケーションのタイプに基づいて、前記第2のデバイス証明書を生成し、
サーバ署名鍵を使用して前記第1のデバイス証明書及び前記第2のデバイス証明書にデジタル署名し、
前記第1のユーザ識別子及び第1のユーザパスワードが認証されるときに、前記第1のデバイス証明書を前記第1のコントローラに発行し、
前記第2のユーザ識別子及び第2のユーザパスワードが認証されるときに、前記第2のデバイス証明書を前記第2のコントローラに発行するように構成された、サーバを更に備える、請求項1に記載の識別及び認証システム。
【請求項9】
組み込み機器プロセッサを有する組み込み機器と、
プライマリコントローラ及びセカンダリコントローラを有する複数のコントローラであって、前記プライマリコントローラは、
第1のセットのデバイス制御権限を含むルート証明書を格納するように構成された第1のメモリと、
前記第1のメモリに結合された第1のプロセッサであって、
前記第1のセットのデバイス制御権限により前記プライマリコントローラによる前記セカンダリコントローラのデバイス証明書の生成が可能であると判断し、
第2のセットのデバイス制御権限を使用してデバイス証明書を生成し、
前記セカンダリコントローラに前記デバイス証明書を割り当て、
前記セカンダリコントローラにデバイス証明書を発行又は送信し、
前記デバイス証明書を検証するためにルート証明書の公開鍵を組み込み機器に送信するように構成された、第1のプロセッサと、
を有する、複数のコントローラと、
を備える識別及び認証システム。
【請求項10】
前記第1のプロセッサは、前記セカンダリコントローラに前記デバイス証明書を発行又は送信する前に、前記ルート証明書の秘密鍵を使用して前記デバイス証明書にデジタル署名するように構成された、請求項9に記載の識別及び認証システム。
【請求項11】
前記組み込み機器は、前記ルート証明書の公開鍵を格納するように構成された組み込み機器メモリと、組み込み機器プロセッサとを有し、前記組み込み機器の前記組み込み機器プロセッサは、
前記ルート証明書の公開鍵を受信し、
前記デバイス証明書を受信し、
前記セカンダリコントローラを認証するために、前記ルート証明書の公開鍵を使用して前記デバイス証明書が有効であると判断し、
前記第1のセットのデバイス制御権限が前記セカンダリコントローラによるアクセスを許可しているときに、前記第2のセットのデバイス制御権限に基づいて、前記セカンダリコントローラが組み込み機器にアクセスすることを許可するように構成された、請求項10記載の識別及び認証システム。
【請求項12】
前記デバイス証明書が有効であると判断するために、前記組み込み機器の前記組み込み機器プロセッサは、前記ルート証明書の公開鍵を使用して前記デバイス証明書のデジタル署名を検証するように構成された、請求項11に記載の識別及び認証システム。
【請求項13】
前記組み込み機器は、前記第2のセットのデバイス制御権限に基づいて、前記セカンダリコントローラによる前記組み込み機器の操作を制限し、前記第1のセットのデバイス制御権限に基づいて、前記プライマリコントローラによる前記組み込み機器の操作を制限し、前記第2のセットのデバイス制御権限は、前記第1のセットのデバイス制御権限のサブセットである、請求項10に記載の識別及び認証システム。
【請求項14】
前記プライマリコントローラの前記第1のプロセッサは、
前記デバイス証明書を失効させ、
前記デバイス証明書を失効リストに追加し、
前記失効リストを前記組み込み機器に送信するように構成された、請求項9に記載の識別及び認証システム。
【請求項15】
前記組み込み機器の前記組み込み機器プロセッサは、
前記デバイス証明書が前記失効リストに基づいて無効であると判断し、
前記判断に基づいて、前記セカンダリコントローラによる前記組み込み機器へのアクセスを拒否又は防止する、請求項14に記載の識別及び認証システム。
【請求項16】
第1のコントローラ及び第2のコントローラを有する複数のコントローラと、
組み込み機器であって、
第1の長期共有秘密を格納するように構成された組み込み機器メモリと、
前記第1の長期共有秘密を使用して第2の長期共有秘密を導出し、
前記第2のコントローラから第3の長期共有秘密を取得し、
前記第2の長期共有秘密が前記第3の長期共有秘密と一致するときに、前記第2のコントローラを認証するように構成された、組み込み機器プロセッサと、
を有する組み込み機器と、
を備える識別及び認証システム。
【請求項17】
前記第1のコントローラは、
前記第1の長期共有秘密を格納するように構成された第1のメモリと、
前記第1の長期共有秘密を使用して前記第3の長期共有秘密を導出し、
前記第3の長期共有秘密を前記第2のコントローラに供給するように構成された第1のプロセッサと、を有する、請求項16に記載の識別及び認証システム。
【請求項18】
前記第2のコントローラは、
前記第3の長期共有秘密を格納するように構成された第2のメモリと、
前記第3の長期共有秘密を前記組み込み機器に供給するように構成された第2のプロセッサと、を有する、請求項17に記載の識別及び認証システム。
【請求項19】
前記第1のコントローラの前記第1のプロセッサは、Bluetooth Low Energy(登録商標)(BLE)メディアアクセス制御(MAC)アドレス又はノンスを含む前記第2のコントローラの識別子を更に使用して、前記第3の長期共有秘密を導出するように構成された、請求項17に記載の識別及び認証システム。
【請求項20】
前記組み込み機器の前記組み込み機器プロセッサは、前記第2のコントローラの識別子を更に使用するとともに前記第1のコントローラによって導出された前記第3の長期共有秘密の導出とは独立して前記第2の長期共有秘密を導出するように構成された、請求項19に記載の識別及び認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2020年11月10日に出願された「複数のコントローラの識別及び認証」の表題の米国仮特許出願第63/111,800に基づくものであり、その優先権を主張するものであり、その全内容は参照により本明細書に組み込まれる。
【0002】
1.分野
【0003】
本開示は、コントローラの識別及び認証を対象とし、更に具体的には、本開示は、モノのインターネットデバイスを制御する複数のコントローラの識別及び認証を対象とする。
【発明の概要】
【発明が解決しようとする課題】
【0004】
2. 関連技術の説明
【0005】
モノのインターネット(IoT)システムは、多くの場合、組み込み機器と、コントローラと、を有する。様々な例において、複数のコントローラが組み込み機器と通信することがある。これまでの取り組みでは、各組み込み機器及び各コントローラは、コントローラによる組み込み機器へのアクセスを選択的に許可又は非許可にするとともに組み込み機器を操作するための各コントローラの権限を設定するために、中央制御サーバと通信を行っていた。しかしながら、様々な状況において、中央サーバとの通信が利用できない。したがって、中央制御サーバに直接接続することなく組み込み機器のコントローラの識別及び認証を行うシステム及び方法が必要とされている。
【課題を解決するための手段】
【0006】
識別及び認証システムを提供する。システムは、複数のコントローラを有する。複数のコントローラは、第1のデバイス証明書を有する第1のコントローラと、第2のデバイス証明書を有する第2のコントローラと、を有し、第1のデバイス証明書は、第1のユーザ識別子及び第1のセットのデバイス制御権限を有し、第2のデバイス証明書は、第2のユーザ識別子及び第2のセットのデバイス制御権限を有する。システムは、組み込み機器を有してもよい。組み込み機器は、メモリ及びプロセッサを有してもよい。プロセッサは、第1のコントローラから第1のデバイス証明書を取得するように構成されてもよい。プロセッサは、第2のコントローラから第2のデバイス証明書を取得するように構成されてもよい。プロセッサは、第2のデバイス証明書内の第2のユーザ識別子が第1のデバイス証明書内の第1のユーザ識別子と同一であるかを判断し、判断に基づいて、第2のコントローラによる組み込み機器へのアクセスを許可又は防止するように構成されてもよい。
【0007】
様々な実施形態において、第1のコントローラは、第1のアプリケーションを格納する第1のメモリと、第1のユーザ識別子及び第1のユーザパスワードを受信する第1のユーザインターフェースと、サーバ又は組み込み機器とを行う第1のネットワークアクセスデバイスと、を有する。第1のコントローラは、第1のユーザインターフェース及び第1のネットワークアクセスデバイスに結合された第1のプロセッサを有してもよい。第1のコントローラの第1のプロセッサは、第1のユーザ識別子及び第1のユーザパスワードをサーバに送信し、サーバから第1のデバイス証明書を取得し、第1のデバイス証明書を組み込み機器に送信するように構成されてもよい。
【0008】
様々な実施形態において、第2のコントローラは、第2のアプリケーションを格納するように構成された第2のメモリと、第2のユーザ識別子及び第2のユーザパスワードを受信するように構成された第2のユーザインターフェースと、サーバ又は組み込み機器と通信を行うように構成された第2のネットワークアクセスデバイスと、を有する。第2のアプリケーションは、機能限定アプリケーション又は閲覧専用アプリケーションであり、第1のアプリケーションは、機能限定アプリケーション又は閲覧専用アプリケーションよりも多くの権限を有する全機能アプリケーションである。第2のユーザ識別子は、第1のユーザ識別子と同一である。第2のコントローラは、第2のユーザインターフェース及び第2のネットワークアクセスデバイスに結合された第2のプロセッサを有してもよい。第2のプロセッサは、第2のユーザ識別子及び第2のユーザパスワードをサーバに送信し、第2のコントローラに関連付けられた第2のデバイス証明書をサーバから取得し、第2のデバイス証明書は、第2のユーザ識別子及び第1のセットのデバイス制御権限とは異なる第2のセットのデバイス制御権限を含み、第2のデバイス証明書を組み込み機器に送信するように構成される。
【0009】
様々な実施態様において、組み込み機器のメモリは、第1のデバイス証明書を格納するように構成され、組み込み機器のプロセッサは、第1のデバイス証明書から第1のユーザ識別子及び第1のセットの機器制御権限を抽出するように構成される。さらに、組み込み機器のプロセッサは、第2のユーザ識別子と第1のユーザ識別子とを比較するように構成されてもよい。組み込み機器のプロセッサは、第2のユーザ識別子が第1のユーザ識別子と同一であると判断し、第2のデバイス証明書から第2のセットのデバイス制御権限を取得し、サーバに接続することなく第2のコントローラの組み込み機器へのアクセスを認証し、第2のデバイス制御権限セットに基づいて第2のコントローラによる組み込み機器へのアクセスを許可し、第2のセットのデバイス制御権限に基づいて、第2のコントローラからのコマンドの拒否又は受入を行うように構成されてもよい。組み込み機器のプロセッサは、第2のユーザ識別子が第1のユーザ識別子と異なるときに、第2のコントローラによる組み込み機器へのアクセスを防止するように構成されてもよい。
【0010】
サーバは、ユーザが第1のコントローラ上の第1のアプリケーションにログインするときに、第1のコントローラから第1のユーザ識別子を取得し、ユーザが第2のアプリケーションにログインするときに、第2のコントローラから第2のユーザ識別子を取得し、第1のユーザ識別子及び第1のセットのデバイス制御権限を第1のデバイス証明書にバインドすることにより、第1のデバイス証明書を要求するアプリケーションのタイプに基づいて、第1のデバイス証明書を生成し、第2のデバイス証明書に第2のユーザ識別子及び第2のセットのデバイス制御権限をバインドすることにより、第2のデバイス証明書を要求するアプリケーションのタイプに基づいて、第2のデバイス証明書を生成し、サーバ署名鍵を使用して第1のデバイス証明書及び第2のデバイス証明書にデジタル署名し、第1のユーザ識別子及び第1のユーザパスワードが認証されるときに、第1のデバイス証明書を第1のコントローラに発行し、第2のユーザ識別子及び第2のユーザパスワードが認証されるときに、第2のデバイス証明書を第2のコントローラに発行するように構成されてもよい。
【0011】
識別及び認証システムを提供する。システムは、組み込み機器と、プライマリコントローラ及びセカンダリコントローラを有する複数のコントローラと、を有してもよい。プライマリコントローラは、第1のセットのデバイス制御権限を含むルート証明書を格納するように構成された第1のメモリと、第1のメモリに結合された第1のプロセッサと、を有してもよい。第1のプロセッサは、1のセットのデバイス制御権限によりプライマリコントローラによるセカンダリコントローラのデバイス証明書の生成が可能であると判断し、第2のセットのデバイス制御権限を使用してデバイス証明書を生成し、デバイス証明書をセカンダリコントローラに割り当てるように構成される。第1のプロセッサは、セカンダリコントローラにデバイス証明書を発行又は送信し、デバイス証明書を検証するためにルート証明書の公開鍵を組み込み機器に送信するように構成されてもよい。さまざまな実施形態において、第1のプロセッサは、セカンダリコントローラにデバイス証明書を発行又は送信する前に、ルート証明書の秘密鍵を使用してデバイス証明書にデジタル署名するように構成されてもよい。
【0012】
さらに、組み込み機器は、ルート証明書の公開鍵を格納するように構成されたメモリと、 プロセッサとを有してもよい。組み込み機器のプロセッサは、ルート証明書の公開鍵を受信し、デバイス証明書を受信するように構成されてもよい。組み込み機器のプロセッサは、セカンダリコントローラを認証するために、ルート証明書の公開鍵を使用してデバイス証明書が有効であると判断し、第1のセットのデバイス制御権限がセカンダリコントローラによるアクセスを許可しているときに、第2のセットのデバイス制御権限に基づいて、セカンダリコントローラが組み込み機器にアクセスすることを許可するように構成されてもよい。デバイス証明書が有効であると判断するために、組み込み機器のプロセッサは、ルート証明書の公開鍵を使用してデバイス証明書のデジタル署名を検証してもよい。
【0013】
組み込み機器は、第2のセットのデバイス制御権限に基づいて、セカンダリコントローラによる組み込み機器の操作を制限し、第1のセットのデバイス制御権限に基づいて、プライマリコントローラによる組み込み機器の操作を制限してもよく、第2のセットのデバイス制御権限は、第1のセットのデバイス制御権限のサブセットである。様々な実施形態において、プライマリコントローラの第1のプロセッサは、デバイス証明書を失効させ、デバイス証明書を失効リストに追加し、失効リストを組み込み機器に送信するように構成される。組み込み機器のプロセッサは、失効リストに基づいてデバイス証明書が無効であると判断し、判断に基づいて、セカンダリコントローラによる組み込み機器へのアクセスを拒否又は防止するように構成される。
【0014】
識別及び認証システムを提供する。システムは、第1のコントローラ及び第2のコントローラを有する複数のコントローラと、組み込み機器と、を有してもよい。組み込み機器は、第1の長期共有秘密を格納するように構成されたメモリと、プロセッサと、を有してもよい。プロセッサは、第1の長期共有秘密を使用して第2の長期共有秘密を導出し、第2のコントローラから第3の長期共有秘密を取得し、第2の長期共有秘密が第3の長期共有秘密と一致するときに、第2のコントローラを認証するように構成されてもよい。
【0015】
第1のコントローラは、第1の長期共有秘密を格納するように構成されたメモリと、プロセッサと、を有してもよい。プロセッサは、第1の長期共有秘密を使用して第3の長期共有秘密を導出し、第3の長期共有秘密を第2のコントローラに供給するように構成されてもよい。
【0016】
第2のコントローラは、第3の長期共有秘密を格納するように構成されたメモリと、プロセッサと、を有してもよい。プロセッサは、第3の長期共有秘密を組み込み機器に供給するように構成されてもよい。第1のコントローラのプロセッサは、Bluetooth Low Energy(登録商標)(BLE)メディアアクセス制御(MAC)アドレス又はノンスを含む第2のコントローラの識別子を更に使用して、第3の長期共有秘密を導出するように構成されてもよい。組み込み機器のプロセッサは、第2のコントローラの識別子を更に使用するとともに第1のコントローラによって導出された第3の長期共有秘密の導出とは独立して第2の長期共有秘密を導出するように構成されてもよい。
【0017】
デバイスを識別及び認証するためのシステム、方法及びデバイスは、複数のコントローラと、組み込み機器と、を有する。第1のコントローラは、リモートネットワークリソースのような中央集権的な仲介者なしで他のコントローラの組み込み機器へのアクセスを許可又は拒否してもよい。このようにして、デバイス間又はデバイスの集合と認証サーバのようなネットワーク接続リソースとの間に一定のネットワーク接続(例えば、中断又は切断のない時間的な連続)がない場合に、異なるデバイス制御権限を異なるデバイスに設定してもよい。
【図面の簡単な説明】
【0018】
本発明の他のシステム、方法、特徴及び利点は、以下の図及び詳細な説明を検討することによって当業者に明らかになる。図面に示された構成部分は必ずしも縮尺通りではなく、本発明の重要な特徴を更に良く説明するために誇張されている場合がある。
【0019】
【
図1】
図1は、様々な実施形態による識別及び認証システムを示す。
【0020】
【
図2A】
図2Aは、様々な実施形態による組み込み機器によって実行される識別及び認証方法の態様を示す。
【0021】
【
図2B】
図2Bは、様々な実施形態による
図2Aの方法を実行する組み込み機器へのアクセスを許可する態様を示す。
【0022】
【
図3】
図3は、様々な実施形態による第1のコントローラによって実行される識別及び認証方法の態様を示す。
【0023】
【
図4】
図4は、様々な実施形態による第2のコントローラによって実行される識別及び認証方法の態様を示す。
【0024】
【
図5】
図5は、様々な実施形態によるサーバによって実行される識別及び認証方法の態様を示す。
【0025】
【
図6】
図6は、様々な実施形態によるルート証明書を有する第1のコントローラによって実行される識別及び認証方法の側面を示す。
【0026】
【
図7】
図7は、様々な実施形態によるルート証明書を有する組み込み機器によって実行される識別及び認証方法の態様を示す。
【0027】
【
図8】
図8は、様々な実施形態によるデバイス証明書を失効させるために実行される識別及び認証方法の態様を示す。
【0028】
【
図9】
図9は、様々な実施形態による長期共有秘密を有する識別及び認証方法の態様を示す。
【発明を実施するための形態】
【0029】
本明細書で開示するように、識別及び認証のためのシステム、装置及び方法を提供する。
【0030】
IoTシステムは、多くの場合、IoTデバイス、コントローラ及びクラウドサーバから構成される。一部の実施形態において、複数のコントローラがIoTデバイスを同時に及び/又は交換可能に制御できるようにする必要がある。コントローラは、スタンドアロンデバイス又はスマートフォンアプリケーションであってもよい。
【0031】
個人の生活又は健康に対するサイバーセキュリティリスクの影響が大きいIoTデバイス(例えば、医療機器)の場合、IoTデバイスは、コントローラデバイスの真正性を確認する必要がある。コントローラが複数ある場合、IoTデバイスは、真正性だけでなくコントローラの所有権も確認する必要がある。例えば、第1の真正なコントローラによって制御されるIoTデバイスは、両方のコントローラが異なるユーザに帰属する場合又は第2の真正なコントローラが適切な権限を有しないユーザに帰属する場合、第2の真正なコントローラを拒否する必要がある。換言すれば、IoTデバイスは、コントローラの真正性とコントローラに関するユーザの関連する許可の両方を検証する必要がある。
【0032】
インスリン放出及びグルコースモニタリングに利用されるIoTデバイスは、ウェブ又はインターネット接続のない地域で頻繁に使用される。しかしながら、そのようなIoTデバイスは、異なる許可レベルを有する複数のコントローラによって制御可能であることが望まれる場合があり、複数のコントローラのセットの身元及び性質は、動的である場合がある。例えば、糖尿病の子供が、その子供の親が操作するコントローラによって制御されるインスリンポンプを有するとともに学校に通っている場合がある。学校の看護師は、別のコントローラを有する可能性がある。学校の運動場のように信頼できるインターネット接続がない状況では、親は、学校の看護師が操作するコントローラにインスリンポンプを制御する権限を付与することを望む場合がある。親は、学校の看護師が操作するコントローラの承認を拒否してコーチ、教師又は他のユーザが操作する他のコントローラに更に許可を与えることを望む場合がある。
【0033】
別の例では、スマートホーム機能に利用されるようなIoTデバイスは、異なる許可レベルを有する複数のコントローラによって制御可能であることが望まれる場合がある。例えば、スマートドアロックを制御するコントローラを有する住宅所有者は、ハウスキーパーのようなサービスプロバイダによって操作されるコントローラに1回の許可を与えることを望む場合がある。
【0034】
現在のソリューションは、信頼できるネットワーク(例えば、ローカルネットワークのワイヤレスプリンタ)、近接(例えば、電話機とペアリングするスピーカ)又はクラウド認証(例えば、IoTデバイスによって信頼される認証サーバへのユーザによるコントローラへのログイン及び認証サーバによるIoTデバイスのユーザのアカウントへのリンク)を利用する。しかしながら、新しいコントローラがIoTデバイスに導入されるときに、これらのオプションがIoTデバイスで利用できない可能性がある。IoTデバイスが、複数のコントローラを認証して同一のユーザに割り当てるメカニズムに関連する課題が生じる。また、コントローラごとに異なる権限を割り当てるとともに強制するメカニズムに関する課題も発生する。あるコントローラは、フルコントロール権限を有し、あるコントローラは、パーシャルコントロール権限を有し、あるコントローラは、ビューオンリー権限を有する。あるコントローラは、権限を有しない。
【0035】
本明細書の議論は、即時のクラウド接続が利用できない場合でも、IoTデバイス(例えば、組み込み機器)が複数のコントローラを信頼するとともに各コントローラの権限を採用することを可能にするメカニズムを提供する。例えば、場合によっては、各コントローラには、ログインプロセス及びコントローラにインストールされたアプリケーションのタイプに基づいて、ユーザの所有権及び権限が静的に割り当てられる。コントローラは、IoTデバイスと通信を行う前に、所有権及び権限が割り当てられる。コントローラは、互いに通信を行わない。場合によっては、コントローラが他のコントローラの権限を割り当てる。例えば、IoTデバイスは、第1のコントローラ(例えば、プライマリコントローラ)によってアクティブ化され、プライマリコントローラによって割り当てられたセカンダリコントローラを受け入れる。別の例では、第1の(プライマリ)コントローラは、第1の秘密を通じてIoTデバイスとペアリングされ、IoTも導出可能な第2の秘密を導出し、IoTデバイスと共に使用するために、この第2の秘密を第2の(セカンダリ)コントローラに配信する。様々な実施例において、コントローラ間の関係は、一つのIoTデバイスに限定される場合があり、手順は、新しいIoTデバイスごとに繰り返される場合がある。
【0036】
このように、中央サーバ制御なく又は常時ネットワーク接続なくコントローラが組み込み機器を制御することを容易にする様々なメカニズムがある。デバイスを識別及び認証するためのリモートサーバ又は他のデバイスへの接続は提供されない。むしろ、コントローラは、組み込み機器に直接接続する。コントローラは、組み込み機器に非同期で直接接続してもよい。
【0037】
識別及び認証のシステムは、様々なアーキテクチャを有してもよい。
図1を参照すると、識別及び認証のシステム2の例を提供する。システム2は、複数のコントローラを有してもよい。この例では、第1のコントローラ10及び第2のコントローラ28を示すが、任意の数のコントローラが考えられる。様々な実施例において、第1のコントローラ10は、プライマリコントローラであり、第2のコントローラ28は、セカンダリコントローラである。換言すれば、第1のコントローラ10は、第2のコントローラ28に対する権限を有し、第2のコントローラ28による組み込み機器44へのアクセスを許可又は拒否し、組み込み機器44への第2のコントローラ28のアクセスレベル(例えば、許可又は拒否されるコマンドのセット)を確立してもよい。
【0038】
第1のコントローラ10及び第2のコントローラ28は、同様のデバイスであってもよい又は異なるデバイスであってもよい。様々な実施例において、一つ以上のコントローラは、スマートフォン、リモコンのような携帯型電子機器、フォブ又は携帯型送信機である。さらに、一つ以上のコントローラは、Wi-Fi(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)又は他の有線又は無線デバイスであってもよい。一つ以上のコントローラは、プログラマブルロジックコントローラ(PLC)デバイス、監視制御及びデータ収集(SCADA)デバイス又は他の電子デバイスにコマンドを供給するように動作可能な他のデバイスであってもよい。
【0039】
システム2は、組み込み機器44を有してもよい。組み込み機器44は、別の電子デバイスによって制御される電子デバイスである。例えば、組み込み機器44は、第1のコントローラ10及び/又は第2のコントローラ28によって制御されてもよい。組み込み機器44は、医療機器、スマートホームデバイス、オートメーションデバイス、産業用デバイス又は他の電子デバイスによる制御の対象となる他の電子機器であってもよい。電子機器は、Wi-Fi(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)又は他の有線デバイスもしくは無線デバイスであってもよい。一つ以上の組み込み機器44は、PLCデバイス、SCADAデバイス又は他の電子機器からコマンドを受信するように動作可能な他のデバイスであってもよい。様々な実施形態において、コントローラ及び組み込み機器44は、異なる構成の同等のデバイスであってもよい。
【0040】
第1のコントローラ10は、第1の通信チャネル50を介して組み込み機器44と通信を行ってもよい。第1の通信チャネル50は、有線リンク、無線リンク又は電子通信の任意の他の機構を構成してもよい。様々な実施形態において、第1の通信チャネル50は、直接通信チャネルである。様々な実施形態において、第1の通信チャネル50は、ネットワークを介さずに第1のコントローラ10を一つのエンドポイントとするとともに組み込み機器44を別のエンドポイントとする直接接続(例えば、有線又は無線接続又はリンク)である。
【0041】
第2のコントローラ28は、第2の通信チャネル52を介して組み込み機器44と通信を行ってもよい。第2の通信チャネル52は、有線リンク、無線リンク又は電子通信の任意の他の機構を構成してもよい。様々な実施形態において、第2の通信チャネル52は、直接通信チャネルである。様々な実施形態において、第2の通信チャネル52は、ネットワークを介さに第2のコントローラ28をエンドポイントとするとともに組み込み機器44を別のエンドポイントとする直接接続である。
【0042】
様々な実施例において、第1のコントローラ10及び/又は第2のコントローラ28は、サーバ54と動作可能な電子通信を行ってもよい。サーバ54は、データを格納、処理及び送信するように構成されたリモートコンピュータであってもよい。例えば、サーバ54は、本明細書で更に説明するように、証明書及び鍵を提供するように構成されてもよい又は一つ以上の暗号化機能を実行するように構成されてもよい。
【0043】
様々な実施態様において、第1のコントローラ10及び/又は第2のコントローラ28は、第1の通信チャネル50及び/又は第2の通信チャネル52を介して互いに動作可能な電子通信を行ってもよい。
【0044】
識別及び認証のシステム2の一般的なアーキテクチャについて説明してきたが、次に、第1のコントローラ10の詳細な態様に注目する。第1のコントローラ10は、第1のメモリ12を有してもよい。第1のメモリ12は、データを格納する電子メモリであってもよい。第1のメモリ12は、永続メモリであってもよく、これは、電源がオフになっても格納されたデータが保持されることを意味する。第1のメモリ12は、非永続メモリであってもよく、これは、電源がオフにされたときに記憶されたデータが消去されることを意味する。
【0045】
第1のコントローラ10は、第1のネットワークアクセスデバイス14を有してもよい。第1のネットワークアクセスデバイス14は、第1の通信チャネル50を介してデータを送受信するように構成された通信トランシーバである。第1のネットワークアクセスデバイス14は、モデムのような有線通信デバイスであってもよい又は電磁トランシーバ若しくは光トランシーバのような無線通信デバイスであってもよい。
【0046】
第1のコントローラ10は、第1のプロセッサ16を有してもよい。第1のプロセッサ16は、データを受信、処理及び送信するように構成されたコンピュータプロセッサである。第1のプロセッサ16は、マイクロコントローラ、フィールドプログラマブルゲートアレイ、シングルボードコンピュータ、通常のパーソナルコンピュータプロセッサ又は所望の他のプロセッサであってもよい。
【0047】
第1のコントローラ10は、第1のユーザインターフェース20を有してもよい。第1のユーザインターフェース20は、ディスプレイ、サウンドデバイス、一つ以上のLEDのような一つ以上のライト又は所望の他の任意のヒューマンマシンインターフェースを備えてもよい。第1のユーザインターフェース20は、他の装置で実行されるアプリケーション又は通信リンクを介して動作するアプリケーションを備えてもよい。例えば、第1のユーザインターフェース20は、第1のコントローラ10と動作可能に通信を行うスマートフォンで実行及び/又は表示されるスマートフォンアプリケーションであってもよい。したがって、第1のコントローラ10の一つ以上の態様が分散していてもよく、それが別の装置で動作していてもよいこと又は別の装置と協調して動作していてもよいことが理解される。別の実施形態では、第1のコントローラ10は、スマートフォンであり、第1のユーザインターフェース20は、スマートフォンアプリケーションである。
【0048】
第1のコントローラ10は、第1のデバイス証明書22を有してもよい。第1のデバイス証明書22は、ID及び許可セットに関連付けられた電子データの集合体であってもよい。例えば、第1のデバイス証明書22は、第1のコントローラ10に関連するユーザのIDに対応する第1のユーザ識別子24を含んでもよく、ユーザが供給することを許可されるコマンド又はユーザが供給することを許可されないコマンドに関連する第1のセットのデバイス制御権限26を含んでもよい。例えば、第1のコントローラ10を操作するユーザは、組み込み機器44にコマンドを発行してもよい。これらのコマンドは、第1のセットのデバイス制御権限26に一致する必要があり、第1のユーザ識別子24で識別されるユーザに付与された権限を超えてはないようにする必要がある。
【0049】
第2のコントローラ28は、第1のコントローラ10と同様の様々な態様を有してもよい。例えば、第2のコントローラ28は、第2のメモリ30を有してもよい。第2のメモリ30は、データを格納する電子メモリであってもよい。第2のメモリ30は、永続メモリであってもよく、これは、電源がオフになっても格納されたデータが保持されることを意味する。第2のメモリ30は、非永続メモリであってもよく、これは、電源がオフにされたときに格納されたデータが消去されることを意味する。
【0050】
第2のコントローラ28は、第2のネットワークアクセスデバイス32を有してもよい。第2のネットワークアクセスデバイス32は、第2の通信チャネル52を介してデータを送受信するように構成された通信トランシーバである。第2のネットワークアクセスデバイス32は、モデムのような有線通信デバイスであってもよい又は電気トランシーバ、電磁トランシーバ若しくは光トランシーバのような無線通信デバイスであってもよい。
【0051】
第2のコントローラ28は、第2のプロセッサ34を有してもよい。第2のプロセッサ34は、データを受信、処理及び送信するように構成されたコンピュータプロセッサである。第2のプロセッサ34は、マイクロコントローラ、フィールドプログラマブルゲートアレイ、シングルボードコンピュータ、通常のパーソナルコンピュータプロセッサ又は所望の他のプロセッサであってもよい。
【0052】
第2のプロセッサ34は、第2のユーザインターフェース36を有してもよい。第2のユーザインターフェース36は、ディスプレイ、サウンドデバイス、一つ以上のLEDのような一つ以上のライト、び/又は所望の他の任意のヒューマンマシンインターフェースを備えてもよい。第2のユーザインターフェース36は、他の装置で実行されるアプリケーション又は通信リンクを介して動作するアプリケーションを備えてもよい。例えば、第2のユーザインターフェース36は、第2のコントローラ28と動作可能に通信を行うしスマートフォンで実行及び/又は表示されるスマートフォンアプリケーションであってもよい。したがって、第2のコントローラ28の一つ以上の態様が分散していてもよく、それが別の装置上で動作していてもよいこと又は別の装置と協働して動作していてもよいことが理解される。別の実施形態において、第2のコントローラ28は、スマートフォンであり、第2のユーザインターフェース36は、スマートフォンアプリケーションである。
【0053】
第2のコントローラ28は、第2のデバイス証明書38を有してもよい。第2のデバイス証明書38は、ID及び許可セットに関連付けられた電子データの集合体であってもよい。例えば、第2のデバイス証明書38は、第2のコントローラ28に関連するユーザのIDに対応する第2のユーザ識別子40を含んでもよく、ユーザが供給することを許可されるコマンド又はユーザが供給することを許可されないコマンドに関連する第2のセットのデバイス制御権限42を含んでもよい。例えば、第2のコントローラ28を操作するユーザは、組み込み機器44にコマンドを発行してもよい。これらのコマンドは、第2のセットのデバイス制御権限42と一致する必要があり、第2のユーザ識別子40で識別されるユーザに付与された権限を超えてはないようにする必要がある。
【0054】
識別及び認証のシステム2の一般的なアーキテクチャ並びに第1のコントローラ10及び第2のコントローラ28の詳細な態様について説明してきたが、次に、組み込み機器44の詳細な態様に注目する。組み込み機器44は、組み込み機器メモリ48を有してもよい。組み込み機器メモリ48は、データを格納する電子メモリであってもよい。組み込み機器メモリ48は、永続メモリであってもよく、これは、電源がオフになっても格納されたデータが保持されることを意味する。組み込み機器メモリ48は、非永続的メモリであってもよく、これは、電源がオフにされたときに格納されたデータが消去されることを意味する。組み込み機器44は、組み込み機器プロセッサ46を含むことができる。組み込み機器プロセッサ46は、データを受信、処理及び送信するように構成されたコンピュータプロセッサである。組み込み機器プロセッサ46は、マイクロコントローラ、フィールドプログラマブルゲートアレイ、シングルボードコンピュータ、通常のパーソナルコンピュータプロセッサ又は所望の他のプロセッサであってもよい。組み込み機器は、第1のコントローラ10及び/又は第2のコントローラ28によって組み込み機器44に供給されるコマンドに応答して動作可能なセンサ又はエフェクタ、アクチュエータ、モータ、リレー等のような他の態様を有してもよい。様々な実施態様において、組み込み機器44は、インスリンポンプである。様々な実施態様において、組み込み機器44は、スマートドアロックのようなスマートホームデバイスである。
【0055】
ここで、
図1の態様を定期的に参照しながら
図2Aに注目されたい。
図2Aは、組み込み機器44によって実行される識別及び認証方法200を提供する。例えば、識別及び認証システム2は、第1のコントローラ10及び第2のコントローラ28を有する複数のコントローラを設けてもよい。第1のコントローラ10は、第1のデバイス証明書22を有してもよく、第2のコントローラ28は、第2のデバイス証明書38を有してもよい。第1のデバイス証明書22は、第1のユーザ識別子24及び第1のセットのデバイス制御権限26を有する。第2のデバイス証明書38は、第2のユーザ識別子40及び第2のセットのデバイス制御権限42を有する。システム2は、組み込み機器プロセッサ46及び組み込み機器メモリ48を有する組み込み機器44を更に有してもよい。
【0056】
組み込み機器44は、第1のコントローラ10から第1のデバイス証明書22を取得してもよい(ブロック202)。例えば、組み込み機器44は、第1の通信チャネル50を介して第1のコントローラ10と通信を行ってもよい。第1のコントローラ10は、第1のネットワークアクセスデバイス14を介して、第1のデバイス証明書22に対応するデータを第1の通信チャネル50を通じて第1のコントローラ10から組み込み機器44に送信してもよい。組み込み機器44は、データを受信するとともに第1のデバイス証明書22の表現を組み込み機器メモリ48に格納してもよい。
【0057】
組み込み機器44は、第2のコントローラ28から第2のデバイス証明書38を取得してもよい(ブロック204)。例えば、組み込み機器44は、第2の通信チャネル52を介して第2のコントローラ28と通信を行ってもよい。第2のコントローラ28は、第2のネットワークアクセスデバイス32を介して、第2のデバイス証明書38に対応するデータを第2の通信チャネル55を通じて第2のコントローラ28から組み込み機器44に送信してもよい。組み込み機器44は、データを受信するとともに第2のデバイス証明書38の表現を組み込み機器メモリ48に格納してもよい。
【0058】
組み込み機器44は、第1のデバイス証明書22から第1のユーザ識別子24及び第1のセットのデバイス制御権限26を抽出してもよい(ブロック206)。例えば、組み込み機器プロセッサ46は、組み込み機器メモリ48から第1のデバイス証明書22をロードしてもよく、第1のユーザ識別子24を表すデータと第1のセットのデバイス制御権限26を表すデータとを分離するために第1のデバイス証明書22を処理してもよい。
【0059】
組み込み機器44は、第2のデバイス証明書38から第2のユーザ識別子40及び第2のデバイス制御権限42のセットを抽出してもよい(ブロック208)。例えば、組み込み機器プロセッサ46は、組み込み機器メモリ48から第2のデバイス証明書38をロードしてもよく、第2のユーザ識別子40を表すデータと第2のデバイス制御権限42のセットを表すデータとを分離するために第2のデバイス証明書38を処理してもよい。
【0060】
組み込み機器44は、第2のユーザ識別子40と第1のユーザ識別子24とを比較してもよい(ブロック212)。第1のユーザ識別子24と第2のユーザ識別子40とが一致しない場合、組み込み機器44は、第2のコントローラ28による組み込み機器44へのアクセスを防止してもよい(ブロック216)。具体的には、組み込み機器プロセッサ46は、第2のコントローラ28からのコマンドを拒否してもよい、及び/又は、第2のコントローラ28からの通信を処理すること又は第2のコントローラ28からのデータを組み込み機器メモリ48に格納することを控えてもよい。
【0061】
第1のユーザ識別子25と第2のユーザ識別子40とが一致する場合、組み込み機器44は、第2のコントローラ28による組み込み機器44へのアクセスを許可してもよい(ブロック214)。具体的には、組み込み機器44は、第2のコントローラ28からのコマンドを受け入れてもよい、及び/又は、第2のコントローラ28からの通信の処理又は第2のコントローラ28からのデータの組み込み機器メモリ48への格納を行ってもよい。
【0062】
図1及び
図2Aを引き続き参照しながら、ブロック214における第2のコントローラ28による組み込み機器44へのアクセスを許可することの詳細な議論について
図2Bを更に参照されたい。例えば、このアクセスは、様々な許可に従って制限されてもよい。例えば、第2のコントローラ28のユーザは、組み込み機器44にいくつかのコマンドを発行する権利を有するが他のコマンドを発行発行する権利を有しない場合がある。例えば、ユーザは、アクチュエータを動かすこと、測定を行うこと、データを記録すること等の事前承認されたプログラムを組み込み機器44に実行させるコマンドを発行する権利を有するが、プログラムされた停止点を超えてアクチュエータを動かすこと、測定値を変更すること又はデータを削除することが制限される場合がある。
【0063】
したがって、そのようなアクセスを許可することは、更なる態様を有してもよい。例えば、組み込み機器44は、第2のユーザ識別子40が第1のユーザ識別子24と同一であると判断してもよい(ブロック218)。組み込み機器44のプロセッサは、第1のユーザ識別子24を表すデータ及び第2のユーザ識別子40を表すデータをロードしてもよい。ユーザ識別子が同一であることに応答して、第1のユーザ識別子24及び第2のユーザ識別子40に関連付けられたユーザが同一のユーザであると仮定してもよい。
【0064】
組み込み機器44は、第2のデバイス証明書38から第2のセットのデバイス制御権限42を取得してもよい(ブロック220)。次に、組み込み機器44は、サーバ54に接続することなく第2のコントローラ28に対する組み込み機器44へのアクセスを認証してもよい(ブロック222)。このようにして、組み込み機器44は、組み込み機器プロセッサ46及び/又は組み込み機器メモリ48のような組み込み機器44に関連するリソースへのアクセスを許可する。
【0065】
しかしながら、このアクセスは、無制限より少なくてもよい。例えば、組み込み機器44は、第2のセットの権限に基づいて第2のコントローラ28による組み込み機器44へのアクセスを許可してもよい(ブロック224)。注目すべきことに、第1のユーザ識別子24及び第2のユーザ識別子40は同一であってもよく、一方、第1のセットの権限及び第2のセットの権限は異なっていてもよい。例えば、第1のセットの権限は、(この即席の説明で実行されるように)他のコントローラのための組み込み機器44へのアクセスを認証する権限を含んでもよいが、第2のセットのデバイス制御権限42は、(ユーザ間のアクセスの拡散を制限するように)そのような権限を省略してもよい。
【0066】
組み込み機器44は、第2のセットの権限に基づいて第2のコントローラ28からのコマンドの受入又は拒否を行ってもよい(ブロック226)。
【0067】
組み込み機器44によって実行される識別及び認証の方法200の議論は、識別及び認証に関連して第1のコントローラ10によって実行されるステップの議論も含むべきである。様々な実施態様において、これらの態様の一つ以上が、組み込み機器44によって実行される態様と並行して実行されてもよい。これらの態様の一つ以上は、組み込み機器44によって実行される態様の前又は後に実行されてもよい。
【0068】
したがって、
図1及び
図3を参照すると、識別及び認証の方法200(
図2A)は、第1のコントローラ300によってデバイス証明書を確立する方法のようなサブの方法を有してもよい。様々な実施形態において、第1のコントローラ300によるデバイス証明書を確立する方法(したがって、識別及び認証の方法200)は、第1のコントローラ10の第1のメモリ12によって、第1のアプリケーションを格納することを有してもよい(ブロック302)。第1のアプリケーションは、第1のコントローラ10のユーザによる入力、第1のユーザ識別子24及び第1のユーザパスワードを供給してもよい。第1のユーザ識別子24は、キー押下のシーケンス、タッチスクリーンのキー押下のシーケンス、顔認証、指紋認証のようなバイオメトリック識別子又は他の認証であってもよい。第1のユーザパスワードは、キー押下のシーケンス、タッチスクリーンのキー押下のシーケンス、顔認証、指紋認証のようなバイオメトリック識別子又は他の認証であってもよい。
【0069】
ユーザは、第1のコントローラ10の第1のユーザインターフェース20の第1のアプリケーションによって提供される領域に、第1のユーザ識別子24及び第1のユーザパスワードを入力してもよい。したがって、方法は、第1のユーザインターフェース20によって、第1のユーザ識別子24及び第1のユーザパスワードを受信することを有してもよい(ブロック304)。
【0070】
第1のコントローラ10の第1のプロセッサ16は、第1のユーザ識別子24及び第1のユーザパスワードをサーバ54に送信してもよい(ブロック306)。例えば、第1のコントローラ10は、第1のユーザ識別子24及び第1のユーザパスワードを表すデータを、第1の通信チャネル50を通じて第1のコントローラ10の第1のネットワークアクセスデバイス14からサーバ54に送信してもよい。サーバ54は、第1のユーザ識別子24及び第1のユーザパスワードを表すデータを受信するとともに第1のユーザ識別子24及び第1のユーザパスワードに基づいてデバイス証明書を生成してもよい。サーバ54は、デバイス証明書を生成するために、第1のユーザ識別子24と第1のユーザパスワードの少なくとも一方に基づいて暗号計算又は他の計算を実行してもよい。したがって、第1のコントローラ10は、第1のプロセッサ16によって、サーバ54から第1のデバイス証明書22を取得してもよい(ブロック308)。この第1のデバイス証明書22は、第1のユーザ識別子24及び第1のユーザパスワードに対応してもよく、前述した識別及び認証の方法200を実行するのに有用であってもよい。その結果、第1のプロセッサ16は、第1のデバイス証明書22を組み込み機器44に送信してもよい(ブロック310)。
図2A、特に、ブロック202を参照すると、ブロック310がブロック202(「第1のコントローラ10から第1のデバイス証明書22を取得する」)の前に発生してもよいことが理解される。
【0071】
第1のコントローラ10から第2のコントローラ28に注目すると、
図4は、第2のコントローラ28によって実行されるサブ方法を提供する。
図2Aのブロック204が第2のコントローラ28から第2のデバイス証明書38を取得することを備えることを想起されたい。様々な実施形態において、識別及び認証の方法200(
図2A)は、第2のコントローラ28によって実行されるデバイス証明書400を確立する方法のようなサブ方法を有する。様々な実施形態において、第2のコントローラ28によってデバイス証明書を確立する方法400(したがって、識別及び認証の方法200)は、第2のコントローラ28の第2のメモリ30によって、第2のアプリケーションを格納することを有してもよい(ブロック402)。特に、第2のアプリケーションは、限定機能アプリケーション又はビューオンリーアプリケーションであってもよく、第1のアプリケーションは、限定機能アプリケーション又はビューオンリーアプリケーションよりも多くの権限を有する完全機能アプリケーションであってもよい。しかしながら、識別及び認証の方法200による第1のコントローラ10及び第2のコントローラ28と組み込み機器44との相互動作は、第1のコントローラ10のアプリケーションに関連する完全機能又は完全権限を必要とすることなく第2のコントローラ28の識別及び認証を容易にする。このように、第2のコントローラ28の識別及び認証は、第1のアプリケーションの機能セット全体を第2のコントローラ28のユーザに公開することなく進めることができる。これによって、第1のアプリケーションの配布が制限されることによりシステムのセキュリティが向上する。
【0072】
第2のコントローラ28によってデバイス証明書を確立する方法400は、第2のユーザインターフェース36によって、第2のユーザ識別子40及び第2のユーザパスワードを受信することによって進行してもよく、第2のユーザ識別子40は、第1のユーザ識別子24と同一である(ブロック404)。
【0073】
第2のアプリケーションは、第2のコントローラ28のユーザによる第2のユーザ識別子40及び第2のユーザパスワードの入力を供給してもよい。第2のユーザ識別子40は、キー押下のシーケンス、タッチスクリーンのキー押下のシーケンス、顔認証、指紋認証のようなバイオメトリクス識別子又は他の認証であってもよい。第2のユーザパスワードは、キー押下のシーケンス、タッチスクリーンのキー押下のシーケンス、顔認証、指紋認証のようなバイオメトリクス識別子又は他の認証であってもよい。ユーザは、第2のユーザ識別子40及び第2のユーザパスワードを、第1のコントローラ10の第1のユーザインターフェース20の第1のアプリケーションによって提供される領域に入力してもよい。
【0074】
第2のコントローラ28の第2のプロセッサ34は、第2のユーザ識別子40及び第2のユーザパスワードをサーバ54に送信してもよい(ブロック406)。例えば、第2のコントローラ28は、第2のユーザ識別子40及び第2のユーザパスワードを表すデータを、第2の通信チャネル52を通じて第2のコントローラ28の第2のネットワークアクセスデバイス32からサーバ54に送信してもよい。サーバは、第2のユーザ識別子40及び第2のユーザパスワードを表すデータを受信するとともに第2のユーザ識別子40及び第2のユーザパスワードに基づいてデバイス証明書を生成してもよい。サーバは、デバイス証明書を生成するために、第2のユーザ識別子40と第2のユーザパスワードの少なくとも一方に基づいて暗号計算又は他の計算を実行してもよい。したがって、第2のコントローラ28は、第2のプロセッサ34によって、サーバから第2のデバイス証明書38を取得してもよい(ブロック408)。この第2のデバイス証明書38は、第2のユーザ識別子40及び第2のユーザパスワードに対応してもよく、前述した識別及び認証の方法200を実行するのに有用であってもよい。その結果、第2のプロセッサ34は、第2のデバイス証明書38を組み込み機器44に送信してもよい(ブロック410)。
図2A、特に、ブロック204を参照すると、ブロック410がブロック204(「第2のコントローラ28から第2のデバイス証明書38を取得する」)の前に発生してもよいことが理解される。
【0075】
サーバは、第1のコントローラ10が実行するデバイス証明書を確立する方法300及び第2のコントローラ28が実行するデバイス証明書を確立する方法400を完了するために、第1のコントローラ10及び第2のコントローラ28との通信に関連して様々なステップを実行してもよい。したがって、
図1及び
図5を参照すると、識別及び認証の方法200(
図2A)は、サーバ54によってデバイス証明書を生成する方法500のようなサブ方法を有してもよい。様々な実施形態において、方法500(したがって、識別及び認証の方法200)は、ユーザが第1のコントローラ10の第1のアプリケーションにログインするときに、第1のコントローラ10から第1のユーザ識別子24を取得し、ユーザが第2のアプリケーションにログインするときに、第2のコントローラ28から第2のユーザ識別子40を取得することを有してもよい(ブロック502)。この態様が第1のコントローラ10及び第2のコントローラ28がそれぞれ実行するブロック306(
図3)及びブロック406(
図4)に対応することを理解される。
【0076】
サーバは、第1のデバイス証明書22を生成してもよい。サーバは、第1のユーザ識別子24及び第1のセットのデバイス制御権限26を第1のデバイス証明書22にバインドすることにより、第1のデバイス証明書22を要求するアプリケーションのタイプに基づいて、第1のデバイス証明書22を生成してもよい(ブロック504)。例えば、(第1のアプリケーションのような)完全機能アプリケーション及び(第2のアプリケーションのような)限定機能アプリケーションは、異なる証明書コンテンツと関連付けられてもよい。
【0077】
サーバは、第2のデバイス証明書38を生成すしてもよい。サーバは、第2のユーザ識別子40及び第2のセットのデバイス制御権限42を第2のデバイス証明書38にバインドすることにより、第2のデバイス証明書38を要求するアプリケーションのタイプに基づいて、第2のデバイス証明書38を生成してもよい(ブロック506)。この場合も、(第1のアプリケーションのような)完全機能アプリケーション及び(第2のアプリケーションのような)限定機能アプリケーションは、異なる証明書コンテンツと関連付けられてもよい。
【0078】
サーバは、第1のデバイス証明書22及び第2のデバイス証明書38にデジタル署名してもよい。例えば、サーバは、サーバ署名鍵を使用して証明書にデジタル署名してもよい(ブロック508)。このようにして、デバイス証明書の真正性を確立してもよい。
【0079】
サーバは、第1のユーザ識別子24及び第1のユーザパスワードが認証されるときに、第1のデバイス証明書22を第1のコントローラ10に発行してもよい(ブロック510)。第1のコントローラ10の第1のプロセッサ16がブロック306(
図3)において第1のユーザ識別子24及び第1のユーザパスワードをサーバ54に送信した後に第1のプロセッサ16がブロック308(
図3)においてサーバから第1のデバイス証明書22を取得してもよいことを想起されたい。これらの態様の間で、サーバは、第1のデバイス証明書22を発行してもよい。注目すべきことに、第1のユーザ識別子24及び第1のユーザパスワードを認証することは、サーバによってその真正性を検証することを有してもよく、別の実施形態において、第1のコントローラ10によってその真正性を検証すること及び第1のコントローラ10によってその真正性をサーバに示すことを有してもよい。
【0080】
サーバは、第2のユーザ識別子40及び第2のユーザパスワードが認証されるときに、第2のデバイス証明書38を第2のコントローラ28に発行してもよい(ブロック512)。第2のコントローラ28の第2のプロセッサ34がブロック406(
図4)において第2のユーザ識別子40及び第2のユーザパスワードをサーバ54に送信した後に第2のプロセッサ34がブロック408(
図4)においてサーバから第2のデバイス証明書38を取得してもよいことを想起されたい。これらの態様の間で、サーバ54は、第2のデバイス証明書38を発行してもよい。注目すべきことに、第2のユーザ識別子40及び第2のユーザパスワードを認証することは、サーバによってその真正性を検証することを有してもよく、別の実施形態において、第2のコントローラ28によってその真正性を検証すること及び第2のコントローラ28によってその真正性をサーバに示すことを有してもよい。
【0081】
システム2(
図1)の各構成要素によって実行される方法200(
図2A)の態様について議論してきたが、本開示は、次に、システム2によって実行可能な識別及び認証の方法の別の実施形態の議論に移行する。様々な実施形態において、システム2は、プライマリコントローラ及びセカンダリコントローラを有するように構成される。プライマリコントローラは、セカンダリコントローラによる組み込み機器44へのアクセスを許可又は拒否する権利を有し、一方、セカンダリコントローラは、プライマリコントローラ又はセカンダリコントローラによる組み込み機器44へのアクセスを許可又は拒否する権利を有さない。換言すれば、プライマリコントローラは、「マスターコントローラ」と称され、セカンダリコントローラは、「スレーブコントローラ」と称される。
【0082】
図1及び
図6を参照すると、ルート証明書を含む識別及び認証の方法600を開示する。ルート証明書を含む識別及び認証の方法は、プライマリコントローラ及びセカンダリコントローラを有してもよい。本明細書で使用する場合、第1のコントローラ10をプライマリコントローラとし、第2のコントローラ28をセカンダリコントローラとしてもよい。様々な実施形態において、第1のコントローラ10の第1のメモリ12は、第1のセットのデバイス制御権限26を含むルート証明書を格納してもよい(ブロック602)。第1のコントローラ10の第1のプロセッサ16は、第1のセットのデバイス制御権限26により第1のコントローラ10による第2のコントローラ28の第2のデバイス証明書38の生成が可能であると判断してもよい(ブロック604)。この判断に応答して、第1のコントローラ10の第1のプロセッサ16は、第2のセットのデバイス制御権限42を使用して第2のコントローラ28の第2のデバイス証明書38を生成してもよい(ブロック606)。第1のコントローラ10の第1のプロセッサ16は、第2のデバイス証明書38を第2のコントローラ28に発行又は送信する前に、第2のデバイス証明書38にデジタル署名してもよい(ブロック608)。第1のプロセッサ16は、第2のデバイス証明書38にデジタル署名するためにルート証明書の秘密鍵を利用してもよい。
【0083】
第1のコントローラ10の第1のプロセッサ16は、第2のデバイス証明書38を第2のコントローラ28に割り当ててもよい(ブロック610)。第1のコントローラ10の第1のプロセッサ16は、第2のデバイス証明書38をセカンダリコントローラに発行又は送信してもよい(ブロック612)。例えば、第1のプロセッサ16は、第1の通信チャネル50又は第2の通信チャネル52を通じて第2のデバイス証明書38を第2のコントローラ28に送信するために第1のネットワークアクセスデバイス14を利用してもよい。
【0084】
さらに、第1のコントローラ10の第1のプロセッサ16は、第2のデバイス証明書38を検証するためにルート証明書の公開鍵を組み込み機器44に送信してもよい(ブロック614)。例えば、第2のコントローラ28が組み込み機器44に接続するときに、組み込み機器44は、ルート証明書の公開鍵をデジタル署名されたデバイス証明書に適用することによって、第2のコントローラ28が組み込み機器44に接続することを許可されていることを検証することができる。その理由は、第2のコントローラ28に送信する前に、デバイス証明書がルート証明書の秘密鍵を使用して署名されたからである
【0085】
次に、
図1及び
図7に目を向けると、ルート証明書を含む識別及び認証の方法は、組み込み機器44によって実行されるサブ方法を有してもよい。前述のように、組み込み機器44は、第2のデバイス証明書38を検証するために使用するルート証明書の公開鍵を受信してもよい(
図6、ブロック614)。公開鍵を受信すると、ルート証明書の鍵を有する組み込み機器44は、サブ方法の態様を実行してもよい。例えば、ルート証明書の信用検証700 の方法を実行してもよい。ルート証明書の信用検証方法700は、組み込み機器44のメモリによって、ルート証明書の公開鍵を格納することを有してもよい(ブロック702)。方法は、組み込み機器44の組み込み機器プロセッサ46によって、組み込み機器44の組み込み機器メモリ48からルート証明書の公開鍵を受信することを有してもよい(ブロック704)。方法は、組み込み機器44の組み込み機器プロセッサ46によって、第2のコントローラ28から第2のデバイス証明書38を受信することを有してもよい(ブロック706)。
【0086】
組み込み機器44の組み込み機器プロセッサ46は、第2のコントローラ28を認証するためにルート証明書の公開鍵を使用して第2のデバイス証明書38が有効であると判断してもよい(ブロック708)。様々な実施形態において、デバイス証明書が有効であると判断するために、組み込み機器プロセッサ46は、ルート証明書の公開鍵を使用して第2のデバイス証明書38のデジタル署名を検証するように構成される。
【0087】
組み込み機器44の組み込み機器プロセッサ46は、第1のセットのデバイス制御権限26によりセカンダリコントローラによるアクセスを許可するときに、第2のセットのデバイス制御権限42に基づいて第2のコントローラ28による組み込み機器44へのアクセスを許可してもよい(ブロック710)。様々な実施形態において、組み込み機器44は、第2のセットのデバイス制御権限42に基づいて、第2のコントローラ28(セカンダリコントローラ)による組み込み機器44の操作を制限し、第1のセットのデバイス制御権限26に基づいて、第1のコントローラ10(プライマリコントローラ)による組み込み機器44の操作を制限する。第2のセットのデバイス制御権限42は、デバイス制御権限の第1のセット26のサブセットである。
【0088】
時々、システム2は、以前に組み込み機器44にアクセスしたコントローラによる組み込み機器44へのアクセスを失効させてもよい。例えば、コントローラの所有者が変更されることがあり、コントローラのユーザが組み込み機器44を制御することを望まなくなることがある。
図1及び
図8を参照すると、デバイス証明書の失効方法800を提供する。特に、第1のコントローラ10は、サーバ54を使用することなく組み込み機器44への第2のコントローラ28のアクセスを失効させることができる。さらに、第1のコントローラ10は、第1のコントローラ10と第2のコントローラ28とを直接接続することなく第2のコントローラ28のアクセスを失効させることができる。むしろ、第1のコントローラ10は、他の接続を必要とすることなく第1のコントローラ10と組み込み機器44との間の接続を介して組み込み機器44への第2のコントローラ28のアクセスを失効させることができる。様々な実施形態において、方法は、第1のコントローラ10の第1のプロセッサ16によって、第2のコントローラ28の第2のデバイス証明書38を失効させることを有してもよい(ブロック802)。方法は、第1のコントローラ10の第1のプロセッサ16によって、第2のデバイス証明書38を失効リストに追加することを有してもよい(ブロック804)。失効リストは、現在失効しているデバイス証明書のリストであってもよい。これは、デバイス証明書が以前はデバイス制御権限のセットに関連付けられていたが現在はデバイス制御権限のヌルセットに関連付けられている(例えば、権限がない)ことを意味する。
【0089】
方法は、第1のコントローラ10の第1のプロセッサ16によって、失効リストを組み込み機器44に送信することを有してもよい(ブロック806)。組み込み機器44の組み込み機器プロセッサ46は、第1のコントローラ10によって組み込み機器44に送信された失効リストに基づいて、第2のデバイス証明書38が無効であると判断してもよい(ブロック808)。第2のデバイス証明書38が無効であると判断することに応答して、組み込み機器44は、第2のコントローラ28による組み込み機器44へのアクセスを拒否又は防止してもよい(ブロック810)。様々な実施形態において、第1のコントローラ10はプライマリコントローラであってもよく、第2のコントローラ28はセカンダリコントローラであってもよい。したがって、第1のコントローラ10は、第2のコントローラ28のアクセスを取り消す権利を有してもよく、一方、第2のコントローラ28は、第1のコントローラ10のアクセスを取り消す権利を有しなくてもよい。したがって、第1のコントローラ10は、集中型サーバ又はインターネット若しくはクラウドネットワークへの継続的なネットワークアクセスを必要とすることなく第2のコントローラ28の権利の付与及び取り消しを容易にしてもよい。
【0090】
最後に、本開示は、システム2によって実行可能な識別及び認証の方法の別の実施形態の議論に移る。様々な実施態様において、方法は、一つ以上の長期共有秘密を含む。長期共有秘密は、鍵又は他のデータを備えてもよい。長期共有秘密は、長期間の有効性を確立するとともに偽造を改善するための自己参照暗号要素を有してもよい。様々な実施形態において、システム2は、プライマリコントローラ及びセカンダリコントローラを有するように構成される。プライマリコントローラは、セカンダリコントローラによる組み込み機器44へのアクセスを許可又は拒否する権利を有し、一方、セカンダリコントローラは、プライマリコントローラ又はセカンダリコントローラによる組み込み機器44へのアクセスを許可又は拒否する権利を有さない。
【0091】
したがって、
図1及び
図9を参照すると、長期共有秘密を含む識別及び認証の方法900を提供する。様々な実施形態において、組み込み機器44の組み込み機器メモリ48は、第1の長期共有秘密を格納してもよい(ブロック902)。組み込み機器44の組み込み機器プロセッサ46は、第1の長期共有秘密を使用して第2の長期共有秘密を導出してもよい(ブロック904)。例えば、組み込み機器プロセッサ46は、第2の長期共有秘密を導出するために、第1の長期共有秘密に対して数学的及び/又は暗号学的演算を行ってもよい。組み込み機器プロセッサ46は、第2のコントローラ28の識別子を使用するとともに後述する第1のコントローラ10の第1のプロセッサ16による第3の長期共有秘密の導出とは独立して第2の長期共有秘密を導出してもよい。組み込み機器プロセッサ46は、Bluetooth Low Energy(登録商標)(BLE)メディアアクセス制御(MAC)アドレス又はノンスを含む第2のコントローラ28の識別子を使用して第2の長期共有秘密を導出してもよい。
【0092】
さらに、第1のコントローラ10の第1のメモリ12は、第1のコントローラ10と組み込み機器44の両方が第1の長期共有秘密を有するように、第1の長期共有秘密を格納してもよい(ブロック906)。第1のコントローラ10の第1のプロセッサ16は、第1の長期共有秘密を使用して第3の長期共有秘密を導出してもよい(ブロック908)。例えば、第1のプロセッサ16は、第3の長期共有秘密を導出するために、第1の長期共有秘密に対して数学演算及び/又は暗号演算を行ってもよい。
【0093】
第1のコントローラ10のプロセッサは、第3の長期共有秘密を第2のコントローラ28に供給してもよい(ブロック910)。例えば、第1のコントローラ10のプロセッサは、第1の通信チャネル50及び/又は第2の通信チャネル52を通じて第2のコントローラ28の第2のネットワークアクセスデバイス32と通信を行うために、第1のネットワークアクセスデバイス14を利用してもよい。第1のコントローラ10の第1のプロセッサ16は、Bluetooth Low Energy(登録商標)(BLE)メディアアクセス制御(MAC)アドレス又はノンスを含む第2のコントローラ28の識別子を使用して、第3の長期共有秘密を導出するように構成されてもよい。
【0094】
組み込み機器44の組み込み機器プロセッサ46は、第2のコントローラ28から第3の長期共有秘密を取得してもよい(ブロック912)。したがって、組み込み機器44は、第3の長期共有秘密を表すデータを有してもよく、第2の長期共有秘密を表すデータを有してもよく、第3の長期共有秘密及び第2の長期共有秘密は、第1の長期共有秘密から導出される。その結果、組み込み機器44は、第2の長期共有秘密が第3の長期共有秘密と一致するときに、第2のコントローラ28を認証してもよい(ブロック914)。
【0095】
方法/システムの例示的な実施形態を、例示的な様式で開示した。したがって、全体を通して採用された用語は、非限定的な方法で読まれるべきである。本明細書における教示に対する若干の変更が当業者には生じるとしても、本明細書において保証される特許の範囲内に包含されることが意図されるのは、本明細書において寄与される技術に対する進歩の範囲内に合理的に収まる全てのそのような実施形態であり、その範囲は、添付の特許請求の範囲及びその均等物に照らす場合を除き、制限されないことが理解される。
【国際調査報告】