IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アッサ アブロイ アーベーの特許一覧

特開2023-180257モノのインターネットシステムにおけるセキュアエレメントのアレイ
<>
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図1
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図2
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図3
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図4A
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図4B
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図5A-5C
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図6
  • 特開-モノのインターネットシステムにおけるセキュアエレメントのアレイ 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180257
(43)【公開日】2023-12-20
(54)【発明の名称】モノのインターネットシステムにおけるセキュアエレメントのアレイ
(51)【国際特許分類】
   H04L 69/00 20220101AFI20231213BHJP
【FI】
H04L69/00
【審査請求】有
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023104960
(22)【出願日】2023-06-27
(62)【分割の表示】P 2023528465の分割
【原出願日】2021-11-12
(31)【優先権主張番号】63/113,423
(32)【優先日】2020-11-13
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】501427157
【氏名又は名称】アッサ アブロイ アーベー
【氏名又は名称原語表記】ASSA ABLOY AB
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】サチデバ、カピル
(72)【発明者】
【氏名】プレヴォ、シルヴァン ジャック
(72)【発明者】
【氏名】ムハ、マトヴェイ
(57)【要約】
【課題】半二重接続を介して衝突耐性全二重通信プロトコルを使用してデータを送信するための方法を提供する。
【解決手段】方法は、データを送信する第1のデバイスに対するデータ受信モードを終了させるステップと、第1のデバイスが、第2のデバイスによる受信のために半二重接続を介してデータフレームを送信するステップと、第1のデバイスが、第2のデバイスからの肯定応答に関して監視するステップと、肯定応答は、巡回冗長検査値を含んでおり、データフレームが再送される必要があると決定するステップと、第1のデバイスのデバイス役割を識別するステップと、デバイス役割の識別に応じた時間にデータフレームを再送信するステップと、を含む。
【選択図】 図6
【特許請求の範囲】
【請求項1】
エッジデバイスに関するシステム機能の安全な実行を提供するためのシステムであって、
複数のエッジデバイスとの通信のために接続するように構成されたコントローラであって、各エッジデバイスは、前記システムのアプリケーションのためのデータを取得するように構成され、前記コントローラは、前記複数のエッジデバイスの各々から前記データを受信するようにさらに構成される、前記コントローラと、
前記コントローラに接続可能なセキュアエレメントのアレイであって、前記複数のエッジデバイスから受信した前記データを使用して機能を実行するように構成された前記セキュアエレメントのアレイと、を備え、
前記コントローラは、前記複数のエッジデバイスのうちの1つの個別のエッジデバイスから受信したデータに対して前記機能を実行するために、前記セキュアエレメントのアレイのうちの1つの識別されたセキュアエレメントを前記個別のエッジデバイスに関連付けるように構成されており、
前記コントローラは、実行した前記機能の結果を前記個別のエッジデバイスに伝達するように構成されている、システム。
【請求項2】
前記コントローラは、イーサネット(登録商標)、Wi-Fi、RS-485、またはユニバーサルシリアルバス(USB)を含む接続を介して前記複数のエッジデバイスの各々と通信のために接続するように構成されている、請求項1に記載のシステム。
【請求項3】
前記システムは、物理アクセス制御システムであり、前記複数のエッジデバイスは、物理アクセスデバイスと物理的に同じ場所に配置されたリーダである、請求項1または2に記載のシステム。
【請求項4】
前記複数のエッジデバイスの総数は、前記セキュアエレメントの総数よりも多い、請求項1乃至3のいずれか一項に記載のシステム。
【請求項5】
前記コントローラは、前記複数のエッジデバイスのうちの少なくとも2つを前記セキュアエレメントのアレイのうちの単一のセキュアエレメントに関連付けるように構成されており、前記単一のセキュアエレメントは、前記複数のエッジデバイスのうちの前記少なくとも2つからの通信を交互的に行うように構成されている、請求項4に記載のシステム。
【請求項6】
複数のセキュアエレメントは、シスターボード上に配置され、前記シスターボードは、前記コントローラに物理的に接続し、かつ1つまたは複数のバスプロトコルを介して前記コントローラと通信する、請求項1乃至5のいずれか一項に記載のシステム。
【請求項7】
前記コントローラは、前記セキュアエレメントのアレイの複数のセキュアエレメントの各々によって署名された少なくとも1つの証明書を使用して、前記シスターボードの真正性を検証するように構成されている、請求項6に記載のシステム。
【請求項8】
前記シスターボードは、ポリシーを管理する1つまたは複数のリモートソースを介して前記コントローラから受信したポリシー暗号文の暗号署名を検証することによって、前記コントローラを認証するように構成される、請求項6または7に記載のシステム。
【請求項9】
前記セキュアエレメントが、カスタム機能を実行するようにプログラム可能であり、前記セキュアエレメントのアレイの複数のセキュアエレメントが、前記カスタム機能のインストールおよび実行を許可にするために、前記カスタム機能の真正性を検証するように構成されている、請求項1乃至8のいずれか一項に記載のシステム。
【請求項10】
前記複数のエッジデバイスをさらに備える、請求項1乃至9のいずれか一項に記載のシステム。
【請求項11】
モノのインターネット(以下、IoTとする)システムにおいて複数のエッジデバイスに関する機能の安全な実行を提供するための方法であって、
前記IoTシステムのコントローラが、前記IoTシステムの前記複数のエッジデバイスのうちの1つの個別のエッジデバイスからデータを受信するステップと、
前記コントローラに接続されたセキュアエレメントのアレイのうちの識別されたセキュアエレメントを前記個別のエッジデバイスに関連付けるステップと、
受信した前記データを前記識別されたセキュアエレメントに提供するステップと、前記セキュアエレメントは、前記データを使用して機能を実行するものであり、
前記コントローラを介して、前記識別されたセキュアエレメントが実行した前記機能の結果を前記個別のエッジデバイスに伝達するステップと、を含む方法。
【請求項12】
前記IoTシステムは物理アクセス制御システムであり、前記複数のエッジデバイスは、物理アクセスデバイスと物理的に同じ場所に配置されたリーダである、請求項11に記載の方法。
【請求項13】
前記コントローラは、RS-485、イーサネット(登録商標)、Wi-Fi、またはユニバーサルシリアルバス(USB)接続を使用して、前記個別のエッジデバイスと通信するように接続される、請求項11または12に記載の方法。
【請求項14】
前記複数のエッジデバイスの総数は、前記セキュアエレメントの総数よりも多く、前記コントローラは、前記複数のエッジデバイスのうちの少なくとも2つを前記セキュアエレメントのアレイのうちの単一のセキュアエレメントに関連付けるように構成されており、前記単一のセキュアエレメントは、前記複数のエッジデバイスのうちの前記少なくとも2つからの通信を交互的に行うように構成されている、請求項11乃至13のいずれか一項に記載の方法。
【請求項15】
前記複数のセキュアエレメントは、シスターボード上に配置され、前記シスターボードは、前記コントローラに物理的に接続し、かつ1つまたは複数のバスプロトコルを介して前記コントローラと通信する、請求項11乃至14のいずれか一項に記載の方法。
【請求項16】
前記コントローラが、前記セキュアエレメントのアレイの複数のセキュアエレメントの各々によって署名された少なくとも1つの証明書を使用して、前記シスターボードの真正性を検証するステップをさらに含む、請求項15に記載の方法。
【請求項17】
実行可能なプログラムコードを含む非一時的コンピュータ可読媒体であって、前記実行可能なプログラムコードは、1つまたは複数のプロセッサによる実行時に、前記1つまたは複数のプロセッサに、
IoTシステムの複数のエッジデバイスのうちの1つの個別のエッジデバイスからデータを受信すること、
セキュアエレメントのアレイのうちの1つの識別されたセキュアエレメントを前記個別のエッジデバイスに関連付けること、
受信した前記データを前記識別されたセキュアエレメントに提供すること、前記セキュアエレメントは前記データを使用して機能を実行するものであり、
前記識別されたセキュアエレメントが実行した前記機能の結果を前記個別のエッジデバイスに伝達すること、を行わせる、非一時的コンピュータ可読媒体。
【請求項18】
前記実行可能なプログラムコードはさらに、前記1つまたは複数のプロセッサに、前記複数のエッジデバイスのうちの少なくとも2つを前記セキュアエレメントのアレイのうちの単一のセキュアエレメントに関連付けることを行わせ、前記単一のセキュアエレメントは、前記複数のエッジデバイスのうちの前記少なくとも2つからの通信を交互的に行うように構成されている、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
物理アクセス制御システムであって、
複数のリーダの各々に接続して前記複数のリーダの各々から認証資格情報を受信するように構成されたコントローラと、前記複数のリーダの各々は、個別の認証資格情報を使用して個別のセキュリティ保護された領域へのアクセスを制御するために、クレデンシャルデバイスと通信して前記クレデンシャルデバイスから前記個別の認証資格情報を受信するように配置されており、
前記複数のリーダから受信した前記認証資格情報を使用してユーザ認証を実行するように構成されたセキュアエレメントのアレイと、を備え、
前記コントローラは、前記複数のリーダのうちの1つの個別のリーダから受信した前記認証資格情報を使用してユーザ認証を実行するために、前記セキュアエレメントのアレイのうちの1つの識別されたセキュアエレメントを前記個別のリーダに関連付けるように構成されており、
前記コントローラは、前記ユーザ認証の結果を前記個別のリーダに伝達するために接続される、物理アクセス制御システム。
【請求項20】
前記複数のリーダをさらに備える、請求項19に記載の物理アクセス制御システム。
【請求項21】
前記コントローラは、イーサネット(登録商標)、Wi-Fi、RS-485、またはユニバーサルシリアルバス(USB)を含む接続を通して前記複数のリーダの各々と通信のために接続するように構成されている、請求項19または20に記載の物理アクセス制御システム。
【請求項22】
前記複数のリーダの総数は、前記セキュアエレメントの総数よりも多い、請求項19乃至21のいずれか一項に記載の物理アクセス制御システム。
【請求項23】
前記コントローラは、前記複数のリーダのうちの少なくとも2つを前記セキュアエレメントのアレイのうちの単一のセキュアエレメントに関連付けるように構成されており、前記単一のセキュアエレメントは、前記複数のリーダのうちの前記少なくとも2つからの通信を交互的に行うように構成されている、請求項22に記載の物理アクセス制御システム。
【請求項24】
半二重接続を介して衝突耐性全二重通信プロトコルを使用してデータを送信するための方法であって、
前記データを送信する第1のデバイスに対するデータ受信モードを終了させるステップと、
前記第1のデバイスが、第2のデバイスによる受信のために前記半二重接続を介してデータフレームを送信するステップと、
前記第1のデバイスが、前記第2のデバイスからの肯定応答に関して監視するステップと、前記肯定応答は、送信された前記データフレームからの巡回冗長検査値を含んでおり、
前記データフレームが再送される必要があると決定するステップと、
前記第1のデバイスのデバイス役割を識別するステップと、
前記デバイス役割の識別に応じた時間に前記データフレームを再送信するステップと、を含む方法。
【請求項25】
前記半二重接続は、RS-485接続である、請求項24に記載の方法。
【請求項26】
前記第1のデバイスは、物理アクセス制御システムのコントローラであり、前記第2のデバイスは、前記物理アクセス制御システムのリーダである、請求項24または25に記載の方法。
【請求項27】
前記データフレームは、オプションフィールドと、ペイロードフィールドと、巡回冗長検査フィールドとを含んでおり、前記データフレームが再送信される必要があると決定するステップは、
前記第2のデバイスから前記肯定応答を受信すること、
前記肯定応答を前記データフレームの前記巡回冗長検査フィールドと比較すること、
前記肯定応答が前記巡回冗長検査フィールドに一致しない場合、前記データフレームが再送信される必要があると決定することを含む、請求項24乃至26のいずれか一項に記載の方法。
【請求項28】
前記データフレームが再送信される必要があると決定するステップは、前記第1のデバイスが、指定された時間期間内に前記第2のデバイスから肯定応答フレームを受信することに失敗することを含む、請求項24乃至26のいずれか一項に記載の方法。
【請求項29】
実行可能なプログラムコードを含む非一時的コンピュータ可読媒体であって、前記実行可能なプログラムコードは、1つまたは複数のプロセッサによる実行時に、前記1つまたは複数のプロセッサに、
第1のデバイスのデータ受信モードを終了させること、
第2のデバイスによる受信のために半二重接続を介して前記第1のデバイスからデータフレームを送信すること、
前記第2のデバイスからの肯定応答を監視すること、前記肯定応答は、送信された前記データフレームからの巡回冗長検査値を含んでおり、
前記データフレームが再送信される必要があると決定すること、
前記第1のデバイスのデバイス役割を識別すること、
前記デバイス役割の識別に応じた時間に前記データフレームを再送信すること、を行わせる、非一時的コンピュータ可読媒体。
【請求項30】
前記データフレームは、オプションフィールドと、ペイロードフィールドと、巡回冗長検査フィールドとを含んでおり、前記データフレームが再送信される必要があると決定することは、
前記第2のデバイスから前記肯定応答を受信すること、
前記肯定応答を前記データフレームの前記巡回冗長検査フィールドと比較すること、
前記肯定応答が前記巡回冗長検査フィールドに一致しない場合、前記データフレームが再送信される必要があると決定することを含む、請求項29に記載の非一時的コンピュータ可読媒体。
【請求項31】
前記データフレームが再送信される必要があると決定することは、前記第2のデバイスから指定された時間期間内に前記第2のデバイスから肯定応答フレームを受信することに失敗することを含む、請求項29に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、概して、限定するものではないが、モノのインターネット(IoT:Internet-of-things)システムに関し、詳しくは、限定するものではないが、IoTシステムのための透過型アーキテクチャに関する。
【背景技術】
【0002】
モノのインターネット(IoT)システムは、多くの場合、データを収集および通信する様々なセンサまたは他の方法を含むエッジデバイスを含む。これらのエッジデバイスのうちのいくつかは、直接ネットワーク接続を有していない場合があり、またはそうでなければリソース制約されている場合がある。加えて、これらのエッジデバイスがキーマテリアルを保存し、かつ安全な処理を実行する必要があることが多い。しかしながら、IoTシステム内のエッジデバイスは、処理リソースおよびセキュリティ機能を欠いていることが多く、また、エッジデバイスの物理的場所がエッジデバイスがキーマテリアルを保存するのに推奨できない場合がある。また、これらのエッジデバイスは、定期的な更新を必要とするソフトウェアを実装している場合がある。これらのエッジデバイスのいくつかに対する制限されたネットワーク接続に起因して、これは、ソフトウェア更新が必要とされるたびに、技術者に各個別のエッジデバイスにアクセルすることを要求し得る。これは、多くのエッジデバイスを備えるシステムにおいて、時間およびリソースを消費することとなり得る。
【発明の概要】
【0003】
本発明は、特許請求の範囲に記載されるような、エッジデバイスに関するシステム機能の安全な実行を提供するためのシステムおよび方法、非一時的コンピュータ可読媒体、並びに物理アクセス制御システムを提供する。
【図面の簡単な説明】
【0004】
必ずしも一定の縮尺で描かれていない図面において、同様の参照番号は、異なる図における同様の構成要素を説明し得る。異なる添え字を有する同様の参照番号は、同様の構成要素の異なる例を表し得る。いくつかの実施形態は、添付の図面の図において、限定ではなく例として示される。
図1】例示的な物理アクセス制御システムを示す図である。
図2】セキュアエレメントのアレイを含む例示的なモノのインターネット(IoT)アーキテクチャを示すブロック図である。
図3】例示的なセキュアIoTゲートウェイを示すブロック図である。
図4A】コントローラによってセキュアエレメントのアレイを認証するための例示的なワークフローを示す。
図4B】セキュアエレメントのシスターボードによってポリシーおよび/またはコントローラを認証するための例示的なワークフローを示す。
図5A-5C】半二重システムにおいて使用するための全二重プロトコルのための例示的な送信フレームを示す図である。
図6】全二重プロトコルを使用して半二重通信回線上でメッセージングを伝送する例示的な方法を示すフローチャートである。
図7】1つまたは複数の実施形態が実施され得るマシンの例を示すブロック図である。
【発明を実施するための形態】
【0005】
セキュアエレメントのアレイを使用して、モノのインターネット(IoT)システムのための透過型アーキテクチャを実装するためのシステムおよび方法が本明細書で開示される。例示的なIoTアーキテクチャは、セキュアエレメントの内蔵アレイまたは接続可能なアレイを装備したゲートウェイを含む。セキュアエレメントは、例えば、暗号化、暗号解読、署名生成、署名検証、および/またはキー(鍵)生成などの暗号化機能又はプロセスを実行するためのハードウェアおよび/またはソフトウェアを含む。セキュアエレメントは、暗号モジュールの物理的境界を確立し、かつ暗号モジュールの任意のソフトウェアおよびファームウェアコンポーネントを格納および保護する任意のプロセッサおよび/または他のハードウェアコンポーネントを含む明示的に定義された境界(ペリメータ:perimeter)内に含まれる。セキュアエレメントは、セキュア暗号プロセッサ、スマートカード、セキュアデジタル(SD:secure digital)カード、マイクロSDカード、SIMカード、及び/又は任意の他の暗号モジュールの形態をとる(または含む)ことができる。
【0006】
セキュアエレメント(SE:secure element)は、一組の正当に特定された信頼性のある機関によって規定された規則およびセキュリティ要件に従って、複数のアプリケーションおよびそれらの秘密データおよび暗号データを安全にホストすることが可能な耐タンパー性プラットフォームである。SEは、データを安全に保存し、データを安全に処理し、外部エンティティとの通信を安全に実行するための動的環境を提供するチップであると考えることができる。
【0007】
物理アクセス制御システム(PACS:Physical Access Control Systems)は、リーダ(エッジデバイス)およびコントローラ(中間サーバ/デバイス)を含む。従来のPACSシステムでは、リーダは、リーダの通信範囲内に入るカードまたは携帯電話と安全に通信するためのソフトウェアをホストし実行するスマートデバイスである。成功裏に進むPACSシステムは、ユーザ体験とセキュリティの両方に焦点を当てている。従って、リーダデバイスは、遅延問題ならびにハードウェアベースおよびソフトウェアベースのセキュリティの基本(security primitives)の両方に対処するのに十分な処理能力を有している必要がある。リーダデバイスは、(トランスポートレベルおよびアプリケーションレベルの両方において)異なるプロトコルを有し、かつ異なるデータモダリティを有する広範囲のカードデバイスからのデータを認証し、かつ読み取るためのサポートを有する。これは、新たなカードのモダリティ、バグ修正などをサポートするために更新されなければならない、リーダデバイスによって実装される多くのソフトウェアが生じる結果となる。リーダデバイスは、ネットワーク接続を有していないことが多いため、リーダデバイスは、これらの更新を実行するために技術者によって物理的にアクセスされる必要がある。さらに、これは、安全なソフトウェアおよびキーマテリアルを保存する、リーダ上に物理的に位置するセキュアエレメントをもたらす結果となる。いくつかのリーダは、例えば、建物の外側部分に物理的に配置され、これは、企業、認証エンティティ、または、実質的にキーの全ての安全な保存が建物の周辺などの安全な周辺内に物理的に配置されることを所望するか、または必要とするPACSシステムの他のユーザにセキュリティ上の懸念を生じさせる可能性がある。
【0008】
上記の状況を改善するために、リーダから離れたセキュアエレメントのアレイを使用して、リーダデバイスのためのセキュリティおよびアプリケーションソフトウェアを実行し得る。セキュアエレメントのアレイは、PACSコントローラと一体化されるか、またはPACSコントローラに取り付けられ、かつ複数のエッジデバイス(リーダ)への複数の並列要求および接続を処理するように構成され得る。PACSコントローラは、セキュアエレメントのためのソフトウェアまたはファームウェア更新を保存および提供し得る1つまたは複数のリモートデバイスへのネットワーク接続を有し得る。このようにして、セキュアエレメントは、技術者が各個々のエッジデバイス(リーダ)にアクセスする必要なく更新することができる。PACSコントローラはまた、建物または他の安全な周辺内に物理的に配置され得、いくつかのリーダ上に配置された複数のセキュアエレメントを有することについてのセキュリティ上の懸念が排除される。
【0009】
一例では、セキュアエレメントのアレイは、シリアルペリフェラルインタフェース(SPI:serial peripheral interface)、インター集積回路(I2C:inter-integrated circuit)、ユニバーサルシリアルバス(USB:universal serial bus)などのバスプロトコルを有する1つまたは複数のバスを使用してホストデバイスに接続し得るシスターボード(sister board)上に配置され得る。セキュアエレメントは、いくつかの機能のために使用され得る。例えば、セキュアエレメントは、セキュリティアルゴリズムを提供し、かつ機密キーマテリアルの安全な保存を提供する暗号プロセッサとして動作し得る。他の例では、セキュアエレメントは、セキュリティアルゴリズムおよびキーマテリアルの保存とともに、アプリケーション固有のソフトウェアを実行するアプリケーションプラットフォームとして使用され得る。例えば、PACSシステムでは、セキュアエレメントは、PACSリーダに認証資格(クレデンシャル:credential)を提示するユーザの認証を実行するように使用され得る。このようにして、ユーザ認証を実行するためのソフトウェア機能は、リーダデバイス自体には必要とされない。
【0010】
図1は、PACSが使用され得る例示的な想定事例100を示す。図1に示すように、壁102にはドア104が配置されている。例示的な状況では、セキュリティ保護された領域がドア104の背後にあり、ドアは、ロック解除状態にあるときにセキュリティ保護された領域へのアクセスを許可し、ロック状態にあるときにセキュリティ保護された領域へのアクセスを防止するロック可能なハンドル106を有する。
【0011】
リーダデバイス108は、ドア104のハンドル106に近接して配置される。一例では、ハンドル106は、デフォルト状態でロックされている。リーダシステム108は、無線インタフェース110を介してリーダデバイス108と通信することができるクレデンシャルデバイス112に含まれる承認された認証資格が提示されることに応答して、ハンドル106を選択的にロック解除状態にするように動作可能である。様々な例において、クレデンシャルデバイス112は、キーカード、フォブ、モバイルデバイス(例えば、スマートフォン)、又は通信機能および認証資格情報を有する任意の他の適切なクレデンシャルデバイスであり得る。
【0012】
従来のシステムでは、ユーザを認証するためのアプリケーションソフトウェアは、リーダデバイス108自体に実装され得る。例えば、ユーザは、リーダデバイス108と通信して、認証資格をリーダデバイス108に提供するクレデンシャルデバイス112を提示する。次いで、リーダデバイス108は、受信した認証資格を使用して、ユーザを安全に認証し、ハンドル106をロック解除する。他の従来例では、この機能の一部はリーダデバイス108に含まれ、一部は遠隔に配置されたPACSコントローラに含まれる。例えば、リーダデバイスは、クレデンシャルデバイス112との安全なトランザクションを実行し、次いで、ユーザを認証するためにPACSコントローラにデータを送信し得る。次いで、コントローラは、ハンドル106をロック解除するように伝達し得る。
【0013】
リーダデバイス108は、安全なトランザクションおよび/または認証を実行するため、リーダデバイス108に対してソフトウェアまたはファームウェアの更新が必要とされ得る。いくつかの例では、リーダデバイス108は、ネットワーク接続を含んでおらず、RS-485または他の接続等の単一有線接続を介してPACSコントローラに接続されているのみである。これは、PACSシステム内の各リーダデバイス108のソフトウェアまたはファームウェアを更新するために、技術者がリーダデバイス108まで物理的に移動することを必要とする。メンテナンスを容易にするために、この機能の一部をリーダから離して移動させながら、リーダデバイス108と同じか、またはより良好なユーザ体験をユーザに提供することが望ましい。
【0014】
これを実現するために、セキュアエレメントのアレイが、PACSコントローラにおいて実装され得、各セキュアエレメントは、個別のリーダデバイス108に対する安全なソフトウェア実行を実施するように構成される。これらのPACSコントローラは、多くの場合、1つまたは複数のネットワーク接続を含み、セキュアエレメントによって実行されるソフトウェアの遠隔更新を可能にし、技術者が各リーダデバイス108にまで物理的に移動する必要性を排除する。本開示は、PACSシステムに加えて、多数のタイプのIoTシステムに適用可能であることを理解されたい。図1に示すシステム100は、単に例として提示されたものであり、限定されるものではない。
【0015】
図2は、IoTシステム200を示す図である。システム200は、複数のエッジデバイスクラスタ210と、セキュアIoTゲートウェイ(SIG:secure IoT gateway)220とを含む。複数のエッジデバイスクラスタ210は、それぞれ、図1のリーダデバイス108などの1つまたは複数のエッジデバイス230を含み得る。SIG220は、ローカルエリアネットワーク、またはインターネットなどのワイドエリアネットワーク280を介してリモートソース240と通信し得る。SIG220は、コントローラ250と、複数のセキュアエレメント270を含むシスターボード260とを含み得る。一例では、コントローラ250は、PACSコントローラであり得る。各々5個のエッジデバイス230からなる2つのクラスタ210および4個のセキュアエレメント270として図示されているが、任意の数のエッジデバイス230を有する任意の数のクラスタ210および任意の数のセキュアエレメント270が、システム200に関して実装され得る。別個のコントローラ250およびシスターボード260として図示されているが、いくつかの例では、複数のセキュアエレメント270は、コントローラ250と統合され得る。コントローラ250は、SPI、I2C、USBなどの任意のバスプロトコルを使用して、シスターボード260と通信するように接続され得る。
【0016】
SIG220は、リモートソース(単数または複数)240と通信するためにネットワーク接続280を介して接続され、個別のエッジデバイス230と通信するために個別の接続290を介して接続される。例えば、接続280は、ローカルエリアネットワーク接続、またはインターネット接続などのワイドエリアネットワーク接続であり得る。個々の接続290は、イーサネット(登録商標)、Wi-Fi、USB、RS-485などの有線接続または無線接続であり得る。各クラスタ210に対して単一の接続290として図示されているが、各個々のエッジデバイス230に対して接続290が設けられ得る。リモートソース240は、1つまたは複数のサーバまたは他のコンピューティングデバイスであり得るとともに、複数のセキュアエレメント270用のファームウェアファイルまたは他のソフトウェア更新を保存し得る。いくつかの例では、SIG220は、リモートソース240と通信して、ファームウェアファイルまたは他のソフトウェア更新を取得して、SIG220によって実装される1つまたは複数のセキュアエレメント270を更新する。
【0017】
図1に示すようなPACSシステムにおいて、リーダデバイス108は、PACSコントローラなどのコントローラ250と通信するように接続されたエッジデバイス230であり得る。接続290は、有線全二重接続、RS-485接続等の有線半二重接続、または任意の他の接続であり得る。セキュアエレメント270は、リーダ108に対して、アプリケーション固有のハードウェアを使用して機能を実行するソフトウェアを実行するように構成され得る。例えば、ユーザがリーダデバイス108に接近して、クレデンシャルデバイス112を使用して認証資格を提示すると、セキュアエレメント270は、セキュリティアルゴリズム、機密キーマテリアルの安全な保存、ならびにユーザ認証を実行するためのトランザクションに割り当てられ得る。いくつかの例では、リーダデバイス108は、クレデンシャルデバイス112から認証資格情報を取得し、コントローラに認証資格情報を提供するのみでよく、セキュアエレメント270が、ユーザを認証してドアハンドル106をロック解除するためのアプリケーション固有の機能の全てを実行する。他の例では、アプリケーション固有の機能のうちのいくつかは、リーダデバイス108によって実行され得、いくつかは、セキュアエレメント270によって実行され得る。
【0018】
ユーザがリーダデバイス108に接近すると、またはリーダデバイス108がユーザの認証資格を受信すると、コントローラ250または他の電子回路は、リーダデバイス108と共に使用するためのセキュアエレメント270を選択し、かつ割り当て得る。これは、リーダデバイス108のためのソフトウェアの実行に現在利用可能である任意のセキュアエレメント270であり得る。
【0019】
一例では、各エッジデバイス230は、個別のエッジデバイス230が個別のセッションのために割り当てられるセキュアエレメント270への参照を動的に受信し得る。例えば、エッジデバイス230がセキュアエレメント270を必要とする場合、コントローラ250は、個別のエッジデバイス230に必要な機能を提供することが可能である利用可能なセキュアエレメント270を識別し得る。コントローラ250はまた、「ディスパッチャ(dispatcher)」として実装され得、メッセージまたはデータを個別のセキュアエレメント270にディスパッチする役割を担い、セキュアエレメントのアレイを個別のエッジデバイス230から遮蔽する。これにより、コード開発および管理における高レベルのモジュール性が可能となるとともに、システム内のエッジデバイス230または他のアクタのクラッシュ(crash)または終了(termination)から保護される。
【0020】
エッジデバイス230またはセキュアエレメント270のライフサイクルを監視し、例えば、個別のデバイスを再生成するか、またはデバイスを終了した状態に維持してシステム管理者に通知するかのいずれかのポリシーを実装するための他のデバイスまたは回路もまた、システム200内に実装され得る。他の例では、エッジデバイス230、コントローラ250、またはセキュアエレメント270のうちの1つまたは複数は、システム内の複数のデバイスのライフサイクルを監視し得、これは、システム内の複数のデバイスの個別の状態をクリーンアップまたはリセットする際に使用され得る。
【0021】
いくつかの場合では、リモートデバイス240または他のエンティティによってアクセス可能でないエッジデバイスに対するアプリケーションおよびキーマテリアルを実装することが所望される場合がある。例えば、PACSシステムにおいて、エンティティは、リモートデバイス240を介するなどして他のエンティティによってアクセス可能でない特定の認証コードを用いてコントローラ250またはセキュアエレメント270をプログラムすることを所望する場合がある。これを可能にするために、セキュアエレメント270は、セキュアエレメント270が高水準言語でプログラム可能であるように構成され得る。いくつかの例では、セキュアエレメント270がリソース制約デバイスであっても、セキュアエレメント270のための言語ランタイムを稼動することが可能なランタイムが実装され得る。従って、エンティティは、アプリケーションを開発し、セキュアエレメント270上にアプリケーションをインストールすることができる。
【0022】
上記の想定事例では、セキュアエレメント270上にこれらのアプリケーションをインストールできる者を制限することが望ましい。一例では、セキュアエレメント270にインストールされるアプリケーションは、エンティティによって署名される必要があり、次いで、より高いレベルのエンティティまたは他のエンティティが、対応するキーを用いてアプリケーションに二重に署名する。アプリケーションが二重に署名されている場合、セキュアエレメント270のうちの1つまたは複数またはコントローラ250の内蔵セキュアエレメントは、アプリケーションが個別のセキュアエレメント270にインストールされることを可能にする。これは、エンティティがアプリケーションを独立して開発し、かつそれらをセキュアエレメント270にロードすることを可能にする。いくつかの例では、セキュアエレメント270によってインストールされたアプリケーションが互いに干渉することを防止するために、仮想ファイアウォールもセキュアエレメント270によって実装され得る。
【0023】
図3は、SIG220の例示的な実装形態を示すブロック図である。ゲートウェイ220は、制御回路構成300と、処理エレメント310と、図2のセキュアエレメント270であり得る1つまたは複数のセキュアエレメント320とを含む。いくつかの場合では、ゲートウェイ220は、4個のセキュアエレメント320を含む。ゲートウェイ220の各セキュアエレメント320は、同じ機能を実行するように構成され得る。いくつかの実装形態では、セキュアエレメント320は、典型的な汎用マイクロプロセッサよりも高いレベルのセキュリティ保証を提供するように(ハードウェアおよびソフトウェアの両方で)実装される。いくつかの実装形態において、セキュアエレメント320は、より高いレベルのセキュリティ保証を提供することなく、汎用マイクロプロセッサとして実装される。
【0024】
制御回路構成300および処理エレメント310は、セキュアエレメント320を個別のエッジデバイス230に割り当てるための割り当てプロトコルを実装するように構成され得る。制御回路構成300および処理エレメント310は、コントローラ250によって実装され、かつ/またはシスターボード260上に実装され得る。エッジデバイス230と共にセキュアエレメント320の使用を可能にするために、エッジデバイス230、セキュアエレメント320、プロトコルなどは、それら自体の状態を管理し、かつプロセス内メッセージングを使用してシステム内の他のアクタとのみ通信するアクタとして実装され得る。これらのアクタは、アクタの個別のデバイスの設定状態を維持し、かつアクタが所与のセッションに割り当てられたセキュアエレメント320への参照を動的に受信する。同様に、アクタは、所望のトランスポートおよびアプリケーションプロトコルを使用して通信することが可能なアクタに接続/登録され得る。
【0025】
制御回路構成300および/または処理エレメント310は、関連する適切なセキュアエレメント320にメッセージ/データをディスパッチする役割を担い、それによって、例えば、エッジデバイス230を代表するアクタからセキュアエレメント320のアレイ全体を遮蔽するディスパッチャアクタとして動作するソフトウェアを実行し得る。アクタおよびプロセス内メッセージングの使用は、コード開発およびメンテナンスにおける高レベルのモジュール性、コンポーネントが全て同じプロセスの一部であるためコンポーネント間の相互作用におけるオーバーヘッドがゼロであることによる優れた性能、ならびに任意のコンポーネントの誤動作からの保護を可能にする。通常、プロセスのソフトウェアコンポーネントにおける障害またはバグは、プロセス全体のクラッシュにつながる。アクタのモデルは、システムが個々のアクタ内に障害を封じ込めることを可能にし、それによってプロセスを障害から保護する。このメカニズムは、最終的には、ほぼ100%の連続稼働時間(uptime)およびプロセスにおける不良挙動のコンポーネント/アクタからの回復力を提供する。
【0026】
リモートソース240は、ネットワーク接続280を介してセキュアエレメント320に関する更新を提供し得る。例えば、第1のセキュアエレメント320のファームウェアは、処理エレメント310によって実装される、信頼できる実行環境などのセキュリティエンクレーブ(security enclave)を介して更新され得る。このような場合では、セキュリティエンクレーブは、暗号サポート(crypto support)を利用し、かつ全体的なコンピューティング環境からの分離を提供するアプリケーションを実行し得る。いくつかの実装形態では、処理エレメント310によって実装されるセキュリティエンクレーブは、別のデバイスと通信するためにセキュリティエンクレーブによって使用される対称キーマテリアル又は非対称キーマテリアル(symmetric or asymmetric key material)を含む。複数のデバイスと通信するためにセキュリティエンクレーブによって使用される暗号プロセス及び技術は、ゲートウェイ220の複数のセキュアエレメントによって実装される暗号プロセスとは異なる。
【0027】
セキュアエレメント320の数は、セキュアエレメント320によってサービスされるエッジデバイス230の数より少なくてもよい。これは、全てのエッジデバイス230が同時にアクティブであると予想されない場合に有利であり得る。さらに、これは、1個のセキュアエレメントへの要求を交互的に行う(interleave)能力を助長する。いくつかの例では、1個のセキュアエレメントのアクタが2個のエッジデバイスのアクタに関連付けられ得る。2個のエッジデバイスのアクタが同時にアクティブであっても、2個のエッジデバイスのアクタは、異なる通信段階にあり得る。各エッジデバイスのアクタからの要求は、単一のセキュアエレメントのアクタに交互的に行われ得る。例えば、トランザクションは、エッジデバイスとセキュアエレメントとの間のいくつかのコマンド・応答ペアを含み得る。セキュアエレメントが第1のエッジデバイスからの特定のコマンドに対する応答を返すときまでに、コントローラは、第2のエッジデバイスから異なるコマンドを受信することができる。この状況では、2個のエッジデバイスからの通信を交互的に行うことにより、単一のセキュアエレメントの効率的な使用が可能となる。
【0028】
セキュアエレメント320が、コントローラ250から物理的に分離可能なシスターボード上に配置される例では、シスターボードをコントローラ250に差し込むか、または他の方法で接続するときに、シスターボードを認証することが望ましい。これを実現するために、コントローラ250は、コントローラ250に内蔵され、セキュアエレメント320のアレイを認証する機能と、個別のコントローラ250とのポリシー互換性を検証する機能との両方を有する追加のセキュアエレメントを含み得る。別の実施形態では、コントローラ250上に内蔵セキュアエレメントを含むのではなく、マイクロプロセッサによって提供されるセキュアエンクレーブを使用することができる。
【0029】
図4Aは、コントローラ250によってセキュアエレメント320のアレイを認証するための例示的なワークフローを示す。一例では、コントローラ250のエンクレーブセキュアエレメントまたは内蔵セキュアエレメントは、署名付きルートデジタル証明書と共に非対称キーペアを含む。署名付きデジタル証明書を有することにより、コントローラ250内のエンクレーブセキュアエレメント又は内蔵セキュアエレメントが、セキュアエレメントのセキュアアレイに乱数を送信することが可能となる。次いで、アレイ内のセキュアエレメント320は、セキュアエレメント320によって使用された証明書とともに、署名付き乱数を返信する。アレイ内の各セキュアエレメントは異なる証明書およびキーを有しているが、全ての証明書は同じ親(ルート)証明書を有していることに留意されたい。次に、コントローラ250内のエンクレーブセキュアエレメント又は内蔵セキュアエレメントは、乱数の署名を検証するとともに、セキュアエレメント320の証明書を検証する。パブリックキーインフラストラクチャ(PKI:public key infrastructure)と同様であるこのプロセスは、コントローラ250がセキュアエレメント320を認証するために使用することができる。このプロセスは、例えば、中間者攻撃によって生じる脆弱性から保護するために、シスターボードがコントローラに接続されたときに実行され、その後、再び実行されるか、または代替的に、ランダムな間隔で実行され得る。
【0030】
上記のプロセスは、シスターボードの真正性(authenticity)を検証するのみであるが、シスターボードがコントローラ250および/またはシステムポリシーを認証することも所望される場合がある。図4Bは、セキュアエレメント320のシスターボードによってポリシーおよび/またはコントローラ250を認証するための例示的なワークフローを示す。ポリシーは、1つまたは複数のリモートデバイス240の支援により認証され得る。コントローラ250内のエンクレーブセキュアエレメント又は内蔵セキュアエレメントは、リモートデバイス240と認証を行い、当該コントローラ250に固有の署名付き暗号文(signed cryptogram)を取得することができる。次いで、この署名付き暗号文は、シスターボード内のセキュアエレメント320のアレイに送信される。署名が正しい場合にのみ、セキュアエレメント320は機能する。いくつかの例では、セキュアエレメントはまた、ポリシーを解析し、解析されたポリシーに基づいてコントローラ250に一部の機能を提供するのみの機能を含み得る。
【0031】
いくつかのPACSシステムは、リーダとPACSコントローラとの間で通信するために全二重接続を使用して接続される。しかしながら、いくつかの従来のシステムでは、セキュアエレメント320とエッジデバイス230との間の通信は、半二重接続290を使用する。これらのシステムでは、所望のユーザ体験を保証するために、レガシーな半二重接続に対して全二重通信プロトコルを実装することが望ましい。例えば、いくつかの従来のPACSシステムは、接続290に対してRS-485接続を含み得る。これらの従来のシステムでは、リーダまたはコントローラのうちの一方が一次コミュニケータとして動作し、他方が二次コミュニケータとして動作する。エッジデバイス230とセキュアエレメント320との間の通信を容易にするために、全二重プロトコルが、全てのデバイスが一次コミュニケータとして動作し得るように、半二重接続に対して実装され得る。
【0032】
全二重プロトコルは、既存のデバイスに対するハードウェア修正を必要とせずに、最新のマイクロコントローラ内に存在する一般的な汎用非同期送受信機(UART:universal asynchronous receiver-transmitter)ハードウェア上でプロトコルを使用することができるように設計され得る。データ衝突を解決することと共に、このプロトコルは、ノイズが多いかまたはそうでなければ低品質のRS-485回線のために起こり得るデータの破損を軽減するのに役立つ。このプロトコルは、より上位レベルのプロトコルに大きな制限を課すことなく、それらと組み合わせて使用されることが意図されている。開放型システム間相互接続(OSI:open systems interconnection)モデルでは、プロトコルはデータリンク層で実施することができる。送信側によって送信された全てのデータは、受信側によって肯定応答される。適切な肯定応答が送信側によって時間内に受信されない場合、プロトコルは、図6に関して説明されるように、データ配信の成功をもたらす衝突解決アルゴリズムを組み込んでいる。
【0033】
図5A-5Cは、半二重システムにおいて使用するための全二重プロトコルのための例示的なデータフレームフォーマットを示す図である。図5Aは、半二重接続を介してデータを通信するために使用されるデータフレーム500を示す。データフレーム500は、37バイトを含むものとして示されているが、任意の数のバイトを含み得る。データフレーム500は、オプションバイト(図5B)、データペイロード、および4バイトの巡回冗長検査(CRC:cyclic redundancy check)を含む。32バイトとして図示されているが、データフレーム500は、任意のサイズのデータペイロードを有するように構成され得る。CRCは、データフレーム500内のデータの送信における誤りを検出するために使用され得る。
【0034】
図5Bは、データフレーム500のための例示的なオプションフィールド510を示す。オプションフィールド510は、エラーインジケータビット、将来の使用のために予約された(RFU:reserved for future use)ものである6ビット、およびトグルビットを含む。RFUビットは、任意の目的のために割り当てられ得る。エラーインジケータは、送信プロトコルにおけるエラーを示す単一ビットである。0に設定された場合、フレームはデータを転送する。1に設定された場合、フレームは、クリティカルエラーがエッジデバイス230等のデバイス上で発生したことを示し、コントローラ250等の他のデバイスは、それに応じて動作する必要がある。エラー表示は、プロトコルが実施されるよりも上位レベルのレイヤにおけるエラー検出に加えて使用され得る。トグルビットは、データフレームを送信するときに使用され、連続するフレームごとにトグルされる。トグルビットは、同じデータを有する2つの連続するフレームと単一フレームの再送信とを区別するために使用される。
【0035】
図5Cは、データフレームが送信側から正常に受信されたときに受信側によって提供される例示的な肯定応答フレーム520を示す。この例では、肯定応答フレームは、データフレーム500のCRCフレームのコピーであるCRCフィールドを含む。肯定応答フレーム520のためにCRCを使用するものとして示されているが、データフレーム500が受信側によって受信されたことを送信側が妥当な確実性で検証することを可能にする肯定応答のために、任意のデータが使用され得る。例えば、肯定応答をデータフレーム500に関連付けるとともに、ランダムノイズまたは破損したフレームが有効な肯定応答として識別される確率が非常に小さくなるように十分に大きくかつ十分にランダムである任意のビットパターンが挙げられる。
【0036】
通信プロトコルを実施する際、2つの異なる役割が、2つのデバイスに、役割「A」および役割「B」として静的に割り当てられ得る。例えば、コントローラ250は、役割「A」が割り当てられ、エッジデバイス230は、役割「B」が割り当てられ得る。ボーレート(baud rate)、使用されるストップビットの数、およびビット順序は、デバイス間で事前に合意され得る。プロトコルの推定時間単位(ETU:estimated time unit)値も定義され得る。ETU値は、一般に、データフレーム500を送信し、いくらかの追加マージンを有して肯定応答フレーム520を受信するために必要とされる時間よりも大きくなるように選択され得る。例えば、115200ビット/秒(bps)のボーレートに対して、5ミリ秒の値が使用され得る。
【0037】
図6は、半二重接続上で全二重プロトコルに従ってデータを送信するための方法600を示すフローチャートである。データフレーム500を送信する際に、デバイスは、回線がアイドルになるまで待機する必要がある。回線がアイドル状態になると、データフレームは指定されたバイト数で送信される。フレームを受信すると、指定されたバイト数が受信され、次にデバイスは回線がアイドルになるまでの間待機する。アイドル時には、両方のノードが受信モードにあり(ステップ602)、データを受信するために待機している。受信されると、受信データフレーム500のCRCがチェックされる。CRCが正しくない場合、ノードは別のデータフレームの受信を開始する。CRCが正しい場合、ノードは、対応する肯定応答を送信し、別のデータフレームの受信を開始する。新たなデータフレームが受信されると、そのフレームのCRCが最後に受信したフレームのCRCに等しいかどうかがチェックされる。それらが一致する場合、フレームは複製と見なされ、上位層に報告されない。肯定応答は、複製フレームに対しても送信される。
【0038】
データフレーム500を送信するとき、ステップ604において、デバイスは受信モードを停止する。ステップ606において、データフレーム500は、指定されたバイト数を使用して送信される。データフレーム500の送信に続いて、デバイスは、肯定応答が受信される(ステップ608)か、またはETUが満了する(ステップ610)まで待機する。肯定応答を受信する前にETUが満了した場合、方法600はステップ614に移行する。肯定応答が正常に受信された場合、方法600はステップ612に移行し、肯定応答フレーム520のCRCをチェックする。CRCが送信されたデータフレーム500のものと一致しない場合、方法600はステップ614に移行する。CRCが一致する場合、データフレーム500は正常に送信され、方法はステップ602に戻り、デバイスは受信モードに再び入る。ステップ614において、デバイスの役割がチェックされる。デバイスが役割「A」デバイスである場合、方法600はステップ606に戻り、データフレーム500を再送信する。デバイスが役割「B」デバイスである場合、デバイスはステップ616に移行し、回線上の衝突を最小限に抑えるために2つのETUの受信モードに入り、次にステップ606に戻ってデータフレーム500を再送信する。方法600は、半二重回線上で使用するために、衝突を解決する全二重プロトコルを提供する。
【0039】
図7は、本明細書において説明されている技法(例えば、方法)のうちの任意の1つまたは複数が実行され得る例示的なマシン700のブロック図を示す。例えば、マシン700は、エッジデバイス230、コントローラ250、またはセキュアエレメント270のうちの任意の1つまたは複数であり得る。複数の例は、本明細書で説明されるように、マシン700内の論理コンポーネントまたはいくつかのコンポーネント、または機構を含むか、またはそれらによって動作し得る。回路構成(例えば、処理回路)は、ハードウェア(例えば、簡単な回路、ゲート、ロジックなど)を含むマシン700の有形のエンティティに具体化された回路の集合である。回路構成の要素は、経時的に柔軟に変化し得る。回路は、動作時に指定された動作を単独で又は組み合わせて実行し得る構成要素を含む。一例では、回路構成のハードウェアは、特定の動作を実行するように(例えば、配線接続されるなど)不変的に設計され得る。一例では、回路構成のハードウェアは、特定の動作の命令を符号化するように物理的に(例えば、磁気的に、電気的に、不変質量粒子の可動配置など)変更されたマシン可読媒体を含む、可変接続の物理的コンポーネント(例えば、実行ユニット、トランジスタ、簡単な回路など)を含み得る。物理的コンポーネントを接続する際に、例えば、絶縁体から導体に(または、その逆に)、ハードウェア構成物の基礎となる電気的特性が変化する。命令は、埋め込みハードウェア(例えば、実行ユニットまたはローディング機構)が、可変接続を介してハードウェア内に回路構成の要素を作成して、動作時に特定の動作の一部を実行することを可能にする。従って、一例では、マシン可読媒体要素は、回路構成の一部であるか、またはデバイスが動作する際に回路構成の他のコンポーネントに通信可能に接続される。一例では、物理的コンポーネントのいずれも、2つ以上の回路構成の2つ以上の要素において使用し得る。例えば、動作中、実行ユニットは、ある時点で第1の回路構成の第1の回路において使用され、かつ第1の回路構成の第2の回路によって再使用されるか、または異なる時点で第2の回路構成の第3の回路によって使用され得る。マシン700に関するこれらのコンポーネントの追加の例を以下に示す。
【0040】
代替的な実施形態において、マシン700は、スタンドアロンデバイスとして動作し得るか、または他のマシンに接続(例えば、ネットワーク接続)され得る。ネットワーク化された構成では、マシン700は、サーバ・クライアントネットワーク環境において、サーバマシン、クライアントマシン、またはその両方として動作し得る。一例では、マシン700は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境におけるピアマシンとして動作し得る。マシン700は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話機、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによって実行される動作を指定する命令(シーケンシャルまたはそれ以外のもの)を実行することが可能な任意のマシンであり得る。さらに、単一のマシンのみが図示されているが、「マシン」という用語は、クラウドコンピューティング、サービス型ソフトウェア(SaaS:software as a service)、他のコンピュータクラスタ構成などの、本明細書で説明される方法のうちの任意の1つまたは複数を実行するために、一組(または複数の組)の命令を個別にまたは共同で実行するマシンの任意の集合を含むものと解釈されるべきである。
【0041】
マシン(例えば、コンピュータシステム)700は、ハードウェアプロセッサ702(例えば、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組み合わせ)、メインメモリ704、スタティックメモリ706(例えば、ファームウェア、マイクロコード、基本入出力(BIOS)、統合拡張可能ファームウェアインタフェース(UEFI)などのためのメモリまたはストレージ)、および大容量ストレージ708(例えば、ハードドライブ、テープドライブ、フラッシュストレージ、または他のブロックデバイス)を含み得、これらのうちのいくつかまたは全ては、インターリンク(例えば、バス)730を介して互いに通信し得る。マシン700は、ディスプレイユニット710、英数字入力デバイス712(例えば、キーボード)、およびユーザインタフェース(UI)ナビゲーションデバイス714(例えば、マウス)をさらに含み得る。一例では、ディスプレイユニット710、入力デバイス712、およびUIナビゲーションデバイス714は、タッチスクリーンディスプレイであり得る。マシン700は、ストレージデバイス708(例えば、ドライブユニット)、信号発生デバイス718(例えば、スピーカ)、ネットワークインタフェースデバイス720、全地球測位システム(GPS)センサ、コンパス、加速度計、または他のセンサなどの1つまたは複数のセンサ716をさらに含み得る。マシン700は、1つまたは複数の周辺デバイス(例えば、プリンタ、カードリーダなど)と通信または制御するために、シリアル(例えば、ユニバーサルシリアルバス(USB))、パラレル、または他の有線または無線(例えば、赤外線(IR)、近距離通信(NFC)など)接続などの出力コントローラ728を含得る。
【0042】
プロセッサ702のレジスタ、メインメモリ704、スタティックメモリ706、または大容量ストレージ708は、本明細書で説明される技法または機能のうちの任意の1つまたは複数を具現化するか、またはそれらによって利用される1つまたは複数の組のデータ構造または命令724(例えば、ソフトウェア)が記憶されるマシン可読媒体722であるか、またはそれを含み得る。命令724はまた、マシン700によるその実行中に、プロセッサ702のレジスタ、メインメモリ704、スタティックメモリ706、または大容量ストレージ708のいずれかの中に完全にまたは少なくとも部分的に存在し得る。一例では、ハードウェアプロセッサ702、メインメモリ704、スタティックメモリ706、または大容量ストレージ708のうちの1つまたは任意の組合せが、マシン可読媒体722を構成し得る。マシン可読媒体722が単一の媒体として示されているが、「マシン可読媒体」という用語は、1つまたは複数の命令724を記憶するように構成された単一の媒体または複数の媒体(例えば、集中型または分散型データベース、および/または関連するキャッシュおよびサーバ)を含み得る。
【0043】
「マシン可読媒体」という用語は、マシン700による実行のために命令を記憶、符号化、または搬送することが可能であり、かつマシン700に本開示の技法のうちの任意の1つまたは複数を実行させる、またはそのような命令によって使用されるかまたはそのような命令に関連付けられるデータ構造を記憶、符号化、もしくは搬送することを可能にする任意の媒体を含み得る。非限定的なマシン可読媒体の例は、ソリッドステートメモリ、光媒体、磁気媒体、及び信号(例えば、無線周波数信号、他の光子ベースの信号、音声信号など)を含み得る。一例では、非一時的マシン可読媒体は、不変(例えば、静止)質量を有する複数の粒子を有するマシン可読媒体を含み、従って、物質の組成物である。従って、非一時的マシン可読媒体は、一時的な伝搬信号を含まないマシン可読媒体である。非一時的マシン可読媒体の具体例は、半導体メモリデバイス(例えば、電気的プログラム可能な読み出し専用メモリ(EPROM)、電気的消去可能なプログラム可能読み出し専用メモリ(EEPROM))およびフラッシュメモリデバイスなどの不揮発性メモリ、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含み得る。
【0044】
命令724は、いくつかの転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちのいずれか1つを利用するネットワークインタフェースデバイス720を介して、伝送媒体を使用して通信ネットワーク726上でさらに送信または受信され得る。例示的な通信ネットワークは、とりわけ、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、携帯電話ネットワーク(例えば、セルラーネットワーク)、基本電話(POTS)ネットワーク、および無線データネットワーク(例えば、Wi-Fi(登録商標)として知られる米国電気電子技術者協会(IEEE)802.11規格ファミリー)、IEEE802.16.4規格ファミリー、ピアツーピア(P2P)ネットワークを含み得る。一例では、ネットワークインタフェースデバイス720は、通信ネットワーク726に接続するための1つまたは複数の物理的ジャック(例えば、イーサネット(登録商標)、同軸、または電話ジャック)または1つまたは複数のアンテナを含み得る。一例では、ネットワークインタフェースデバイス720は、単一入力複数出力(SIMO)技法、複数入力複数出力(MIMO)技法、または複数入力単一出力(MISO)技法のうちの少なくとも1つを使用して無線通信するための複数のアンテナを含み得る。「伝送媒体」という用語は、マシン700による実行のための命令を記憶、符号化、または搬送することが可能である任意の無形媒体を含むとともに、そのようなソフトウェアの通信を可能にするためのデジタルもしくはアナログ通信信号または他の無形媒体を含むものと解釈される。伝送媒体は、マシン可読媒体である。
【0045】
上記の説明は、詳細な説明の一部を形成する添付図面への参照を含む。図面は、例示を目的として、本発明を実施することができる特定の実施形態を示す。これらの実施形態は、本明細書では「例」とも呼ばれる。そのような例は、図示または説明されたものに加えて要素を含むことができる。しかしながら、本発明者らは、図示または説明された要素のみが提供される例も企図している。さらに、本発明者らはまた、特定の例(または、その1つもしくは複数の態様)に関して、または本明細書で図示もしくは説明される他の例(または、その1つもしくは複数の態様)に関して、図示または説明される要素(または、その1つもしくは複数の態様)の任意の組合せまたは置換を使用する例を企図している。
【0046】
本明細書においては、「または」という用語は、別段の指示がない限り、非排他的なものを意味するように、或いは、「AまたはB」は、「AではなくB」、「BではなくA」、および「AおよびB」を含むように使用されている。要約書は、読者が技術的開示の内容を迅速に確認することを可能にする目的で提供されている。要約書は、特許請求の範囲または意味を解釈または限定する目的で使用されないという理解の下で提供されている。また、上記の詳細な説明では、様々な特徴が本開示を簡素化するために共にグループ化され得る。これは、特許請求されていない開示された特徴が任意の請求項に必須であることを意図するものとして解釈されるべきではない。むしろ、本発明の主題は、特定の開示された実施形態の全ての特徴よりも少ない特徴に存在し得る。従って、添付の態様は、各態様が別個の実施形態として独立している状態で、例または実施形態として本明細書の詳細な説明に組み込まれ、そのような実施形態は、様々な組合せまたは置換において互いに組み合わせることができることが企図される。本発明の範囲は、添付の態様を参照して、そのような態様が権利を与えられる均等物の全範囲とともに決定されるべきである。
図1
図2
図3
図4A
図4B
図5A-5C】
図6
図7
【手続補正書】
【提出日】2023-06-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
半二重接続を介して衝突耐性全二重通信プロトコルを使用してデータを送信するための方法であって、
前記データを送信する第1のデバイスに対するデータ受信モードを終了させるステップと、
前記第1のデバイスが、第2のデバイスによる受信のために前記半二重接続を介してデータフレームを送信するステップと、
前記第1のデバイスが、前記第2のデバイスからの肯定応答に関して監視するステップと、前記肯定応答は、巡回冗長検査値を含んでおり、
前記データフレームが再送される必要があると決定するステップと、
前記第1のデバイスのデバイス役割を識別するステップと、
前記デバイス役割の識別に応じた時間に前記データフレームを再送信するステップと、を含む方法。
【請求項2】
前記半二重接続は、RS-485接続である、請求項に記載の方法。
【請求項3】
前記第1のデバイスは、物理アクセス制御システムのコントローラであり、前記第2のデバイスは、前記物理アクセス制御システムのリーダである、請求項に記載の方法。
【請求項4】
前記データフレームは、オプションフィールドと、ペイロードフィールドと、巡回冗長検査フィールドとを含んでおり、前記データフレームが再送信される必要があると決定するステップは、
前記第2のデバイスから前記肯定応答を受信すること、
前記肯定応答を前記データフレームの前記巡回冗長検査フィールドと比較すること、
前記肯定応答が前記巡回冗長検査フィールドに一致しない場合、前記データフレームが再送信される必要があると決定することを含む、請求項乃至のいずれか一項に記載の方法。
【請求項5】
前記データフレームが再送信される必要があると決定するステップは、前記第1のデバイスが、指定された時間期間内に前記第2のデバイスから肯定応答を受信することに失敗することを含む、請求項乃至のいずれか一項に記載の方法。
【請求項6】
実行可能なプログラムコードを含む非一時的コンピュータ可読媒体であって、前記実行可能なプログラムコードは、1つまたは複数のプロセッサによる実行時に、前記1つまたは複数のプロセッサに、
第1のデバイスのデータ受信モードを終了させること、
第2のデバイスによる受信のために半二重接続を介して前記第1のデバイスからデータフレームを送信すること、
前記第2のデバイスからの肯定応答を監視すること、前記肯定応答は、巡回冗長検査値を含んでおり、
前記データフレームが再送信される必要があると決定すること、
前記第1のデバイスのデバイス役割を識別すること、
前記デバイス役割の識別に応じた時間に前記データフレームを再送信すること、を行わせる、非一時的コンピュータ可読媒体。
【請求項7】
前記半二重接続は、RS-485接続である、請求項6に記載の方法。
【請求項8】
前記第1のデバイスは、物理アクセス制御システムのコントローラであり、前記第2のデバイスは、前記物理アクセス制御システムのリーダである、請求項6に記載の方法。
【請求項9】
前記データフレームは、オプションフィールドと、ペイロードフィールドと、巡回冗長検査フィールドとを含んでおり、前記データフレームが再送信される必要があると決定することは、
前記第2のデバイスから前記肯定応答を受信すること、
前記肯定応答を前記巡回冗長検査フィールドと比較すること、
前記肯定応答が前記巡回冗長検査フィールドに一致しない場合、前記データフレームが再送信される必要があると決定することを含む、請求項6乃至8のいずれか一項に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記データフレームが再送信される必要があると決定することは、前記第2のデバイスから指定された時間期間内に前記第2のデバイスから肯定応答を受信することに失敗することを含む、請求項6乃至8のいずれか一項に記載の非一時的コンピュータ可読媒体。
【外国語明細書】