(58)【調査した分野】(Int.Cl.,DB名)
第1のロック装置に暗号化されたユーザプロファイルを送信することであって、前記ユーザプロファイルはサーバ及び前記第1のロック装置により記憶されている秘密鍵を使用して前記サーバにより暗号化され、前記第1のロック装置は前記秘密鍵を使用して暗号化されたユーザプロファイルを検証するように構成されること、
移動装置が前記第1のロック装置と相互作用することに応じて位置データアイテムを生成することであって、前記位置データアイテムは前記移動装置の位置決定回路により生成されており且つ各時間における前記第1のロック装置の位置を示すこと、
1つ以上のロック装置に関する複数の位置データアイテムを記憶することであって、前記1つ以上のロック装置は前記第1のロック装置を含み、前記複数の位置データアイテムは生成された位置データアイテムを含むこと、
ユーザから少なくとも1つの位置パラメータ又は時間パラメータを取得することであって、前記位置パラメータは地図インターフェースに含まれるデータに関する1つ以上の位置領域を示し、前記時間パラメータは前記地図インターフェースに含まれる前記データに関する1つ以上の時間フレームを示すこと、
前記地図インターフェースを生成するときに、前記少なくとも1つの位置パラメータ又は時間パラメータを充足する位置データアイテムだけを含むように前記複数の位置データアイテムをフィルタリングすること、及び
前記複数の位置データアイテムにより示される前記1つ以上のロック装置の1つ以上の位置を示す前記地図インターフェースを生成すること
を行うように構成される1つ以上のプロセッサを備える、移動装置。
前記地図インターフェースを生成することは、前記地図インターフェース内に前記1つ以上のロック装置の最後の位置の指示を生成することを含む、請求項1に記載の移動装置。
前記1つ以上のプロセッサは、(i)前記ユーザから前記位置パラメータ及び前記時間パラメータを取得すること、及び(ii)前記地図インターフェースを生成するときに前記位置パラメータ及び前記時間パラメータを充足する位置データアイテムだけを含むように前記複数の位置データアイテムをフィルタリングすることを行うように構成される、請求項1に記載の移動装置。
移動装置により、第1のロック装置に暗号化されたユーザプロファイルを送信するステップであって、前記暗号化されたユーザプロファイルはサーバ及び前記第1のロック装置により記憶されている秘密鍵を使用して前記サーバにより暗号化されるステップと、
前記第1のロック装置により、前記秘密鍵を使用して前記暗号化されたユーザプロファイルを復号して、復号されたユーザプロファイルを生成するステップと、
前記移動装置により、前記移動装置が前記第1のロック装置と相互作用することに応じて、前記第1のロック装置の位置を示し且つ第1の関連タイムスタンプを有する第1の位置データアイテムを生成するステップと、
前記移動装置により、1つ以上のロック装置に関する複数の位置データアイテム及び関連タイムスタンプを記憶するステップであって、前記1つ以上のロック装置は前記第1のロック装置を含み、前記複数の位置データアイテム及び関連タイムスタンプは前記第1の位置データアイテム及び前記第1の関連タイムスタンプを含むステップと、
前記移動装置により、前記複数の位置データアイテムにより示される前記1つ以上のロック装置の位置を示す地図インターフェースを生成するステップと、
ユーザから少なくとも1つの位置パラメータ又は時間パラメータを取得するステップであって、前記位置パラメータは前記地図インターフェースに含まれるデータに関する1つ以上の位置領域を示し、前記時間パラメータは前記地図インターフェースに含まれる前記データに関する1つ以上の時間フレームを示すステップと、
前記地図インターフェースを生成するときに、前記少なくとも1つの位置パラメータ又は時間パラメータを充足する位置データアイテムだけを含むように前記複数の位置データアイテムをフィルタリングするステップと
を含む、方法。
前記地図インターフェースを生成することは、前記地図インターフェース内に前記1つ以上のロック装置の最後の位置の指示を生成することを含む、請求項4に記載の方法。
前記第1のロック装置により、前記復号されたユーザプロファイルのアクセススケジュールと前記第1のロック装置により維持される時間を比較するステップを更に含み、前記アクセススケジュールは、前記移動装置が前記第1のロック装置にアクセスできる時間を特定する、請求項7に記載の方法。
命令が記憶されている非一時的なコンピュータ可読記憶媒体を更に備え、前記命令は、携帯型ユーザ装置の第2のプロセッサにより実行されると、前記第2のプロセッサに、
前記携帯型ユーザ装置が各ロック装置と相互作用することに応じて、関連タイムスタンプを有する位置データアイテムを生成すること、及び
前記位置データアイテム及び前記関連タイムスタンプを前記サーバに送信すること
を行わせる、請求項9に記載のロック位置追跡システム。
【発明を実施するための形態】
【0016】
以下の詳細な説明では、その一部を形成する添付の図面が参照される。図面において、同様の記号は、文脈上それ以外を示す場合を除いて、典型的には同様の構成要素を識別する。詳細な説明、図面及び請求項に記載の例示的な実施形態は、限定することを意図していない。本明細書に提示された主題の精神又は範囲から逸脱することなく、他の実施形態が利用されてもよく、他の変更が行われてもよい。本明細書に概略的に記載され且つ図面に例示された本開示の態様は、広範な異なる構成で配置され、置換され、結合され、且つ設計され得る。これらの全ては明確に考慮され、本開示の一部とされる。
【0017】
本明細書には認証のための無線鍵管理の技術が記載されている。本明細書の開示によれば、サーバを利用する認証スキーム及び少なくとも2つの鍵を使用する暗号化スキームを介してユーザ装置(例えば、携帯電話、ラップトップ、タブレット装置等)と製品(例えば、南京錠、ドアロック、金庫等の電子ロック装置)との間の無線通信に追加のセキュリティが提供される。ユーザ装置が製品の動作を制御又は管理するように構成される状況では、開示された認証及び暗号化システムの使用は、製品が有効に制御されていることを確実にするために望ましい。本開示の中で、実施形態は、携帯電話のユーザ装置及び電子ロック装置の製品を参照して検討される。しかしながら、本開示は、携帯電話及び電子ロック装置を使用する実装に限定されず、他のタイプのユーザ装置及び製品を利用する実施形態も本開示の範囲内である。
【0018】
一部の例示の実施形態によれば、開示されたやり方は、2つの鍵を使用する暗号化に基づいている。一方の鍵(例えば、秘密鍵)が製品(電子ロック装置)及びサーバ(管理システム)において既知であり/保存されている。他方の鍵(例えば、アクセス鍵)がロック及びユーザ装置(携帯電話)において既知であり/保存されている。秘密及びアクセス鍵は共にロック/製品に固有のものである。このようにして、秘密及びアクセス鍵は、単一のロック/製品に一意に関連する。秘密鍵は、ロック/製品へのユーザのアクセス権を決定するために使用され得るファイル(例えば、ユーザプロファイル)を暗号化するために使用されてもよい。例えば、このようなアクセス権は、ユーザがいつロック/製品にリモートでアクセスすることができるか又はユーザがいつ装置を他のやり方で制御(例えば、電子ロック装置をロック又はアンロック)できるかを定義してもよい。アクセス鍵は、ロック/製品との通信を開始するのにユーザ装置により使用可能であり、ユーザ装置とロック/製品との間のチャレンジ・レスポンス交換の一部として使用されてもよい。
【0019】
また、本明細書で検討される鍵は、データが有効であり、対応する鍵の他の保有者から来たものであることを認証するために使用されてもよい。このようなデータの完全性及びソースの認証/真正性は、(例えば、秘密鍵又はアクセス鍵を使用して)送信されたデータのMAC(メッセージ認証コード)を計算することによって行われてもよい。従って、本明細書で更に検討されるように、サーバがユーザプロファイルを暗号化すると、暗号化されたプロファイルを受信する装置(例えば、ロック装置)は、MACが正しいことを確認するために秘密鍵のコピーを使用してもよい。同様に、ロックがデータを送信しているとき、それは秘密鍵を使用して、サーバにより確認されるMACを計算してもよく(データがサーバに向けられている場合)、サーバは秘密鍵を使用してMACを確認してもよい。代替的に、本明細書で検討される任意の通信は暗号化されていなくてもよく(例えば、平文パケット等)、MACは送信されたデータに対して計算され且つ送信されたデータと共に含まれてもよい。次に、MACは、データが正当なソースから送信されていることを確認するためのセキュリティ手段として使用されてもよい。更に、ロック及び移動装置が通信しているとき、各々はアクセス鍵のコピーを使用してMACを計算してもよく、各装置はデータを検証し、且つアクセス鍵を使用してソースを認証してもよい。従って、MACのこのような使用は、データが適切なソース(即ち、サーバ、移動装置、又はロック)から来ていること、及びデータが有効であることも確実にすることができる。
【0020】
図1を参照すると、一実施形態による、認証のための無線鍵管理のためのシステム100のブロック図が示されている。システム100は、少なくとも1つユーザ装置102、サーバ104、及び製品106を含む。例示的な実施形態では、ユーザ装置102は、移動装置(例えば、携帯電話)であり、製品106は電子ロック装置である。一般に、ユーザ装置102は、製品106の動作を少なくとも部分的に管理するように構成される。例えば、携帯電話は、電子ロック装置の機能をアンロック、ロック、及び他のやり方で管理するために使用されてもよい。ユーザ装置102は、このような製品管理(例えば、プロセッサ102、メモリ102b、タイマ102c、トランシーバ102d及び102e、ユーザ入力装置102f等)に必要なコンポーネントを含む。プロセッサ102は、任意の市販のプロセッサであってもよく、1つ以上のプロセッサを表してもよく、汎用プロセッサ又は特定用途向け集積回路として実装されてもよい。メモリ102bは、プロセッサ102のメモリ(例えば、キャッシュ)、RAM、又は他の記憶装置(フラッシュメモリ、ハードディスク記憶装置等)を含んでもよい。タイマ102cは、ユーザ装置102に対する時間値を維持するように構成される。例えば、タイマ102cは、プロセッサ102のクロックであってもよく、又は装置102の任意の他の時間管理回路であってもよい。タイマ102cによって維持される時間値は、(例えば、製品106と時間を同期する際、ロギング用にイベントに関連するタイムスタンプを提供する際等)本明細書で更に検討される安全な通信に使用されてもよい。トランシーバ102d及び102eは、異なるプロトコルの通信のために様々なタイプのトランシーバを含んでもよい。一実施形態では、トランシーバ102dは、セルラネットワークを介してサーバ104と通信するためのセルラコンポーネントを含む。一実施形態では、トランシーバ102dは、インターネット又は他のネットワークを介してサーバ104と通信するための有線又は無線(例えば、Wi−Fi)コンポーネントを含む。無線トランシーバ102dは、製品106と通信するように構成される。一実施形態では、無線トランシーバ102dは、製品106とのブルートゥース(登録商標)接続を確立するためのブルートゥース(登録商標)コンポーネントを含む。ユーザ装置102は、(例えば、プロセッサ102及びメモリ102bを介して)ユーザ装置上で実行するように構成される管理アプリケーションの使用を介して製品106を管理することができる。例えば、アプリが携帯電話に(即ち、ユーザ装置102のメモリ102bに)インストールされてもよく、アプリは無線接続を通じて(無線トランシーバ102dを介して)電子ロック装置(即ち、製品106)を構成及び制御するために使用されてもよい。ユーザが装置102、サーバ104、製品106及び装置で実行中の任意のアプリケーションと相互作用することを可能にするために、1つ以上のユーザ入力装置102f(例えば、タッチスクリーン、ボタン、スピーカ、ディスプレイ、キーボード)がユーザ装置102に含まれてもよい。
【0021】
製品106が電子ロック装置等のロック装置である実施形態では、典型的には電子ロック装置の論理を提供するためのプロセッサ106a及び高電流負荷(例えば、プロセッサにより制御可能な電動ロック機構106g)を含む。高電流負荷は、以下で検討される1つ以上のロック機構106g(例えば、シャックル、ピン、メモリ等)を含んでもよい。また、電子ロック装置は、プロセッサと並列に高電流負荷に電力を供給するためのバッテリ106d及びコンデンサを含んでもよい。電子ロック装置は、ユーザが装置(例えば、キーパッド、タッチスクリーン、タッチセンサ領域、ダイヤル、組み合わせ錠インターフェース、ボタン、キーホール等)を管理するために、1つ以上の物理的及び/又はデジタルインターフェース106eを含んでもよい。電子南京錠の回路(例えば、プロセッサ106a)は、バッテリ106dが高電流負荷106gを駆動している間、(一部の実施形態ではバッテリではなく)コンデンサによりプロセッサに電力が供給されるように構成されてもよい。一実施形態では、回路は、本明細書で検討される安全な通信に使用可能な製品の時間値を維持するように構成されるタイマ106cも含む。一実施形態では、電子ロック装置は、電子ロック装置の位置を提供するために使用され得るGPS受信機等の位置決定回路106hを含む。様々な実装において、位置決定回路106hは、無線トランシーバ106fの一部又はそれから離れていてもよい。一実施形態では、電子ロック装置は、電子組み合わせ又はキーパッド南京錠等の電子南京錠である。他の実施形態では、電子ロック装置は、限定されないが、電子ドアロック又はキーパッド装置(例えば、キーパッドデッドボルト)、電子金庫(例えば、小型文書金庫、電子鍵金庫等)、電子箱錠又は埋め込み錠又は他のタイプの戸棚錠、電子自動アクセサリロック(例えば、カプラロック、ヒッチピンロック、トレーラロック等)、及び/又はハンドル又は自動車用のドアロック、自転車、オートバイ、スクータ、ATV及び/又はスノーモービル等の他の電動若しくは非電動車両用の車両ロック(例えば、ホイールロック又はイグニションロック)、収納チェスト、電子ロック付きケース(例えば、文書ケース又は小型貴重品用のケース)、電子ケーブルロック(例えば、コンピュータ装置を固定等するためのアラーム対応ケーブルロック)、安全目的でアクセスを保護するための(例えば、電気工事が行われている間に電気制御ボックスを保護するための)安全ロックアウト/タグアウト、電子ロック付きのロッカー、及び/又は電子手荷物ロックであってもよく、又はそれらを含んでもよい。一実施形態では、ロック装置は、(例えば、メモリ等に記憶されている)セキュアデータへのアクセスを提供し又はセキュアデータを記憶するように構成される。例えば、物理ロックコンポーネントを含むのではなく(又は物理ロックコンポーネントに加えて)、ロック機構106gは、セキュアメモリを含んでもよい(例えば、メモリ106bは暗号化ハードドライブ等を含んでもよい)。このようなロック装置は、本明細書で検討される認証技術に基づいて(例えば、無線トランシーバ106fを介して)通信を行ってもよい。例えば、認証時に、ロック装置は、記憶されている秘密鍵を使用して、メモリ106bに記憶されているセキュアコンテンツを復号してもよい。次に、復号されたコンテンツは(例えば、無線トランシーバ106fを介して)別の装置に提供されてもよい。一実施形態では、電子ロック装置は、(例えば、ユーザのタッチに基づいて、ユーザの動作に基づいて等)ユーザの存在を検出するように構成されるタッチ検出装置及び/又は近接検出装置を含む。
【0022】
図1Bを参照すると、一実施形態による電子ロック装置100bの例が示されている。電子ロック装置100bは、典型的には、1つ以上のロック機構(例えば、ロック機構106g)を含む。例えば、電子ロック装置は、シャックル160、インターフェース162を含んでもよい。一実施形態では、インターフェース162は、本明細書で更に検討されるように、ユーザのタッチに応じて、電子ロック装置100bを覚醒させるように構成されるタッチセンサを含む。一実施形態では、インターフェース162は、本明細書で更に検討されるように、近接ユーザの検出に応じて、電子ロック装置100bを覚醒させるように構成される近接センサを含む。一実施形態では、インターフェース162は、ユーザが(例えば、シャックル160を解除するため等)ロックにコードを入力することを可能にするように構成される機械式ダイヤルを含む。様々な処理及び機械コンポーネント164が、電子ロック装置100bのケース166内に組み込まれてもよい。例えば、処理及び機械コンポーネント164は、
図1の製品106を参照して検討される1つ以上のコンポーネント(例えば、プロセッサ106a、メモリ106b、タイマ106c、バッテリ106d、無線トランシーバ106f、ロック機構106g等)を含んでもよい。
【0023】
再び
図1を参照すると、例示的な実施形態では、製品106は、1つ以上の無線技術(例えば、無線周波数、無線自動識別(RFID)、Wi−Fi、ブルートゥース(登録商標)、ZigBee
(登録商標)、近距離無線通信(NFC)等)による通信のための無線トランシーバ106fを含む。例えば、無線トランシーバ106fは、(例えば、無線トランシーバ102dを介して)ユーザ装置102とのブルートゥース(登録商標)に基づく接続を確立するように構成されるブルートゥース(登録商標)トランシーバであってもよい。従って、本明細書で検討される電子ロック装置は、無線トランシーバを介して、ロックへの組み合わせ式入力又はキーパッド入力以外の、別のユーザインターフェース装置(例えば、ユーザ装置102のユーザ入力装置102f、サーバ104のネットワークインターフェース104e等)を使用してロック又はアンロックされるように備えられてもよい。例えば、無線で電子ロック装置をロック/アンロック/制御するために無線通信が使用されてもよい(例えば装置をロック又はアンロックするために携帯電話上のアプリケーションが使用されてもよい)。また、一実施形態では、製品106の回路は、別の装置との物理的接続を確立するために使用可能な入力/出力ポート(例えば、USBポート、COMポート、ネットワークポート等)も含む。例えば、このような物理的接続は、製品106をプログラムするか又は製品106と通信するために製造業者により使用されてもよい。
【0024】
サーバ104は、一般に、ユーザ装置102と通信して、認証鍵及び暗号化機能を提供するためのコンポーネント(例えば、プロセッサ104a、メモリ104、ネットワークインターフェース104e等)を含む。サーバ104とユーザ装置102との間の通信は、直接的であってもよく、又は中間ネットワーク(例えば、インターネットネットワーク、セルラネットワーク等)を介してであってもよい。例えば、ネットワークインターフェース104eは、サーバ104が装置102のトランシーバ102dとの接続を確立することを可能にするように構成される物理ネットワークコンポーネント(例えば、ネットワークカード等)を含んでもよい。一実施形態では、ネットワークインターフェース104eからの通信はセルラインターフェースを介してルーティングされて、サーバ104がセルラネットワークを介して装置102と通信することを可能にする。一実施形態では、ネットワークインターフェース104eは、サーバ104が装置102とのインターネットに基づく通信を確立することを可能にする。サーバ104は、1つのサーバ(物理的又は仮想サーバ)であってもよく、又は複数のサーバを含んでもよい。サーバ104は、認証及び暗号化のために使用される鍵(例えば、秘密鍵、アクセス鍵等)を生成して保存するように構成される1つ以上のサービスを含んでもよい。一実施形態では、メモリ104の様々なモジュールは、サーバ104の異なる機能を提供する。例えば、デバイスインターフェースモジュール104cは、ユーザ装置102との通信を確立して管理するために使用されてもよい。セキュリティモジュール104dは、セキュリティ関連機能(例えば、鍵を生成し且つ保存すること、ユーザプロファイルを暗号化すること等)のために使用されてもよい。セキュリティモジュール104dの出力がデバイスインターフェースモジュール104cに提供されてもよく、その結果、デバイスインターフェースモジュールは装置102にセキュリティ関連データを伝達してもよい。一実施形態では、アクセス鍵及び暗号化ユーザプロファイルが、デバイスインターフェースモジュール104cの要求に応じてセキュリティモジュール104dにより提供されてもよい。アクセス鍵及び暗号化ユーザプロファイルを受信すると、デバイスインターフェースモジュール104cは、アクセス鍵及び暗号化ユーザプロファイルをユーザ装置102に(例えば、ネットワークインターフェース104eからセルラネットワークを介して)送信してもよい。このように、ユーザ装置102は、セキュリティモジュール104dに直接的にアクセスしない。一実施形態では、デバイスインターフェースモジュール104c及びセキュリティモジュール104dは、2つの別個のサーバ104に設置される。
【0025】
以下の検討には、電子ロック装置(即ち、製品106)及び移動装置(即ち、ユーザ装置102)を有する実施形態が記載されている。ロックが製造されるとき、又はその直後、2つの鍵(秘密鍵及びアクセス鍵)が生成されて、ロックと連携され得る。例えば、秘密鍵及びアクセス鍵は、それぞれがロックに関する一意のシリアルID又は他の識別番号に関連付けられてもよく、ロックのメモリに記憶されてもよい。一実施形態では、一方又は両方の鍵が一意の及び/又はランダム生成の鍵である。一実施形態では、(例えば、サーバ104により)製品を表す一意のコードが生成され、この一意のコードはロックを対応する鍵に結び付けるために使用され得る。例えば、このような一意のコードは、ユーザがロック及び移動装置を適切に構成できるように、ロックの製品包装に固定されてもよい。一実施形態では、別個の一意のコードがセキュリティ及びアクセス鍵の各々に提供され、一意のコードの各々が、製造業者により各セキュリティ又はアクセス鍵に関係付けられてもよい。一実施形態では、サーバ104は、秘密鍵及びアクセス鍵も生成する。例えば、サーバ104は、製造工程の間にアクセスされ得る鍵生成サービスを提供してもよい。鍵は任意の生成アルゴリズムに従って生成されてもよい。しかしながら、秘密鍵及びアクセス鍵は、一般的には、互いから導出されない。生成した後、秘密鍵のみがサーバ104及びロックに保存される。秘密鍵は移動装置に送信されない。しかしながら、アクセス鍵は、ロック及び移動装置の両方に提供されてもよい。
【0026】
ユーザがロックを獲得すると、ユーザは、ロックをその鍵に結び付けるために使用される一意のコードを使用してロック及びユーザの移動装置の両方を構成してもよい。
図2を参照すると、一実施形態による、製品及びユーザ装置を構成するための処理200のフロー図が示されている。代替的な実施形態では、より少ない、追加の、及び/又は異なるステップが実行されてもよい。また、フロー図の使用は、行われるステップの順序に関して限定することを意図していない。
【0027】
一意のコードが取得される(202)。例えば、ユーザは、一意のコードを取得するために包含された製品包装を参照してもよく、ユーザは他のやり方で(例えば、製造業者ウェブサイト、電話等を介して)一意のコードを取得するために製造業者に接触してもよい。次に、ロックをユーザと関係付けるために、一意のコードは管理サーバに提供される(204)。例えば、ユーザは移動装置で実行中のアプリケーションのユーザインターフェースに一意のコードを入力してもよく、次に移動装置は一意のコードをサーバに送信する。このような例示では、ユーザは、管理サーバにより提供され且つ移動装置上のブラウザアプリケーションを介してアクセスされるフロントエンドインターフェース内で一意のコードを入力してもよい。代替的に、ユーザは、移動装置を使用して、一意のコードを取得し且つ送信するためにロックの包装をスキャンしてもよい。例えば、一意のコードは、バーコード、QRコード(登録商標)、光学コード等により符号化されてもよく、移動装置のカメラは一意のコードをスキャンして決定するために使用されてもよい。移動装置から一意のコードを受信することに応じて、サーバは秘密鍵及びアクセス鍵を(例えば、要求に応じて)取得し又は新たに生成することができ、次に秘密鍵及びアクセス鍵は一意のコードに関係付けられてもよい。
【0028】
次に、サーバはユーザプロファイルを生成してもよく(206)、これは一意のコードに関係付けられてもよい。ユーザプロファイルがまだ存在していない場合、新しいプロファイルを生成するために、デフォルト値、又は移動装置を介してユーザにより提供された値が使用されてもよい。例えば、ユーザは、移動装置のアプリケーションにプロファイルデータを入力してもよく、移動装置は一意のコードと共にサーバにプロファイルデータを送信する。ユーザがプロファイルを既に作成している場合、サーバは、その代わりに移動装置を介してユーザにより提供される新しい値でユーザプロファイルを更新してもよい。
【0029】
一般に、ユーザプロファイルは、上記の実施形態におけるロックである製品の動作に関連するデータを含む1つ以上のファイルを含んでもよい。例えば、ユーザプロファイルは、ロックがいつアクセス(アンロック、ロック等)され得るかのユーザスケジュールを含んでもよい。スケジュールは、対応する許可ごとに、例えば、曜日により、開始時間(時間、分等)及び終了時間(時間、分等)を含むロックアクセス許可を特定してもよい。例えば、スケジュールは、電子ロックが移動装置を介してアンロックされ得る時間間隔を特定してもよい。別の例示として、スケジュールは、典型的な相互作用が起こると予想される時間周期、及びこうした時間周期に基づいて決定され得る信頼レベルを特定してもよい。従って、予想される時間周期内に送信されるアンロック要求は、予想外の/非典型的な時間に送信される要求よりもロックによって信頼されてもよい。また、移動装置は、スケジュールを自動的に調節してもよい。例えば、移動装置は、ロックとのユーザの相互作用のログ/記録を取ってもよく、ユーザの予想されるアクションに基づいてスケジュールを設定してもよい。一実施形態では、(例えば、製造業者等により)デフォルトユーザスケジュールが設定される。更に、典型的にはユーザスケジュールのリストは、ユーザが多くの構成オプションの1つから選択することを可能にするように提供されてもよい。このように、製造業者は、様々な推奨動作設定をユーザに提供してもよい。また、ユーザは、スケジュールをカスタマイズして、所望のスケジュールに調整してもよい。
【0030】
ユーザプロファイルは、ロックのモデル/シリアル番号及びどのようなタイプのアクセスがそのユーザに利用可能であるかを更に特定してもよい。例えば、このようなアクセスは、とりわけ、ロックのソフトウェア/ハードウェアバージョン情報を読み取ること、ロックのソフトウェアを更新すること、ロックのシャックル状態を読み取ること、ロックすること、アンロックすること、解除すること、時間/クロックの値を読み取る/設定すること、バッテリレベルを読み取ること、イベント関連データ(例えば、フラグ、カウンタ等)を読み取る/消去すること、ロックのログを読み取ること、ロックのキーパッドコードを読み取る/設定する/リセットすること、ロック用の通信データ(例えば、送信状態、送信電力レベル、チャネル情報、アドレス情報等)を読み取ること、ロック用に記憶されたデフォルト値(例えば、デフォルト解除時間、デフォルトアンロック時間)を読み取る/設定することを含んでもよい。また、ユーザプロファイルは、プロファイル用の開始時間及び取り消し日/時間(即ち、プロファイルが有効であり始めるとき及びプロファイルが満了してもはや有効ではなくなるとき)を特定してもよい。ユーザプロファイルは、ロック用の最大解除/アンロック時間を提供してもよい。ユーザプロファイルは、対応する移動装置の信頼レベルの指示(例えば、移動装置により提供された時間値/タイムスタンプが信頼できるかどうか)を提供してもよい。ロックは、装置の信頼レベルに基づいて所定の機能を許可する又は無効にするように構成されてもよい。信頼レベルは、ユーザがアクセスを有する又は有さない独立許可として記憶されてもよい(例えば、信頼レベルは、ロック、移動装置又はサーバ等のソフトウェアにより管理/調節されてもよい)。例えば、高信頼装置のみがロックのファームウェアを更新する又は所定の設定を変更することが可能であってもよい。更に、ロックは、信頼レベル及び時間値を計算に入れるセキュリティアルゴリズムを有してもよい。例えば、装置がより頻繁にロックとの相互作用を成功させると、ロックは装置に対する信頼レベルを増加(又は調節)してもよい。しかしながら、時間値がロックの維持時間との同期外であり又は認証が失敗する場合、ロックは装置に対する信頼レベルを低下(又は調節)してもよい。移動装置により提供される時間値はロックにより維持される時間値と比較されてもよく、2つの時間の間の近接度は装置に対する信頼レベルを示すために使用されてもよい(例えば、2つの時間が同期するのに近いほど、信頼レベルは高くなる等)。信頼レベルが所定の閾値を下回る場合、ロックは移動装置との相互作用を中断又は制限してもよい。また、信頼レベルは、先に検討されたスケジュールに基づいてもよい。例えば、移動装置は、装置がロックにアクセスしている時間、及びその時間がスケジュールにより定義された所定の時間周期内に入るかどうかに基づいてより信頼されている又はあまり信頼されていないと見なされてもよい。また、移動装置により提供される時間値は、ロックのクロックを移動装置のそれと同期するために使用されてもよく、又は認証された通信の間に他のやり方で使用されてもよい。検討された任意のプロファイルアイテムは、デフォルト値(例えば、製造業者のデフォルト)又はユーザ提供値を有してもよい。プロファイルは上記のデータに限定されず、追加データが含まれてもよい。また、プロファイルは、後で取得するためにサーバに記憶されてもよい。
【0031】
ユーザ(例えば、ロックの所有者)に対してプロファイルを生成することに加えて、ユーザは、友人、家族、同僚等と共有される追加のゲストプロファイルを作成することを望む場合がある(208)。このように、ユーザは、ゲストプロファイルに基づいて、ロックへのアクセスを別の人物に許可してもよい。そうするために、ユーザは、(複数の)追加の人物用に(移動装置を使用して)所望のプロファイル値を入力してもよい。ユーザのプロファイルの作成と同様に、ゲストプロファイルデータは、サーバに送信されて、以下で更に検討されるように処理されてもよい。ゲストプロファイルデータは、ユーザが自身のプロファイルを最初に生成するときと同時に又は別に(例えば、後の時間に)サーバに送信されてもよい。移動装置は、ユーザに提供されるプロファイルのタイプ(例えば、所有者とゲスト)を区別する情報を含む。
【0032】
少なくとも1つのプロファイルが生成された後で、ユーザはロックの所有者として特定のロックに関係付けられる。一部の実施形態では、関係付けは、(例えば、ステップ204で)サーバに提供された一意のコードのみに基づいてもよい。一実施形態では、一意のコードを提供した後で、移動装置は、一意のコードを使用して、ロックの製造業者のサーバ又はデータベースからロックに関連する追加情報(例えば、シリアルID、モデル番号等)を自動的に取得してもよい。代替的な実施形態では、シリアルID、モデル番号又は他のコードは、ユーザにより(例えば、製品包装等を参照することにより)提供されてもよく、このような追加データは、ユーザをロックと関係付ける際に一意のコードと共に利用されてもよい。一部の実施形態では、ユーザをロックと関係付ける前にユーザの追加認証が要求されてもよく、このような認証は移動装置を介して提供されてもよい。
【0033】
次に、管理サーバは取得したプロファイルデータを検証してもよい。取得したプロファイルデータを検証するために、管理サーバは、データの完全性を確実にするためにプロファイルに巡回冗長検査(CRC)を行ってもよい。また、他のデータ検証方法が利用されてもよい。例えば、例示的な実施形態では、秘密鍵を使用して、メッセージ認証コード(MAC)(例えば、鍵付きハッシングメッセージ認証コード(HMAC))が生成され且つデータ完全性の検証に使用されてもよい。本開示の範囲は所定のデータ完全性確認方法に限定されない。次に、サーバは、プロファイルデータを暗号化プロファイル(例えば、暗号文)に変換するために、秘密鍵を使用してプロファイルデータを暗号化することができる。プロファイルは、任意の既知の暗号化標準に従って暗号化されてもよい。例示的な実施形態では、プロファイルは、CCMモード(暗号ブロック連鎖MACによるNIST/FIPSカウンタモード暗号化)に基づくアルゴリズムを使用して暗号化され、暗号鍵として使用される秘密鍵は128ビット長を有する。従って、サーバはユーザプロファイルを暗号化し、また秘密鍵を使用してMACを生成してもよい。代替的に、異なる鍵で暗号化を行ってMACを生成する等、他の標準も使用され得る。
【0034】
一実施形態では、本明細書で検討される管理サーバは、管理サーバのグループの中の1つである。このような実施形態では、第1の管理サーバが移動装置との通信を処理するように構成されてもよく、第2の管理サーバがセキュリティ機能(例えば、鍵の記憶、鍵の生成、暗号化/復号化処理等)を処理するように構成されてもよい。このように、第1のサーバは、移動装置から通信を受信してもよく、セキュリティ機能が要求されると第2のサーバと通信してもよい。例えば、第1のサーバは、第1のサーバが最初に受信したプロファイルデータを暗号化するために、第2のサーバが提供するサービスを要求してもよい。次に、第2のサーバは、暗号化データを暗号化して第1のサーバに提供し、それは次に暗号化データを移動装置に送信してもよい。他のサーバ構成も想定される。
【0035】
暗号化した後、暗号化プロファイルは、サーバから移動装置に送信される(210)。また、サーバは、対応するアクセス鍵を移動装置に送信する(210)。例示的な実施形態では、アクセス鍵は、128ビット長を有する。アクセス鍵は、(例えば、ステップ202−204で検討されたように)一意のコードを使用してサーバにより決定され得る。次に、受信した暗号化プロファイル及びアクセス鍵は、ロックと移動装置の関係付けを完了するために、移動装置のメモリに記憶される。次に、ユーザは、自身の移動装置を使用してロックと相互作用してもよい(212)。
【0036】
ゲストプロファイルが生成された状況において、一部の実施形態では、サーバは、ユーザプロファイルに対して行われる同様のセキュリティ手続きを行ってもよい。例えば、ゲストプロファイルは、秘密鍵を使用して記憶され且つ暗号化されてもよい。一部の実施形態では、ゲストプロファイルの場合、サーバは、暗号化ゲストプロファイルを暗号化して送信する前に、最初にゲストに通知を送信してもよい。例えば、サーバは、ユーザがゲストプロファイルを設定したときに、ユーザが提供した情報(例えば、Eメールアドレス、電話番号等)に基づいてゲストに通知Eメール又はテキスト/SMSメッセージ/警告を送信してもよい。次に、通知を受信すると、ゲストは、ユーザが作成した自身のプロファイルをアクティブ化してもよい。例えば、通知は、(例えば、Eメール又はメッセージ内に)クリックされるアクティベーションリンク又はゲストが提供することを要求されるコードを含んでもよい。また、ゲストは、本明細書で検討される管理アプリケーションをインストールし、アクティベーションコードを使用してゲストプロファイルをアクティブ化するためにアプリケーションを使用してもよい。管理アプリケーションをアクティブ化及びインストールすると、サーバは、暗号化ゲストプロファイル及びアクセス鍵を生成して、管理アプリケーションを介してゲストの移動装置に送信し得る。暗号化ゲストプロファイル及びアクセス鍵を受信した後で、各々はゲストの装置をロックと関係付けるためにゲストの移動装置に記憶されてもよい。次に、ゲストは、自身の移動装置を使用してロックと相互作用してもよい(212)。
【0037】
プロファイルが構成された後で、ユーザ(又はゲスト)は、移動装置を介して無線でロックと相互作用してもよい。例えば、ユーザは、ロック、アンロック、又はロックの設定を調節等してもよい。一実施形態では、ロックは覚醒し/近接ユーザの存在を検出し、相互作用処理を開始してもよい。例えば、ロックは近接検出機能を含んでもよく、又はユーザは能動的にロック(例えば、ロックのタッチセンサの場所、物理的ボタン等)にタッチしてもよく、又はユーザの移動装置はロックを覚醒させるために共通チャネルで信号を送信してもよい。ロックは、覚醒されると、ユーザの移動装置と接続しようとし得る。例えば、ロックは、そのモデル及びシリアル番号情報(又は他の一意のロックID情報)をブロードキャストして、移動装置からの応答を待ってもよい。移動装置は、ロック情報を受信して、それを管理アプリケーションにより維持されるプロファイルと比較し得る。例えば、管理アプリケーションは、一度に複数の異なるロック用のプロファイルを維持し得る。一致が見つかると(例えば、プロファイルがその特定のタイプのロック用に見つかると)、認証手続きが開始されて一致したプロファイルを検証してもよい。プロファイルが検証され、ユーザがその特定の時間に(即ち、プロファイルのスケジュールデータに基づいて)アクセスを有し、且つユーザの時間/装置が信頼できる場合、ユーザは、ロックをアンロックして、ロックとの他の相互作用を行ってもよい。また、認証の後で、必要に応じて、ロックの時間及び移動装置の時間が同期されてもよい。
【0038】
図3を参照すると、一実施形態による、ユーザ装置と製品との相互作用を行うための例示の処理のフロー
図300が示されている。代替的な実施形態では、より少ない、追加の、及び/又は異なるステップが実行されてもよい。また、フロー図の使用は、行われるステップの順序に関して限定することを意図していない。
【0039】
一部の実施形態では、ロックは、低電力スタンバイ又はスリープ状態から覚醒されてもよい。例えば、ロックはユーザにより接触されてもよく、又はユーザの近接が自動的に検出されてもよい。スタンバイ/スリープ状態は、ロックが完全に動作可能な覚醒状態にある場合よりも少ない電力(例えば、バッテリ電力)を使用し得る。一部の実施形態では、ロックは、常に完全機能状態にあってもよく、スタンバイ/スリープ状態から覚醒されなくてもよい。
【0040】
ロックは、一意のID(例えば、そのモデル及び/又はシリアル番号から形成される識別子)をブロードキャストすることによって、そのタイプ情報をアドバタイズしてもよい(304)。ロックと装置との間の通信は、任意のタイプの無線通信プロトコルを介して行われてもよい。一実施形態では、移動装置及びロックはブルートゥース(登録商標)接続を介して通信する。別の実施形態では、移動装置及びロックはWi−Fi接続を介して通信する。別の実施形態では、移動装置及びロックはZigBee接続を介して通信する。別の実施形態では、移動装置及びロックはNFC接続を介して通信する。更に、移動装置とロックとの間で伝達される任意のデータ(例えば、送信されるパケット)は、任意の既知のセキュリティプロトコル(例えば、WEP、WPA、ユーザ/製造業者パスワード等)に従って更に保護されてもよい。一実施形態では、移動装置とロックとの間で送信されるデータは、アクセス鍵を使用して暗号化される。この実施形態では、移動装置及びロックの両方は、それぞれが記憶されたアクセス鍵のコピーを有するので、データを暗号化及び復号することができる。受信したデータを復号すると、移動装置及びロックの両方は、例えば、復号データに対してMAC確認スキームを使用して、CRC検査を実行すること等によって、復号データの完全性を更に確実にしてもよい。また、このようなMAC確認スキームは、データが適切なソース(即ち、MACを生成するために使用される鍵の他の保有者等)から発信されたことを移動装置及びロックが検証することを可能にする。
【0041】
ユーザ装置は、ロックの情報(例えば、ロックのID)を受信し且つ確認する(306)。一実施形態では、移動装置がロックに関係付けられているかどうか(例えば、ロックのIDに対応するプロファイルが存在するかどうか)を決定するために、ロックのIDは移動装置に記憶されているプロファイルのリストと比較される。一致するプロファイルが見つからない場合、ユーザは、ロックを秘密鍵に結び付ける一意のコードを使用して、(例えば、プロセッサ200を介して)プロファイルを作成するように促されてもよい。ロックに関するプロファイルが見つかる場合、ユーザ装置は、ロックに要求(例えば、アンロック要求等)を送信してもよく、要求に従う前に認証手続きが開始され得る。
【0042】
ロックは、チャレンジを生成して、チャレンジをユーザ装置に送信する(308)。一実施形態では、ロックは、チャレンジとしてロング乱数を生成する。別の実施形態では、ロックは、通信セッションによって異なるデータを生成する(例えば、各通信セッションごとにチャレンジとして一意の数(セッション識別子)が生成されてもよい)。一実施形態では、チャレンジは平文として移動装置に送信される。しかしながら、別の実施形態では、チャレンジはアクセス鍵を使用して暗号化されてもよい。移動装置は、(先に検討された構成の間にサーバから受信した)アクセス鍵及びセキュリティアルゴリズムを使用してチャレンジに対するレスポンス(例えば、ロングレスポンス)を計算する(310)。一実施形態では、移動装置は、アクセス鍵を使用して、レスポンス及びレスポンスと共に送信されるMACを生成する。一部の実施形態では、移動装置とロックとの間の通信は、逐次同定(例えば、パケット又はメッセージの逐次同定)に基づいて更に保護される。例えば、逐次同定によって、移動装置は、受信したパケットごとに特定の順番に従うフィールドを送信してもよい。次に、ロックは、既知の順番に対して受信したパケットを検証してもよい。このような既知の順番は、ロックにより事前決定され又は生成されてもよく、また通信中にロックにより移動装置に提供されてもよい。従って、このシーケンシングは、上記の1つ以上の他の方法と共に使用されてもよく(例えば、既定の初期シーケンスフィールド値と共にセッション識別子が使用されてもよい)、又はシーケンシングはそれ自身により使用されてもよい(例えば、ロックは、接続時にシーケンスフィールドの初期値を提供してもよい)。一実施形態では、接続時に、移動装置はロックから初期シーケンス番号を受信し、ロックは後で受信したメッセージが受信したメッセージごとに1つ増分された初期番号を含むことを検証する。ロックは、受信したメッセージがアクセス鍵を使用して暗号化され及び/又はそれから計算されるMACを含むことを更に検証してもよい。
【0043】
次に、移動装置は、レスポンス及び(先に検討された秘密鍵を使用してサーバにより暗号化された)対応する暗号化プロファイルをロックに送信し得る(312)。一実施形態では、移動装置は、移動装置のクロックに基づいて現在のタイムスタンプも送信する。ロックは、秘密鍵及びアクセス鍵の両方を記憶しているので、こうした鍵を使用して移動装置から受信したデータを認証してもよい。一実施形態では、ロックは、チャレンジに対するレスポンスが正しいことを検証し、且つMACを検証するためにアクセス鍵を使用する(314)。一実施形態では、ロックは、プロファイルを受け入れて復号しようとする前にレスポンスが検証されることを要求する。チャレンジ・レスポンス処理の遂行が成功すると、ロックは、受信したデータの正当性を確認することができる。ロックは秘密鍵を使用して暗号化プロファイルを復号することができ、ロックは、復号が成功したこと及びデータが実際に正しいソースから来たこと(例えば、暗号化プロファイルがサーバ等により生成されたこと)を確実にするために(例えば、秘密鍵又は他の確認スキームから生成されたMACを使用して、例えば、CRC検査を行って)復号プロファイルデータのデータの正当性を確認してもよい。また、ロックは、(例えば、復号プロファイルに含まれるスケジュール情報を参照することによって)その検証された時間にプロファイルがアクセスを有することを確実にしてもよい。移動装置がタイムスタンプを送信した実施形態では、ロックは、タイムスタンプをロックの現在の時間と比較することによってタイムスタンプを検証してもよい。レスポンス及び復号プロファイルの各々が検証される場合、ロックは、移動装置の要求に従って、対応するアクションを開始してもよい(316)。先に検討されたタイムスタンプを利用する実施形態では、受信したタイムスタンプは、ロックにより維持される時間から閾値量の時間内であることが要求されてもよい。この例示では、ロックは、要求されるとそのシャックルをアンロックできる。
【0044】
ロックが(そのメモリにセキュアデータを記憶するように)デジタルロック装置として構成される別の実施形態では、ロックは、ロックに記憶されているコンテンツを復号するために秘密鍵のコピーを使用してもよい。従って、このようなロック装置に対して所定のデータを取得又は記憶するように移動装置から要求が受信される場合、このようなデータの転送が要求に応じて開始されてもよい。例えば、移動装置がデータを記憶することを要求し、認証中に提供された対応する暗号化プロファイルがこのようなアクションを許可し、先に検討された認証が成功した場合、移動装置は、ロック装置へのデータの送信に進んでもよい(またロック装置はこのようなデータを受信してもよい)。次に、ロック装置は、受信したデータをそのメモリに記憶してもよい。受信したデータがまだ暗号化されていない場合、ロック装置は、秘密鍵を使用して記憶されるデータを暗号化してもよぃ。別の例示として、移動装置がデータを取得することを要求し、認証中に提供された対応する暗号化プロファイルがこのようなアクションを許可し、先に検討された認証が成功した場合、ロックは、要求されたデータを復号して移動装置に送信してもよい。代替的に、ロックは暗号化データを送信してもよく、次に移動装置は復号のために(同様に秘密鍵のコピーを記憶している)サーバと通信してもよい。また、任意の典型的なデータ相互作用(例えば、データの削除、ファイルのリネーム、データのコピー、データの整理等)がデジタルロック装置によりサポートされてもよく、これは対応するユーザプロファイルにおいて特定されるアクセスのタイプに基づいてもよい。
【0045】
また、追加のセキュリティ関連機能が本明細書で検討されるサーバにより実装されてもよい。例えば、アクセス鍵又は秘密鍵が漏洩した場合、ユーザのサーバのオペレータは(モバイルアプリケーションを介して)保護措置を開始してもよい。例えば、ユーザは、新しい鍵のペアを生成するように要求してもよい。一実施形態では、サーバは、新しく生成された秘密鍵及び古いアクセス鍵から成る新しい鍵のペアを生成して、(先に検討されたプロファイルの暗号化と同様に)古い秘密鍵を使用して新しい鍵のペアを暗号化することができる。次に、サーバは、移動装置と通信して、鍵のペア交換要求をキューに入れてもよい。ユーザが複数の装置又はゲストプロファイルを有する場合、ユーザは、鍵のペア交換要求がキューに入れられている1つ以上の特定の装置を選択してもよい。移動装置によるロックとの次のアクセスの試行時に、先に検討されたチャレンジ・レスポンスシーケンスが開始されてもよい。しかしながら、要求されたアクションは「鍵交換要求」であり得る。チャレンジ・レスポンス送信の一部として、移動装置は、暗号化された新しい鍵のペアを含んでもよい。例えば、移動装置は、レスポンスを送信してから、暗号化された新しい鍵のペアを送信してもよい。レスポンスの確認後、ロックは、古い秘密鍵を使用して暗号化された新しい鍵のペアを復号して、データを検証してもよい。成功すると、ロックは、復号された新しい鍵のペアから新しい秘密鍵にアクセスして、次に、将来の相互作用で使用されるように新しい秘密鍵を記憶してもよい。秘密鍵を更新することに加えて、秘密鍵を使用する同様のチャレンジ・レスポンス交換及び暗号化を介して他の機能が提供されてもよい。一実施形態では、「鍵交換要求」を送信する代わりに、移動装置は、秘密鍵で暗号化される新しいファームウェアバージョンと共に「ファームウェア更新要求」を送信してもよい。認証が成功すると、ロックは、新しいファームウェアの復号に進み、次に、そのファームウェアを新しいバージョンに更新してもよい。
【0046】
また、本明細書で検討される任意の装置(例えば、ユーザ装置、製品、サーバ)が、その動作に関連するオーディット・トレールを生成するように構成されてもよい。例えば、ログは、ユーザ装置及び製品の相互作用を介して発生するイベントを詳述するように形成されてもよい。これは、とりわけ、サーバ対ユーザ装置イベント(例えば、暗号化プロファイルの送信、新しい鍵のペア要求の送信等)、ユーザ装置対製品イベント(例えば、アンロック要求の送信/応答、認証の成功及び失敗時のロギング等)、装置のみのイベント(例えば、アプリケーションエラーのロギング、電子ロック装置のシャックル状態のロギング等)を含んでもよい。本開示の範囲は、特定のログフォーマットに限定されない。
【0047】
一実施形態では、ロックは、GPS装置/受信機等の位置決定回路を更に備えてもよく、移動装置との相互作用の間に移動装置にその位置情報(例えば、GPS座標)を送信してもよい。次に、位置情報は、最後に知られていたロックの場所として(例えば、ロック用に作成されたプロファイル内等に)移動装置により記憶されてもよい。また、移動装置の管理アプリケーションは、提供された位置情報に基づいて、ロックの最後に知られていた場所が地図上に表示され得るように地図機能を備えてもよい。代替的に、管理アプリケーションは、位置情報がサードパーティの地図アプリケーションにエクスポートされることを可能にしてもよい。こうした位置機能は、ユーザが自身の移動装置上で管理アプリケーションを開き、次に、最後に知られていた場所(例えば、GPS座標)が提供されたときにロックがどこに位置しているかを示す地図を観ることを可能にしてもよい。更に、ナビゲーション指示又は他の機能が、ユーザをロックに案内するために提供されてもよい。代替的な実施形態では、移動装置は、GPS装置を含んでもよい。このように、移動装置は、ロック及びサーバとの相互作用の間にその位置情報を記録してもよい。
【0048】
本明細書で検討される任意の実施形態において、装置は、メモリ、処理及び通信ハードウェアを有する1つ以上のコンピュータ装置を含む処理サブシステムの一部を形成してもよい。装置(例えば、サーバ、ユーザ装置、製品)は単一の装置又は分散装置であってもよく、装置の機能はハードウェアにより及び/又は非一時的なコンピュータ可読記憶媒体におけるコンピュータ命令として行われてもよく、機能は様々なハードウェア又はコンピュータに基づくコンポーネントに分散されてもよい。
図4を参照すると、本明細書で検討される任意の装置を表し得る装置400が示されている。また、装置400は、本明細書で検討される技術及び方法を実装するために使用されてもよい。例えば、装置400は、ユーザ装置102の処理コンポーネント(例えば、携帯電話の処理コンポーネント)を含んでもよい。別の例示として、装置400は、サーバ104の処理コンポーネントを含んでもよい。別の例示として、装置400は、製品106の処理コンポーネント(例えば、電子ロック装置の処理コンポーネント)を含んでもよい。更に、装置400は、本開示の技術を実装するために、本明細書で検討される計算(例えば、処理200及び300等に関連する計算)を行って、他の装置と通信し、データを暗号化及び復号し、データを認証等するために必要な信号を生成するように構成されてもよい。
【0049】
装置400は、典型的には、メモリ404に結合される少なくとも1つのプロセッサ402を含む。プロセッサ402は、任意の市販のCPUであってもよい。プロセッサ402は、1つ以上のプロセッサを表してもよく、汎用プロセッサ、特定用途向け集積回路(ASIC)、1つ以上のフィールド・プログラマブル・ゲート・アレイ(FPGA)、デジタル信号プロセッサ(DSP)、一群の処理コンポーネント、又は他の適切な電子処理コンポーネントとして実装されてもよい。メモリ404は、装置400の主記憶装置を含むランダム・アクセス・メモリ(RAM)装置、及び任意の補助レベルのメモリ、例えば、キャッシュメモリ、不揮発性又はバックアップメモリ(例えば、プログラム可能又はフラッシュメモリ)、読み出し専用メモリ等を含んでもよい。更に、メモリ404は、別の場所に物理的に設置されるメモリ記憶装置、例えば、プロセッサ402内の任意のキャッシュメモリ及び、例えば、大容量記憶装置等に記憶される仮想メモリとして使用される任意の記憶容量を含んでもよい。また、装置400は、トランシーバ406も含み、これは他の装置と通信するために必要な任意の追加のネットワークコンポーネント又は送信機(例えば、Wi−Fiネットワークコンポーネント、ブルートゥース(登録商標)コンポーネント、ZigBeeコンポーネント、NFCコンポーネント等)も含む。例えば、装置400が電子ロックを含む実施形態では、トランシーバ406は、ユーザの移動装置と通信するように構成されるブルートゥース(登録商標)トランシーバであってもよい。別の例示として、装置400がサーバを含む実施形態では、トランシーバ406は、移動装置と通信するためにサーバをネットワークに結合するように構成されるネットワークインターフェースであってもよい。別の例示として、装置400が移動装置を含む実施形態では、トランシーバ406は、サーバと通信するように構成されるWi−Fi又はセルラトランシーバを含み、トランシーバ406は、製品(例えば、電子ロック装置)と通信するように構成されるブルートゥース(登録商標)コンポーネントを更に含んでもよい。
【0050】
一般に、実施形態を実装するために実行されるルーチンは、オペレーティングシステムの一部又は特定のアプリケーション、モジュール、又は一連の命令として実装されてもよい。所定の実施形態において、装置400は、本明細書に記載の認証のための無線鍵管理に必要な各動作を機能的に実行するように構築される1つ以上のモジュールを含む。モジュールを含む本明細書の記載は、装置の態様の構造的独立性を強調しており、動作の1つの分類及び装置の責任を例示している。装置の動作の所定の実施形態のより詳細な記載は、
図1−3を参照してこの節に記載されている。類似の動作全体を実行する他の分類も本願の範囲内であると理解される。モジュールは、典型的には、コンピュータの様々なメモリ及び記憶装置において様々な時間に設定された1つ以上の命令であって、コンピュータの1つ以上のプロセッサにより読み取られ且つ実行されると、開示された実施形態の要素を実行するのに必要な動作をコンピュータに行わせる1つ以上の命令を含む。更に、様々な実施形態が完全に機能するコンピュータ及びコンピュータシステムとの関連で記載されており、当業者であれば、様々な実施形態が様々な形態のプログラム製品として配布されることが可能であり、これは実際に配布させるために使用される特定のタイプのコンピュータ可読媒体に関わらず等しく適用されることを理解するであろう。
【0051】
図5を参照すると、一実施形態による、本明細書に開示の技術を実装するためのユーザ装置500のブロック図が示されている。例えば、ユーザ装置500は、本明細書で検討される移動装置に対応してもよい。一実施形態では、ユーザ装置500は携帯電話である。別の実施形態では、ユーザ装置500はラップトップコンピュータである。別の実施形態では、ユーザ装置500はタブレットコンピュータである。別の実施形態では、ユーザ装置500はデスクトップコンピュータである。一般に、ユーザ装置500は、処理回路502を含み、これはプロセッサ502a、メモリ502b、及びタイマ502cを含んでもよい。プロセッサ502aは、市販のプロセッサ又は本明細書で検討される任意のプロセッサ(例えば、(複数の)プロセッサ402等)であってもよい。メモリ502bは、本明細書で検討される任意のメモリ及び/又は記憶装置コンポーネントを含む。例えば、メモリ502bは、RAM及び/又はプロセッサ502aのキャッシュを含んでもよい。また、メモリ502bは、ユーザ装置500に対してローカル又はリモートの1つ以上の記憶装置(例えば、ハードドライブ、フラッシュドライブ、コンピュータ可読媒体等)を含んでもよい。
【0052】
メモリ502bは、ユーザ装置に関して本明細書に開示の技術を実装するように構成される様々なソフトウェアモジュールを含む。例えば、メモリ502bは、メモリ502bの他のモジュールにより要求されるアクセス鍵を記憶し且つ提供するように構成されるアクセス鍵モジュール504を含む。アプリケーションモジュール506は、本明細書で検討される管理アプリケーションを提供するように構成される。例えば、ユーザ装置500が携帯電話である実施形態では、アプリケーションモジュール506は、サーバ及び/又は製品とインターフェース接続するために使用され得る携帯電話アプリに対応するソフトウェアを含む。アプリケーションモジュール506は、サーバ及び製品との相互作用を含むプロファイル生成処理を管理するように構成されるプロファイルモジュール508を含んでもよい。例えば、ユーザは、アプリケーションモジュール506により提供されるアプリケーションによって(例えば、ユーザ入力装置502fを介して)ユーザ装置500と相互作用してもよい。ユーザは、サーバに(例えば、トランシーバ502dを介して)送信される1つ以上の製品に対応する1つ以上のプロファイルを作成してもよい。サーバは、ユーザプロファイルを暗号化し、本明細書で検討されるユーザ装置500に、暗号化ユーザプロファイル、アクセス鍵、MAC等をプロファイリングしてもよい。また、アプリケーションモジュールは、本明細書で検討される無線トランシーバ502eを介して製品(例えば、電子ロック装置)と相互作用してもよい。レスポンスモジュール510は、製品により送信されたチャレンジに対するレスポンスを生成するために必要とされるセキュリティアルゴリズムを含んでもよい。更に、レスポンスモジュール510は、暗号化/復号及びMAC認証アルゴリズムを含んでもよく、これらは安全な通信の間にアプリケーションモジュール506によりアクセスされてもよい。メモリ502bはタイマ502cを更に含んでもよく、これは本明細書に記載されるように使用されるデバイス時間を維持するためのプロセッサ502aのクロックコンポーネントを含んでもよい。
【0053】
一部の実装では、メモリ502bは、製品(例えば、ロック装置)から取得した位置データに基づいて1つ以上の地図インターフェースを生成するために使用され得る地図モジュール512を含んでもよい。このような実装は、
図8を参照して以下に記載されている。
【0054】
ユーザ装置500は、(ユーザ装置102のトランシーバ102d及びトランシーバ102e等に対応し得る)トランシーバ502d及び無線トランシーバ502eを更に含み、これらは様々な通信回路を含む。例えば、一実施形態では、トランシーバ502dはセルラコンポーネント及び/又はWi−Fiコンポーネントを含み、無線トランシーバ502eはブルートゥース(登録商標)コンポーネント等を含んでもよい。ユーザ入力装置502fは、ユーザ装置500との相互作用のために1つ以上のユーザ入力装置を含んでもよい。例えば、ユーザ入力装置502fは、1つ以上のボタン、タッチスクリーン、ディスプレイ、スピーカ、キーボード、スタイラス入力、マウス、トラックパッド等)を含んでもよい。
【0055】
図6を参照すると、一実施形態による、本明細書に開示の技術を実装するためのサーバ600のブロック図が示されている。サーバ600は、1つ以上の物理的又は仮想サーバ/サーバスライス等を含む。例えば、サーバ600は、(複数の)サーバ104対応してもよい。一般に、サーバ600は、ユーザ装置(例えば、ユーザ装置500等)と相互作用するように構成される。サーバ600は、処理回路602を含んでもよい。処理回路602は、プロセッサ602a及びメモリ602bを含む。例として、プロセッサ602aは、任意の市販のプロセッサ、例えば、サーバ処理チップ、仮想プロセッサ等を含んでもよい。メモリ602bは、本明細書で検討される任意のメモリ及び/又は記憶装置コンポーネントを含む。例えば、メモリ602bは、RAM及び/又はプロセッサ602aのキャッシュを含んでもよい。また、メモリ602bは、任意の大容量記憶装置(例えば、ハードドライブ、フラッシュドライブ、コンピュータ可読媒体等)を含んでもよい。
【0056】
メモリ602bは、アクセス鍵モジュール604及びセキュリティ鍵モジュール606を含んでもよい。アクセス鍵モジュール604及びセキュリティ鍵モジュール606は、それぞれアクセス鍵及びセキュリティ鍵を安全に記憶するように構成されてもよい。アクセス及びセキュリティ鍵は、本明細書で検討される製品に対応してもよい。例として、アクセス鍵モジュール604及びセキュリティ鍵モジュール606は、鍵のデータベースに対応してもよく、このような鍵を記憶し且つ取得するように構成されるソフトウェアを含んでもよい。プロファイルモジュール608は、(例えば、ユーザ及びゲストプロファイル生成、記憶、及びユーザ装置との通信の処理を管理するために)製品と相互作用するように構成されるソフトウェアを含む。また、プロファイルモジュール608はセキュリティモジュール610と相互作用してもよく、これは本明細書で検討されるセキュリティアルゴリズムを含んでもよい。例えば、セキュリティモジュール610は、アクセス鍵、セキュリティ鍵、暗号/復号データを生成し、データに基づいてMACを生成し、プロファイルモジュール608にこのようなデータを提供するように構成されてもよい。一実施形態では、セキュリティモジュール610のセキュリティ機能及びアクセス鍵モジュール604及びセキュリティモジュール610は、プロファイルモジュール608とは別のサーバ600に設けられる。この実施形態では、本明細書で検討される技術を実装するために必要に応じて、プロファイルモジュール608がセキュリティ機能にアクセスして鍵を取得するように、様々なサービスが適切なサーバにより提供されてもよい。また、一部の実施形態では、サーバ600は、製品(例えば、製品106)と相互作用するように構成される。例えば、製造工程の間、サーバ106は、対応する製品に記憶されるアクセス鍵及びセキュリティ鍵を提供してもよい。
【0057】
一部の実装では、メモリ602bは、製品(例えば、ロック装置)から取得した位置データに基づいて1つ以上の地図インターフェースを生成するために使用され得る地図モジュール612を含んでもよい。このような実装は、
図8を参照して以下に記載されている。
【0058】
図7を参照すると、一実施形態による、本明細書に開示の技術を実装するための製品700のブロック図が示されている。例えば、製品700は本明細書で検討されるロックであってもよい。一般に、製品700は処理回路702を含み、これはプロセッサ702a、メモリ702b及び(本明細書に記載のように使用される製品時間を維持するために、プロセッサ702aのクロックコンポーネントを含み得る)タイマ702cを含んでもよい。プロセッサ702aは、市販のプロセッサ又は本明細書で検討される任意のプロセッサ(例えば、(複数の)プロセッサ402等)であってもよい。メモリ702bは、本明細書で検討される任意のメモリ及び/又は記憶装置コンポーネントを含む。例えば、メモリ702bは、RAM及び/又はプロセッサ702aのキャッシュを含んでもよい。また、メモリ702bは、1つ以上の大容量記憶装置(例えば、ハードドライブ、フラッシュドライブ、コンピュータ可読媒体等)を含んでもよい。
【0059】
メモリ702bは、製品(例えば、電子ロック装置等)に関して本明細書に開示の技術を実装するように構成される様々なソフトウェアモジュールを含む。例えば、メモリ702bは、アクセス鍵モジュール704、セキュリティ鍵モジュール706、セキュリティモジュール708、及び制御モジュール710を含んでもよい。アクセス鍵モジュール704及びセキュリティ鍵モジュール706は、製品の対応するアクセス鍵及びセキュリティ鍵をそれぞれ記憶するように構成される。メモリ702bの他のモジュールは、アクセス鍵モジュール704及びセキュリティ鍵モジュール706と相互作用してもよい。例えば、製品に関するセキュリティアルゴリズム(例えば、暗号化/復号アルゴリズム、MAC生成/検証アルゴリズム等)が、例えば、ユーザ装置に送信されるチャレンジを生成するときに、アクセス鍵モジュール704からアクセス鍵を取得してもよい。別の例示として、セキュリティモジュール708は、セキュリティ鍵を取得してユーザ装置から受信した暗号化ユーザプロファイルを復号するためにセキュリティ鍵モジュール708にアクセスしてもよい。制御モジュール710は、製品に関して本明細書に開示の技術を実装するためにメモリ702bの他のモジュールと相互作用するように構成されるソフトウェアを含む。例えば、製品700がロックである実施形態では、覚醒後、制御モジュール710は、(無線トランシーバ702dを介して)ユーザ装置とペアリング/通信することを試行してもよい。また、制御モジュール710は、製品700のためのオペレーティングシステム(例えば、組み込みオペレーティングシステム、ファームウェア等)ソフトウェアを含んでもよい。別の例示として、制御モジュール710は、セキュリティモジュール708にユーザプロファイルにアクセスするように要求して、取るべきアクションを決定するように要求してもよい。ユーザプロファイルの許可及び要求に基づいて、制御モジュール710は、要求アクションを取るべきかどうかを決定してもよい。例えば、制御モジュール710は、要求(例えば、ロックに対するアンロック要求等)に応じて製品700(例えば、ロック機構702f)の機械(及び電子)コンポーネントを制御するために必要な信号を生成してもよい。別の例示として、制御モジュール710は、ロックのシャックルをアンロックするために、ロックとユーザの物理相互作用を制御するためにロック機構702fとインターフェース接続してもよい(例えば、制御モジュール710はダイヤルインターフェース、キーコードインターフェース、ボタン、タッチインターフェース等から入力を受信してもよい)。
【0060】
一部の実施形態では、製品700は、1つ以上の時間における製品700の1つ以上の位置を決定し得るグローバルポジショニングシステム(GPS)装置/受信機等の位置決定回路702gを含んでもよい。一部のこのような実施形態では、メモリ702bは、位置決定回路702gから位置データを受信して、1つ以上の時間における製品700の位置又は場所を示すデータを記憶するように構成される位置追跡モジュール712を含んでもよい。このような実施形態は、
図8を参照して以下に記載されている。
【0061】
無線トランシーバ702dは、別の装置(例えば、ユーザ装置500、サーバ600等)と無線通信するために通信ハードウェア(例えば、ブルートゥース(登録商標)コンポーネント、無線周波コンポーネント、NFCコンポーネント、ZigBeeコンポーネント、RFIDコンポーネント、Wi−Fiコンポーネント等)を含む。一部の実施形態では、製品700は、製品に電力を提供するためのバッテリ702eを含む。製品700がロックである実施形態では、(複数の)ロック機構702fは、本明細書で検討される1つ以上の物理的及び/又は電子ロック機構(例えば、ピン、シャックル、ダイヤル、ボタン、シャフト、キーホール等)を含む。例えば、(複数の)ロック機構702fはロック機構106gに対応してもよい。
【0062】
一部の実施形態では、製品(例えば、ロック装置)は、位置決定回路(例えば、GPS受信機)を含み、ロックに関する位置情報を生成し且つ記憶してもよい。次に
図8を参照すると、例示的な実施形態による、製品に関する位置データを収集し且つ移動装置の地図インターフェース上に位置データを表示するための処理800のフロー図が示されている。処理800は地図インターフェースを提供することを例示しているが、一部の実施形態では、移動装置/(複数の)サーバが地図インターフェースを生成せずに、製品は、ロック装置に関する位置データを生成/受信し、データを記憶し、及び/又は移動装置及び/又は1つ以上のサーバにデータを送信し得ることが理解されるべきである。
【0063】
製品は、1つ以上の時間における製品の位置を示す1つ以上の位置データアイテムを生成し及び/又は受信してもよい(802)。一部の実施形態では、位置データアイテムは、GPS受信機等の位置決定回路により生成されてもよく、製品の1つ以上のプロセッサに送信されてもよい。位置データアイテムは、メモリに記憶されてもよい(804)。
【0064】
製品は、移動装置にデータを送信する要求を受信してもよい。一部の実施形態では、要求は、製品からの位置データを特に要求してもよい。他の実施形態では、要求は接続要求であってもよく、製品は移動装置との接続の成功に応じて位置データを送信してもよい。一部の実施形態では、製品は、移動装置に位置データを提供する前に移動装置からのデータの正当性を確認してもよい(806)。一部のこのような実施形態では、データの確認は、例えば、
図2及び3を参照して先に記載されたのと同様の処理を使用して行われてもよい(例えば、チャレンジを送信し、チャレンジに対するレスポンスを検証し、秘密鍵を使用してデータの正当性を確認する等)。製品は、位置データアイテムを移動装置に送信してもよい(808)。一部の実施形態では、製品は、データが確認される場合にのみ移動装置に位置データアイテムを送信してもよい。
【0065】
移動装置は、製品から(複数の)位置データアイテムを取得してもよい(810)。一部の実施形態では、移動装置は、地図インターフェースを生成するのに使用される位置及び/又は時間パラメータをユーザから取得してもよい(812)。例えば、位置パラメータは、地図インターフェースに表示された位置が制限されるべきである1つ以上の位置領域(例えば、建物、地理的領域等)を特定してもよい。このような実装では、位置パラメータは、地図インターフェースの現在の設定(例えば、地理的焦点及び/又はズームレベル)に基づいてもよい。時間パラメータは、結果に関係付けられる時間を制限してもよい。例えば、一部の実施形態では、ユーザは、製品の知られている最後の場所だけを見たいという要望を示してもよい。一部の実施形態では、ユーザは、この1週間の間の位置だけを見たいかもしれない。移動装置は、(例えば、地図インターフェースを生成する前に)位置及び/又は時間パラメータに基づいて(複数の)位置データアイテムをフィルタリングしてもよい(814)。例えば、パラメータを充足しないアイテムは、地図インターフェース内に表示されるデータのセットから除去されてもよい。
【0066】
移動装置は、1つ以上の位置データアイテム(例えば、フィルタリングされたアイテム)により示される1つ以上の位置を示す地図インターフェースを生成してもよい(816)。一部の実装では、移動装置は、建物、関心の有る地点、及び/又は他の地図要素を含む、レンダリングされた地図インターフェース全体を生成するように構成されてもよい。一部の実装では、移動装置は、カスタム位置点の追加/オーバレイを許可する地図インターフェース等、サードパーティにより生成される地図インターフェース上のオーバレイとして位置情報を示してもよい。地図インターフェースは、移動装置のディスプレイに送信されてもよい。一部の実装では、(複数の)位置データアイテムが1つ以上のサーバに送信されてもよい(818)。例えば、1つの実装では、移動装置は、製品の知られている最後の位置を示すように構成されてもよく、(複数の)サーバにより管理されるインターフェースは、ユーザが指定された時間フレーム上で複数の異なる位置を見ることを可能にしてもよい。
【0067】
本明細書における「一実施形態」、「一部の実施形態」又は「実施形態」への参照は、実施形態との関連で記載された特定の機能、構造又は特徴が少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態では」又は「一部の実施形態では」という句の出現は、必ずしも全てが同じ実施形態を参照しているのではなく、他の実施形態を相互に除外する別個の又は代替の実施形態でもない。更に、一部の実施形態により示されているが他の実施形態により示されていない様々な特徴が記載されている場合がある。同様に、一部の実施形態には必須であるが他の実施形態には必須でない様々な要件が記載されている場合がある。
【0068】
本開示は、図面を参照して先に記載されている。こうした図面は、本開示のシステム及び方法及びプログラムを実装する特定の実施形態の所定の詳細を示している。しかしながら、図面と共に開示を説明することは、図面に存在し得る何らかの限定を本開示に課すものと解釈されるべきではない。本開示は、その動作を遂行するための任意の機械可読媒体における方法、システム、プログラム製品を考慮している。本開示の実施形態は、既存のコンピュータプロセッサを使用して、又はこの目的若しくは別の目的で組み込まれた専用コンピュータプロセッサにより又は配線化システムにより実装されてもよい。請求項の要素は、“means for”の句を使用して明示的に記載されない限り、米国特許法第112条第6段落の規定によって解釈されるべきではない。更に、本開示における要素、コンポーネント又は方法のステップは、要素、コンポーネント又は方法のステップが請求項に明示的に記載されているかどうかに関わらず、公衆に献呈されることを意図していない。
【0069】
本開示の範囲内の実施形態は、機械実行可能命令又はそれに記憶されているデータ構造を伝達する又は有する機械可読記憶媒体を含むプログラム製品を含む。このような機械可読媒体は、汎用又は専用コンピュータ又はプロセッサを有する他の機械によりアクセスされ得る任意の利用可能な媒体であり得る。例えば、このような機械可読媒体は、RAM、ROM、EPROM、EEPROM、CDROM若しくは他の光学ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は機械実行可能命令若しくはデータ構造の形態にある所望のプログラムコードを伝達若しくは記憶するために使用され得る且つ汎用若しくは専用コンピュータ又はプロセッサを有する他の機械によりアクセスされ得る任意の他の媒体を含み得る。上記の組み合わせも機械可読媒体の範囲内に含まれる。機械実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理機械に所定の機能又は一群の機能を実行させる命令及びデータを含む。コンピュータ又は機械可読記憶媒体は伝播される信号ではないが(即ち、有形であり非一時的である)、コンピュータ又は機械可読記憶媒体は、人工生成の伝播された信号に符号化されるコンピュータプログラム命令の発信源又は目的地であり得る。
【0070】
本開示の実施形態は、例えば、ネットワーク化環境における機械により実行されるプログラムモジュールの形態のプログラムコード等、一実施形態では機械実行可能命令を含むプログラム製品により実装され得る方法のステップの一般的な文脈で記載されている。一般に、プログラムモジュールは、特定のタスクを行う又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。機械実行可能命令、関連データ構造、及びプログラムモジュールは、本明細書に開示の方法のステップを実行するためのプログラムコードの例を表す。このような実行可能命令又は関連データ構造の特定の順序は、このようなステップに記載された機能を実装するための対応する動作の例を表す。
【0071】
本開示の実施形態は、プロセッサを有する1つ以上のリモートコンピュータへの論理接続を使用してネットワーク化環境で実施されてもよい。論理接続は、限定ではなく例としてここに提示されるローカルエリアネットワーク(LAN)及びワイドエリアネットワーク(WAN)を含んでもよい。このようなネットワーク環境は、オフィス規模又は企業規模のコンピュータネットワーク、イントラネット及びインターネットでは一般的であり、広範な異なる通信プロトコルを使用してもよい。当業者であれば、このようなネットワークコンピュータ環境が、典型的には、パーソナルコンピュータ、ハンドヘルド装置、携帯電話、マルチプロセッサシステム、マイクロプロセッサに基づく又はプログラム可能消費者家電製品、ネットワークPC、サーバ、ミニコンピュータ、メインフレームコンピュータ等を含む多くのタイプのコンピュータシステムを包含することを理解するであろう。また、本開示の実施形態は、通信ネットワークを介して(配線リンク、無線リンクにより、又は配線若しくは無線リンクの組み合わせにより)結び付けられるローカル及びリモート装置によりタスクが行われる分散コンピュータ環境で実施されてもよい。分散コンピュータ環境では、プログラムモジュールは、ローカル及びリモートメモリ記憶装置の両方に設置されてもよい。
【0072】
本開示の一部又はシステム全体を実装するための例示のシステムは、処理装置、システムメモリ、及びシステムメモリから処理装置を含む様々なシステムコンポーネントを結合するシステムバスを含むコンピュータの形態の汎用コンピュータ装置を含んでもよい。システムメモリは、リード・オンリー・メモリ(ROM)及びランダム・アクセス・メモリ(RAM)を含んでもよい。また、コンピュータは、磁気ハードディスクへの読み書きを行う磁気ハードディスクドライブ、リムーバブル磁気ディスクへの読み書きを行う磁気ディスクドライブ、及びCDROM又は他の光学媒体等のリムーバブル光学ディスクへの読み書きを行う光学ディスクドライブを含んでもよい。ドライブ及び関連する機械可読媒体は、機械実行可能命令、データ構造、プログラムモジュール、及びコンピュータに関する他のデータの不揮発性記憶を提供する。
【0073】
本明細書に提供されるフローチャートは方法のステップの特定の順番を示しているが、こうしたステップの順番は記載のものとは異なってもよいことが理解される。また、2つ以上のステップが同時に又は一部同時に行われてもよい。このような変化は、選択されたソフトウェア及びハードウェアシステムに及び設計者の選択に依存してもよい。全てのこのような変形が本開示の範囲内であることが理解される。同様に、本開示のソフトウェア及びウェブの実装が、様々なデータベース検索ステップ、相関ステップ、比較ステップ及び決定ステップを達成するためのルールベース論理及び他の論理を有する標準プログラミング技術によって達成され得る。また、本明細書及び請求項に用いられる「コンポーネント」という単語は、ソフトウェアコードの1つ以上のライン、及び/又はハードウェア実装、及び/又は手動入力を受け取るための設備を使用する実装を包含することが意図されることに留意されたい。
【0074】
本開示の実施形態の先の記載は、例示及び説明の目的で提示されている。網羅的であること又は本開示を開示の厳密な形態に限定することは意図されておらず、上記の教示に照らして修正及び変形が可能であり、又は本開示の実施から獲得されてもよい。実施形態は、当業者が、考えられる特定の用途に適合される様々な修正と共に及び様々な実施形態において本開示を利用できるように、本開示の原理及びその実施の応用を説明するために選択され且つ記載されている。