(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2021-519486(P2021-519486A)
(43)【公表日】2021年8月10日
(54)【発明の名称】リモートセキュア端末
(51)【国際特許分類】
G06F 21/60 20130101AFI20210712BHJP
G06F 21/44 20130101ALI20210712BHJP
H04L 9/32 20060101ALI20210712BHJP
G09C 1/00 20060101ALI20210712BHJP
【FI】
G06F21/60 360
G06F21/44
H04L9/00 675B
G09C1/00 640E
【審査請求】未請求
【予備審査請求】未請求
【全頁数】30
(21)【出願番号】特願2021-501139(P2021-501139)
(86)(22)【出願日】2019年3月25日
(85)【翻訳文提出日】2020年11月25日
(86)【国際出願番号】IL2019050332
(87)【国際公開番号】WO2019186536
(87)【国際公開日】20191003
(31)【優先権主張番号】258379
(32)【優先日】2018年3月26日
(33)【優先権主張国】IL
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.THUNDERBOLT
(71)【出願人】
【識別番号】520372331
【氏名又は名称】カズアー アドヴァンスド テクノロジーズ リミテッド
【氏名又は名称原語表記】KAZUAR Advanced Technologies Ltd.
(74)【代理人】
【識別番号】110001302
【氏名又は名称】特許業務法人北青山インターナショナル
(72)【発明者】
【氏名】フィンチェルスタイン,ダニエル モンディ
(72)【発明者】
【氏名】ポラット,ユヴァル モシェ
(72)【発明者】
【氏名】マルコ,シュロミ ラズ
(57)【要約】
セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行される方法である。周辺コンポーネントを含むクライアントコンピュータが提供される。各周辺コンポーネントは、プロセッサによって、他の周辺コンポーネントのプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成されている。各周辺コンポーネントのプロセッサは、指定されたデータタイプの対応するデータを符号化するようにさらに構成されている。各周辺コンポーネントは、プロセッサによって、周辺コンポーネントと、クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立するように構成されるとともに、セキュア通信チャネルを介して許可されたリモートコンピュータと周辺コンポーネントとの間で通信されるデータを符号化するようにさらに構成されている。符号化されたデータは、周辺コンポーネントの他のプロセッサによって復号することができない。
【選択図】
図1
【特許請求の範囲】
【請求項1】
セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行される方法であって、
(a)少なくとも2の周辺コンポーネントを含むクライアントコンピュータを提供する段階を備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、
当該方法は、前記コンポーネントのうちの各周辺コンポーネントに関して、さらに、プロセッサによって、
(b)周辺コンポーネントと、前記クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立する段階と、
(c)セキュア通信チャネルを介して許可されたリモートコンピュータと周辺コンポーネントとの間で通信されるデータを符号化する段階とを備え、符号化されたデータが、前記周辺コンポーネントの他のプロセッサによって復号できないことを特徴とする方法。
【請求項2】
請求項1に記載の方法において、
(b)の段階が、
i.リモートコンピュータの公開鍵を含む非対称鍵を使用してリモートコンピュータを認証するステップと、
ii.周辺コンポーネントに知られている秘密鍵を含む非対称鍵を使用して周辺コンポーネントを認証するステップと、
iii.認証されたリモートコンピュータと認証された周辺コンポーネントとに知られた通信鍵を確立するステップとをさらに含み、通信鍵が、クライアントコンピュータとリモートコンピュータとの間のデータの符号化に使用可能であることを特徴とする方法。
【請求項3】
請求項1または2に記載の方法において、
セキュア通信チャネルを介して通信するためにデータを符号化することには、
i.セキュア通信チャネルを介して送信するためのデータを暗号化すること、または
ii.セキュア通信チャネルを介して受信したデータを復号することが含まれることを特徴とする方法。
【請求項4】
請求項1乃至3の何れか一項に記載の方法において、
前記少なくとも2の周辺コンポーネントのうちの2つがそれぞれキーボードおよびディスプレイであり、キーボードのプロセッサが、キーストロークデータタイプの対応するデータを処理するように構成され、ディスプレイのプロセッサが、ディスプレイデータタイプの対応するデータを処理するように構成されていることを特徴とする方法。
【請求項5】
請求項1乃至4の何れか一項に記載の方法において、
前記クライアントコンピュータが、前記少なくとも2の周辺コンポーネントの何れからも分離されたプロセッサモジュールを有しておらず、前記クライアントコンピュータとリモートコンピュータとの間の通信が、前記少なくとも2の周辺コンポーネントによって達成されることを特徴とする方法。
【請求項6】
請求項1乃至5の何れか一項に記載の方法において、
前記クライアントコンピュータが、危険に曝される可能性があるプロセッサモジュールをさらに含み、かつ前記少なくとも2の周辺コンポーネントの何れからもさらに分離されており、(b)の段階がさらに、
周辺コンポーネントとプロセッサモジュールとの間にセキュアピアツーピア通信チャネルを確立するステップを含み、プロセッサモジュールとリモートコンピュータとの間に、セキュアプロセッサ/リモートコンピュータピアツーピア通信チャネルが確立されることを特徴とする方法。
【請求項7】
請求項6に記載の方法において、
(c)の段階がさらに、
C1)データを符号化して、符号化データを生じさせるステップと、
C2)セキュア通信チャネルを介して符号化データをプロセッサモジュールに送信するステップとを含み、
符号化データをプロセッサモジュールからセキュアプロセッサ/リモートコンピュータ通信チャネルを介して許可されたリモートコンピュータに送信するために、符号化データは、危険に曝される可能性のあるプロセッサモジュールによって復号することはできず、それにより、プロセッサモジュールの使用状況にかかわらず、周辺コンポーネントと認証されたリモートコンピュータとの間のセキュア通信を実現することを特徴とする方法。
【請求項8】
請求項1乃至7の何れか一項に記載の方法において、
周辺コンポーネントの少なくとも1のグループについて、プロセッサが、当該グループのあるモジュールに関連付けられた第1のデータタイプのデータを、当該グループの他のモジュールの第2の互換性のないタイプのデータに変換することが可能であり、当該方法がさらに、
d)周辺コンポーネントの前記グループのうちの他の周辺コンポーネントとの間で、セキュアピアツーピア通信チャネルを確立する段階と、
e)セキュア通信チャネルを介してある周辺コンポーネントと他の周辺コンポーネントとの間で通信するためにデータを符号化する段階であって、符号化されたデータが、前記グループ以外の他の周辺コンポーネントによって復号することができない、段階と、
f)第1のタイプのデータを第2のタイプのデータに変換すること、またはそれとは逆に変換することによって、共通のデータタイプで周辺コンポーネントの前記グループ間の通信を容易にする段階とを含むことを特徴とする方法。
【請求項9】
請求項1乃至8の何れか一項に記載の方法において、
認証されたリモートコンピュータがクラウド上に存在することを特徴とする方法。
【請求項10】
セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行される方法であって、
a.少なくとも2の周辺コンポーネントを含むクライアントコンピュータを提供する段階を備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、前記クライアントコンピュータは、危険に曝される可能性がありかつ前記少なくとも2の周辺コンポーネントの何れからもさらに分離されるプロセッサモジュールをさらに含み、
当該方法は、前記モジュールの各周辺コンポーネントに関して、さらに、
b.周辺コンポーネントと、前記クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立する段階であって、セキュア通信チャネルを確立することが、リモートコンピュータと周辺コンポーネントとに知られた通信鍵を確立することを含み、通信鍵が、周辺コンポーネントとリモートコンポーネントとの間のデータの符号化のために使用可能である、段階と、
c.周辺コンポーネントとプロセッサモジュールとの間にセキュアピアツーピア通信チャネルを確立する段階とを含み、プロセッサモジュールとリモートコンピュータとの間に、セキュアプロセッサ/リモートコンピュータピアツーピア通信チャネルが確立されることを特徴とする方法。
【請求項11】
請求項10に記載の方法において、
d.データを符号化して、符号化データを生じさせるステップと、
e.セキュア通信チャネルを介して符号化データをプロセッサモジュールに送信するステップとを含み、
符号化データをプロセッサモジュールからセキュアプロセッサ/リモートコンピュータ通信チャネルを介して許可されたリモートコンピュータに送信するために、符号化データは、危険に曝される可能性のあるプロセッサモジュールによって復号することができず、それにより、危険に曝される可能性のあるプロセッサモジュールの使用状況にかかわらず、クライアントコンピュータと認証されたリモートコンピュータとの間のセキュア通信を実現することを特徴とする方法。
【請求項12】
請求項10または11に記載の方法において、
f.プロセッサモジュールにより、セキュアプロセッサ/リモートコンピュータ通信チャネルを介して、許可されたリモートコンピュータから送信された符号化データを受信する段階であって、符号化データがプロセッサモジュールにより復号できないものである、段階と、
g.対応するセキュア通信チャネルを介して、周辺コンポーネントによって符号化データを受信する段階と、
周辺コンポーネントのプロセッサによって、
h.符号化データを復号する段階とをさらに含み、
それにより、危険に曝される可能性のあるプロセッサモジュールの使用状況に関係なく、プロセッサモジュールの使用状況に関係なく、周辺コンポーネントと許可されたリモートコンピュータとの間のセキュア通信を実現することを特徴とする方法。
【請求項13】
セキュアクライアントコンピュータを提供するためにコンピュータに実行される方法であって、
a.少なくとも2の周辺コンポーネントを含むクライアントコンピュータを提供する段階を備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、周辺コンポーネントの少なくとも1のグループについて、プロセッサは、当該グループのあるモジュールに関連付けられた第1のデータタイプのデータを、当該グループの他のモジュールの第2の互換性のないデータタイプのデータに変換することが可能であり、当該方法がさらに、
b.周辺コンポーネントの前記グループのうちの他の周辺コンポーネントとの間でセキュアピアツーピア通信を確立する段階と、
c.セキュア通信チャネルを介してある周辺コンポーネントと他の周辺コンポーネントとの間で通信するためのデータを符号化する段階であって、符号化されたデータは、前記グループ以外の他の周辺コンポーネントによって復号することができない、段階と、
d.第1のタイプのデータを第2のタイプのデータに変換することにより、またはその逆に変換することにより、共通のデータタイプで周辺コンポーネントの前記グループ間の通信を容易にする段階とを備えることを特徴とする方法。
【請求項14】
セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行されるシステムであって、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、
コンポーネントのうちの各周辺コンポーネントが、プロセッサによって、
周辺コンポーネントと、前記クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立し、かつ、
セキュア通信チャネルを介して許可されたリモートコンピュータと周辺コンポーネントとの間で通信されるデータを符号化するように構成され、符号化されたデータが、前記周辺コンポーネントの他のプロセッサによって復号できないことを特徴とするシステム。
【請求項15】
請求項14に記載のシステムにおいて、
クライアントコンピュータが、前記少なくとも2の周辺コンポーネントの何れからも分離されたプロセッサモジュールを有しておらず、クライアントコンピュータとリモートコンピュータとの間の通信が、前記少なくとも2の周辺コンポーネントによって達成されることを特徴とするシステム。
【請求項16】
請求項14または15に記載のシステムにおいて、
認証されたリモートコンピュータのプロセッサが、コンポーネントのうちの第1の認証された周辺コンポーネントから、対応する第1の信頼できるチャネルを介して、第1のデータタイプの符号化されたデータを受信し、それを第1の周辺コンポーネントに関連付けられた第1の通信鍵を使用して復号し、それを処理可能なデータに変換するように構成され、プロセッサが、処理可能なデータを第2のデータタイプのデータに変換し、それを第2の認証された周辺コンポーネントに関連付けられた第2の通信鍵を使用して符号化して、それを対応する第2の信頼できるチャネルを介して第2の認証された周辺コンポーネントに送信するようにさらに構成されていることを特徴とするシステム。
【請求項17】
請求項14乃至16の何れか一項に記載のシステムにおいて、
認証されたリモートコンピュータがクラウド上に存在することを特徴とするシステム。
【請求項18】
セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行されるシステムであって、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、前記クライアントコンピュータが、危険に曝される可能性がありかつ前記少なくとも2の周辺コンポーネントの何れからも分離されるプロセッサモジュールをさらに含み、
コンポーネントのうちの各周辺コンポーネントは、プロセッサによって、
周辺コンポーネントと、クライアントコンピュータと通信することを許可されたリモートコンピュータとの間にセキュアピアツーピア通信チャネルを確立するように構成され、このセキュアピアツーピア通信チャネルの確立には、リモートコンピュータおよび周辺コンポーネントに知られている通信鍵を確立することが含まれ、前記通信鍵が、周辺コンポーネントとリモートコンポーネントとの間のデータの符号化に使用可能であり、
コンポーネントのうちの各周辺コンポーネントはさらに、プロセッサによって、
周辺コンポーネントとプロセッサモジュールとの間にセキュアピアツーピア通信チャネルを確立するように構成されており、プロセッサモジュールとリモートコンピュータとの間に、セキュアプロセッサ/リモートコンピュータのピアツーピア通信チャネルが確立されることを特徴とするシステム。
【請求項19】
セキュアクライアントコンピュータを提供するためにコンピュータに実行されるシステムであって、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、周辺コンポーネントの少なくとも1のグループについて、プロセッサは、当該グループのあるコンポーネントに関連付けられた第1のデータタイプのデータを、当該グループの他のコンポーネントの第2の互換性のないタイプのデータに変換することが可能であり、
コンポーネントのうちの周辺コンポーネントは、プロセッサによって、
周辺コンポーネントの前記グループのうちの他の周辺コンポーネントとの間でセキュアピアツーピア通信を確立し、
セキュア通信チャネルを介してある周辺コンポーネントと他の周辺コンポーネントとの間で通信するためにデータを符号化するように構成され、符号化されたデータが、前記グループ以外の他の周辺コンポーネントによって復号することができず、
コンポーネントのうちの周辺コンポーネントはさらに、プロセッサによって、
第1のタイプのデータを第2のタイプのデータに変換することにより、またはその逆に変換することにより、共通のデータタイプで周辺コンポーネントの前記グループ間の通信を容易にするように構成されていることを特徴とするシステム。
【請求項20】
請求項1乃至9の何れか一項に記載の方法を実行するためにコンピュータによって実行可能な命令のプログラムを有形に具現化する非一時的なコンピュータ可読メモリ。
【請求項21】
請求項10乃至12に記載の方法を実行するためにコンピュータによって実行可能な命令のプログラムを有形に具現化する非一時的なコンピュータ可読メモリ。
【請求項22】
請求項13に記載の方法を実行するためにコンピュータによって実行可能な命令のプログラムを有形に具現化する非一時的なコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の主題は、リモートセキュア端末に関するものである。
【背景技術】
【0002】
クラウドベースのサービスの利用が益々増加していることから、(クラウド上に存在する可能性がある)リモートサーバに対して動作するセキュアクライアントコンピュータ(例えば、リモートデスクトップ、ラップトップ、携帯電話など)のトランスポートセキュリティ(セキュアトンネルなど)とペイロードセキュリティ(すなわち、クライアントコンピュータとリモートサーバとの間で送信されるコンテンツ)の両方を達成するための課題が増えている。(トランスポートセキュリティおよび/またはペイロードセキュリティに悪影響を及ぼす可能性がある)クライアントコンピュータの危殆化を低減または排除するために、様々なアプローチが提示されている。
【0003】
例えば、Intel(登録商標)Skylake(商標)および後に導入されるプラットフォームを組み込んだクライアントコンピュータは、“Intel Software Guard Extension”(SGX)(商標)ソリューションを利用し、これは、信頼できないOS(オープンソース)コードなどの他のコードとともに存在および実行することができる、エンクレイブされたセキュア環境を作成するCPUの新しい実行モードである。このエンクレイブされたセキュア環境は、クライアントコンピュータの周辺コンポーネント(例えば、キーボード、スクリーン、カメラなど)が危険に曝されたとしても、高いセキュリティレベルを維持することができる。
【0004】
特定のSGX(商標)ソリューションの限界の一つは、特定のベンダやプラットフォームのバージョンでしか動作しないことである。
【発明の概要】
【0005】
本開示の主題の一態様によれば、セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行される方法が提供され、この方法が、
(a)少なくとも2の周辺コンポーネントを含むクライアントコンピュータを提供する段階を備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、
当該方法は、前記コンポーネントのうちの各周辺コンポーネントに関して、さらに、プロセッサによって、
(b)周辺コンポーネントと、前記クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立する段階と、
(c)セキュア通信チャネルを介して許可されたリモートコンピュータと周辺コンポーネントとの間で通信されるデータを符号化する段階とを備え、符号化されたデータは、前記周辺コンポーネントの他のプロセッサによって復号することができない。
【0006】
本開示の主題の一実施形態によれば、方法がさらに提示され、
(b)の段階が、
i.リモートコンピュータの公開鍵を含む非対称鍵を使用してリモートコンピュータを認証するステップと、
ii.周辺コンポーネントに知られている秘密鍵を含む非対称鍵を使用して周辺コンポーネントを認証するステップと、
iii.認証されたリモートコンピュータと認証された周辺コンポーネントとに知られた通信鍵を確立するステップとをさらに含み、通信鍵が、クライアントコンピュータとリモートコンピュータとの間のデータの符号化に使用可能である。
【0007】
本開示の主題の一実施形態によれば、方法がさらに提示され、
セキュア通信チャネルを介して通信するためにデータを符号化することには、
iv.セキュア通信チャネルを介して送信するためのデータを暗号化すること、または
v.セキュア通信チャネルを介して受信したデータを復号することが含まれる。
【0008】
本開示の主題の一実施形態によれば、方法がさらに提示され、
前記少なくとも2の周辺コンポーネントのうちの2つがそれぞれキーボードおよびディスプレイであり、キーボードのプロセッサが、キーストロークデータタイプの対応するデータを処理するように構成され、ディスプレイのプロセッサが、ディスプレイデータタイプの対応するデータを処理するように構成されている。
【0009】
本開示の主題の一実施形態によれば、方法がさらに提示され、
前記クライアントコンピュータが、前記少なくとも2の周辺コンポーネントの何れからも分離されたプロセッサモジュールを有しておらず、前記クライアントコンピュータとリモートコンピュータとの間の通信が、前記少なくとも2の周辺コンポーネントによって達成される。
【0010】
本開示の主題の一実施形態によれば、方法がさらに提示され、
前記クライアントコンピュータが、危険に曝される可能性があるプロセッサモジュールをさらに含み、かつ前記少なくとも2の周辺コンポーネントの何れからもさらに分離されており、(b)の段階がさらに、
周辺コンポーネントとプロセッサモジュールとの間にセキュアピアツーピア通信チャネルを確立するステップを含み、プロセッサモジュールとリモートコンピュータとの間に、セキュアプロセッサ/リモートコンピュータピアツーピア通信チャネルが確立される。
【0011】
本開示の主題の一実施形態によれば、方法がさらに提示され、
(c)の段階がさらに、
C1)データを符号化して、符号化データを生じさせるステップと、
C2)セキュア通信チャネルを介して符号化データをプロセッサモジュールに送信するステップとを含み、
符号化データをプロセッサモジュールからセキュアプロセッサ/リモートコンピュータ通信チャネルを介して許可されたリモートコンピュータに送信するために、符号化データは、危険に曝される可能性のあるプロセッサモジュールによって復号することができず、それにより、プロセッサモジュールの使用状況にかかわらず、周辺コンポーネントと認証されたリモートコンピュータとの間のセキュア通信を実現する。
【0012】
本開示の主題の一実施形態によれば、方法がさらに提示され、
周辺コンポーネントの少なくとも1のグループについて、プロセッサが、グループのあるモジュールに関連付けられた第1のデータタイプのデータを、グループの他のモジュールの第2の互換性のないタイプのデータに変換することが可能であり、当該方法がさらに、
d)周辺コンポーネントのグループのうちの他の周辺コンポーネントとの間で、セキュアピアツーピア通信チャネルを確立する段階と、
e)セキュア通信チャネルを介してある周辺コンポーネントと他の周辺コンポーネントとの間で通信するためにデータを符号化する段階であって、符号化されたデータが、グループ以外の他の周辺コンポーネントによって復号することができない、段階と、
f)第1のタイプのデータを第2のタイプのデータに変換すること、またはそれとは逆に変換することによって、共通のデータタイプで周辺コンポーネントのグループ間の通信を容易にする段階とを含む。
【0013】
本開示の主題の一実施形態によれば、方法がさらに提示され、
認証されたリモートコンピュータがクラウド上に存在する。
【0014】
本開示の主題の一態様によれば、セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行される方法が提供され、この方法が、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを提供する段階を備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、前記クライアントコンピュータは、危険に曝される可能性がありかつ前記少なくとも2の周辺コンポーネントの何れからもさらに分離されるプロセッサモジュールをさらに含み、
当該方法は、前記モジュールの各周辺コンポーネントに関して、さらに、
周辺コンポーネントと、前記クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立する段階であって、セキュア通信チャネルを確立することが、リモートコンピュータと周辺コンポーネントとに知られた通信鍵を確立することを含み、通信鍵が、周辺コンポーネントとリモートコンポーネントとの間のデータの符号化のために使用可能である、段階と、
周辺コンポーネントとプロセッサモジュールとの間にセキュアピアツーピア通信チャネルを確立する段階とを含み、プロセッサモジュールとリモートコンピュータとの間に、セキュアプロセッサ/リモートコンピュータピアツーピア通信チャネルが確立される。
【0015】
本開示の主題の一実施形態によれば、方法がさらに提示され、
データを符号化して、符号化データを生じさせるステップと、
セキュア通信チャネルを介して符号化データをプロセッサモジュールに送信するステップとを含み、
符号化データをプロセッサモジュールからセキュアプロセッサ/リモートコンピュータ通信チャネルを介して許可されたリモートコンピュータに送信するために、符号化データは、危険に曝される可能性のあるプロセッサモジュールによって復号することができず、それにより、危険に曝される可能性のあるプロセッサモジュールの使用状況にかかわらず、クライアントコンピュータと認証されたリモートコンピュータとの間のセキュア通信を実現する。
【0016】
本開示の主題の一実施形態によれば、方法がさらに提示され、
プロセッサモジュールにより、セキュアプロセッサ/リモートコンピュータ通信チャネルを介して、許可されたリモートコンピュータから送信された符号化データを受信する段階であって、符号化データがプロセッサモジュールにより復号できないものである、段階と、
対応するセキュア通信チャネルを介して、周辺コンポーネントによって符号化データを受信する段階と、
周辺コンポーネントのプロセッサによって、
符号化データを復号する段階とをさらに含み、
それにより、危険に曝される可能性のあるプロセッサモジュールの使用状況に関係なく、プロセッサモジュールの使用状況に関係なく、周辺コンポーネントと許可されたリモートコンピュータとの間のセキュア通信を実現する。
【0017】
本開示の主題の一態様によれば、セキュアクライアントコンピュータを提供するためにコンピュータに実行される方法が提供され、クライアントコンピュータが、少なくとも2の周辺コンポーネントを含み、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、周辺コンポーネントの少なくとも1のグループについて、プロセッサは、グループのあるモジュールに関連付けられた第1のデータタイプのデータを、グループの他のモジュールの第2の互換性のないデータタイプのデータに変換することが可能であり、当該方法がさらに、
a.周辺コンポーネントのグループのうちの他の周辺コンポーネントとの間でセキュアピアツーピア通信を確立する段階と、
b.セキュア通信チャネルを介してある周辺コンポーネントと他の周辺コンポーネントとの間で通信するためのデータを符号化する段階であって、符号化されたデータは、グループ以外の他の周辺コンポーネントによって復号することができない、段階と、
c.第1のタイプのデータを第2のタイプのデータに変換することにより、またはその逆に変換することにより、共通のデータタイプで周辺コンポーネントのグループ間の通信を容易にする段階とを備える。
【0018】
本開示の主題の一態様によれば、セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行されるシステムが提供され、このシステムが、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、
コンポーネントのうちの各周辺コンポーネントが、プロセッサによって、
周辺コンポーネントと、前記クライアントコンピュータとの通信を許可されたリモートコンピュータとの間に、セキュアピアツーピア通信チャネルを確立し、かつ、
セキュア通信チャネルを介して許可されたリモートコンピュータと周辺コンポーネントとの間で通信されるデータを符号化するように構成され、符号化されたデータは、前記周辺コンポーネントのプロセッサによって復号することができない。
【0019】
本開示の主題の実施形態によれば、システムがさらに提示され、
クライアントコンピュータが、前記少なくとも2の周辺コンポーネントの何れからも分離されたプロセッサモジュールを有しておらず、クライアントコンピュータとリモートコンピュータとの間の通信が、前記少なくとも2の周辺コンポーネントによって達成される。
【0020】
本開示の主題の実施形態によれば、システムがさらに提示され、
認証されたリモートコンピュータのプロセッサが、コンポーネントのうちの第1の認証された周辺コンポーネントから、対応する第1の信頼できるチャネルを介して、第1のデータタイプの符号化されたデータを受信し、それを第1の周辺コンポーネントに関連付けられた第1の通信鍵を使用して復号し、それを処理可能なデータに変換するように構成され、プロセッサが、処理可能なデータを第2のデータタイプのデータに変換し、それを第2の認証された周辺コンポーネントに関連付けられた第2の通信鍵を使用して符号化して、それを対応する第2の信頼できるチャネルを介して第2の認証された周辺コンポーネントに送信するようにさらに構成されている。
【0021】
本開示の主題の実施形態によれば、システムがさらに提示され、
認証されたリモートコンピュータがクラウド上に存在する。
【0022】
本開示の主題の一態様によれば、セキュアクライアントコンピュータとリモートコンピュータとの間の通信を提供するためにコンピュータに実行されるシステムが提供され、このシステムが、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、前記クライアントコンピュータが、危険に曝される可能性がありかつ前記少なくとも2の周辺コンポーネントの何れからも分離されるプロセッサモジュールをさらに含み、
コンポーネントのうちの各周辺コンポーネントは、プロセッサによって、
周辺コンポーネントと、クライアントコンピュータと通信することを許可されたリモートコンピュータとの間にセキュアピアツーピア通信チャネルを確立するように構成され、このセキュアピアツーピア通信チャネルの確立には、リモートコンピュータおよび周辺コンポーネントに知られている通信鍵を確立することが含まれ、前記通信鍵が、周辺コンポーネントとリモートコンポーネントとの間のデータの符号化に使用可能であり、
コンポーネントのうちの各周辺コンポーネントはさらに、プロセッサによって、
周辺コンポーネントとプロセッサモジュールとの間にセキュアピアツーピア通信チャネルを確立するように構成されており、プロセッサモジュールとリモートコンピュータとの間に、セキュアプロセッサ/リモートコンピュータのピアツーピア通信チャネルが確立される。
【0023】
本開示の主題の一態様によれば、セキュアクライアントコンピュータを提供するためにコンピュータに実行されるシステムが提供され、このシステムが、
少なくとも2の周辺コンポーネントを含むクライアントコンピュータを備え、各周辺コンポーネントは、プロセッサによって、前記少なくとも2の周辺コンポーネントの他のプロセッサによって処理される周辺コンポーネントデータタイプと互換性のないデータタイプの対応する周辺コンポーネントデータを処理するように構成され、各周辺コンポーネントのプロセッサは、前記データタイプの対応するデータを符号化するようにさらに構成され、周辺コンポーネントの少なくとも1のグループについて、プロセッサは、グループのあるコンポーネントに関連付けられた第1のデータタイプのデータを、グループの他のコンポーネントの第2の互換性のないタイプのデータに変換することが可能であり、
コンポーネントのうちの周辺コンポーネントは、プロセッサによって、
周辺コンポーネントのグループのうちの他の周辺コンポーネントとの間でセキュアピアツーピア通信を確立し、
セキュア通信チャネルを介してある周辺コンポーネントと他の周辺コンポーネントとの間で通信するためにデータを符号化するように構成され、符号化されたデータが、グループ以外の他の周辺コンポーネントによって復号することができず、
コンポーネントのうちの周辺コンポーネントはさらに、プロセッサによって、
第1のタイプのデータを第2のタイプのデータに変換することにより、またはその逆に変換することにより、共通のデータタイプで周辺コンポーネントのグループ間の通信を容易にするように構成されている。
【0024】
本開示の主題の一実施形態によれば、本開示の主題の様々な実施形態の方法の段階を実行するためにコンピュータによって実行可能な命令のプログラムを有形に具現化する非一時的なコンピュータ可読メモリがさらに提示されている。
【0025】
本発明の一態様の文脈の中で説明された実施形態は、同様に、必要な変更を加えて、本発明の他の態様に適用することができる。
【図面の簡単な説明】
【0026】
本発明を理解し、それが実際にどのように実施され得るのかを理解するために、添付の図面を参照しながら、非限定的な例として実施形態を説明する。
【
図1】
図1は、本開示の主題の特定の実施形態に係る、セキュアクライアントコンピュータを提供するためのシステムの機能ブロック図を示している。
【
図2】
図2は、本開示の主題の特定の実施形態に係る、システムオンチップ(SOC)の機能ブロック図を示している。
【
図3】
図3は、本開示の主題の特定の実施形態に係る、
図1のシステムにおける一連の動作の一般化されたフローチャートを示している。
【
図4】
図4は、本開示の主題の特定の実施形態に係る、周辺コンポーネントとリモートコンピュータとの間でセキュア通信チャネルを確立するための一連の動作のフローチャートを示している。
【
図5】
図5は、本開示の主題の別の態様の特定の実施形態に係る、セキュアクライアントコンピュータを提供するためのシステムの機能ブロック図を示している。
【
図6】
図6は、本開示の主題の特定の実施形態に係る、
図5のシステムにおけるセキュア通信チャネルを生成するための一連の動作の一般化されたフローチャートを示している。
【
図7】
図7は、本開示の主題の特定の実施形態に係る、例えば
図6のフローチャートに従って確立されたセキュア通信チャネルを使用する一連の動作を示している。
【
図8】
図8は、本開示の主題の他の特定の実施形態に係る、例えば
図6のフローチャートに従って確立されたセキュア通信チャネルを使用する一連の動作を示している。
【
図9】
図9は、本開示の主題の別の態様の特定の実施形態に係る、セキュアクライアントコンピュータを提供するためのシステムの機能ブロック図を示している。
【
図10】
図10は、本開示の主題の特定の実施形態に係る、
図9のシステムにおけるセキュア通信チャネルを生成するための一連の動作の一般化されたフローチャートを示している。
【
図11】
図11は、本開示の主題の特定の実施形態に係る、例えば
図9のフローチャートに従って確立されたセキュア通信チャネルを利用するための一連の動作を示している。
【発明を実施するための形態】
【0027】
以下の詳細な説明では、本発明の完全な理解を提供するために、多くの具体的な詳細が記載されている。しかしながら、当業者であれば、本開示の主題がそれらの具体的な詳細なしに実施され得ることが理解されるであろう。他の例では、本開示の主題が不明瞭とならないように、周知の方法、手順、コンポーネントおよび回路は、詳細には記載されていない。
【0028】
特に明記されていない限り、以下の説明から明らかなように、本明細書の全体を通して、「認証」、「通信」、「送信」、「コーディング」、「解釈」、「促進」、「提供」、「確立」、「処理」、「コンピューティング」、「提示」、「比較」、「生成」、「評価」、「照合」、「更新」などの用語を利用した説明は、データを操作および/または他のデータに変換するコンピュータの1または複数の動作および/または1または複数のプロセスを指し、上記データが電子、量などの物理的なものとして示され、かつ/または上記データが物理オブジェクトを示していることが理解されよう。コンピュータまたはプロセッサという用語は、非限定的な例として、本出願で開示される、クライアントコンピュータ、リモートコンピュータ、プロセッサ、プロセッサモジュールを含む、データ処理能力を有する任意の種類の1または複数のハードウェアベースの電子デバイスを網羅するように拡張的に解釈されるべきである。
【0029】
本明細書で使用される「非一時的なメモリ」および「非一時的な記憶媒体」という用語は、本開示の主題に適した任意の揮発性または不揮発性コンピュータメモリを網羅するように拡張的に解釈されるべきである。
【0030】
本明細書中の教示に係る動作は、所望の目的のために特別に構成されたコンピュータによって実行されるものであっても、または非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータプログラムによって、所望の目的のために特別に構成された汎用コンピュータによって実行されるものであってもよい。
【0031】
本開示の主題の実施形態は、特定のプログラミング言語を参照して記載されていない。本明細書に記載のように、本開示の主題の教示を実施するために様々なプログラミング言語を使用できることが理解されよう。
【0032】
このことを念頭に置いて、
図1を参照すると、本開示の主題の特定の実施形態に係るシステムの機能ブロック図が示されている。図示のシステム100は、この例では2つの周辺コンポーネント102、103を有することができるクライアントコンピュータ101を含む。クライアントコンピュータは、それ自体既知のネットワーク(まとめて105で示される)を介してリモートコンピュータ104(例えば、クラウドに存在するサーバ)に接続することができ、周辺コンポーネントとリモートコンピュータ104との間にセキュア通信を提供するように構成されている。周辺コンポーネントの非限定的な例としては、キーボードマイクロフォン、トラッキングデバイス、またはそれらの組合せ(例えば、キーボードおよびマウス)などの入力コンポーネント、ディスプレイコンポーネントなどの出力コンポーネント、および/または他のコンポーネント(必ずしも入力または出力である必要はない)が挙げられる。各周辺コンポーネントは、所与のデータタイプの対応する周辺コンポーネントデータを処理するように構成されている。例えば、キーボードコンポーネントの場合、データタイプは、スキャンコードやキーコードなどのキーストローク関連データである。所与の周辺コンポーネント(例えば、キーボード)に関連付けられたデータタイプは、1または複数の他の周辺コンポーネント(例えば、ディスプレイ)のうちの1つ(または複数)のデータタイプとは異なる可能性があることに留意されたい。特定の実施形態によれば、データタイプが互いに互換性のある他の2以上の周辺コンポーネント(同一のタイプのもの、例えば2つのキーボードまたは異なるタイプのものの何れか)が存在してもよい。特定の実施形態によれば、周辺コンポーネント107の物理的部分(例えば、ディスプレイの場合はスクリーン、物理的キーボードのキーストローク、および関連する電子機器/ハードウェア)は、指定されたデータタイプを含むデータを生成および処理するためのプロセッサ106に関連付けることができる。
【0033】
プロセッサ106は、後でより詳細に説明するように、指定されたデータタイプの対応するデータを符号化するための符号化モジュール108を実行するように構成することができる。ネットワークモジュールは、通信、例えばリモートコンピュータ104との通信を容易にするように構成されている。後でさらに詳述するように、プロセッサは、所与のデータタイプのデータを、他のデータタイプと互換性のある別のデータタイプに変換するためのデータ互換性モジュール110(例えば、ドライバ)を実行するように構成することができる。
図1は、後でより詳細に説明するように、秘密鍵などのデータを格納するためのストレージモジュール111(非一時的なコンピュータ可読記憶媒体)をさらに示している。
【0034】
符号化モジュール108およびネットワークモジュール109(後者は、ネットワーク105を介してリモートサーバ104との通信を容易にすることができる)は、
図2を参照して後述するように、1または複数のシステムオンチップ(SOC)上に存在し得る。
【0035】
特定の実施形態によれば、周辺コンポーネント(
図1の例では、可能性のあるN個(N>2)のうちの2個のみが示されている)は、それ自体が既知のラップトップ、デスクトップ、セルラーデバイスなどのクライアントコンピュータ101の一部を形成することができ、または他の特定の実施形態によれば、周辺コンポーネントのうちの2以上は、リモートに存在し、ネットワークを介して通信することができ、それによって、それ自体が既知の1の物理的なクライアントコンピュータに必ずしも存在するとは限らないことに留意されたい。
【0036】
周辺コンポーネント103は、必要な変更を加えて、同様のブロックおよびモジュールを含むことができる。例えば、周辺コンポーネント103がディスプレイである場合、物理コンポーネント107は、異なるものであってもよく、あるいはディスプレイコンポーネントに適したものであってもよい。
【0037】
ここでリモートコンピュータ104に目を向けると、プロセッサ112と、それぞれの周辺機器102、103と通信するためのネットワークモジュール113、114とを含む。プロセッサ112は、互換性のないデータタイプ間の変換のための1または複数のデータ互換性モジュールの一部を形成可能なドライバモジュール114、115を実行するように構成することができ、例えば、ドライバ115は、プロセッサ112で実行されている適切なアプリケーションモジュール(図示省略)による更なる処理のために、キーボードコンポーネント102からネットワークモジュール112を介して(後述するセキュアチャネル105(1)を介して)受信したキーストロークデータタイプを変換することができる。同様に、ドライバ116は、プロセッサ112で実行されている適切なアプリケーションモジュール(図示省略)によって処理された出力データを、ネットワークモジュール114を介して(後述するセキュアチャネル105(2)を介して)ディスプレイコンポーネント103に送信されるディスプレイタイプのデータに変換することができる。リモートサーバへの通信データが、符号化、例えば(後述するように)暗号化される場合、リモートコンピュータは、例えばデータを復号するために、かつ/またはその逆に、周辺コンポーネントの符号化モジュールによってデコードされるデータを暗号化するために、符号化モジュール117を利用することができる。プロセッサは、
図1には示されていないストレージモジュール(非一時的なコンピュータ可読記憶媒体)に動作可能に結合されている。
【0038】
本発明は、例示としてのみ提供されるリモートコンピュータの特定のアーキテクチャに拘束されるものではなく、任意のそれ自体既知のアーキテクチャを適用することができる。
【0039】
図1の実施形態では、周辺コンポーネントが1つのローカルクライアントコンピュータ101に収容されているが、これは必ずしもそれに限られるものではなく、例えば、2以上のコンポーネントがネットワークを介して通信し、それにより、必ずしも同じ物理的位置に存在するとは限らないことにも留意されたい。このため、特定の実施形態によれば、クライアントコンピュータは、1つの場所に常駐するローカルコンピュータであってもよいし、他の実施形態によれば、必ずしも1つの場所に常駐していなくてもよい。
【0040】
図2を参照すると、本開示の主題の特定の実施形態に係る、より詳細なシステムオンチップ(SOC)200の機能ブロック図が示されている。このように、SOC200は、例えば1または複数のドライバを含むデータ互換性モジュール110を実行するように構成されたプロセッサ106を含むことができる。プロセッサは、本実施形態では暗号演算を実行することが可能な暗号化セマンティクスモジュール202を含む符号化モジュールにさらに構成することができる。プロセッサは、この例では、外部検証および設定データ(例えば、スマートカード、サブキーおよびニトロキーなどから)を読み取ることが可能な、トラステッドプラットフォームモジュール(TPM)203および外部ソースモジュール204を含むストレージ111に動作可能に結合されている。特定のモジュールの動作については、後でより詳細に説明する。ネットワークモジュール205は、例えば、803.11X、Bluetooth(LE)Thunderbolt等のうちの1または複数を利用する通信スタックであってもよい。
図1を参照した説明では、1つのSOCを利用しているが、同様に、
図2を参照して説明したものと同様のまたは変更された機能を集合的に有し得る2以上のSOCを利用することもできる。
【0041】
このように、上記の
図1、
図2および下記の
図5および
図9に示すように、プロセッサ(106)(または112、何れの場合でも)は、非一時的なコンピュータ可読記憶媒体上に実装されたコンピュータ可読命令に従って、複数の機能モジュールを実行するように構成することができる。
【0042】
本開示の主題の教示は、
図1を参照して説明したシステムおよび/またはコンピュータおよび/またはプロセッサシステムに拘束されないことに留意されたい。同等のおよび/または変更された機能は、別の方法で統合または分割することができ、ソフトウェアとファームウェアおよび/またはハードウェアの適切な組合せで実装し、適切なデバイスで実行することができる。また、当業者であれば、データストレージを別の方法で連結または分割することができること、データベースを他のシステムと共有できること、またはサードパーティの機器を含む他のシステムによって提供できることも容易に理解するであろう。
【0043】
以下の記載は、説明のみを目的として、周辺コンポーネント間のセキュア通信を確立するために提供されている。当業者であれば、本開示の主題の教示が、同様に、1または複数の周辺コンポーネントと1または複数のリモートコンピュータとの間のセキュア通信にも適用可能であることを容易に理解するであろう。
【0044】
このことを念頭に置いて、
図3を参照すると、本開示の主題の特定の実施形態に係る、リモートコンピュータ(例えば、図面の104)と例えば1または複数の周辺コンポーネント102および/または103(同じクライアントのコンピュータ内に存在するか、または存在しない)との間でセキュア通信を確立するための一連の操作の一般化されたフローチャートが示されている。周辺コンポーネントは、最初に、周辺コンポーネントと、周辺コンポーネントと通信することを許可されたリモートサーバコンピュータとの間に、セキュアピアツーピア通信チャネルを確立することができる(301)。これは、セキュアチャネル(例えば、トンネル)を生成し、セキュアトンネルを介してセキュアなペイロード(例えば、符号化されたデータ)の通信を容易にすることができる。
図1の例では、周辺コンポーネント102が例えばキーボードであると仮定した場合、セキュア通信チャネルが、105
1として模式的に描かれている。その結果、周辺コンポーネント間の通信チャネルは、コンテンツと同様に(理論的に通信チャネルが危険に曝されている場合でも)保護される。
【0045】
次に、周辺コンポーネントは、符号化モジュールを利用して、セキュア通信トンネルを介して認証されたリモートサーバ(例えば、104)と周辺コンポーネントとの間で通信されるデータを符号化することができ(302)、符号化されたデータ(例えば、指定された符号化ペイロード)は、周辺コンポーネントの他の(特定の実施形態によればすべての他の)符号化モジュールによって復号できないようになっている。本明細書で使用される解読不能(または復号不能)(または解読できないまたは復号できない)という用語は、合理的に利用可能な処理能力を使用して、例えば、非対称鍵のための少なくとも2048ビット、または対称鍵のための少なくとも256ビットを使用して、解読(復号)することができないことを含むように、解釈されるべきである。これらの値は、時間の経過とともに改善されるであろう利用可能な合理的な処理能力に応じて変わる可能性がある。
【0046】
ここで
図4を参照すると、本発明の特定の実施形態に係る、
図3で論じた周辺コンポーネントとリモートコンピュータとの間のセキュア通信チャネルを確立する一連の動作のフローチャートが示されている。このように、401において、周辺コンポーネント、例えば102は、リモートサーバのみに知られている秘密鍵を含む非対称鍵を使用して、リモートサーバを認証することができる。より具体的には、リモートサーバは、その秘密鍵によって署名されたメッセージを送信することができ、周辺コンポーネントは、リモートサーバの対応する公開鍵を(例えば外部の信頼できるソースから)抽出して、(リモートサーバの公開鍵を使用して)そのように暗号化されたメッセージを解読し、それによってリモートサーバを認証することができる。
【0047】
その後、402において、周辺コンポーネントは、周辺コンポーネントに知られている(そしておそらくは周辺コンポーネントのみにしか知られていない)秘密鍵を含む非対称鍵(例えば、TPMから抽出されたもの)を使用して、メッセージを暗号化し、リモートコンピュータは、この特定の周辺コンポーネントの対応する公開鍵を使用してメッセージを解読し、それによって周辺コンポーネントを認証することができる。二重認証が達成されると、クライアントコンピュータとリモートサーバとの間のセキュアピアツーピア通信チャネルが確立される。
【0048】
本明細書および特許請求の範囲の全体を通して、非対称鍵(例えば、秘密鍵)を使用して暗号化することは「署名」の一例として解釈され、対応する非対称鍵(例えば、公開鍵)を使用して復号(解読)することは「検証」の一例として解釈され得ることに留意されたい。
【0049】
その後、403では、認証されたリモートサーバと認証された周辺コンポーネントに知られている(そしておそらくは他の周辺コンポーネントには知られていない)通信鍵(例えば、対称鍵)が生成される。対称鍵は、クライアントコンピュータとリモートサーバとの間のデータの符号化に使用可能である。一例としては、通信鍵を確立するために、周辺コンポーネントは、TPM203および外部ソースデータ204の何れか一方または両方からプロプライエタリデータを抽出し、それらを結合して、通信鍵を生成することができる。本発明は、通信鍵を生成するこの特定の態様に拘束されるものではない。
【0050】
特定の実施形態によれば、通信鍵を認証済みリモートサーバに送信するために、そのように生成された通信鍵が、周辺コンポーネントの秘密鍵およびリモートコンピュータの公開鍵によって暗号化され、認証済み周辺コンポーネントからリモートコンピュータに、それらの間に既に確立されたセキュアチャネル(例えば、105)を介して送信されるようにしてもよい。通信鍵は、リモートコンピュータの公開鍵によって暗号化されているため、既に認証されたリモートサーバ(段階401を参照)だけが(そのサーバだけが知っているその対応する秘密鍵を使用して)解読することができることが保証される。次に、リモートコンピュータは、既に認証された周辺コンポーネントの公開鍵(上記段階401を参照)を使用して、周辺コンポーネントの対応する秘密鍵によって暗号化された通信鍵を解読および抽出することとなる。このようにして、認証済み周辺コンポーネントと認証済みリモートコンピュータとの間で通信鍵が確立される。この通信鍵は、符号化されたデータ(セキュアペイロード)を送信するために、それらのみに知られているものとなる。
【0051】
本発明は、通信鍵を確立する特定の方法に拘束されるものではない。例えば、手順は、通信鍵を規定するリモートコンピュータから開始し、その秘密鍵で暗号化した後、認証された周辺コンポーネントの公開鍵で暗号化するようにしてもよい。その後、認証された周辺コンポーネントは、認証されたリモートコンピュータの公開鍵と自身の秘密鍵を使用して、通信鍵を解読および抽出し、符号化データを送信し、安全なペイロードを実現する。
【0052】
上述した(周辺コンポーネント側での)計算段階は、例えば、プロセッサ106上で実行される暗号化セマンティクスモジュール202(
図2)で実行されるものであってもよく、上述した(リモートコンピュータを参照した)計算段階は、プロセッサ111上で実行される符号化モジュール117(
図1)で実行されるものであってもよい。
【0053】
安全な通信鍵を確立した後、それは、セキュアペイロードを実現するために、セキュア通信チャネルを介して通信されるデータを符号化すべく、符号化モジュール108(例えば、暗号化セマンティクスモジュール202)によって、例えば404で使用されるようにしてもよい。これは、セキュア通信チャネル(例えばトンネル)を介して送信するためのデータを暗号化すること、またはセキュア通信トンネルを介して受信したデータを復号することを含むことができる。
【0054】
同じことが、他の周辺コンポーネント103(例えば、ディスプレイ)が、リモートコンピュータ104との間でセキュア通信チャネル(105
2として模式的に示されている)を確立する場合にも当てはまる。
【0055】
キーボード周辺コンポーネント(ここでは、
図2に示すように、物理コンポーネント107が物理的キーパッドを示し、プロセッサ106は関連データを処理する)とリモートサーバとの間でセキュア通信を確立するための一連の動作の非限定的な例を以下に示す。本発明は、当然のことながら、この例に拘束されるものではない。
【0056】
a.キーボード−クライアント側(例えば、
図1の102)
i.ユーザは、外部認証デバイス(スマートカード、ニトロキーなど)をプラグインする。
ii.ユーザは、デバイスに対して認証を行う(例えば、生体認証を介して)。
iii.TPM(203)はファームウェアの状態を検証し、有効であればファームウェアを起動する。
iv.ファームウェアは、外部検証デバイス(204)から設定データを読み取る。
設定情報には、以下のものが含まれる(ただし、これらに限定されない)。
1.ローカルネットワークの設定および資格情報
2.リモートホストの設定および資格情報
指定された段階(i)から(iv)は、非限定的な方法でチップを検証し、ユーザを認証する段階を例示している。データの一部は、例えば、認証されるリモートコンピュータのアドレス、および/またはユーザデータ(例えば、生体認証データおよび/またはユーザパスワードなど、通信鍵の一部を形成する可能性のあるデータ)など、後の段階で使用される場合がある。
v.ファームウェアは、現在読み込まれている設定に基づいてデバイスをプロビジョニングする(設定情報は本質的に一時的なものである)。特定のキーボード周辺コンポーネントを検証し、コンポーネントの設定を抽出し、コンポーネントの初期化を行う。その後
vi.キーボードコンポーネントは、上記の
図3および
図4を参照して説明したように、(例えば、提供された設定データに基づいて)周辺コンポーネントおよびリモートコンピュータを認証することを含む、リモートコンピュータ(サーバ)へのセキュアチャネル(この例では、セキュアトランスポート(例えば、VPN))を確立する。
vii.対称鍵(通信鍵の一例)は、上記の
図3および4を参照して述べたように、認証されたデバイスの間で生成される。この例では、キーボードからのキーストロークが読み取られ、(同じ外部鍵ストアに基づく)第2の提供された鍵に暗号化されることが含まれる。これは、エンドツーエンド暗号化(ペイロード暗号化)、およびトランスポート暗号化を作成するためである。
viii.その後、暗号化されたペイロード(コードデータの一例)は、キーボードコンポーネントとリモートコンピュータとの間のセキュアチャネル(トンネル)を介して(通信鍵を使用して)送信される。
特定の実施形態によれば、トランスポート層は、エッジデバイス(例えば、ファイアウォール、VPNコンセントレータなど)で終端することができるが、ホストオペレーティングシステムレベルで終端することができることに留意されたい。
【0057】
b.リモートコンピュータ側(例えば、
図1の104)
i.トランスポート層(例えば、VPN)が確立される。これは、リモートコンピュータ側で実行される対応するセキュアチャネル部(クライアント側の(vi)を参照)である。
ii.クライアントデバイスは、クライアントのプロビジョニングされた鍵に基づいて認証される。(上述したキーボード周辺機器の認証)。
iii.認証が成功すると、仮想デバイスが、リモートコンピュータのオペレーティングシステムに提示される(仮想HID(キーボード))。
(iv)符号化されたデータは、前述したように、(リモートコンピュータがその生成に参加した)確立された通信(例えば、対称)鍵を使用して受信または送信される。例えば、Ingress暗号化されたペイロード(例えば、指定された対称鍵を使用)は、ソフトウェアドライバによって復号されて、非暗号化された標準スキャンコードをもたらす。
(v)スキャンコードは、デバイスのドライバを介してOSに配信される。
【0058】
このすべてを念頭に置いて、符号化されたデータは、認証済みのリモートサーバと認証された所与の認証済みの周辺コンポーネント(例えば、102、キーボードなど)との間で、符号化されたデータが他の周辺機器によって解読できないセキュアチャネル(例えば、105
1)を介して、交換することができる。同様に、リモートコンピュータと別の周辺コンポーネント(例えば、ディスプレイ103)との間で、
図3の特定のシーケンス(および、例えば
図4の特定の実施形態)を利用して、認証済みリモートサーバと別の周辺コンポーネントとの間で、符号化されたデータ(典型的には別のタイプのもの)を、別のセキュアチャネル(例えば105
2)を介して交換することができ、その別のセキュアチャネルでは、所与の認証済み周辺コンポーネントに指定された符号化データ又は所与の認証済み周辺コンポーネントに由来する符号化データは、他の周辺コンポーネントによって解読することができない。
【0059】
2以上のセキュア周辺コンポーネント(指定された方法で)が同じローカルコンピュータに存在する(または周辺機器が同じ物理的な場所に存在しない)という非限定的なシナリオを考慮すると、例えばサードパーティのハッキングによって本質的に危険に曝される可能性のある汎用プロセッサのような危険に曝され易いプロセッサを利用するローカルコンピュータよりも非常に安全性の高い、セキュアローカルコンピュータが達成される。危険に曝され易いプロセッサのこの定義は、CPUによって実行される特定のコマンドを使用して、特定のプロセスのみがメモリへのアクセスが許容されるような方法で、特定のプロセスのためのメモリセクションへのアクセスを制限するためのシステム/機能を含まないプロセッサ(例えば、CPU)を包含することができる。そのようなCPUでは、OSカーネルは、その時点でそのCPU上で行われている計算の内容を読み取ることができ、よって、危険に曝されたカーネルは、そのCPU上で行われているあらゆる計算を危険に曝すことになる。本発明は、この定義に拘束されるものではない。
【0060】
さらに、特定の実施形態に係るローカルコンピュータでは(または周辺機器が同じ物理的な場所に存在しない場合でも)、実質的にデータはクライアント側には保持されずに、(例えば、クラウド内の)セキュアリモートサーバにのみ保持される。
【0061】
特定の実施形態に係るこのソリューションは、例えば、Intel(登録商標)Skylake(商標)や、「Intel Software Guard Extension」(SGX)(商標)を利用してセキュア環境を実現する後で導入されるプラットフォームを組み込んだローカルコンピュータよりも、コストが低く、互換性がある。本発明は、特定のSGX(商標)に拘束されるものではない。
【0062】
特定の実施形態によれば、このソリューションは、クライアントコンピュータでのアクティビティの「全体像」を把握するために、1つの周辺コンポーネントだけでなく、むしろすべて(またはほぼすべての)周辺コンポーネントをハッキングする必要性があり、それが、各周辺コンポーネントが他のものとは独立して保護されているためにより困難である、という事実により有利である。
【0063】
本発明の様々な実施形態に係る教示を利用する、例えば
図1のアーキテクチャでは、クライアントコンピュータ(周辺コンポーネントのみを採用)に「汎用」処理能力がないことは、例えばリモートの保護されたクラウド環境上に存在するサーバなどのリモートコンピュータの処理能力によって満たされ得る。
【0064】
本開示の主題の教示は、
図3および
図4に示すフローチャートによっても、
図1および
図2に示す特定のモジュールによっても拘束されないことに留意されたい。例えば、図示の操作は、図示の順序から外れて生じることがある。操作の一部は、実質的に同時にまたは逆の順序で実行することができる。
【0065】
図5を参照すると、本開示の主題の別の態様に係る、セキュアクライアントコンピュータを提供するためのシステムの機能ブロック図が示されている。周辺コンポーネント(例えば、102、103−および場合によっては
図5に示されていない他のコンポーネント)およびリモートコンピュータ104は、
図1および
図2を参照して説明したものと同様であり、クライアントコンピュータ101に収容されるものであってもよく、この実施形態では、例えば、危殆化され易いコンピュータモジュール501を採用することによって、追加の処理能力を含むことができる。後者は、例えば、市販のIntel(商標)またはAMD(商標)のCPUのような、クライアントコンピュータに取り付けられた市販のCPUであってもよい。危殆化され易いという用語は、上述した非限定的な例によって規定されているように、合理的なサードパーティのハッキング技術を適用することによって危殆化され易いプロセッサを含むと解釈されるべきである。
図5から容易に分かるように、周辺コンポーネントとリモートコンピュータとの間の通信は、コンピュータモジュール501を通過するものであり、また、コンピュータモジュール501が危殆化され易いという特性により、周辺コンポーネントおよびリモートサーバから発生するデータまたはその逆は、プロセッサモジュール501でハッキングされる可能性があるため、安全であると見なすことはできない。
【0066】
したがって、プロセッサモジュール501は、(例えば、
図1の実施形態と比較して)クライアントコンピュータに計算能力を追加することができるが、危殆化され易く、明らかに不利である。このため、危殆化され易いプロセッサモジュールも採用したアーキテクチャにおいて、クライアントコンピュータとリモートサーバ間のセキュア通信を得るための方法が提供されている。
【0067】
すなわち、特定の実施形態によれば、周辺コンポーネントの各々は、周辺コンポーネント(例えば、102)と、それと通信することを許可されたリモートコンピュータ(例えば、104)との間に、セキュアピアツーピア通信チャネルを確立することができる。この目的のために、セキュア通信チャネル(例えば、105
1)を確立することができ、それには、リモートコンピュータ(104)と周辺コンポーネント(102)のみに知られている通信鍵(例えば、対称鍵)を確立することが含まれ、通信鍵は、
図1から
図4を参照して上述したように、周辺コンポーネントとリモートコンピュータとの間のデータの符号化のために使用することができる。
【0068】
図6を参照すると、本開示の主題の特定の実施形態に係る、
図5のシステムにおけるセキュア通信チャネルを生成するための一連の操作の一般化されたフローチャートが示されている。
【0069】
便宜上、プロセッサモジュール501という用語が使用されるときはいつでも、上述した問題で危殆化され易いプロセッサモジュールを指すことを意味しているとする。
【0070】
このため、601では、周辺コンポーネント(例えば、102)とプロセッサモジュール(例えば、501)との間に、安全なピアツーピア通信チャネル(例えば、502(1))が確立される。602では、プロセッサ501とリモートコンピュータ104との間に、セキュアプロセッサ/リモートサーバピアツーピア通信チャネル(例えば、503)が確立される。同様に、601では、周辺コンポーネント(例えば、103)とプロセッサモジュール(例えば、501)との間に、セキュアピアツーピア通信チャネル(例えば、502(2))が確立される。特定のセキュア通信チャネルを生成することは、それぞれの周辺コンポーネント(102、103)とコンピュータ(501)を認証することを含み、それにより、
図1および
図3および
図4の関連フローチャートを参照して詳述したように、セキュアトランスポートチャネル(105(1)、105(2))を確立する同様のプロセスにおいて、必要な変更を加えて、セキュアトランスポート(502(1)および502(2)をそれぞれ))を達成することができる。
【0071】
図7を参照すると、本開示の主題に係る、例えば
図6のフローチャートに従って確立されたセキュア通信チャネルを利用する一連の操作が示されている。
【0072】
より具体的には、701において、周辺コンポーネント(例えば、102)の符号化モジュールが、リモートコンピュータに指定されたデータ(例えば、符号化されたキーボードストローク)を符号化するために利用することができる。次いで、702では、符号化されたデータを、セキュア通信チャネル(例えば、502(1))を介してプロセッサモジュールに送信することができる。その後、符号化されたデータを、既に確立されたセキュアプロセッサ/リモートサーバ通信チャネル503を介して、プロセッサモジュールから許可されたリモートサーバ(例えば、104)に送信することができる(703)。
【0073】
符号化されたデータ(例えば、符号化されたキーストローク)は、リモートコンピュータ(例えば、104)と周辺コンポーネント(例えば、102)とに知られた(おそらくこの周辺コンポーネントにしか知られておらず、他の周辺コンポーネントには知られていない)通信鍵(例えば、対称鍵)を使用して生成されたため、この符号化されたデータは、プロセッサモジュールによって復号することができず、よって、プロセッサ501が危殆化されて、符号化されたデータがプロセッサ501内で傍受されたとしても、それを解読することはできず、それにより、プロセッサモジュールの利用に関わらず、クライアントコンピュータと許可されたサーバコンピュータ(リモートコンピュータ)との間のセキュア通信が実現されることに留意されたい。
【0074】
図8を参照すると、本開示の主題に係る、セキュア通信チャネルを利用する一連の操作が示されている。この例では、符号化されたデータは、リモートコンピュータ(例えば、104)から周辺コンポーネント(例えば、ディスプレイコンポーネント103)に伝送され、これには、(801において)プロセッサモジュール501で、セキュアプロセッサ/リモートサーバ通信チャネル503を介して、許可されたリモートサーバ104によって送信された符号化されたデータを受信することが含まれている。上述したように、符号化されたデータは、プロセッサモジュールによって復号することができない。
【0075】
その後、802では、符号化されたデータが、プロセッサ501からセキュア通信チャネル502
2を介してディスプレイ周辺コンポーネント103に送信される。
【0076】
次いで、803では、ディスプレイ周辺コンポーネントの符号化モジュールが、符号化データを復号するために利用され、それにより、プロセッサモジュール501の利用に関わらず、ディスプレイ周辺コンポーネントと許可されたサーバコンピュータ104との間のセキュア通信が達成される。
【0077】
第1の態様(
図1を参照して説明)および第2の態様(
図5を参照して説明)で例示された周辺コンポーネントが、本質的に一方向のキーボード発信およびディスプレイ受信によって使用されているのに対して、他の実施形態によれば、他の双方向の周辺コンポーネントを、リモートコンピュータとの間で符号化されたデータを送受信するために使用することができることに留意されたい。
【0078】
図6〜
図8の文脈では、符号化されたデータという用語は、その変形として、例えばプロセッサ501によって追加された追加データを含むと解釈されるべきであることに留意されたい。
【0079】
また、特定の実施形態によれば、2つのアーキテクチャ(例えば、
図1および
図5のアーキテクチャ)を組み合わせて、周辺コンポーネントがリモートコンピュータと直接通信するか、またはプロセッサモジュールを介して通信することを可能にすること、またどちらの場合においても、同様に、リモートコンピュータが周辺コンポーネントと直接通信するか、またはコンピュータを介して通信することができることにも留意されたい。
【0080】
本開示の主題の教示は、
図6〜
図8に示すフローチャートの何れにも、また
図5に示す特定のモジュールにも拘束されないことに留意されたい。例えば、図示の操作は、図示の順序から外れて生じ得る。操作の一部は、実質的に同時にまたは逆の順序で実行することもできる。
【0081】
本発明の別の態様に目を向けると、
図9には、本開示の主題の特定の実施形態に係る、セキュアクライアントコンピュータを提供するためのシステムの機能ブロック図が示されている。
【0082】
周辺コンポーネント(例えば、102、103、および場合によっては
図9に示されていない他のコンポーネント)は、
図1および
図2を参照して説明したものと類似しており、クライアントコンピュータ101に収容することができる。この実施形態では、危殆化され易いプロセッサモジュール(例えば、
図5の501)、およびリモートコンピュータ(例えば、104)の使用が回避され得ることに留意されたい。
【0083】
すなわち、特定の実施形態によれば、周辺コンポーネント(例えば、103)の各々は、別の周辺コンポーネント(例えば、102)に直接、セキュアピアツーピア通信チャネル(901)を確立することができる。このようなセキュア通信チャネルの確立は、周辺コンポーネントのそれぞれのグループのみに知られている通信鍵(例えば、対称鍵)の確立を含むことができる。通信鍵は、後述するように、それぞれの周辺コンポーネント間のデータの符号化に使用可能である。
【0084】
図10は、本開示の主題の特定の実施形態に係る、
図9のシステムにおける一連の操作の一般化されたフローチャートを示している。
【0085】
最初に、周辺モジュールのグループのある周辺コンポーネント(例えば、102)と他の周辺コンポーネント(102)との間で、セキュアピアツーピア通信チャネルが確立される(1001)。
【0086】
次に(1002)、例えば周辺コンポーネント102の符号化モジュール(
図2参照)が、ある周辺コンポーネントと他の周辺コンポーネントとの間でセキュア通信チャネルを介して通信されるデータを符号化するために利用され、符号化されたデータは、他の(特定の実施形態によればすべての他の)周辺コンポーネント(
図9には示されていない)の符号化モジュールによって復号することができない。
【0087】
グループの周辺コンポーネントの何れかまたは両方のデータ互換性モジュール(
図3を参照)は、第1のタイプのデータを第2のタイプのデータに変換するために、またはその逆に変換するために利用することができ(1003)、それにより、共通のデータタイプで周辺コンポーネント間の通信を容易にすることができる。
【0088】
図11を参照すると、本開示の主題に係る、セキュア通信チャネルを利用する一連の操作が示されている。この例では、符号化されたデータが、第1の周辺コンポーネント(例えば、キーボード102)から周辺コンポーネント(例えば、ディスプレイコンポーネント103)に伝達され、それには(1101において)、セキュア通信チャネル901を介して符号化されたデータを送信することが含まれる。
【0089】
次いで、1102において、ディスプレイ周辺コンポーネントの符号化モジュールが、符号化されたデータを復号するために利用され、それにより、ディスプレイ周辺コンポーネントとキーボード周辺コンポーネント104との間のセキュア通信が達成される。
【0090】
グループの第1および第2の周辺コンポーネントの何れかにおいて、データ互換性モジュールを利用して(1103)、データを共通のデータタイプ(後者の例では、キーボードおよびディスプレイ)に変換することができる。
【0091】
符号化されたデータ(例えば、符号化されたキーストローク)は、周辺コンポーネント(例えば、102および103)に知られている(そしておそらく、それらにしか知られていない)通信鍵(例えば、対称鍵)を使用して生成されたものであるため、他の周辺コンポーネント(グループ内の他の周辺コンポーネントを除く)によって復号できないことに留意されたい。
【0092】
周辺コンポーネントから周辺コンポーネントへのセキュア通信チャネルは、(上記の
図3および
図4を参照して説明した本発明の第1の態様の特定の実施形態のように)リモートコンピュータを介さずに直接的なセキュア通信を容易にすることに留意されたい。例えば、キーボード周辺コンポーネント(例えば、102)で入力され、ディスプレイ周辺コンポーネント(例えば、103)で表示されるパスワードを考える。このように得られるトランスポートセキュリティおよびペイロードセキュリティのおかげで、コンポーネントまたはチャネルの何れかが危険に曝される可能性は、保護されていないコンポーネント/チャネルよりも低く、よって、本発明の第3の態様の特定の実施形態によれば、パスワードなどの機密データの伝達は、リモートコンピュータを利用しなくても実現可能である。例えばキーボード関連のデータタイプ対ディスプレイ関連のデータタイプのように、周辺機器間のデータタイプに互換性がない場合、データ互換性モジュール(例えば、ドライバ)は、それ自体既知であるように、例えばキーストロークを表示されるピクセルに変換するための共通のデータタイプを提供することができる。
【0093】
また、第1の態様(
図1を参照して説明)、第2の態様(
図5を参照して説明)および第3の態様(
図9を参照して説明)で例示される周辺コンポーネントは、本質的に一方向(キーボードの発信およびディスプレイの受信)であるが、他の双方向の周辺コンポーネントを、リモートコンピュータとの間で符号化されたデータを送受信するために使用できることにも留意されたい。
【0094】
また、特定の実施形態によれば、2つのアーキテクチャ(例えば、
図1および
図9のアーキテクチャ)を組み合わせて、周辺コンポーネントが、リモートコンピュータを介して、かつ/または直接、別の周辺コンポーネントと通信することを可能にすることができることにも留意されたい。
【0095】
また、本明細書では、(例えば、セキュア通信チャネル、または例えば通信鍵の共有などの文脈で)周辺コンポーネントのグループを参照しているが、それは、2つの周辺コンポーネントに適用することもでき、あるいは、本開示の主題の特定の実施形態によれば、2以上(例えば、3以上)の周辺コンポーネントに適用できることにも留意されたい。同様に、周辺コンポーネントおよびリモートコンピュータへの言及がなされる場合はいつでも、本開示の主題の特定の実施形態によれば、例えば、セキュア通信チャネルまたは例えば通信鍵を共有するという文脈で、2以上の周辺コンポーネントおよびリモートコンピュータに適用することができる。
【0096】
明確にするために、別個の実施形態の文脈で説明されている本開示の主題の特定の特徴は、単一の実施形態において組み合わせて提供できることも理解されよう。反対に、単一の実施形態の文脈で説明されている、本開示の主題の様々な特徴は、別個に、または任意の適当なサブコンビネーションで提供することもできる。
【0097】
「may(してもよい)」、「can(することができる)」またはそれらの変化形などの条件付き言語の使用は、主題の1または複数の例が、主題の1または複数の他の例が必ずしも特定の方法、手順、コンポーネントおよび特徴を含むとは限らないが、主題の1または複数の例が含まれることを伝えるものとして解釈されるべきである。このため、そのような条件付きの言語は、一般に、特定の記載された方法、手順、コンポーネントまたは回路が、主題のすべての例に必ずしも含まれることを示唆することを意図したものではない。さらに、非条件言語の使用は、特定の記載された方法、手順、コンポーネントまたは回路が、主題のすべての例に必ずしも含まれることを示唆するものではない。
【0098】
本発明は、その用途において、本明細書に含まれるか又は図面に示される記載に述べられた詳細に限定されないことを理解されたい。本発明は、他の実施形態が可能であり、様々な方法で実施および実行することができる。このため、本明細書で用いられている表現および用語は、説明を目的とするものであり、限定的なものと見なされるべきではないことを理解されたい。よって、当業者であれば、本開示の基礎となる概念が、本開示の主題のいくつかの目的を遂行するための他の構造、方法およびシステムを設計するための基礎として容易に利用できることを理解するであろう。
【0099】
また、本発明に係るシステムは、少なくとも部分的には、適切にプログラムされたコンピュータ上に実装されてもよいことが理解されるであろう。同様に、本発明は、本発明の方法を実行するためにコンピュータによって読み取り可能なコンピュータプログラムを企図している。さらに、本発明は、本発明の方法を実行するためにコンピュータによって実行可能な命令のプログラムを有形に具現化する非一時的なコンピュータ可読メモリも企図している。
【0100】
当業者であれば、添付の特許請求の範囲で規定された本発明の範囲から逸脱することなく、上述した本発明の実施形態に様々な修正および変更を適用できることを容易に理解するであろう。
【国際調査報告】