プライベートネットワークシステム及び方法
【課題】セキュア仮想プライベートネットワーク(VPN100)を形成するための方法を提供する。
【解決手段】セキュア仮想プライベートネットワークは、各エンティティがVPN上の少なくとも1つの他のデバイスとのリンクを有するインターネット接続性を備えた2つ又はそれ以上のリンクされたエンティティからなる。本方法は、VPNに接続可能であることが既知であるエンティティの更新可能なインデックスを備えた既知のアドレスを有するルックアップデバイス(104、246)を提供する段階によって特徴付けられる。
【解決手段】セキュア仮想プライベートネットワークは、各エンティティがVPN上の少なくとも1つの他のデバイスとのリンクを有するインターネット接続性を備えた2つ又はそれ以上のリンクされたエンティティからなる。本方法は、VPNに接続可能であることが既知であるエンティティの更新可能なインデックスを備えた既知のアドレスを有するルックアップデバイス(104、246)を提供する段階によって特徴付けられる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、幾つかのコンピュータ間、或いは携帯電話、パーソナルデジタルアシスタント(PDA)又は同様のものなど、他の電子デバイスとデータを共有する方法に関する。データは、これらのデバイス間の電子接続を介して、特にインターネット、或いは、例えばLAN、WAN、又は無線ネットワークなどの他の手段を介して共有される。詳細には、本発明は、別個のデバイスに記憶されているデータを、セキュアな方式で、任意選択的には暗号化を用いて特別なセキュアパーティションを使用したインターネット上で共有することに関する。本発明は、セキュアパーティション、セキュアパーティションの作成方法、及びセキュアパーティションの作成方法を実行するためのアプリケーションソフトウェアに関する。本発明はまた、1つ又はそれ以上のリモートデバイスに含まれたデータ及び機能へのアクセスを提供するためのコンピュータシステム、方法、及びインターフェースに関する。
【背景技術】
【0002】
大多数の人が、情報を記憶する複数のデジタルデバイスを使用している。例えば、ユーザは、スマート携帯電話、家庭でのラップトップ、及び職場でのパーソナルコンピュータを使用する場合がある。従来、データは1つのデバイスから別のデバイスにマニュアルで転送しなければならず、これを行うのは困難であった。2つ又はそれ以上のデバイス間でデータを同期するのに利用可能な他の手段があるが、これらの手段は一般に、その実行のための特定のソフトウェアアプリケーションを必要とする。
【0003】
これらのデバイス上に記憶された情報にどこからでもセキュアにアクセスできることが益々必要になってきている。これは、動作及び管理が簡単でなくてはならず、これによってあらゆるタイプのデータ、及び各タイプのデータにアクセスしたり修正したりするソフトウェアアプリケーションを、ユーザのどの電子デバイスでも利用できるようにする需要がある。データは、例えばインターネット又はWANなどのネットワークを介してアクセスされ、データ共有システムはまた、現在使用しているどのデバイスからもデータの所有者だけがデータにアクセス可能であるように効果的なセキュリティを有する必要がある。
【0004】
複数のデバイスをリンクしようとする試みにおいて、種々のシステム及び方法が考案されてきた。例えば、Changwen他に付与された英国特許GB2411092は、モバイルノード(例えばラップトップ)のためのセキュアネットワーク経路の作成を記載している。本方法は、モバイルノードの永久ネットワークアドレス及びプロキシ気付アドレス(ケアオブアドレス)を指定する登録要求をホームエージェントに送る段階を含む。プロキシ気付アドレスは、モバイルノードと通信するのに使用される。
【0005】
別の実施例は、Fontijn他に付与された国際特許WO04081818であり、ピアツー・ピアネットワークにおいてデバイス間でオーナーシップ変更を転送する方法を開示する。本方法は、変更が関連する1つ又はそれ以上のデバイスに変更を伝搬する段階を含む。変更をコミットする責任はデバイス間で渡される。
【0006】
本明細書で使用される用語「含む(comprising)」は、「少なくとも部分的に〜からなる」を意味する。用語「含む(comprising)」を含む本明細書における各表現を解釈する場合、この用語述べられるもの以外の特徴も存在することができる。「comprise」及び「comprises」などの関連する用語も同様に解釈すべきである。
【0007】
本明細書で使用される用語「及び/又は」は、「及び」もしくは「又は」、或いは両方を意味する。
【0008】
本明細書で使用される名詞に続く「(s)」は、その名詞の複数形及び/又は単数形を意味する。
【0009】
本明細書に開示される数の範囲(例えば1から10)の記載は、その範囲内の全ての有理数(例えば、1、1.1、2、3、3.9、4、5、6、6.5、7、8、9及び10)、及びその範囲内の有理数のいずれかの範囲(例えば、2から8、1.5から5.5、及び3.1から4.7)の記載を含むものとする。
【0010】
上記及び下記に記載される全ての出願、特許、及び公報の開示全体は、もしあれば、引用により本明細書に組み入れられる。
【0011】
本明細書では、特許明細書及び他の文献を含む情報の外部ソースについて参照する場合、これは、一般的に本発明の特徴を説明するための背景を提供する目的に過ぎない。別段の指示がない限り、このような情報ソースの参照は、あらゆる権限において、当該情報ソースが従来技術であるか又は当該技術分野において公知の一部を形成すると認められたものとして解釈すべきではない。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】英国特許GB2411092公報
【特許文献2】国際特許WO04081818公報
【発明の概要】
【課題を解決するための手段】
【0013】
ここで本発明を一般論として説明する。本発明の目的は、改良されたプライベートネットワークを提供することであり、或いは少なくとも、有用な選択を社会又は産業界に提供することである。
【0014】
第1の態様において、本発明は、各エンティティがVPN上の少なくとも1つの他のデバイスとのリンクを有するインターネット接続性を備えた2つ又はそれ以上のリンクされたエンティティからなるセキュア仮想プライベートネットワーク(VPN100)を形成するための方法にあり、該方法は、
(a)VPNに接続可能であることが既知であるエンティティの更新可能なインデックスを備えた既知のアドレスを有し、VPNへのリンクを望む既知のエンティティ(「結合エンティティ」)(236)からの要求を受け付けるルックアップデバイス(104、246)を提供する段階と、
(b)VPN上の少なくとも1つの事前に指定されたコンタクトエンティティ(238)に、受け取られた結合要求に対してルックアップデバイス(104)を定期的にポーリングさせる段階と、
(c)ルックアップデバイス(104)が、VPN(100)に接続するための結合エンティティからの要求を受け取る段階と、
(d)結合要求に対するポーリングに応じてルックアップデバイス(104)が、ポーリング側コンタクトエンティティ(238)に各結合エンティティ(236)の少なくともアドレスを通知する段階と、
(e)コンタクトエンティティ(238)がVPNへの接続を許可した場合、コンタクトエンティティが、少なくともそのアドレスをルックアップデバイスに提供し、これを結合エンティティに渡す段階と、
(f)結合エンティティ(236)及びコンタクトエンティティ(238)が、双方の間に第1リンク(254)を設定する段階と、
(g)結合エンティティ及びコンタクトエンティティが、第1リンクを通じて認証プロセスを行う段階と、
(h)認証プロセスが成功した場合、コンタクトエンティティが、VPNに属する少なくとも他のエンティティの状態を結合エンティティに通知し、結合デバイスがVPNに結合していることをVPN上の全てのエンティティに通知する段階と、
(i)結合デバイスが、VPNに属する他のエンティティの状態を使用して、接続する1つ又は2つの近傍のエンティティを含むVPNにおけるそのノード位置を計算する段階と、
(j)1つ又は2つの近傍のエンティティが、ルックアップエンティティと共に段階(c)から(f)において指示されたタイプのプロセスを開始して、結合エンティティと1つ又はそれ以上の第2リンクを設定して、第1リンクを終了させる段階と、
(k)結合エンティティ及び少なくとも1つの近傍のエンティティが、成功した場合に1つ又はそれ以上の第2リンクを維持する相互認証プロセスを行う段階と、
によって特徴付けられる。
【0015】
好ましくは、本方法により、エンティティ(270)が、1つ又はそれ以上の所要のVPNへのアクセスのためにルックアップデバイス(104、274)に登録され、該登録されたエンティティのみが、続いてルックアップデバイスに認識され又は既知とされ、登録段階は、エンティティ(270)が、少なくともユーザ名、パスワードを含む登録情報をルックアップデバイスに送る段階と、登録されたエンティティがVPN結合要求をルックアップデバイスに送るときに、ルックアップデバイス(104、274)が識別目的で登録情報を記憶する段階とを含む。
【0016】
好ましくは、前記登録段階は、ルックアップデバイス(104、274)が登録エンティティにセキュリティ鍵(278)を送り、登録処理を行うものであって且つ他のエンティティが登録されているVPNに固有のセキュリティ鍵にエンティティがアクセスできるようにする。
【0017】
好ましくは、段階(h)において、コンタクトエンティティは更に、VPNに属する他のエンティティのエンティティ識別子を結合エンティティに通知する。
【0018】
好ましくは、段階(i)において、結合エンティティは更に、VPNに属する他のエンティティのエンティティ識別子を使用して他のエンティティのノード位置を計算する。
【0019】
好ましくは、エンティティ識別子はアドレスである。
【0020】
好ましくは、認証プロセスは、他のエンティティを識別するといわれている固有の鍵(304)を使用して他のエンティティにチャレンジする2つのエンティティの各々からなり、各チャレンジは、他のエンティティへの送信(604)、他のエンティティからの応答(612)、及び応答が正しいことをチャレンジ側エンティティで検証することを含む。
【0021】
好ましくは、第1エンティティと第2エンティティとの間の各チャレンジは、
(a)第1エンティティが、データのランダムシーケンス(AB’600)を作成し、これを記憶し、これを第2エンティティの公開鍵(304)で暗号化して、結果として得られる暗号文を第2エンティティに送る段階と、
(b)第2エンティティが、第1エンティティから暗号文を受け取り、第2エンティティの秘密鍵(306)を使用してこれを復号し、結果として得られる平文を第1エンティティの公開鍵(302)で暗号化して、これを第1エンティティに送る段階と、
(c)第1エンティティが、第2エンティティから暗号文を受け取り、第1エンティティの秘密鍵(300)を使用してこれを復号し、結果として得られる平文を記憶されたデータのランダムシーケンス(AB’600)と比較し、一致する場合、第2エンティティが認証されたことを受け付ける段階と、を含む。
【0022】
好ましくは、VPNに接続されたエンティティ間のデータトラフィックが対称鍵(symmetric key)を使用して暗号化され、対称鍵は、前記データのランダムシーケンス(AB’600)である。
【0023】
好ましくは、認証プロセスが周期的に繰り返され、周期的に生成されたランダムデータシーケンスは、動的対称セッション鍵(a dynamic symmetric session key)として使用される。
【0024】
好ましくは、エンティティは、インターネットに接続することができるプロセッサを有するデバイスである。
【0025】
好ましくは、デバイスは、コンピュータ、PDA、PPC、携帯電話又はスマートフォン、及び組込み型デバイスを含む。
【0026】
別の一態様において、本発明は、各々がデータと検証チェックに使用される秘密鍵とを含む2つ又はそれ以上のデバイスを備えたセキュアインターネットパーティションを提供し、パーティションの使用において、各デバイスは1つ又はそれ以上の近傍のデバイスに関連付けられており、パーティションの使用において、各デバイスはまた近傍のデバイス間のデータトラフィックの暗号化及び/又は復号化に使用される暗号鍵及び近傍のデバイスの公開鍵を含み、更にパーティションの使用において、各デバイスは、近傍の秘密鍵及び公開鍵を使用して該近傍のデバイスの検証チェックを行い、近傍デバイスが検証された場合、暗号鍵を使用して近傍デバイスにデータを送信するよう動作する。
【0027】
近傍のデバイスはループを形成することができる。セキュアインターネットパーティションが3つ又はそれ以上のデバイスから構成されている場合、各デバイスは、2つの近傍のデバイスを有することができる。
【0028】
検証チェックは、チャレンジ及び応答認証に基づいて行うことができる。検証チェックは、周期的に行うことができる。検証チェックは、周期的に更新された検証シーケンスに基づいて行うことができる。
【0029】
暗号鍵は対称鍵とすることができ、各デバイスは、実質的に同じ暗号鍵を有することができる。
【0030】
パーティションは更に、パーティションを含むデバイスのリストを維持するルックアップポイントを有することができる。追加的なデバイスは、この追加的なデバイスの近傍にあるパーティションでのデバイスの詳細をルックアップポイントアドレスから取得することによってパーティションに結合することができる。
【0031】
パーティションのデバイスは、デバイスの組から構成することができ、デバイスの組は、追加的なパーティションを形成する。
【0032】
本発明はまた、セキュアインターネットパーティションを作成する方法に関する。別の一態様において、本発明は、デバイスにインストールされるアプリケーションソフトウェアであり、セキュアインターネットパーティションを作成する方法を実行する。更に別の一態様において、本発明は、追加的なデバイスがセキュアインターネットパーティションに結合するのを可能にするルックアップポイントに関する。
【0033】
別の一態様において、本発明は、インターネット上でデータをセキュアに送信するためのセキュアインターネットパーティションを供給し、このパーティションは、第2デバイスに送信されることになるデータ、暗号鍵、及び検証シーケンスを含む第1デバイスと、第2デバイス及び暗号鍵を検証するために第1デバイスから受信された検証シーケンスを含む第2デバイスとを備え、パーティションの使用において、第1デバイスは、検証シーケンス及び暗号鍵を使用してデータを暗号化するよう動作し、第2デバイスは、暗号鍵及び検証シーケンスを使用してデータを復号する。
【0034】
第1デバイスは、暗号鍵を使用して、該暗号鍵をパーティションシーケンスと組み合わせ、組み合わせた暗号鍵及びパーティションシーケンスを使用してデータを暗号化することによって、データを暗号化するように動作することができる。データは、パケット化することができ、組み合わされた暗号鍵及びパーティションシーケンスは、パケットの一部を暗号化するのに使用される。パケットは、ヘッダと本体を含むことができ、暗号化された部分は本体とすることができる。
【0035】
第1デバイスは、パーティションシーケンスを検証シーケンスで暗号化し、これを第2デバイスに送信したデータに追加することによって、前記検証シーケンスを用いてデータを暗号化するよう動作することができる。データは、ヘッダと本体を有するパケットにパケット化することができ、暗号化されたパーティションシーケンスをヘッダに加えることができる。
【0036】
第2デバイスは、検証シーケンスを用いてパーティションシーケンスを求めることによって、検証シーケンスを用いたデータの復号を行うことができる。更に、第2デバイスは、求められたパーティションを暗号鍵と組み合わせデータの復号化に用い、暗号鍵を使用したデータの復号を行う。
【0037】
パーティションシーケンスは、周期的に変化することにおいて動的にすることができる。パーティションシーケンスは、ランダムに生成することができる。検証シーケンスは、周期的に変化することにおいて動的にすることができる。パーティションシーケンスは、ランダムに生成できる。
【0038】
検証シーケンスは、第1及び第2デバイスに固有のものとすることができる。検証シーケンスは、第1デバイスから第2デバイスへのデータ送信に固有のものとすることができる。検証シーケンスは、チャレンジ/応答認証の一部として第1デバイスから受信することができる。第2デバイスは、別の検証シーケンスを含むことができ、第1デバイスは、第1デバイスを検証するために第2デバイスから受信された別の検証シーケンスを含むことができる。
【0039】
パーティションは、全てが暗号鍵を含む追加的なデバイスを備えることができる。パーティションは、追加的なデバイスを含むことができ、パーティションシーケンスは、パーティションのいずれかのデバイスにデータを送信するときに第1デバイスによって使用される。
【0040】
別の一態様において、本発明は、インターネット上でセキュアにデータを送信する方法に関する。更に別の一態様において、本発明は、インターネット上でセキュアにデータを受信する方法に関する。別の一態様では、本発明は、インターネット上でセキュアにデータを送受信する方法を実行するためのソフトウェアアプリケーションに関する。
【0041】
別の一態様において、本発明は、1つ又はそれ以上のリモートデバイスに含まれるデータ及び機能へのアクセスを提供するコンピュータネットワークを提供し、該コンピュータシステムは、データへのアクセスを可能にし且つ機能を提供するリアルオブジェクトを各々が含む2つ又はそれ以上のデバイスを備え、使用時に各デバイスは、バーチャルオブジェクトのペアを使用することによってリモートデバイスのデータ及び機能にアクセスすることが可能となり、第1バーチャルオブジェクトは、リアルオブジェクトと通信するためのデバイス内に位置付けられ、第2バーチャルオブジェクトは、第1バーチャルオブジェクトと通信するためのリモートデバイス内に位置付けられる。
【0042】
バーチャルオブジェクトは、リアルオブジェクトからデータ及び機能を抽出し、データ及び機能をリアルオブジェクトのオペレーティングシステムから独立させるようにすることができる。オブジェクトは、データを記憶し、データの操作において機能を提供することができるソフトウェアアプリケーションとすることができる。
【0043】
使用時には、各デバイスは、メタオブジェクトのペアを使用することによってリモートデバイスの追加機能にアクセスすることができ、第1メタオブジェクトは、バーチャルオブジェクトと通信するためのデバイス内に位置付けることができ、ここでメタオブジェクトは追加機能を提供し、第2メタオブジェクトは、第1バーチャルオブジェクトに追加機能を提供するために第1バーチャルオブジェクトと通信するためのリモートデバイス内に位置付けられる。オブジェクトは、複数の動作を含むことができる。
【0044】
更に別の一態様において、本発明は、1つ又はそれ以上のリモートデバイスに含まれるデータ及び機能へのアクセスを可能にする。別の一態様では、本発明は、電子デバイス用のインターフェースを提供し、1つ又はそれ以上のリモートデバイスに含まれるデータ及び機能にアクセスできるようにする。
【0045】
本発明の一実施形態は、人が単一のインターフェース上で複数のデバイスのネットワーク上に記憶されたデータコンテンツにアクセスするためのセキュアでフレキシブル且つ簡単な方法を提供する。各デバイスのユーザは、異なるものとすることができ、これによってデバイスのユーザは、単一のインターフェースを使用してデバイス上のどのコンテンツに他のユーザがアクセスできるかを制御することが可能になる。
【0046】
データは、文書、音楽、写真、電子メール、警報、及び更新などのいずれかのデジタルファイルとすることができる。更に、アクセスデータは、温度を読み取るデジタル入力カード、又はデバイスからのスクリーンショットのような動的ソースからのものとすることができる。インターネットなどのネットワークに接続できるあらゆるデバイスを本発明と共に使用することができる。
【0047】
本明細書で使用される用語「インターネット」とは、コンピュータ、携帯電話、PDA、及び同様のものなどの電子デバイスを接続する他のタイプのネットワークを含むように広義に解釈すべきであり、用語「インターネット」は、イントラネット、又はWAN、LAN、無線ネットワーク、その他などの他の電子通信ネットワークを含むことになる。
【図面の簡単な説明】
【0048】
【図1】単一のクラウドのアーキテクチャを示す概略図である。
【図2】複数のクラウドのアーキテクチャを示す概略図である。
【図3】中央で管理される複数のエンティティを示す概略図である。
【図4】プライベートに管理される複数のエンティティを示す概略図である。
【図5】デバイスとエンティティとの間の関係を示す概略図である。
【図6】複数のデバイスにわたって作成できるデータ及び機能の単一ビューを作成するためにオブジェクトがどのように働くかを示す図である。
【図7】リアルオブジェクト、バーチャルオブジェクト、リモートオブジェクト、及びメタオブジェクト間の関係を示す概略図である。
【図8】動作とオブジェクトとの間の関係を示す概略図である。
【図9】動作のインスタンスがオブジェクトにおいてどのように作成されるか示す概略図である。
【図10】エンティティが失われた場合のクラウドにおける完全性リンクを示す概略図である。
【図11】エンティティが結合した場合のクラウドにおける完全性リンクを示す概略図である。
【図12】デバイスの登録中のデバイス上の鍵とルックアップポイントの配置を示す図である。
【図13】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図14】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図15(a)】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図15(b)】2つのエンティティ間の完全性リンクの設定を示す概略図である。
【図15(c)】クラウドにおける2つのエンティティ間でデータトラフィックを送るプロセスを示す概略図である。
【図15(d)】エンティティがクラウドに結合するプロセスを示す概略図である。
【図16】本発明のソフトウェアのためのモジュールの配置を示す概略図である。
【図17】複数のクラウドにおけるソフトウェアモジュール間の関係を示す図である。
【図18】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図19】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図20】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図21】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図22】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図23】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図24】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図25】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図26】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図27】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図28】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図29】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図30】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図31】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図32】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図33】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図34】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図35】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図36】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図37】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図38】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図39】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図40】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図41】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図42】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図43】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図44】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図45】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図46】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図47】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図48】起動手順を示すフローチャートである。
【図49】ログオン画面の実施例を示す図である。
【図50】デバイス起動手順を示すフローチャートである。
【図51】結合ルックアップ要求の手順を示すフローチャートである。
【図52】フローチャートを使用してクラウド結合プロセスを示す図である。
【図53】クラウド結合手順を示すフローチャートである。
【図54】クラウド起動手順を示すフローチャートである。
【図55】クラウド初期化手順を示すフローチャートである。
【図56】クラウドにおいて全てのデバイス全体にわたる単一ビューを作成するフローチャートである。
【図56A】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図56B】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図56C】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図57】クラウド起動手順を示すフローチャートである。
【図58】オブジェクト通信を示すフローチャートである。
【図59】デバイスルックアップ及び接続手順についてのフローチャートである。
【図60】メッセージ交換手順を示すフローチャートである。
【図61】クラウド完全性維持手順を示すフローチャートである。
【図62】ピア情報同期手順を示すフローチャートである。
【図63】クラウド情報同期手順を示すフローチャートである。
【図64】ルックアップポイントメッセージ処理手順についての幾つかの詳細を示す図である。
【図65】結合問合せメッセージング手順についての幾つかの詳細を示す図である。
【図66】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図67】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図68】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図69】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図70】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【発明を実施するための形態】
【0049】
ここで本発明の実施例について添付図面を参照して説明する。
【0050】
インターネットのセキュアパーティションの実施例について説明する。本明細書では、セキュアインターネットパーティションを「クラウド(cloud)」と呼ぶことにする。
【0051】
<デバイス>
プロセッサを有するあらゆるデバイスであり、(TCP/IPなどを使用して)インターネットに接続することができ、セキュアインターネットパーティションの一部を形成するためにクラウドに接続することができる。このようなデバイスはまた、一定の最小システム要件を満たさなくてはならない。デバイスの実施例は、PC(「Windows(R)」、「Linux」、「Macintosh」、又はオープンソースオペレーティングシステムなどのいずれかのオペレーティングシステムを備える);「Palm OS」、「Windows CE/Mobile」などのいずれかのオペレーティングシステムを備えたPDA、PPC;「BlackBerry」、Java(R)フォン、Nokiaの「Symbian」オペレーティングシステム携帯電話などの携帯電話、又はスマートフォン;及び組み込み型デバイスを含む。
【0052】
<エンティティ>
エンティティは、仮想プライベートネットワーク(VPN)或いは「クラウド」における基本ユニット(又はノード)である。エンティティは、オブジェクトの集合であり、デバイス又はクラウドもしくはVPN自体によって作成することができる。
【0053】
<オブジェクト>
オブジェクトは、エンティティ(すなわちデバイス又はクラウド)に関連付けられる。オブジェクトは、クラウドにおけるデバイス上のデータ及び機能へのアクセスを可能にする機能を含む。すなわち、オブジェクトは動作の集合である。オブジェクトは、動作のインスタンスを作成することができる。オブジェクトは、クラウドの各デバイスからクラウドに付加し、信頼できるデバイスの全てからクラウド内のオブジェクトを利用可能にすることができる。
【0054】
<クラウド>
既知の信頼できるエンティティ間で作成されたVPNである。クラウドは、どのデバイスが信頼されているか及びこれらのエンティティの状態について認識している。またクラウドは、デバイス及び/又は他のクラウドのVPNとすることができる。オブジェクトは、クラウド内の各エンティティから付加することができる。
【0055】
<ルックアップポイント>
ルックアップポイントは、エンティティが互いを見つけることを可能とするためにシステムで使用される。共有ルックアップポイントは、クラウドの集中型の登録及び制御を可能にする。ルックアップポイントは、クラウド内のデバイスの1つに位置付けることができる。或いは、ルックアップポイントはまた、別個のデバイス上にあってもよい。
【0056】
これらの概念について、図1〜20に関して詳細に説明する。
【0057】
図1は、単一クラウド100のアーキテクチャを概略的に示している。クラウド100は、4つのエンティティA−Dから生成されている。エンティティAは、それ自体が、デスクトップコンピュータ、ノートブック、PDA、及びスマートフォンを含むデバイスのセットから構成されたクラウドである。エンティティBは、別のデスクトップコンピュータである。エンティティCは別のスマートフォンである。エンティティDは別のクラウドである。各エンティティA−Dは、ファイアウォール106の後ろに構成されており、インターネット102に接続されている。4つ全てのエンティティA−Dに対し、別のデバイス上で維持される共有ルックアップポイント104が存在する。
【0058】
各エンティティA−Dは、それぞれ108a−108dのラベルが付いた異なるコンテンツに関連付けられている。コンテンツ108a−108dは、オブジェクトの形式でクラウド上で共有される。各エンティティA−Dには、コンテンツ108a−108d全てへの全アクセス及び操作が存在する。これは、参照番号110で概略的に示されている。
【0059】
図2は、共有ルックアップポイント104を使用する3つの別個のクラウドE、F、及びGを示す。クラウドHは別に存在し、プライベートルックアップポイント105を有する。クラウドE、F、及びGのエンティティは、共有ルックアップポイント104を使用する。クラウドHのエンティティは、プライベートルックアップポイントを使用する。クラウドHは分離されており、クラウドHに結合されることになるあらゆるデバイスは、クラウドHのプライベートルックアップポイント105を認識して、これに登録する必要がある。
【0060】
クラウド114内の全てのエンティティがルックアップポイント104を共有する場合、クラウドは、集中的に管理されると考えられる。各々を1つのデバイス又は1つのクラウドとすることができる4つのエンティティ、A、B、C、及びDが存在し、これらは共に集中管理クラウド114を形成する。
【0061】
エンティティ間の全トラフィックは、任意選択的に暗号化される。最低限でも、全てのエンティティは認証されなくてはならない。暗号化が使用される場合、暗号化は、エンティティA、B、C、又はDに固有であると共に、クラウド114にも固有である。
【0062】
図3及び4において更なる詳細が示される。
【0063】
完全性リンクは図面では120として示される。単一のリンクだけが2つのエンティティ間に既に設定されているが、このリンクは、データ及び完全性などの複数のタイプの情報リンクに用いることができる。この実施例では、リンク120が完全性リンク(integrity links)を表す。これらの完全性リンク120は、クラウド内の全てのエンティティの周りで完全な円を維持する。これらの完全性リンク120は、クラウド116内の各エンティティA〜Dの信用証明(credential)を検証するのに使用される。クラウド内の各エンティティは、クラウド内の他の2つのエンティティの各々によって二度検証されるのが好ましい。例えば、エンティティBは、Bの完全性リンク120の両側にあるA及びCによって検証される。
【0064】
検証は、エンティティが話している人そのものであることを検証するチャレンジレスポンスメカニズムを介して行われ、更に、システムにアクセスしているユーザが誰であるかをエンティティが認識する。AがBにチャレンジしている場合、チャレンジャーAは、ランダムデータシーケンスを作成し、該シーケンスは、チャレンジされたエンティティBの公開鍵を使用して暗号化される。エンティティAは、このデータをエンティティBに送る。次に、チャレンジされたエンティティBは、その秘密鍵を使用してランダムデータを復号し、これをAにチャレンジしたデバイスの公開鍵を使用して再度暗号化する。再度暗号化されたデータは、照合を行うためにBからチャレンジャーAに送られる。照合された場合、肯定的な結果の検証が行われたことになる。
【0065】
検証は周期的に繰り返され、このような方法でデバイスのセキュリティが損なわれるか、又はデバイスがオフラインになった場合、そのエンティティを取り除くように完全性サークルを自動的に再調整する(以下に更に詳しく説明する)。
【0066】
データリンクは図の122で示される。図3では、点線は、クラウド116内のエンティティA〜D間で通信するのに使用されるデータリンク122を表わす。データリンク122は、最初に、他のエンティティを検証するために完全性リンク120として設定される。データリンク122は、完全性が設定されるまでは有効ではない。データの交換を望むエンティティ間に直接リンクが存在しない場合、データは、中継によって転送することができる。
【0067】
これらのデータリンク122は、必要に応じて作成され、待機(アイドル:idle)時に閉じられる。エンティティ間の直接データリンク122は、複数のメッセージが2つのエンティティ間に送られる場合に望ましく、且つ自動的に発生する。次いで、直接データリンク122は、待機時において、予め設定された時間、閉じられている。A及びCなど、既に完全性リンクを持たない2つのエンティティ間のリンクを開くためには、エンティティは、最初に互いを検証することになる。
【0068】
このデータリンク122は、信頼できるエンティティの現在のリストなど、クラウド状態情報を同期させるのに使用することができる。データリンク122は、クラウド116レコードをクラウド全体にわたって同期させておくのに使用することができる。データリンクは、エンティティ間で全データを転送するのに使用される。データリンクを通じて送られるデータには、データタイプを識別するヘッダ情報が含まれる。同期とは、各エンティティがクラウド116の全てのエンティティA〜Dで利用可能なコンテンツの最新リストを見ることができることを意味する。これらのレコードには、クラウド設定が含まれるが、アプリケーション固有であってもよい。データリンク122はまた、クラウドオブジェクトと通信するのに使用することができる。データリンクを通じて送られるパケットのヘッダ情報は、特定のクラウドオブジェクトをアドレス指定できる。
【0069】
図において、ルックアップリンクは124で示される。クラウド116はまた、ルックアップポイント104へのルックアップリンク124を含む。図3に示される実施例では、ルックアップポイントは、DBMSを有するコンピュータである。ルックアップポイントは、URL又は固定IPアドレスを有する必要があり、よって、常に見つけることができる。ルックアップリンク124は、エンティティ、例えばAがクラウド116にエンティティAの現在のロケーションを登録しようと試みる場合に使用される。エンティティAは、ルックアップポイント104を介して他のエンティティB、C、及びDを見つけることができる。この登録通信は、エンティティAのセッションに使用するために対称鍵を交換する公開/秘密鍵メカニズムを使用して暗号化される。
【0070】
ルックアップポイント104は、エンティティA、B、C、及びDのロケーション(位置)を保持する。ルックアップポイント104は、ユーザに対して新しいエンティティの作成を管理する。これはまた、クラウドへのこれらのエンティティの結合を管理する。
【0071】
デバイスマスターキーは、各登録されたデバイスのルックアップポイント上に保持される。このキーは、クラウディ・アプリケーションに対してプライベートデータの全てをロックするのに使用される。例えばデバイスが盗まれた場合には、ルックアップポイント104からのこのキーの受信をブロックすることによって、盗まれたデバイスを使用したユーザのクラウドへのあらゆるアクセスを阻止する。
【0072】
ルックアップポイント104は、各ユーザのクラウドの名前を登録するのに使用される。同様にルックアップポイントは、ユーザがクラウドの結合を選択した場合にクラウドに結合するのに必要な二次パスワードである招待パスワードを登録することができる。
【0073】
ルックアップポイント104に記憶されているDMBS上で結合問合せ(Join Query)を行い、ユーザが結合可能なクラウドのリストを取得することができる。結合ルックアップは、ルックアップポイント104で行われ、結合を行うクラウドに接続することができる。ルックアップは、クラウド名と、任意選択的に招待パスワードとを照合することによって行われる。
【0074】
クラウド130はプライベートに管理することができ、この実施例が図4に示されている。簡単にするために、同じ参照番号が図3に示されたのと同じ要素を表わすのに使用されている。
【0075】
このクラウド130は、ルックアップポイントがクラウドデバイスの1つ、すなわちこの場合エンティティBのデバイスに位置付けられていることを除いて、クラウド116と同じである。この構成では、ルックアップポイントは、1つのクラウド、或いはそれ以外の複数のクラウドの両方を管理することができる。クラウド116とは異なり、エンティティBは、他のエンティティA、C、又はDがルックアップポイントにアクセスするのに見つることができるように、登録済みURL又は固定IPアドレスを持つ必要がある。ルックアップポイントは、クラウドを実行しているのと同じソフトウェアに取り込むことができる。
【0076】
ここで、デバイスとエンティティとの関係を、図5(a)〜5(c)を参照して説明する。
【0077】
図5(a)では、デバイスはエンティティを作成することができる。エンティティが作成されると(すなわち、デバイスをクラウドに接続することによって)、デバイス上のエンティティソフトウェアオブジェクトにリンクすることによって機能を追加することができる。この実施例では、デバイス136上のリアルオブジェクト134が、リアルオブジェクト134に再度リンクするバーチャルオブジェクト138を作成することによって、エンティティ135に追加される。最終結果はエンティティIである。
【0078】
複数のエンティティを結合して別のエンティティを作成することができる。図5(b)では、エンティティI、J、K、及びLが結合されて新しいエンティティMが作成されている。エンティティIからLは、単一のデバイスから作成されていなくてはならないという制限はない。例えば、エンティティMは、1つのクラウドを作成するために共に結合された4つのデバイス、或いはクラウドMを作成するために共に結合された4つのクラウドを表わすことができる。或いは、クラウド又は2つのデバイス及び2つのクラウドが共に結合されて1つのクラウドを作成する、等である。実施例が図5(c)に示されており、ここでエンティティXは、エンティティM及びNを結合することによって作成される。エンティティMは、エンティティI、J、K、及びL上で構成され、エンティティNは、エンティティOからRを結合することによって作成される。
【0079】
図6は、複数のデバイスにわたって単一のビューを作成するためにオブジェクトがどのように働くかを示している。この実施例では、クラウド144を作成するために共に結合されている3つのデバイス136、140、及び142が存在する。図6にはオブジェクトの3つのタイプがあり、すなわち、リアルオブジェクト146、148、及び150;バーチャルオブジェクト152、154、及び156;リモートオブジェクト158、160、162、164、166、及び168である。
【0080】
リアルオブジェクト146、148、及び150は、それぞれデバイス136、140、及び142の実際のオブジェクトである。これらのオブジェクトによって、デバイスからデータ及び機能にアクセスすることが可能となる。デバイス上で各々が機能の特定のタイプを提供する複数のリアルオブジェクトの存在が可能である。
【0081】
リアルオブジェクトの実施例は、ファイルブラウザ−ファイル及びフォルダへのアクセスを可能にする;メールブラウザ−電子メールコンテンツ及び機能へのアクセスを可能にする;カレンダーブラウザ−カレンダーへのアクセスを可能にする;音楽ストリーマ−音楽コンテンツへのアクセスを可能にする;ボイスモジュール−VOIPのためのデバイスマイクロフォン及びスピーカへのアクセスを可能にする;ビデオストリーマ−ビデオコンテンツへのアクセスを可能にする;チャットモジュール−テキストメッセージングを可能にする;メディアプレーヤ・リモート−デバイスメディアプレーヤのリモート制御を可能にする;リモーアプリケーションモジュール−リモートアプリケーションビュー及び対話を可能にする;広告モジュール−クラウドユーザ固有の情報を有し、ウェブに働きかけて広告を引き込むことができる;バンキング(banking)モジュール−安全なデバイス上にバンククレデンシャル(bank credential)を記憶し、リモートでトランザクションを実行する;プリンタモジュール−クラウドからプリンタへのアクセスを可能にする;パニックモジュール−別のデバイスからのパニック警報を表示する;ウェブRSSフィードモジュール;FTPサーバモジュール−クラウドから既存のFTPサーバへのアクセスを可能にする;ブログ更新モジュール−クラウドからブログの更新を可能にする;レガシーモジュール−クラウド全体にわたってレガシーアプリケーションへのアクセスを可能にする;データベースモジュール−クラウド全体にわたってデータベースアクセスを可能にする;ウェブカメラモジュール−クラウド内のストリーミングビデオにアクセスする:がある。
【0082】
バーチャルオブジェクト152、154、及び156は、リアルオブジェクト146、148、及び150にそれぞれリンクするエンティティ135、170、及び172に追加されたオブジェクトである。リアルオブジェクトにリンクされた各バーチャルオブジェクトは、個々のお気に入りセットを有することができる。これによって、1つのエンティティの1つのバーチャオブジェクトが、別のエンティティの同じリアルオブジェクトとは異なるデータ、ひいては別のバーチャルオブジェクトへのアクセスを可能にすることができる。このように、種々のフォルダは、同じファイル共有オブジェクトからのエンティティの各々において共有することができる。
【0083】
リモートオブジェクト158〜168は、データリンク174を介してバーチャルオブジェクトにリンクされるオブジェクトである。リモートオブジェクト158〜168は、クラウド上の別のエンティティからバーチャルオブジェクトにアクセスするのに使用される。
【0084】
リモートオブジェクトとバーチャルオブジェクトの表面は同じであり;下にある通信メカニズムだけが異なる。エンティティ135は、オブジェクト152、158、160へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト146、148、及び150にアクセスすることが可能になる。同様に、エンティティ170は、オブジェクト154、162、及び164へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト146、148、及び150にアクセスすることが可能になる。また同様に、エンティティ172は、オブジェクト156、166、及び168へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト146、148、及び150にアクセスすることが可能となる。この機能及びアクセス方法によって、エンティティ135、170、及び172の各々は、3つのデバイス136、140、及び142全てにわたって共有される単一のビューを使用して同じ機能及びデータへのアクセスが可能となる。
【0085】
図7は、メタオブジェクトであるオブジェクトの別のタイプを概略的に示している。これは、リアルオブジェクトへのリンクの代わりに、メタオブジェクトが同じエンティティの他のオブジェクトにリンクすることを除いて、バーチャルオブジェクトと同じであり、リンクされたオブジェクトは、それ自体がリモートオブジェクト、バーチャルオブジェクト、又は他のメタオブジェクトになることができる。
【0086】
本実施例では、クラウド176が3つのエンティティ178、180、及び182間に作成されている。デバイス186上のリアルオブジェクト184は、バーチャルオブジェクト185を介してクラウド176と共有されている。メタオブジェクト188は、リモートオブジェクト190にリンクする。
【0087】
通常のリモートオブジェクト190及び196と機能的に同一の2つのリモートメタオブジェクト192及び194がある。ここで、メタオブジェクト188は、リモートオブジェクト190からその機能及びデータを取得する。リアルオブジェクト185は、リアルオブジェクト184からその機能及びデータを取得する。
【0088】
メタオブジェクト188は、リンクするオブジェクトに包含されない付加的な機能を作成できる付加的な論理を含む。単一のメタオブジェクトは、クラウド内の複数の(潜在的に全ての)他のオブジェクトにリンクすることができる。
【0089】
メタオブジェクトの実施例は、警報オブジェクト−変化について1つのオブジェクトを監視し、別のオブジェクトで動作する−;バーチャルフォルダオブジェクト−バーチャルフォルダに保存されるあらゆるデータが自動的にバックアップロケーションに移されるようにバーチャルフォルダを追加するためにファイルフェッチャー(File Fetcher)オブジェクトを使用し、例えば、記憶スペースが制限されたモバイルデバイス上で、これを用いて無制限の写真記憶を可能にすることができる;メール添付オブジェクト−クラウド内のどこからでもファイルを添付できるSend Mail(メール送信)動作を実施するためにファイルフェッチャーオブジェクト及びメールオブジェクトを全てリンクする;バックドア(backdoor)オブジェクト−ソフトウェア上のあらゆる法的要件に対してバックドアを実施するために全てのクラウドオブジェクトへのアクセスを可能にする;パニック警報オブジェクト−他のデバイスにシステム的に又は同時に警告するためにパニックモジュールオブジェクトにリンクする;を含む。
【0090】
図8は、動作とオブジェクトとの間の関係を概略的に示している。どのオブジェクトも動作を含む。この実施例では、オブジェクト194は、動作(i)、(ii)、及び(iii)を含む。メタオブジェクト196は、動作(iv)、(vv)、及び(vi)を含む。
【0091】
ここでオブジェクトによる動作の使用について図9を参照して説明する。クラウド198は、2つのデバイス200及び202間で作成されている。バーチャルオブジェクト204は、デバイス200上のリアルオブジェクト208からエンティティ206に追加される。メタオブジェクト210は、デバイス200上のエンティティ206に追加される。リアルオブジェクト208は、2つの動作(i)及び(ii)を含む。これらの動作は、(vi)及び(vii)としてバーチャルオブジェクト204上で利用可能であり、(vi)及び(vii)としてリモートオブジェクト220上で利用可能である。
【0092】
動作のインスタンス(instance)は、動作を使用するために作成される。デバイス202上で、リモートオブジェクト220の動作(vi)の3つのインスタンスは、(pi)、(pii)、及び(piii)として作成されている。実施例として、オブジェクトが「ファイルフェッチャー(File Fetcher)」であり動作が「GetFile」である場合、3つの同時ファイルリクエスト(pi)、(pii)、及び(piii)を行うことができる。エンティティ226でのオブジェクト220の動作(vi)は、エンティティ206でのオブジェクト204の動作(vi)にマップする。これは、デバイス200のオブジェクト208での動作(i)にマップする。
【0093】
デバイス202の動作インスタンス(ai)は、エンティティ226のリモートメタオブジェクト232から動作(mi)にマップする。動作(mi)は、エンティティ206のメタオブジェクト210の動作(bi)にマップする。動作(bi)は、バーチャルオブジェクト204の動作(vi)の動作インスタンス(biii)を作成する。この実施例での動作(bi)は、単一のオブジェクトと対話するだけであるが、異なるオブジェクト又は同じオブジェクトからの幾つかの動作インスタンスと対話することも可能である。
【0094】
ここで、不明のエンティティを検出するための上述の完全性リンクの使用について図10(a)を参照しながら説明する。この実施例では、ルックアップポイント246を含むクラウド244を形成している4つのエンティティ236、238、240、及び242が存在する。完全性リンクは、全てのエンティティ236、238、240、及び242を共にリンクするサークルを完成するリンク248、250、252、及び254によって設定される。図10(b)に図示するように、エンティティ236がオフラインになった場合、新しい完全性リンク256がエンティティ238と242の間に設定される。全ての他のリンクは影響を受けない。
【0095】
同様にして、このリンクを用いて、クラウドへの接続を望む新しいデバイスを位置付けることができる。図11を参照すると、クラウド260は、エンティティ238、240、及び242の間に設定されている。完全性リンク248、250、及び256は、これらのエンティティ間に存在する。
【0096】
エンティティ236がオンラインになった場合、ルックアップポイント246に対し接続部262が設定される。エンティティ236は、クラウド260のロケーション(位置)をルックアップポイント246に要求する。ルックアップポイント246は、エンティティ238が登録済みクラウド260コンタクトポイント(contact point)であると判断し、よってルックアップポイント246は、エンティティ236からの接続が許容されるかどうかをエンティティ238に問い合わせる264。これはまた、エンティティ236についてのロケーション情報をエンティティ238に転送している。エンティティ238が接続を許容できると応答した266場合、ルックアップポイント246は、エンティティ238のロケーションをエンティティ236に伝送する267。
【0097】
次いで、接続254がエンティティ236とエンティティ238との間に設定される。エンティティ236及びエンティティ238は、互いにチャレンジし検証する(以下に更に詳しく説明する)。エンティティ236は、エンティティ238から情報をコピーすることによって更新されたクラウド状態情報を有する。最新情報は、他のクラウドメンバーの状態とクラウドメンバーのリストを同期させたものである。この状態更新(クラウド内の他のエンティティのオンライン及び検証された状態を含む)によって、エンティティ236は、完全性リンクサークルに組み込まれた場所及びクラウド上で利用可能なものを知ることができる。次に、エンティティ236及び242は、完全性リンクサークルを完成させるために新しい完全性リンク252を設定する。
【0098】
セキュリティを向上させるためには、デバイスがいずれかのクラウドに接続することができる前に、最初に登録する必要がある。これは、図12を参照して説明される。これらのデバイスを使用して、ユーザは登録情報を入力しなくてはならない。登録情報は通常、ユーザ名とパスワードを含むことができる。
【0099】
この実施例では、デバイス270は、ルックアップポイント274との接続272を設定する。登録メッセージは、接続272を通じて送られ、これは、登録ユーザ名;登録パスワードのソルトハッシュ;デバイスの固有の識別子;及びローカルネットワークアドレス情報を含む。
【0100】
登録がルックアップポイント274によって受け付けられた場合、次の情報;すなわちクラウディ・アプリケーション情報のロック解除に使用されるマスターキー278(これは、デバイス情報;デバイスセキュリティ鍵;暗号化されたファイルシステム鍵;クラウド情報;クラウドセキュリティ鍵を含む)がデバイス270に戻される(276)。
【0101】
クラウディ・アプリケーションは、デバイスから離れることのないローカルに記憶された鍵280と、デバイス上に記憶されることのないマスターキー278であるルックアップポイント記憶情報の両方を使用することによって、デバイス270上でロック解除される。
【0102】
ここで、図11で説明されるようにエンティティがクラウドに結合するときのセキュリティ鍵の使用について、図13を参照しながら説明する。クラウド288は、デバイス290と292の間に設定される。デバイス290は、以下のセキュリティ情報、すなわち、クラウド対称鍵294、ルックアップポイント公開鍵296、秘密鍵300、公開鍵302、及び公開鍵304を含む。
【0103】
クラウド対称鍵294は、各クラウドに固有のランダムに作成されたシーケンスである。データメッセージのクラウドに固有の部分の全ては、一定の時間間隔で変化し各エンティティに対して異なるランダム作成シードと組み合わされた鍵294によって暗号化される(図15(b)、(c)、及び(d)に関して以下に更に詳しく説明する)。
【0104】
ルックアップポイント公開鍵296は、ルックアップポイント298と通信するのに使用される。デバイス290の秘密鍵300は、他のデバイスから送られたメッセージのロック解除に使用される。これは、対称鍵が完全性リンク設定の間に交換されるときに初期の完全性リンク設定についてのみ使用される。デバイス290の公開鍵302は、信頼できるエンティティが完全性リンク設定の間にデバイス290と通信することができるように信頼できるエンティティに渡される。デバイス292の公開鍵304は、デバイス290がデバイス290との完全性リンクを設定できるようにデバイス292から受け取られる。
【0105】
デバイス292は、以下のセキュリティ情報;すなわちクラウド対称鍵294、ルックアップポイント公開鍵296、デバイス292の秘密鍵306、デバイス292の公開鍵304、及びデバイス290の公開鍵302を含む。
【0106】
各エンティティ290及び292は各々、簡単にするためのこの実施例では省略されている追加鍵を含むが、図15(b)、(c)、及び(d)を参照して以下に更に詳しく説明する。
【0107】
デバイス310は、クラウド288のメンバーではなく、ルックアップポイント公開鍵296、デバイス310の秘密鍵312、及びデバイス310の公開鍵314を含むだけである。
【0108】
ルックアップポイント298は、ルックアップポイント公開鍵296、及びルックアップポイント秘密鍵316を含む。
【0109】
図13で説明されたクラウド288に基づいて、クラウドに結合するデバイス310の方法について図14を参照しながら説明する。
【0110】
まず、デバイス310のユーザは、クラウディ・アプリケーションに以下の情報;すなわちクラウド名(C)、クラウド招待番号(I)、クラウドユーザ名(U)、及びクラウドユーザパスワード(P)を入力する。
【0111】
デバイス310は、ルックアップポイント298にクラウド名(C)及び招待番号(I)を含む結合ルックアップメッセージを送る(330)。ルックアップポイント298は、このクラウドをサーチし、クラウドに対して固有のエンティティ識別子を戻す(332)。
【0112】
次にデバイス310は、このエンティティIDについての接続要求をルックアップポイント298に送る(334)。ルックアップポイント298は、接続要求をエンティティ290に送る(336)。デバイス290は、接続受け付けメッセージによってルックアップ298に応答する(338)。ルックアップポイント298は、デバイス310に要求受け付けメッセージを送る(340)。
【0113】
次にデバイス290及びデバイス310は接続342を設定する。最初に、デバイス310は、デバイス290に送るための結合メッセージを構成する。メッセージは、C、U、P、及びIのハッシュドバージョンとランダムシーケンス(S)を使用して自己暗号化される。デバイス290は、結合メッセージをチェックし、OKであれば、デバイス290はデバイス310についての情報を要求する。
【0114】
これに応答して、デバイス310は、以下の情報;すなわちデバイス310の公開鍵314、及びデバイス310のエンティティIDを290に送る。
【0115】
デバイス290はこの情報を受け取り、クラウド対称鍵294、デバイス290の公開鍵302、及びデバイス290のエンティティIDを含む招待で応答する。
【0116】
デバイス290及びデバイス310は完全性リンクを設定し、クラウド状態はこのリンクを通じて同期される。状態情報は、クラウドの各メンバーに対するエンティティIDのリストを含む。これは、各クラウドエンティティのオンライン状態を受け取る。クラウドレコードは同期され、これらのレコードは、クラウド、エンティティ、及びオブジェクト情報を含む。クラウドレコードは、クラウド内のエンティティ並びにクラウドユーザ/パスワードのリストを含む。クラウドメンバーレコード(各エンティティに対して1つ)は、そのメンバーに対するオブジェクト並びにメンバーに対する表示名のリストを含む。オブジェクトレコード(各オブジェクトに対して1つ)は、オブジェクトがサポートするクラス並びに利用可能な機能タイプのリストを含む。
【0117】
同期化はまた、他のクラウドエンティティの公開鍵を含む。このように、エンティティ310は、エンティティ310及び292が完全性リンクを作成し完全性サークルを完成できるように、エンティティ292の公開鍵を受け取る。図15(a)は最終状態を示す。
【0118】
デバイス290は、以下のセキュリティ情報;すなわちクラウド対称鍵294、デバイス290の秘密鍵300、デバイス290の公開鍵302、デバイス310の公開鍵314、及びデバイス292の公開鍵304を含む。
【0119】
デバイス292は、以下のセキュリティ情報;すなわちクラウド対称鍵294、デバイス292の秘密鍵306、デバイス292の公開鍵304、デバイス310の公開鍵314、及びデバイス290の公開鍵302を含む。
【0120】
デバイス310は、以下のセキュリティ情報;すなわちクラウド対称鍵294、デバイス310の秘密鍵312、デバイス310の公開鍵314、デバイス290の公開鍵302、及びデバイス292の公開鍵304を含む。
【0121】
290と292の間の完全性サークルに位置付けられる追加的エンティティが存在していた場合、エンティティ310と290間の同期中に、エンティティ310は、追加的エンティティの公開鍵を受け取ることになる。このように、エンティティ210及び追加的エンティティがデータを共有したい場合、エンティティ290又は290を経由してこれを中継するのではなく、エンティティ310及び追加的エンティティは、その新しい接続を通じて検証チャレンジ及び要求を伝達し、データトラフィックを送信することによって完全性リンクを直接設定することができる。
【0122】
静的鍵であり且つクラウド内の全てのエンティティに共通のクラウド対称鍵294に加えて、追加の動的鍵を用いて完全性リンクを設定しデータを交換する。これについて、図15(b)、(c)、及び(d)を参照しながら説明する。
【0123】
最初に図15(b)(i)を参照し、鍵交換を含む完全性リンクチャレンジ及び応答方法について説明する。この実施例では、完全性リンクは、エンティティA及びB間に設定される。
【0124】
エンティティAでは、ランダムに作成されたシーケンスが各チャレンジに対して生成され(更に周期的に再生成され)、ここでは完全性動的鍵(integrity dynamic key)と呼ばれる。この完全性動的鍵は、対称鍵AB’600として使用される。AB’600は、Bの公開鍵304を使用して暗号化され、この暗号化されたバージョンは、チャレンジとしてBに送られる(604)。
【0125】
エンティティBでは、チャレンジが受け取られ、Bの秘密鍵306を使用して復号され、AB”608として示されるAB’600の復号バージョンがBに記憶され、AB”608がAの公開鍵302を使用して暗号化され、応答がAに戻される(612)。
【0126】
エンティティAでは、応答が受け取られ、Aの秘密鍵300を使用して復号され、復号されたデータとオリジナルのAB’600の比較が行われ、照合された場合、リンクは有効であるとしてマーク付けされ、受け付けメッセージ616がBに戻される。
【0127】
エンティティBでは、受け付け応答が受け取られ、リンクが受け付けられたものとしてマーク付けされる。
【0128】
この方法は、エンティティAがエンティティBにチャレンジするための方法である。同様に、エンティティBからエンティティAへのチャレンジもあるが、この場合、使用される完全性動的鍵は、BA’620である。この方法は、図15(b)(ii)に示される。Bで受け取られたオリジナルチャレンジは、BがAを検証する必要がある場合にBからのカウンタチャレンジをトリガすることになる。この2つのチャレンジは、同時に発生することができる。
【0129】
AからB及びBからAへの完全性リンクが受け付けられたものとしてマーク付けされると、そのリンクを通じたデータチャンネルが開かれる。最終状態が図15(b)(iii)に示されており、ここで上記のプロセスは、次のチャレンジサイクル(例えば10秒毎に)で繰り返される。古い鍵(AB’、AB”、BA’、BA”)がデータリンクに対して未だに有効である一時的なオーバーラップ時間期間が存在することができる。このオーバーラップ時間期間の間、完全性動的鍵の古いバージョンと新しいバージョンの両方が有効である。これによって、データリンクは後続のチャレンジの間に開いたままにすることが可能となる。
【0130】
ここで、2つのエンティティA及びB間のデータトラフィックを暗号化する方法について、図15(c)を参照しながら説明する。
【0131】
クラウドは、エンティティAからエンティティBにデータDを送ることを要求する。図15(b)に関して説明されたように完全性リンクが設定され、エンティティA及びBが完全性動的鍵を交換するようになる。
【0132】
エンティティAは、エンティティAがその一部である各クラウドに対しデータメッセージを送るのに使用されるシーケンスRをランダムに生成する。このシーケンスは、クラウド静的対称鍵(cloud static symmetrical key)Cと組み合わされて、新しいデータ動的対称鍵CA’650を生成する。R及びひいてはCA’は、発生するどのようなチャレンジレスポンスにも関係しない周期的時間で再生成される。
【0133】
エンティティAでは、新しいメッセージが開始され(656)、RがAB’600を使用して暗号化され652、アドレス指定情報を含むメッセージ656のヘッダ660に付加され654;Dでは、CA’650を使用して暗号化され(664)、メッセージ656の本体662に付加され、該メッセージは、エンティティAからエンティティBに送られる(668)。
【0134】
エンティティBでは、メッセージが受け取られ、ヘッダ660がAB”608を使用して復号され(690)、更にR’が抽出され(692);クラウド静的対称鍵C294及びR’が組み合わされて、CA”650を生成し(694);CA”650が、メッセージ本体662を復号しデータDを抽出700するのに使用される(696)。
【0135】
ネットワーク最適化によって、ヘッダを記憶するようにBに通知するフラグをヘッダに設定することが可能となる。2つの別個のピア間のシーケンシャルメッセージについてメッセージヘッダが同じである場合、ヘッダにフラグがセットされ、受信者(この場合はエンティティB)がヘッダをキャッシュする必要がある旨の信号を送る。次のメッセージは、キャッシュされたヘッダを使用するようにエンティティBに知らせるフラグセットを有することができる。
【0136】
エンティティAが同じクラウドのメンバーであったエンティティCにメッセージを送りたい場合、エンティティAは、エンティティBにメッセージを送るときに使用した同じ値Rを使用する。
【0137】
簡単にするために、この実施例は、1つだけのクラウドを共有するエンティティA及びBについて説明している。エンティティA及びBが両方とも第2クラウドのメンバーであり、エンティティAがBと通信したい場合、そのクラウドで通信する場合に更なる別個のランダムシーケンスRが生成され使用されることになる。
【0138】
クラウドに結合するプロセスについて、図15(d)を参照しながら説明する。ここで、エンティティA、B、及びCは同じクラウドのメンバーであり、互いにチャレンジし且つ対称鍵を交換している。
【0139】
エンティティDは、クラウドに結合するプロセス中にある。エンティティDは、エンティティCの公開鍵と静的クラウド鍵を含む招待を受け取り、結合要求においてその公開鍵をCに送っている。
【0140】
チャレンジは正常に実行され、C及びDは、完全性動的対称鍵を交換している。
【0141】
エンティティDは、Bをチャレンジして完全性リンクを完了できるようにBの公開鍵をCに要求するプロセス中にある。
【0142】
クラウドの登録、結合、離脱、作成、及びクラウド上のコンテンツの共有の方法は、各デバイス及びルックアップポイントにインストールされて、これによってデバイスが上述の方法に従って動作するアプリケーションソフトウェアによって制御される。このアプリケーションソフトウェアの適切なプログラミング言語の実施例は、C++及びJavaであるが、この代わりに或いはこれに加えて他のいずれかのプログラミング環境を使用することができる。
【0143】
図16は、ソフトウェアのメインソフトウェアモジュールを示す。ソフトウェアは、3つの部分:すなわちユーザインターフェースであるグラフィカルユーザインターフェース(GUI)400と、セキュリティ、デバイス接続、及びクラウドを維持し、エンティティを作成及びリンクする基本エンジンであるコア402と、機能及びデータをエンティティに付加するオブジェクト404に分けられる。
【0144】
新しいアプリケーションは、GUI及びオブジェクトを変えることによって作成することができる。例えば、フォルダ及びファイルを示しアクセス可能なファイルフェッチングオブジェクトを付加することによるファイル共有、1つのデバイスが別のデバイスにメッセージを送ることを可能にするチャットオブジェクトを付加することによるメッセージング、付属デバイスから音声データを送ることのできるボイスオブジェクトを付加することによるボイップ(VOIP)、及び他のアプリケーションがある。
【0145】
ソフトウェアの設計を図17に概略的に示す。コアは、サブシステム及びクラウドの全てを作成し初期化するメインマネージャー(Main Manager)410を含む。
【0146】
OSラッパー(Wrapper)412は、下にあるデバイスと通信するソフトウェアモジュールである。これは、暗号化ファイル記憶と、新規/既存のエンティティが使用することができる実施可能なオブジェクトのライブラリを供給する。OSラッパー412は、バーチャルオブジェクト及びリモートオブジェクトを作成するのに使用される。ネットワーキング(Networking)414は、デバイス間の通信の全てを管理するソフトウェアモジュールであり、エンティティルックアップ、完全性リンク設定、メッセージ中継、及びデバイス固有の暗号化を実行する。
【0147】
クラウド416は、デバイス上の特定のエンティティ及びこれに関連するクラウドを管理するソフトウェアモジュールである。各クラウドに対してこのモジュールのインスタンスが存在する。クラウド416は、クラウド固有の暗号化、クラウド状態の同期化、クラウドレコードの同期化、オブジェクト及び動作メッセージング、及びクラウド完全性リンク維持を実行する。
【0148】
クラウド418のインスタンスは、デバイス上の単純なクラウドのレイアウトを示す。OSラッパー420は、メインマネージャーOSラッパー412から直接取得される。エンティティネットワーキング422は、414から取得される。
【0149】
クラウド424は、メインマネージャー410によって管理されるクラウドの別のインスタンスである。これは、クラウドと同じソフトウェアを含む。
【0150】
クラウド426は、クラウド426上のエンティティであるクラウド424上に構築されたクラウドであり、実際にはクラウド424である。クラウド426は、メインマネージャー410にバックするのではなく、クラウド424を参照する。OSラッパー428は、クラウド424からのOSラッパー430から取得される。クラウド426からのあらゆるセーブされた非ユーザデータが、クラウド424全体にわたって自動的に伝搬され、これは、クラウド状態を含むが、オブジェクトデータ要求からのデータは含まない。クラウド426に付加することができる実施可能なオブジェクトのライブラリは、クラウド424からのライブラリである。エンティティネットワーキング430は、クラウド424からのエンティティネットワーキング432から取得される。
【0151】
更に、クラウド434は、クラウド426上に構築されたクラウドである。OSラッパー436は、クラウド426からのOSラッパー440から取得される。クラウド434からのあらゆるクラウド状態情報が、クラウド426全体にわたって自動的に伝搬される。同様に、クラウド434に付加することができる実施可能なオブジェクトのライブラリは、クラウド426からのライブラリである。エンティティネットワーキング442は、クラウド426からのエンティティネットワーキング444から取得される。
【0152】
ここで、図18を参照して、2つの相互接続されたクラウドに関係するソフトウェアについて説明する。全体で5つのデバイスと2つのクラウドがある。クラウドAは、デバイス(この場合これらはエンティティでもある)450、452、及び454を含む。クラウドBは、デバイス454、456、及び458を含む。リンク460は、クラウドAの完全性リンクを含む。リンク462は、クラウドBの完全性リンクを含む。
【0153】
デバイス450のユーザがクラウドBと対話する場合、デバイス456のリアルオブジェクトにデータを送る必要がある。エンティティネットワーキングメッセージがデバイス450からデバイス456に送られる。このメッセージは、クラウドAのクラウドBコンタクトポイント(デバイス454)に中継される。
【0154】
次に、5つのデバイス470、472、474、476、及び478上に広がった3つのクラウドA、B、及びCに関するソフトウェア及びリンクについて図19の概概略図を参照しながら説明する。
【0155】
クラウドAは、デバイス470、472、及び474上に存在するエンティティから構成される。クラウドBは、デバイス470、デバイス476、デバイス478、及びクラウドA上に存在するエンティティから構成される。クラウドCは、デバイス472及びデバイス474上に存在するエンティティから作られる。
【0156】
クラウドAの完全性リンクは、デバイス470をデバイス474に接続し、デバイス470をデバイス472に接続し、最後にデバイス472をデバイス474に接続するリンク480から構成される。クラウドBの完全性リンクは、クラウドAをデバイス478に接続し、クラウドAをデバイス470に接続し、デバイス470をデバイス476に接続し、及びデバイス4をデバイス478に接続するリンク486から構成される。最後に、クラウドCの完全性リンクは、デバイス472をデバイス474にリンクするリンク490である。
【0157】
次に、更なる実施例に関するソフトウェア及びリンクについて図20を参照しながら説明する。この実施例には4つのクラウドA、B、C、及びDがある。
【0158】
クラウドAは、デバイス500、502、及び504を含む。クラウドBは、デバイス500、506、508、及びクラウドAを含む。クラウドCは、デバイス502及び504を含む。最後に、クラウドDは、クラウドA、クラウドB、及びクラウドCを含む。リンク510は、クラウドAの完全性リンクを含む。リンク512は、クラウドBの完全性リンクを形成する。リンク514は、クラウドCの完全性リンクを形成する。最後にリンク516は、クラウドDの完全性リンクを形成する。
【0159】
図20に示されるクラウドのアプリケーションは、以下の通りとすることができ、:すなわち、クラウドA=ボスの仕事クラウド、デバイス500=ボスのオフィスPC、デバイス502=ボスの携帯電話、デバイス504=ボスのラップトップ、クラウドB=ボスの共有クラウド、クラウドA=ボスの仕事クラウド(このクラウドから共有コンテンツへのアクセスを可能にする)、デバイス500=ボスのオフィスPC(クラウドAの一部として共有されていた可能性のないPC上のコンテンツへのアクセスを可能にする)、デバイス506=レセプショニストPC(ボスのスケジュールなどへのアクセスを可能にする)、デバイス508=アシスタントPC、クラウドC=ボスの携帯502とラップトップ504との間のボスのプライベートクラウド、クラウドD=アドミニストレータクラウド(メンバーからこのクラウドにアクセス可能なプライベートデータを有することができず、これによってデバイスのメンテナンス及びモニタリングオブジェクトへのアクセスだけが可能になる)。
【0160】
ここで、ソフトウェアを使用する実施例について、図21〜47を参照しながら説明する。
【0161】
図21は、ルックアップポイントGUIのGUIを示す。例えば、これは、図2のルックアップポイント104を動作させるサーバのユーザに提示されるインターフェースとすることができる。このGUIでは、クラウディアドミニストレータに登録されたデバイスがシステムに登録される。
【0162】
図22は同じGUIを示しているが、この場合には、アドミニストレータに登録したユーザ全てが表示されている。ここでは、登録されている1人のユーザ「Jason」が存在し、200のデバイスのうちの39、及び400クラウドのうちの14に関連付けられている。これは、ユーザ「Jason」が200の別個のデバイスをルックアップポイントに登録し、これらのデバイスを使用して400クラウドを作成することが可能であることを意味する。現在のところ、39デバイスが14クラウドと共に登録されている。
【0163】
上述のデバイスのいずれかとすることができるデバイス上でユーザに提示されるインターフェースをユーザの視点から図23に示されている。この実施例では、デバイスはパーソナルコンピュータであり、「TELPAC−DEV」と呼ばれる。これは、ユーザ用のイントロダクション/ウェルカム画面である。
【0164】
ユーザが既にルックアップポイントに登録されている場合、ユーザは、既存のユーザであることを示す「Old」を選択することができる。図24に示されるように、ユーザは、ユーザ名とパスワードを入力するよう指示される。ユーザが「OK」をクリックすると、この情報は図12に関して上記で説明されたようにルックアップポイントに送られる。次いで、デバイスは、ルックアップポイントからデバイス上のアプリケーションをロック解除する鍵を受け取る。ここでデバイスのソフトウェアアプリケーションの全機能がユーザに利用可能となる。
【0165】
図25に示されるように、アプリケーションは実行されているが、デバイスはどのクラウドにも接続されていない。クラウドを作成するために、ユーザは、「Create New Cloud(新しいクラウドの作成)」を選択し、図26に示されるようにダイアログボックスが現れる。ユーザは、クラウドの名前、そのユーザ名及びパスワードを入力する。これは、新しいクラウドDemoをルックアップポイントに登録している。
【0166】
ディスプレイは、ルックアップポイントに同期されており、クラウドDemoのサマリーを図27に示される拡張可能ツリーとしてユーザに表示させる。ここでクラウドは、3つのオブジェクト;すなわちファイル、メール、及びデバイスから構成されている。現在のところコンテンツは共有されておらず、TELPAC-DEVは、クラウド上の唯一のデバイスである。
【0167】
ユーザがDemoクラウド上のメールを共有したい場合、ユーザは、Demoクラウドのサマリーをクリックすることによって現れるポップアップボックスで「local mail sharing(ローカルメール共有)」を選択する。これによって、図28のダイアログボックスが現れ、ユーザは、チェックボックス「Share mail(メール共有)」を選択する。これによって、デバイス名「TELPAC-DEV」が図29に示されるようにDemoクラウドのサマリーにおける見出し「メール」の下にリストされるようになる。「メール」見出しの下のTELPAC-DEVを選択することによって、TELPAC-DEVで利用可能なメールのサマリーがインターフェースの右側に表示される。サマリーを使用すると、ユーザはTELPAC-DEV上に記憶されているメールフォルダをナビゲートすることができる。
【0168】
ユーザはまたファイルを共有することができる。図30に示されるように、Demoクラウドサマリーをクリックすることによって、ユーザは、オプション「local mail sharing(ローカルファイル共有)」を選択することができる。これによって、図31のダイアログボックスが表示されるようになる。ユーザは、ダイアログボックスから「Add(追加)」を選択し、図32に示されるダイアログボックスを表示させることができる。ここでユーザはタイトルを入力し、ファイルがサマリー内にリストされ、この実施例では名前「Docs」が選択されている。ユーザはまた、共有されるフォルダを選択するためにブラウズすることが可能である。この実施例では、フォルダは、パス名「C:\Documents and Settings\Jason\My Documents」によって識別される。ユーザは、「OK」を選択して、図31のダイアログボックスにユーザを戻すが、図33に示されるように選択されたフォルダ及びシェア名がダイアログボックス内にリストされる。ダイアログボックスで「OK」を選択することによって、フォルダは、クラウド上で利用可能になる。これは、図34に示されたDemoクラウドの更新されたサマリーに示されており、ここでTELPAC-DEVデバイスが見出し「Files(ファイル)」の下にリストされる。TELPAC-DEVによって共有されるフォルダのサマリーは、インターフェースの右側に表示される。
【0169】
ユーザはまた、異なるデバイスからクラウディ・アプリケーションを使用することができる。以下の実施例では、ユーザはWM-Jasonと呼ばれるPDAを現在使用している。ここで、PDAでユーザに提示することができるインターフェースについて説明する。
【0170】
ユーザには図35に示されるウェルカム画面が提示される。図24と同様に、ユーザは、図36に示されるようにアプリケーションをロック解除するためにログインしなくてはならない。
【0171】
図37に示されるように、ログインすると、ユーザは未だクラウドに登録していないので、コンテンツを見ることができない。クラウドに登録する段階は、図38、39、及び40に示されている。図14を参照して説明されたように、最初にユーザは、「join a cloud(クラウドに結合)」を選択し、クラウド名(内部結合から作成されたピックリストから取ることができる)、クラウドにおけるユーザ名、パスワード、及びクラウド招待番号を入力する。この場合、ユーザは、「Demo」と呼ばれるクラウドに結合するよう選択している。
【0172】
ユーザのデバイスは、クラウド内の1つ又はそれ以上のデバイスへの完全性リンクを作成することによって自動的にクラウドに結合し、次いで、クラウドの状態が、このリンク全体にわたって同期化される。この同期によって、クラウドで既に利用可能であるデータがデバイスによってアクセス可能になる。
【0173】
図41に示されるように、コンテンツを有するクラウドDemoが利用可能である。見出しDemoをクリックすることによって、コンテンツツリーリストが図42に示されるように展開される。これは、クラウドDemo上に接続されている2つのデバイス、すなわちデバイス「TELPAC-DEV」及び「WM-Jason」を有することを示している。クラウドに接続されているデバイスTELPAC-DEVから、メール、コンタクト、及びファイルが利用可能である。
【0174】
図43は、TELPAC-DEVのコンテンツがデバイス上のインターフェースを使用してどのようにナビゲートできるかを示す。「ファイル」見出しの下の「TELPAC-DEV」を選択すると、名前「Docs」の下で共有されるフォルダのツリーダイアグラムとその下にリストされるサブフォルダの全てを表示することができる。サブフォルダ「Telpac」(図示せず)が選択された場合、そのフォルダに含まれる文書のリストが図44に示されるように表示される。これらの文書のいずれか1つを選択することによって、好ましくは2つのデバイス間の直接リンクを使用して文書がTELPAC-DEVデバイスからデバイスにダウンロードされる。
【0175】
更なる実施例として、ユーザは、図45に示されるようなデバイス上でビューすることができるグラフィクファイルを含むものからフォルダ「バックアップ」を選択できる。
【0176】
図42を再度参照すると、メール見出しの下のTELPAC-DEVを選択することができ、これは、図46に示されるように共有されているTELPAC-DEV上のメールフォルダのサマリーをユーザに提示する。サマリーツリーを使用してフォルダを選択し、図47に示されるようなクラウドを使用してアクセス可能な電子メールのサマリーの詳細をユーザに提示することができる。
【0177】
広範に説明される本発明の精神又は範囲から逸脱することなく、特定の実施形態に示される本発明に対して多数の変形及び/又は修正を行い得ることは当業者には理解されるであろう。
【0178】
例えば、クラウド上のエンティティによってビューされる共有インターフェースは、例えば、人が家の中を移動して本棚及びTVなどのデバイスを選択し、共有コンテンツにアクセスするようにして芸術的に表示することができる。
【実施例】
【0179】
ここで幾つかの付加的な実施形態及び実施例を示す。
【0180】
図48では、この実施形態では「Razberry」と呼ばれるアプリケーションの起動手順を概説するためにフローチャート(600)が使用される。起動は、この実施形態では自動化される。アプリケーションがデバイスで初期化されると、スプラッシュ画面(601−「A」)が表示され、次に、登録画面(602−「B」)に続き、ここでユーザは、先に進むためにはユーザ名とパスワードを入力しなくてはならない。これらの詳細は、この記憶された情報のルックアップからプログラムによって確認される。ログイン画面の実施例が図49に示されている。ログイン画面はまた、図49に示されるようにユーザの詳細を忘れてしまったユーザを管理するための機能を有することができる。
【0181】
成功した登録に続いてルックアップから戻されたセキュリティ情報を使用して(詳細は図50を参照)ユーザがプリケーションのロック解除を正常に行うと(603−「C」)、アプリケーションは、初期「Razberry」クラウドがデバイスで利用可能かどうかチェックする(604−「D」)。利用可能でない場合(605)、ユーザは、このクラウドを作成するよう招待される。初期クラウドが既にデバイス上で利用可能である場合、該初期クラウドが始まる(606)。初期クラウドが行われると、GUIが表示され(607)、これによってユーザは「Razberry」アプリケーションを利用することが可能になる。
【0182】
ロック解除されたデータのチェックが行われ(「D」)、「Razberry」クラウドがこのデバイスで既にセットアップされているかどうかを調べる。デバイスは、「Razberry」クラウドを未だ結合しておらず(「E」)、よって現在登録されているユーザがどのクラウドを有しているかを見つけ出すためにルックアップからの要求が実行される。(詳しくは図51を参照。)結果がチェックされ(「F」)、「Razberry」クラウドがこれまでに作成されていたかどうかを調べる。作成されていた場合(「G」)、管理用パスワードをユーザが入力することができ、或いは固定パスワードをアプリケーションが使用することができる。このパスワードは、新しいデバイスをクラウドに追加するのに必要である。固有のクラウドIDがルックアップによってチェックされる(「H」)。クラウドIDチェックが失敗すると(「I」)必ずローカルRazberryクラウドデータが取り除かれる。結合は、アプリケーションによって行われ(「J」)、Razberryクラウドに結合しようとする。結合が失敗すると(「K」)、ユーザは、新しいクラウドを開始するように指示される。ユーザが新しいクラウドを開始することを選択した場合(「L」)、既存のクラウドを削除するようにルックアップが示される。新しい管理用パスワードは、ユーザ又はアプリケーションによって設定される(「M」)。Razberryクラウドは、新しい管理用パスワードを使用して作成される(「N」)。既存のクラウドは、ローカルに記憶されたデータを使用して起動される(「O」)。
【0183】
上述のように、クラウドは、幾つかのデバイスを含み、各デバイスの登録の詳細が図50に示すようにフローチャートで例示される。
【0184】
デバイスは、デバイスのランダムに生成された固有のIDを登録ユーザ名及びパスワードと共に渡すことによってルックアップに登録する(「A」)。ルックアップは、ユーザ登録をチェックし、このデバイスがこのユーザの下で登録されていることを確認する(「B」)。このデバイスが現在のユーザにとって未知のデバイスである場合(「C」)は常に、ルックアップはこのユーザの登録詳細をチェックし、これらに新しいデバイスを追加することが可能であるかどうかを調べる。新しいデバイスを追加できる場合(「D」)、ルックアップ上でこのデバイスについての新しい登録レコードが作成される。新しい登録レコードは、ランダムに作成されたセキュリティ鍵を含む。ランダムに作成されたセキュリティ鍵はデバイスに戻される(「E」)。デバイスは、ランダムに作成されたセキュリティ鍵を使用してそのローカルクラウドアプリケーションデータをロック解除する(「F」)。
【0185】
更に、ユーザは、幾つかのクラウド、及び図51に示されるリストを取得するための手順へのアクセスを有することができる。デバイスは、ユーザの登録に関連する利用可能なクラウドのリストを要求する(「A」)。ルックアップは、要求を受け取り(「B」)、要求側デバイス登録において登録されたクラウドのリストを検索する。リストは、要求側デバイスに戻される(「C」)。利用可能なクラウドのリスト(「D」)は、デバイスによって受け取られる。
【0186】
ユーザがアクセスへの許可を有するクラウドに結合可能にするプロセスを図52に示す。クラウド名及び招待が、ルックアップ結合を行うためにルックアップに送られる(「A」)。ルックアップは、現在の登録に対してクラウド名及び招待についての一致を求めて登録クラウドをサーチする(「B」)。一致したクラウドについての固有のクラウド識別子(「C」)がデバイスに戻される。デバイスは、クラウドid(「D」)を受け取り、そのidを使用してルックアップを実行する。ルックアップを介してクラウドへの直接接続が設定される(「E」)(図59を参照)。
【0187】
結合要求がクラウドのコンタクトデバイスに送られる(「F」)。コンタクトデバイスは、クラウドとのコンタクトの好ましい初期ポイントに登録された現在のデバイスである。この要求は、クラウドへの招待のためのクラウド名、招待名、及びユーザ名/パスワードを含む。受け取られたクラウド結合クレデンシャル(「G」)は、クラウドのあらゆるアクティブな招待に対してチェックされる。招待(「H」)は、クラウド名、招待及びユーザ名/パスワードを一致させることによって検証される。結合が受け付けられた旨の応答(「I」)がジョイナーに送られる。そのデバイス情報に対するジョイナーへの要求(「J」)が送られる。デバイス情報(「K」)は、クラウドコンタクトデバイスに返送される。この情報は、デバイス結合の識別子及び結合デバイスの公開鍵を含む。受け取られたデバイス情報(「L」)は、メモリ内に記憶される。クラウド識別子、クラウドセキュリティ鍵、このクラウド上のデバイスに対する現在のデバイスidのリスト、及びこのデバイスの公開鍵を含む招待(「M」)がジョイナーに戻される。ジョイナーは、クラウド(「N」)をアプリケーションデータに追加し、クラウドを起動し初期化する。ジョイナー(「O」)は、全てがokであることをクラウドコンタクトデバイスに応答する。
【0188】
クラウドコンタクトデバイス(「P」)はokを受け取り、メモリに記憶されたジョイナーの情報をアプリケーションデータにロードする。結合デバイス(「Q」)は、このクラウドのデバイスのリストに追加される。検証プロセス(「R」)は、ジョイナーとクラウドコンタクトデバイスとの間で開始される。ピア間の標準同期プロセス(「S」)は、クラウドのデバイス及びオブジェクトレコードと共にクラウド上の他のデバイスのセキュリティ鍵によってジョイナー(joiner)を更新する。
【0189】
ユーザにクラウドを作成させるためのプロセスが図53に示される。クラウドの固有の識別子、クラウドの名前、及びこのクラウドに結合するのに使用されることになる招待を含む作成メッセージ(「A」)が、デバイスによってルックアップに送られる。ルックアップ(「B」)は、デバイスが行っている登録においてクラウド名が未使用であることをチェックする。同じ名前は、各登録毎にのみ使用することができる。ルックアップは、現在の登録が新しいクラウドの作成を可能にすることをチェックする(「C」)。クラウドのレコード(「D」)が登録データベースに追加される。デバイス(「E」)は、クラウドを作成することが許可されたことをルックアップによって知らされる。デバイス(「F」)は、クラウドの起動及び初期化に進む。各デバイス(「G」)は、メンバーであるクラウドの固有の識別子のリストを含む。このリストは、新しいクラウド識別子によって更新される。ユーザがクラウドに追加される(「H」)。招待(「I」)は、他のデバイスがこのクラウドに結合することを可能にするクラウドに付加される。新しいクラウド(「J」)の作成は、ユーザに提示するためのGUIに通知される。
【0190】
ユーザがアクセスできるクラウドが決定されると、各クラウドのコンテンツをユーザに利用可能にすることができる。デバイスに登録されている各クラウドの起動プロセスのフローチャートが図54に示されている。デバイス(「A」)は、特定のクラウドの固有の識別子がルックアップに登録されているかどうかを確認するよう要求するメッセージをルックアップに送る。固有のクラウド識別子のリストは、デバイスがそのメンバーであるクラウドに対して各デバイス上のアプリケーションによって記憶される。ルックアップ(「B」)は、そのデータベース内でクラウド識別子をサーチする。デバイス(「C」)は、ルックアップの結果を戻される。固有のクラウド識別子(「D」)がルックアップ上で見つかると常に、デバイスはクラウドの初期化に進む。GUIは、ユーザに提示するのに利用可能なクラウドについて通知される(「E」)。クラウドの固有の識別子(「F」)がルックアップで見つからなかった場合、クラウドはこのデバイスから削除される。
【0191】
初期化手順フローチャートが図55に示される。デバイス上に既に登録されている各クラウドに対して、この結果に対するメッセージがルックアップに送られる(「A」)。クラウドidは、ルックアップデータベースで見つけられる(「B」)。見つけられた場合(「C」)、クラウドが初期化される(「D」)。各クラウド(「D」)は、クラウド固有の通信に使用される固有の対称暗号鍵を有する。各クラウド(「E」)は、クラウドの完全性を維持するのに使用される完全性スレッドを有し、これは、クラウドデータの同期化、クラウド状態データの維持、クラウド完全性サークルの維持、及びクラウドセキュリティの維持を含む。各クラウド(「F」)は、このデバイス上のオブジェクトに対する動作要求を処理するのに使用されるオブジェクト動作ワーカースレッドを含む。新しいクラウド(「G」)に対して、クラウドレコードが、クラウド、ユーザ、招待、及びメンバーについて追加される。レコードは、このデバイスレコードに対して追加される(「H」)。クラウドレコードは、同期化のために登録される(「I」)。全てのアクティブなクラウド招待が、インバイターモジュールに登録され(「J」)、これによって他のデバイスがこのクラウドに結合可能になる。
【0192】
図56には、クラウドオブジェクトにおける全てのデバイスにわたって単一のビューを読み込むためのプロセスの段階を指示するフローチャートを示しており、これらのオブジェクトとの更なる対話のためにクラウド内のオブジェクト全てをユーザに表示することが可能となる。図56Aに示されるように、システムは、デバイス上のデータ及び機能を表わす3つのメイン層、GUI、通信コア、及びオブジェクトを有する。図56Aの図表は、3つのデバイスの配置を示している。左側の第1デバイスは、そのコアが3つのデバイス全てにわたって延びているように動作する。これによって、第1デバイス上のGUIは、3つのデバイス全てのオブジェクトによって動作不可能になった機能及びデータの全てにアクセスすることが可能となる。この状況は、3つのデバイスの全てに対して繰り返される。
【0193】
図56Bに示されるように、コア間のリンクは、インターネット、或いはデバイスを接続する他のネットワークにわたって維持される。
【0194】
図56Cに示されるように、デバイスの特定のグループ化(すなわちクラウド)において、上記のデータレコードが各デバイス上で維持される。これらのレコードは、クラウド内のレコードマネージャーによって継続して同期化される。各レコードは、各クラウドに対して異なる固有の識別子によって識別される。
【0195】
「クラウドレコード」は、デバイスのレコード、ユーザのレコード、及び招待のレコードへの参照を含むクラウドのマスターレコードである。このレコードは、クラウド全体にわたって継続して同期化され、クラウドの初期作成後は変化しない。「デバイスレコード」は、クラウド内の各デバイスの「デバイスレコード」に対する参照のリストを含む。デバイスレコードは、新しいデバイスがクラウドに結合したときに更新される。「デバイスAレコード」は、デバイスAについて維持されるレコードである。デバイスAはこのレコードを作成し、このレコードを更新できる唯一のデバイスである。レコードは、Aの各オブジェクトに対して維持されるオブジェクトレコードへの参照のリストを含む。「オブジェクトA1レコード」は、オブジェクトA1上で実行可能な可能な動作のリストを含む。動作は、フォルダのリストを取得する、ファイルのリストを取得する、電子メールを送る、コンタクトを追加する、その他を行うことができる。レコードはまた、オブジェクトに包含されるクラスをリストする。クラスは、要求される動作の予め定められたセットである。クラスの実施例は、ファイルブラウザ、電子メールブラウザ、コンタクト、カレンダー、その他を含む。オブジェクトが特定のクラスを有する場合、これは特定の動作のサブセットを含むと見なすことができる。これは、オブジェクトの標準化を可能にする。
【0196】
オブジェクト共有における段階を説明するフローチャートを図57に示す。フローチャートの(「A」)から(「H」)で示される段階は、オブジェクト共有を実行するために続く。
【0197】
幾つかの実施可能なオブジェクト通信のフローチャートが図58に示されている。これはまた、XMLを介して発生する対話の実施例を示す。種々のフォーマットでのデータは、この実施例に示されるようにXMLとすることができ、或いは他の何らかの規格とすることができる共通規格によって管理される。しかしながら、XMLは詳細でかなりの冗長性を含む傾向があるので、動作するのに必要な情報だけを含む特定のより簡潔な規格を「Razberry」アプリケーションと共に使用するために開発することができる。図58の実施例では、メッセージがXMLを使用して前後に渡され、これによってアクティビティの発生が可能になる。段階(「A」)は、フローチャートに示されるように実行される。
【0198】
デバイス接続及びルックアップの方法を説明するフローチャートが図59に示されている。これは、接続マトリクスを利用する。
【0199】
図59では、デバイスRがデバイスL(「a」)への接続を望み、デバイス接続/ルックアップ要求をルックアップに送る。ルックアップは、するためにそのデバイス登録データベース(「b」)をサーチして、デバイスLについてのネットワークアドレス情報を検索する。この情報は、デバイスLのIPアドレス並びにデバイスLのルックアップによって調べられたIPアドレスである。ルックアップは、新しい接続リンクのための接続マトリクスに要求を送る。接続マトリクスは、2つのネットワークポート間で透過的にデータを転送するためにリンクされている2つの新しいネットワークポート(「c」)を割り当てる。これらの2つのリンクされたアドレスM1及びM2は、ルックアップに戻される。
【0200】
ルックアップは、接続マトリクスを受け取る(「d」)。接続要求がデバイスLに送られる(「e」)。この接続は、デバイスR及びM2のネットワークアドレス情報(接続リンクの半分)を要求する。デバイスLは要求(「f」)を受け取り、接続を受け付けることを望むか否かを決定する。この決定は、許可された又は禁止されたIPアドレスリストに基づくことができる。デバイスLは、接続が受け付けられた旨を応答する(「g」)。デバイスLは、接続マトリクス上のM2に接続する(「h」)。デバイスLは、デバイスRとの直接接続を設定しようとする(「i」)。この直接接続の試みは、デバイスRの実際のアドレス及びルックアップによって調べられたアドレスの両方を使用する。ルックアップは、接続に対してデバイスLからokを受け取り(「j」)、接続マトリクスM1と共にデバイスLのロケーションをデバイスRに渡す。デバイスRは、デバイスLの接続情報を受け取る(「k」)。デバイスRは、M1を使用して接続マトリクス上のM1に接続する(「l」)。接続マトリクスにおいて、M1及びM2両方への接続の存在が接続リンクを開く(「m」)。これが開かれると、デバイスR及びデバイスLは、直接通信を始めるのに使用することができるハンドシェークメッセージを受け取る。デバイスRは、デバイスLとの直接接続を作成しようとする(「n」)。この接続が設定された場合、接続マトリクスリンクが開放され、全てのデバイス通信がシームレスに直接リンクに切り替わる。
【0201】
図60には、「Razberry」アプリケーションでのメッセージ交換のプロセスを示すフローチャートが示されている。これは、クラウド内の種々のサブシステムがどのようにアドレス指定されるかを示す。通信交換ボックスによって受け取られたネットワークデータは、データの受信者を識別するヘッダ情報を含む((「a」)を参照)。
【0202】
受信者は、:(i)このデバイス上のクラウドに対する結合要求を管理及び処理し、要求を受け付け又は拒否するインバイター(Inviter)、(ii)クラウドコンタクトデバイスを介してクラウドへのクラウド結合要求を管理するジョイナー(Joiner)、(iii)ジョイナーとインバイターの間の中継ポイントであるメディエーター(Mediator)、(iv)デバイスチャレンジメッセージ(H)及びデバイス/クラウドメッセージ(I)を管理するピア通信、(v)全てのクラウドに対してルックアップとの通信を管理し、更にルックアップからの接続要求を管理するルックアップ通信とすることができる。
【0203】
デバイスクラウド通信は、メッセージがそれによって受けとられるこのデバイス上のクラウドデバイスペアを識別する第2ヘッダを含む(「(b)」を参照)。メッセージは、正しいクラウドに切り替えられる。
【0204】
クラウドメッセージは、クラウドメッセージのタイプ及び受信者を識別する第3ヘッダを含む(「(c)」を参照)。受信者は、(i)これらのメッセージがクラウド状態の交換及びクラウドセキュリティ鍵の同期化を行っている完全性マネージャー、(ii)これらのメッセージが、単一のビューを構築するのに使用されるクラウド固有のレコードを同期させるレコード同期化マネージャー、(iii)これらの要求がこのデバイス上のオブジェクトでの動作を実行するために受け取られる動作要求に対するキュー(Queue)、のうちの1つである。
【0205】
追加的なメッセージ交換は、ファイルオブジェクト、メールオブジェクト、チャットオブジェクトなどの特定のオブジェクトにメッセージをターゲットするために行われる(「(d)」を参照)。リモートオブジェクトである場合、メッセージは、リモートオブジェクトから要求された特定の動作に切り替えられる(「(e)」を参照)。
【0206】
クラウド完全性の維持のための幾つかの段階の実施例を示すフローチャートが図61に示される。もはやアクセスされないクラウドレコード(「(a)」)は、アプリケーションのメモリ使用量を低減するためにメモリから取り除かれる。デバイスがクラウドの他のいずれのデバイスをも認識しない(「(b)」)場合は常に、デバイスはクラウドを捜そうとする。クラウドが見つからない場合、デバイスは、クラウドコンタクトポイントでルックアップに登録する。クラウドのデバイス識別子のリストは、継続して同期される(「(c)」)。これについて図63で更に説明する。デバイスがオンライン及びオフラインになると常に、決定(「(d)」)が、クラウド内の各オンラインデバイスによってデバイスが新しいクラウドコンタクトポイントになるべきかどうかを決定するための判断が行われる。左側完全性リンクが周期的にチェックされ(「(e)」)、リンクがセット時間期間後にチャレンジされていない場合、新しいチャレンジが行われる。別のセット時間期間後にチャレンジが応答されていない場合、ピアはオフライン及び無効としてマーク付けされる。クラウドでの全ての他のデバイスは、このデバイスのオフライン状態によって即座に更新される。右側完全性リンク(「(f)」)は、(「(e)」)と同様に機能する。
【0207】
ピア情報の同期を示すフローチャートが図62に示される。同様に、クラウド情報の同期化を示すフローチャートが図63に示されている。
【0208】
図64には、ルックアップポイントのメッセージ処理機能が示されており、並びにこれに包含されるメッセージの実施可能な構造及びメッセージヘッダが示される。
【0209】
図65には、結合問合せのメッセージ処理機能が示されており、並びにこれに包含される幾つかのメッセージの実施可能な構造が示されている。
【0210】
図66から70では、「Razberry」アプリケーションの種々のスクリーンショットが示されている。図66は、上部のツールバーのボタンのリストから選択された電子メールサブシステムを示し、クラウドに集められたMicrosoft「Outlook」電子メールフォルダを含む幾つかのデバイスを示している。1つの選択されたデバイスの電子メールが図67に示されている。図68は、選択されている1つのデバイスをそのデバイスに対して選択されたファイル管理サブシステムと共に示している。図69では、カレンダー機能が上部のツールバーから選択されており、「Razberry」アプリケーションを介してMicrosoft「Outlook」カレンダーデータを表示している。図70は、「Razberry」アプリケーションを介して開かれている1つの電子メールを示している。
【0211】
<オペレーションの実施例>
「Razberry」アプリケーションのオペレーションを示す実施例として、Johnがファイルを捜していると仮定する。
【0212】
Johnは、自分のPDAでRazberryを起動し、ルックアップに登録するために自分のユーザ名及びパスワードを入力する。PDAは、ルックアップからJohnのRazberryクラウドのロケーションを要求し、Johnの家庭用PCの識別子を受け取る。
【0213】
PDAは、家庭用PCに直接接続し、PDAと家庭用PCとの間でセキュリティ検証と状態及びヘッダレコード同期が行われる。PDAは、職場用PCがオンラインであることを知り、職場用PCのロケーションをルックアップに問い合わせる。PDA及び職場用PCが共に接続され、完全性リンクが3つのデバイス間で設定される。
【0214】
Johnは、職場用PC上でファイルをビューしたいと決定し、RazberryアプリケーションGUIでこの機能を選択する。PDAは、職場用PCのデバイスレコードを検索し、これを用いて職場用PC上のオブジェクトを取得する。PDAは、このオブジェクトをサーチし、オブジェクトクラス「ファイル」を有するオブジェクトを捜す。PDAは、職場PC上のファイルオブジェクトにアドレス指定された新しいオブジェクト/動作を作成し、動作要求メッセージを送る。職場PCは、動作要求メッセージを受け取り、動作要求を処理し、応答メッセージを送信者に戻す。PDAは、動作要求メッセージへの応答を受け取り、PDA GUIを使用して職場PC上のフォルダのリストを表示することができる。
【0215】
<Razberry機能の実施例>
・ファイルブラウザ−ファイル及びフォルダへのアクセスを可能にする(図67を参照)
・メールブラウザ−電子メールコンテンツ及び機能へのアクセスを可能にする(図66及び68を参照)
・カレンダーブラウザ−カレンダーへのアクセスを可能にする(図69を参照)
・音楽ストリーマ−音楽コンテンツへのアクセスを可能にする
・音声モジュール−VOIPのためのデバイスマイクロフォン及びスピーカへのアクセスを可能にする
・ビデオストリーマ−ビデオコンテンツへのアクセスを可能にする
・チャットモジュール−テキストメッセージングを可能にする
・メディアプレーヤ・リモート−デバイスのメディアプレーヤのリモート制御を可能にする
・リモートアプリケーションモジュール−リモートアプリケーションビュー及び対話を可能にする
・広告モジュール−クラウドユーザ固有情報を有し、ウェブに働きかけて広告を引き込むことができる
・バンキングモジュール−安全なデバイス上にバンククレデンシャルを記憶しリモートでトランザクションを実行する
・プリンタモジュール−クラウドからプリンタへのアクセスを可能にする
・パニックモジュール−別のデバイスからのパニック警報を表示する
・ウェブRSSフィードモジュール
・FTPサーバモジュール−クラウドから既存のFTPサーバへのアクセスを可能にする
・BLOG更新モジュール−クラウドからBLOGの更新を可能にする
・レガシーモジュール−クラウド全体にわたってレガシーアプリケーションへのアクセスを可能にする
・データベースモジュール−クラウド全体にわたってデータベースアクセスを可能にする
・ウェブカメラモジュール−クラウドでのストリーミングビデオにアクセスする
【0216】
本発明が関係する当業者であれば、本発明の構成及び広範な多岐に渡る実施形態並びにアプリケーションにおける多くの変更は、添付の請求項で定義される本発明の範囲から逸脱することなく当業者に想起されるであろう。本明細書の開示及び説明は、純粋に例証であり、どのような制限を意味するものではない。
【符号の説明】
【0217】
100 単一のクラウド
102 インターネット及び/又はイントラネット 有線又は無線
104 ルックアップポイント
106 ファイアウォール
108a 108b 108c 108d コンテンツ
110 フルアクセス及び操作
【技術分野】
【0001】
本発明は、幾つかのコンピュータ間、或いは携帯電話、パーソナルデジタルアシスタント(PDA)又は同様のものなど、他の電子デバイスとデータを共有する方法に関する。データは、これらのデバイス間の電子接続を介して、特にインターネット、或いは、例えばLAN、WAN、又は無線ネットワークなどの他の手段を介して共有される。詳細には、本発明は、別個のデバイスに記憶されているデータを、セキュアな方式で、任意選択的には暗号化を用いて特別なセキュアパーティションを使用したインターネット上で共有することに関する。本発明は、セキュアパーティション、セキュアパーティションの作成方法、及びセキュアパーティションの作成方法を実行するためのアプリケーションソフトウェアに関する。本発明はまた、1つ又はそれ以上のリモートデバイスに含まれたデータ及び機能へのアクセスを提供するためのコンピュータシステム、方法、及びインターフェースに関する。
【背景技術】
【0002】
大多数の人が、情報を記憶する複数のデジタルデバイスを使用している。例えば、ユーザは、スマート携帯電話、家庭でのラップトップ、及び職場でのパーソナルコンピュータを使用する場合がある。従来、データは1つのデバイスから別のデバイスにマニュアルで転送しなければならず、これを行うのは困難であった。2つ又はそれ以上のデバイス間でデータを同期するのに利用可能な他の手段があるが、これらの手段は一般に、その実行のための特定のソフトウェアアプリケーションを必要とする。
【0003】
これらのデバイス上に記憶された情報にどこからでもセキュアにアクセスできることが益々必要になってきている。これは、動作及び管理が簡単でなくてはならず、これによってあらゆるタイプのデータ、及び各タイプのデータにアクセスしたり修正したりするソフトウェアアプリケーションを、ユーザのどの電子デバイスでも利用できるようにする需要がある。データは、例えばインターネット又はWANなどのネットワークを介してアクセスされ、データ共有システムはまた、現在使用しているどのデバイスからもデータの所有者だけがデータにアクセス可能であるように効果的なセキュリティを有する必要がある。
【0004】
複数のデバイスをリンクしようとする試みにおいて、種々のシステム及び方法が考案されてきた。例えば、Changwen他に付与された英国特許GB2411092は、モバイルノード(例えばラップトップ)のためのセキュアネットワーク経路の作成を記載している。本方法は、モバイルノードの永久ネットワークアドレス及びプロキシ気付アドレス(ケアオブアドレス)を指定する登録要求をホームエージェントに送る段階を含む。プロキシ気付アドレスは、モバイルノードと通信するのに使用される。
【0005】
別の実施例は、Fontijn他に付与された国際特許WO04081818であり、ピアツー・ピアネットワークにおいてデバイス間でオーナーシップ変更を転送する方法を開示する。本方法は、変更が関連する1つ又はそれ以上のデバイスに変更を伝搬する段階を含む。変更をコミットする責任はデバイス間で渡される。
【0006】
本明細書で使用される用語「含む(comprising)」は、「少なくとも部分的に〜からなる」を意味する。用語「含む(comprising)」を含む本明細書における各表現を解釈する場合、この用語述べられるもの以外の特徴も存在することができる。「comprise」及び「comprises」などの関連する用語も同様に解釈すべきである。
【0007】
本明細書で使用される用語「及び/又は」は、「及び」もしくは「又は」、或いは両方を意味する。
【0008】
本明細書で使用される名詞に続く「(s)」は、その名詞の複数形及び/又は単数形を意味する。
【0009】
本明細書に開示される数の範囲(例えば1から10)の記載は、その範囲内の全ての有理数(例えば、1、1.1、2、3、3.9、4、5、6、6.5、7、8、9及び10)、及びその範囲内の有理数のいずれかの範囲(例えば、2から8、1.5から5.5、及び3.1から4.7)の記載を含むものとする。
【0010】
上記及び下記に記載される全ての出願、特許、及び公報の開示全体は、もしあれば、引用により本明細書に組み入れられる。
【0011】
本明細書では、特許明細書及び他の文献を含む情報の外部ソースについて参照する場合、これは、一般的に本発明の特徴を説明するための背景を提供する目的に過ぎない。別段の指示がない限り、このような情報ソースの参照は、あらゆる権限において、当該情報ソースが従来技術であるか又は当該技術分野において公知の一部を形成すると認められたものとして解釈すべきではない。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】英国特許GB2411092公報
【特許文献2】国際特許WO04081818公報
【発明の概要】
【課題を解決するための手段】
【0013】
ここで本発明を一般論として説明する。本発明の目的は、改良されたプライベートネットワークを提供することであり、或いは少なくとも、有用な選択を社会又は産業界に提供することである。
【0014】
第1の態様において、本発明は、各エンティティがVPN上の少なくとも1つの他のデバイスとのリンクを有するインターネット接続性を備えた2つ又はそれ以上のリンクされたエンティティからなるセキュア仮想プライベートネットワーク(VPN100)を形成するための方法にあり、該方法は、
(a)VPNに接続可能であることが既知であるエンティティの更新可能なインデックスを備えた既知のアドレスを有し、VPNへのリンクを望む既知のエンティティ(「結合エンティティ」)(236)からの要求を受け付けるルックアップデバイス(104、246)を提供する段階と、
(b)VPN上の少なくとも1つの事前に指定されたコンタクトエンティティ(238)に、受け取られた結合要求に対してルックアップデバイス(104)を定期的にポーリングさせる段階と、
(c)ルックアップデバイス(104)が、VPN(100)に接続するための結合エンティティからの要求を受け取る段階と、
(d)結合要求に対するポーリングに応じてルックアップデバイス(104)が、ポーリング側コンタクトエンティティ(238)に各結合エンティティ(236)の少なくともアドレスを通知する段階と、
(e)コンタクトエンティティ(238)がVPNへの接続を許可した場合、コンタクトエンティティが、少なくともそのアドレスをルックアップデバイスに提供し、これを結合エンティティに渡す段階と、
(f)結合エンティティ(236)及びコンタクトエンティティ(238)が、双方の間に第1リンク(254)を設定する段階と、
(g)結合エンティティ及びコンタクトエンティティが、第1リンクを通じて認証プロセスを行う段階と、
(h)認証プロセスが成功した場合、コンタクトエンティティが、VPNに属する少なくとも他のエンティティの状態を結合エンティティに通知し、結合デバイスがVPNに結合していることをVPN上の全てのエンティティに通知する段階と、
(i)結合デバイスが、VPNに属する他のエンティティの状態を使用して、接続する1つ又は2つの近傍のエンティティを含むVPNにおけるそのノード位置を計算する段階と、
(j)1つ又は2つの近傍のエンティティが、ルックアップエンティティと共に段階(c)から(f)において指示されたタイプのプロセスを開始して、結合エンティティと1つ又はそれ以上の第2リンクを設定して、第1リンクを終了させる段階と、
(k)結合エンティティ及び少なくとも1つの近傍のエンティティが、成功した場合に1つ又はそれ以上の第2リンクを維持する相互認証プロセスを行う段階と、
によって特徴付けられる。
【0015】
好ましくは、本方法により、エンティティ(270)が、1つ又はそれ以上の所要のVPNへのアクセスのためにルックアップデバイス(104、274)に登録され、該登録されたエンティティのみが、続いてルックアップデバイスに認識され又は既知とされ、登録段階は、エンティティ(270)が、少なくともユーザ名、パスワードを含む登録情報をルックアップデバイスに送る段階と、登録されたエンティティがVPN結合要求をルックアップデバイスに送るときに、ルックアップデバイス(104、274)が識別目的で登録情報を記憶する段階とを含む。
【0016】
好ましくは、前記登録段階は、ルックアップデバイス(104、274)が登録エンティティにセキュリティ鍵(278)を送り、登録処理を行うものであって且つ他のエンティティが登録されているVPNに固有のセキュリティ鍵にエンティティがアクセスできるようにする。
【0017】
好ましくは、段階(h)において、コンタクトエンティティは更に、VPNに属する他のエンティティのエンティティ識別子を結合エンティティに通知する。
【0018】
好ましくは、段階(i)において、結合エンティティは更に、VPNに属する他のエンティティのエンティティ識別子を使用して他のエンティティのノード位置を計算する。
【0019】
好ましくは、エンティティ識別子はアドレスである。
【0020】
好ましくは、認証プロセスは、他のエンティティを識別するといわれている固有の鍵(304)を使用して他のエンティティにチャレンジする2つのエンティティの各々からなり、各チャレンジは、他のエンティティへの送信(604)、他のエンティティからの応答(612)、及び応答が正しいことをチャレンジ側エンティティで検証することを含む。
【0021】
好ましくは、第1エンティティと第2エンティティとの間の各チャレンジは、
(a)第1エンティティが、データのランダムシーケンス(AB’600)を作成し、これを記憶し、これを第2エンティティの公開鍵(304)で暗号化して、結果として得られる暗号文を第2エンティティに送る段階と、
(b)第2エンティティが、第1エンティティから暗号文を受け取り、第2エンティティの秘密鍵(306)を使用してこれを復号し、結果として得られる平文を第1エンティティの公開鍵(302)で暗号化して、これを第1エンティティに送る段階と、
(c)第1エンティティが、第2エンティティから暗号文を受け取り、第1エンティティの秘密鍵(300)を使用してこれを復号し、結果として得られる平文を記憶されたデータのランダムシーケンス(AB’600)と比較し、一致する場合、第2エンティティが認証されたことを受け付ける段階と、を含む。
【0022】
好ましくは、VPNに接続されたエンティティ間のデータトラフィックが対称鍵(symmetric key)を使用して暗号化され、対称鍵は、前記データのランダムシーケンス(AB’600)である。
【0023】
好ましくは、認証プロセスが周期的に繰り返され、周期的に生成されたランダムデータシーケンスは、動的対称セッション鍵(a dynamic symmetric session key)として使用される。
【0024】
好ましくは、エンティティは、インターネットに接続することができるプロセッサを有するデバイスである。
【0025】
好ましくは、デバイスは、コンピュータ、PDA、PPC、携帯電話又はスマートフォン、及び組込み型デバイスを含む。
【0026】
別の一態様において、本発明は、各々がデータと検証チェックに使用される秘密鍵とを含む2つ又はそれ以上のデバイスを備えたセキュアインターネットパーティションを提供し、パーティションの使用において、各デバイスは1つ又はそれ以上の近傍のデバイスに関連付けられており、パーティションの使用において、各デバイスはまた近傍のデバイス間のデータトラフィックの暗号化及び/又は復号化に使用される暗号鍵及び近傍のデバイスの公開鍵を含み、更にパーティションの使用において、各デバイスは、近傍の秘密鍵及び公開鍵を使用して該近傍のデバイスの検証チェックを行い、近傍デバイスが検証された場合、暗号鍵を使用して近傍デバイスにデータを送信するよう動作する。
【0027】
近傍のデバイスはループを形成することができる。セキュアインターネットパーティションが3つ又はそれ以上のデバイスから構成されている場合、各デバイスは、2つの近傍のデバイスを有することができる。
【0028】
検証チェックは、チャレンジ及び応答認証に基づいて行うことができる。検証チェックは、周期的に行うことができる。検証チェックは、周期的に更新された検証シーケンスに基づいて行うことができる。
【0029】
暗号鍵は対称鍵とすることができ、各デバイスは、実質的に同じ暗号鍵を有することができる。
【0030】
パーティションは更に、パーティションを含むデバイスのリストを維持するルックアップポイントを有することができる。追加的なデバイスは、この追加的なデバイスの近傍にあるパーティションでのデバイスの詳細をルックアップポイントアドレスから取得することによってパーティションに結合することができる。
【0031】
パーティションのデバイスは、デバイスの組から構成することができ、デバイスの組は、追加的なパーティションを形成する。
【0032】
本発明はまた、セキュアインターネットパーティションを作成する方法に関する。別の一態様において、本発明は、デバイスにインストールされるアプリケーションソフトウェアであり、セキュアインターネットパーティションを作成する方法を実行する。更に別の一態様において、本発明は、追加的なデバイスがセキュアインターネットパーティションに結合するのを可能にするルックアップポイントに関する。
【0033】
別の一態様において、本発明は、インターネット上でデータをセキュアに送信するためのセキュアインターネットパーティションを供給し、このパーティションは、第2デバイスに送信されることになるデータ、暗号鍵、及び検証シーケンスを含む第1デバイスと、第2デバイス及び暗号鍵を検証するために第1デバイスから受信された検証シーケンスを含む第2デバイスとを備え、パーティションの使用において、第1デバイスは、検証シーケンス及び暗号鍵を使用してデータを暗号化するよう動作し、第2デバイスは、暗号鍵及び検証シーケンスを使用してデータを復号する。
【0034】
第1デバイスは、暗号鍵を使用して、該暗号鍵をパーティションシーケンスと組み合わせ、組み合わせた暗号鍵及びパーティションシーケンスを使用してデータを暗号化することによって、データを暗号化するように動作することができる。データは、パケット化することができ、組み合わされた暗号鍵及びパーティションシーケンスは、パケットの一部を暗号化するのに使用される。パケットは、ヘッダと本体を含むことができ、暗号化された部分は本体とすることができる。
【0035】
第1デバイスは、パーティションシーケンスを検証シーケンスで暗号化し、これを第2デバイスに送信したデータに追加することによって、前記検証シーケンスを用いてデータを暗号化するよう動作することができる。データは、ヘッダと本体を有するパケットにパケット化することができ、暗号化されたパーティションシーケンスをヘッダに加えることができる。
【0036】
第2デバイスは、検証シーケンスを用いてパーティションシーケンスを求めることによって、検証シーケンスを用いたデータの復号を行うことができる。更に、第2デバイスは、求められたパーティションを暗号鍵と組み合わせデータの復号化に用い、暗号鍵を使用したデータの復号を行う。
【0037】
パーティションシーケンスは、周期的に変化することにおいて動的にすることができる。パーティションシーケンスは、ランダムに生成することができる。検証シーケンスは、周期的に変化することにおいて動的にすることができる。パーティションシーケンスは、ランダムに生成できる。
【0038】
検証シーケンスは、第1及び第2デバイスに固有のものとすることができる。検証シーケンスは、第1デバイスから第2デバイスへのデータ送信に固有のものとすることができる。検証シーケンスは、チャレンジ/応答認証の一部として第1デバイスから受信することができる。第2デバイスは、別の検証シーケンスを含むことができ、第1デバイスは、第1デバイスを検証するために第2デバイスから受信された別の検証シーケンスを含むことができる。
【0039】
パーティションは、全てが暗号鍵を含む追加的なデバイスを備えることができる。パーティションは、追加的なデバイスを含むことができ、パーティションシーケンスは、パーティションのいずれかのデバイスにデータを送信するときに第1デバイスによって使用される。
【0040】
別の一態様において、本発明は、インターネット上でセキュアにデータを送信する方法に関する。更に別の一態様において、本発明は、インターネット上でセキュアにデータを受信する方法に関する。別の一態様では、本発明は、インターネット上でセキュアにデータを送受信する方法を実行するためのソフトウェアアプリケーションに関する。
【0041】
別の一態様において、本発明は、1つ又はそれ以上のリモートデバイスに含まれるデータ及び機能へのアクセスを提供するコンピュータネットワークを提供し、該コンピュータシステムは、データへのアクセスを可能にし且つ機能を提供するリアルオブジェクトを各々が含む2つ又はそれ以上のデバイスを備え、使用時に各デバイスは、バーチャルオブジェクトのペアを使用することによってリモートデバイスのデータ及び機能にアクセスすることが可能となり、第1バーチャルオブジェクトは、リアルオブジェクトと通信するためのデバイス内に位置付けられ、第2バーチャルオブジェクトは、第1バーチャルオブジェクトと通信するためのリモートデバイス内に位置付けられる。
【0042】
バーチャルオブジェクトは、リアルオブジェクトからデータ及び機能を抽出し、データ及び機能をリアルオブジェクトのオペレーティングシステムから独立させるようにすることができる。オブジェクトは、データを記憶し、データの操作において機能を提供することができるソフトウェアアプリケーションとすることができる。
【0043】
使用時には、各デバイスは、メタオブジェクトのペアを使用することによってリモートデバイスの追加機能にアクセスすることができ、第1メタオブジェクトは、バーチャルオブジェクトと通信するためのデバイス内に位置付けることができ、ここでメタオブジェクトは追加機能を提供し、第2メタオブジェクトは、第1バーチャルオブジェクトに追加機能を提供するために第1バーチャルオブジェクトと通信するためのリモートデバイス内に位置付けられる。オブジェクトは、複数の動作を含むことができる。
【0044】
更に別の一態様において、本発明は、1つ又はそれ以上のリモートデバイスに含まれるデータ及び機能へのアクセスを可能にする。別の一態様では、本発明は、電子デバイス用のインターフェースを提供し、1つ又はそれ以上のリモートデバイスに含まれるデータ及び機能にアクセスできるようにする。
【0045】
本発明の一実施形態は、人が単一のインターフェース上で複数のデバイスのネットワーク上に記憶されたデータコンテンツにアクセスするためのセキュアでフレキシブル且つ簡単な方法を提供する。各デバイスのユーザは、異なるものとすることができ、これによってデバイスのユーザは、単一のインターフェースを使用してデバイス上のどのコンテンツに他のユーザがアクセスできるかを制御することが可能になる。
【0046】
データは、文書、音楽、写真、電子メール、警報、及び更新などのいずれかのデジタルファイルとすることができる。更に、アクセスデータは、温度を読み取るデジタル入力カード、又はデバイスからのスクリーンショットのような動的ソースからのものとすることができる。インターネットなどのネットワークに接続できるあらゆるデバイスを本発明と共に使用することができる。
【0047】
本明細書で使用される用語「インターネット」とは、コンピュータ、携帯電話、PDA、及び同様のものなどの電子デバイスを接続する他のタイプのネットワークを含むように広義に解釈すべきであり、用語「インターネット」は、イントラネット、又はWAN、LAN、無線ネットワーク、その他などの他の電子通信ネットワークを含むことになる。
【図面の簡単な説明】
【0048】
【図1】単一のクラウドのアーキテクチャを示す概略図である。
【図2】複数のクラウドのアーキテクチャを示す概略図である。
【図3】中央で管理される複数のエンティティを示す概略図である。
【図4】プライベートに管理される複数のエンティティを示す概略図である。
【図5】デバイスとエンティティとの間の関係を示す概略図である。
【図6】複数のデバイスにわたって作成できるデータ及び機能の単一ビューを作成するためにオブジェクトがどのように働くかを示す図である。
【図7】リアルオブジェクト、バーチャルオブジェクト、リモートオブジェクト、及びメタオブジェクト間の関係を示す概略図である。
【図8】動作とオブジェクトとの間の関係を示す概略図である。
【図9】動作のインスタンスがオブジェクトにおいてどのように作成されるか示す概略図である。
【図10】エンティティが失われた場合のクラウドにおける完全性リンクを示す概略図である。
【図11】エンティティが結合した場合のクラウドにおける完全性リンクを示す概略図である。
【図12】デバイスの登録中のデバイス上の鍵とルックアップポイントの配置を示す図である。
【図13】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図14】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図15(a)】デバイスがクラウドに結合するときの鍵の配置を示す図である。
【図15(b)】2つのエンティティ間の完全性リンクの設定を示す概略図である。
【図15(c)】クラウドにおける2つのエンティティ間でデータトラフィックを送るプロセスを示す概略図である。
【図15(d)】エンティティがクラウドに結合するプロセスを示す概略図である。
【図16】本発明のソフトウェアのためのモジュールの配置を示す概略図である。
【図17】複数のクラウドにおけるソフトウェアモジュール間の関係を示す図である。
【図18】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図19】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図20】複数のクラウドを共有するデバイス間の関係の実施例を示す図である。
【図21】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図22】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図23】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図24】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図25】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図26】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図27】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図28】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図29】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図30】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図31】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図32】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図33】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図34】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図35】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図36】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図37】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図38】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図39】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図40】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図41】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図42】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図43】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図44】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図45】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図46】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図47】本発明のユーザに提示することができる実例のグラフィカルユーザインターフェース(GUI)を示す図である。
【図48】起動手順を示すフローチャートである。
【図49】ログオン画面の実施例を示す図である。
【図50】デバイス起動手順を示すフローチャートである。
【図51】結合ルックアップ要求の手順を示すフローチャートである。
【図52】フローチャートを使用してクラウド結合プロセスを示す図である。
【図53】クラウド結合手順を示すフローチャートである。
【図54】クラウド起動手順を示すフローチャートである。
【図55】クラウド初期化手順を示すフローチャートである。
【図56】クラウドにおいて全てのデバイス全体にわたる単一ビューを作成するフローチャートである。
【図56A】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図56B】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図56C】単一ビュー全体でのデバイス間の関係を示す概略図である。
【図57】クラウド起動手順を示すフローチャートである。
【図58】オブジェクト通信を示すフローチャートである。
【図59】デバイスルックアップ及び接続手順についてのフローチャートである。
【図60】メッセージ交換手順を示すフローチャートである。
【図61】クラウド完全性維持手順を示すフローチャートである。
【図62】ピア情報同期手順を示すフローチャートである。
【図63】クラウド情報同期手順を示すフローチャートである。
【図64】ルックアップポイントメッセージ処理手順についての幾つかの詳細を示す図である。
【図65】結合問合せメッセージング手順についての幾つかの詳細を示す図である。
【図66】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図67】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図68】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図69】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【図70】本発明を具現化するソフトウェアアプリケーションをユーザが操作可能にする画面の幾つかの追加の実施例を示す図である。
【発明を実施するための形態】
【0049】
ここで本発明の実施例について添付図面を参照して説明する。
【0050】
インターネットのセキュアパーティションの実施例について説明する。本明細書では、セキュアインターネットパーティションを「クラウド(cloud)」と呼ぶことにする。
【0051】
<デバイス>
プロセッサを有するあらゆるデバイスであり、(TCP/IPなどを使用して)インターネットに接続することができ、セキュアインターネットパーティションの一部を形成するためにクラウドに接続することができる。このようなデバイスはまた、一定の最小システム要件を満たさなくてはならない。デバイスの実施例は、PC(「Windows(R)」、「Linux」、「Macintosh」、又はオープンソースオペレーティングシステムなどのいずれかのオペレーティングシステムを備える);「Palm OS」、「Windows CE/Mobile」などのいずれかのオペレーティングシステムを備えたPDA、PPC;「BlackBerry」、Java(R)フォン、Nokiaの「Symbian」オペレーティングシステム携帯電話などの携帯電話、又はスマートフォン;及び組み込み型デバイスを含む。
【0052】
<エンティティ>
エンティティは、仮想プライベートネットワーク(VPN)或いは「クラウド」における基本ユニット(又はノード)である。エンティティは、オブジェクトの集合であり、デバイス又はクラウドもしくはVPN自体によって作成することができる。
【0053】
<オブジェクト>
オブジェクトは、エンティティ(すなわちデバイス又はクラウド)に関連付けられる。オブジェクトは、クラウドにおけるデバイス上のデータ及び機能へのアクセスを可能にする機能を含む。すなわち、オブジェクトは動作の集合である。オブジェクトは、動作のインスタンスを作成することができる。オブジェクトは、クラウドの各デバイスからクラウドに付加し、信頼できるデバイスの全てからクラウド内のオブジェクトを利用可能にすることができる。
【0054】
<クラウド>
既知の信頼できるエンティティ間で作成されたVPNである。クラウドは、どのデバイスが信頼されているか及びこれらのエンティティの状態について認識している。またクラウドは、デバイス及び/又は他のクラウドのVPNとすることができる。オブジェクトは、クラウド内の各エンティティから付加することができる。
【0055】
<ルックアップポイント>
ルックアップポイントは、エンティティが互いを見つけることを可能とするためにシステムで使用される。共有ルックアップポイントは、クラウドの集中型の登録及び制御を可能にする。ルックアップポイントは、クラウド内のデバイスの1つに位置付けることができる。或いは、ルックアップポイントはまた、別個のデバイス上にあってもよい。
【0056】
これらの概念について、図1〜20に関して詳細に説明する。
【0057】
図1は、単一クラウド100のアーキテクチャを概略的に示している。クラウド100は、4つのエンティティA−Dから生成されている。エンティティAは、それ自体が、デスクトップコンピュータ、ノートブック、PDA、及びスマートフォンを含むデバイスのセットから構成されたクラウドである。エンティティBは、別のデスクトップコンピュータである。エンティティCは別のスマートフォンである。エンティティDは別のクラウドである。各エンティティA−Dは、ファイアウォール106の後ろに構成されており、インターネット102に接続されている。4つ全てのエンティティA−Dに対し、別のデバイス上で維持される共有ルックアップポイント104が存在する。
【0058】
各エンティティA−Dは、それぞれ108a−108dのラベルが付いた異なるコンテンツに関連付けられている。コンテンツ108a−108dは、オブジェクトの形式でクラウド上で共有される。各エンティティA−Dには、コンテンツ108a−108d全てへの全アクセス及び操作が存在する。これは、参照番号110で概略的に示されている。
【0059】
図2は、共有ルックアップポイント104を使用する3つの別個のクラウドE、F、及びGを示す。クラウドHは別に存在し、プライベートルックアップポイント105を有する。クラウドE、F、及びGのエンティティは、共有ルックアップポイント104を使用する。クラウドHのエンティティは、プライベートルックアップポイントを使用する。クラウドHは分離されており、クラウドHに結合されることになるあらゆるデバイスは、クラウドHのプライベートルックアップポイント105を認識して、これに登録する必要がある。
【0060】
クラウド114内の全てのエンティティがルックアップポイント104を共有する場合、クラウドは、集中的に管理されると考えられる。各々を1つのデバイス又は1つのクラウドとすることができる4つのエンティティ、A、B、C、及びDが存在し、これらは共に集中管理クラウド114を形成する。
【0061】
エンティティ間の全トラフィックは、任意選択的に暗号化される。最低限でも、全てのエンティティは認証されなくてはならない。暗号化が使用される場合、暗号化は、エンティティA、B、C、又はDに固有であると共に、クラウド114にも固有である。
【0062】
図3及び4において更なる詳細が示される。
【0063】
完全性リンクは図面では120として示される。単一のリンクだけが2つのエンティティ間に既に設定されているが、このリンクは、データ及び完全性などの複数のタイプの情報リンクに用いることができる。この実施例では、リンク120が完全性リンク(integrity links)を表す。これらの完全性リンク120は、クラウド内の全てのエンティティの周りで完全な円を維持する。これらの完全性リンク120は、クラウド116内の各エンティティA〜Dの信用証明(credential)を検証するのに使用される。クラウド内の各エンティティは、クラウド内の他の2つのエンティティの各々によって二度検証されるのが好ましい。例えば、エンティティBは、Bの完全性リンク120の両側にあるA及びCによって検証される。
【0064】
検証は、エンティティが話している人そのものであることを検証するチャレンジレスポンスメカニズムを介して行われ、更に、システムにアクセスしているユーザが誰であるかをエンティティが認識する。AがBにチャレンジしている場合、チャレンジャーAは、ランダムデータシーケンスを作成し、該シーケンスは、チャレンジされたエンティティBの公開鍵を使用して暗号化される。エンティティAは、このデータをエンティティBに送る。次に、チャレンジされたエンティティBは、その秘密鍵を使用してランダムデータを復号し、これをAにチャレンジしたデバイスの公開鍵を使用して再度暗号化する。再度暗号化されたデータは、照合を行うためにBからチャレンジャーAに送られる。照合された場合、肯定的な結果の検証が行われたことになる。
【0065】
検証は周期的に繰り返され、このような方法でデバイスのセキュリティが損なわれるか、又はデバイスがオフラインになった場合、そのエンティティを取り除くように完全性サークルを自動的に再調整する(以下に更に詳しく説明する)。
【0066】
データリンクは図の122で示される。図3では、点線は、クラウド116内のエンティティA〜D間で通信するのに使用されるデータリンク122を表わす。データリンク122は、最初に、他のエンティティを検証するために完全性リンク120として設定される。データリンク122は、完全性が設定されるまでは有効ではない。データの交換を望むエンティティ間に直接リンクが存在しない場合、データは、中継によって転送することができる。
【0067】
これらのデータリンク122は、必要に応じて作成され、待機(アイドル:idle)時に閉じられる。エンティティ間の直接データリンク122は、複数のメッセージが2つのエンティティ間に送られる場合に望ましく、且つ自動的に発生する。次いで、直接データリンク122は、待機時において、予め設定された時間、閉じられている。A及びCなど、既に完全性リンクを持たない2つのエンティティ間のリンクを開くためには、エンティティは、最初に互いを検証することになる。
【0068】
このデータリンク122は、信頼できるエンティティの現在のリストなど、クラウド状態情報を同期させるのに使用することができる。データリンク122は、クラウド116レコードをクラウド全体にわたって同期させておくのに使用することができる。データリンクは、エンティティ間で全データを転送するのに使用される。データリンクを通じて送られるデータには、データタイプを識別するヘッダ情報が含まれる。同期とは、各エンティティがクラウド116の全てのエンティティA〜Dで利用可能なコンテンツの最新リストを見ることができることを意味する。これらのレコードには、クラウド設定が含まれるが、アプリケーション固有であってもよい。データリンク122はまた、クラウドオブジェクトと通信するのに使用することができる。データリンクを通じて送られるパケットのヘッダ情報は、特定のクラウドオブジェクトをアドレス指定できる。
【0069】
図において、ルックアップリンクは124で示される。クラウド116はまた、ルックアップポイント104へのルックアップリンク124を含む。図3に示される実施例では、ルックアップポイントは、DBMSを有するコンピュータである。ルックアップポイントは、URL又は固定IPアドレスを有する必要があり、よって、常に見つけることができる。ルックアップリンク124は、エンティティ、例えばAがクラウド116にエンティティAの現在のロケーションを登録しようと試みる場合に使用される。エンティティAは、ルックアップポイント104を介して他のエンティティB、C、及びDを見つけることができる。この登録通信は、エンティティAのセッションに使用するために対称鍵を交換する公開/秘密鍵メカニズムを使用して暗号化される。
【0070】
ルックアップポイント104は、エンティティA、B、C、及びDのロケーション(位置)を保持する。ルックアップポイント104は、ユーザに対して新しいエンティティの作成を管理する。これはまた、クラウドへのこれらのエンティティの結合を管理する。
【0071】
デバイスマスターキーは、各登録されたデバイスのルックアップポイント上に保持される。このキーは、クラウディ・アプリケーションに対してプライベートデータの全てをロックするのに使用される。例えばデバイスが盗まれた場合には、ルックアップポイント104からのこのキーの受信をブロックすることによって、盗まれたデバイスを使用したユーザのクラウドへのあらゆるアクセスを阻止する。
【0072】
ルックアップポイント104は、各ユーザのクラウドの名前を登録するのに使用される。同様にルックアップポイントは、ユーザがクラウドの結合を選択した場合にクラウドに結合するのに必要な二次パスワードである招待パスワードを登録することができる。
【0073】
ルックアップポイント104に記憶されているDMBS上で結合問合せ(Join Query)を行い、ユーザが結合可能なクラウドのリストを取得することができる。結合ルックアップは、ルックアップポイント104で行われ、結合を行うクラウドに接続することができる。ルックアップは、クラウド名と、任意選択的に招待パスワードとを照合することによって行われる。
【0074】
クラウド130はプライベートに管理することができ、この実施例が図4に示されている。簡単にするために、同じ参照番号が図3に示されたのと同じ要素を表わすのに使用されている。
【0075】
このクラウド130は、ルックアップポイントがクラウドデバイスの1つ、すなわちこの場合エンティティBのデバイスに位置付けられていることを除いて、クラウド116と同じである。この構成では、ルックアップポイントは、1つのクラウド、或いはそれ以外の複数のクラウドの両方を管理することができる。クラウド116とは異なり、エンティティBは、他のエンティティA、C、又はDがルックアップポイントにアクセスするのに見つることができるように、登録済みURL又は固定IPアドレスを持つ必要がある。ルックアップポイントは、クラウドを実行しているのと同じソフトウェアに取り込むことができる。
【0076】
ここで、デバイスとエンティティとの関係を、図5(a)〜5(c)を参照して説明する。
【0077】
図5(a)では、デバイスはエンティティを作成することができる。エンティティが作成されると(すなわち、デバイスをクラウドに接続することによって)、デバイス上のエンティティソフトウェアオブジェクトにリンクすることによって機能を追加することができる。この実施例では、デバイス136上のリアルオブジェクト134が、リアルオブジェクト134に再度リンクするバーチャルオブジェクト138を作成することによって、エンティティ135に追加される。最終結果はエンティティIである。
【0078】
複数のエンティティを結合して別のエンティティを作成することができる。図5(b)では、エンティティI、J、K、及びLが結合されて新しいエンティティMが作成されている。エンティティIからLは、単一のデバイスから作成されていなくてはならないという制限はない。例えば、エンティティMは、1つのクラウドを作成するために共に結合された4つのデバイス、或いはクラウドMを作成するために共に結合された4つのクラウドを表わすことができる。或いは、クラウド又は2つのデバイス及び2つのクラウドが共に結合されて1つのクラウドを作成する、等である。実施例が図5(c)に示されており、ここでエンティティXは、エンティティM及びNを結合することによって作成される。エンティティMは、エンティティI、J、K、及びL上で構成され、エンティティNは、エンティティOからRを結合することによって作成される。
【0079】
図6は、複数のデバイスにわたって単一のビューを作成するためにオブジェクトがどのように働くかを示している。この実施例では、クラウド144を作成するために共に結合されている3つのデバイス136、140、及び142が存在する。図6にはオブジェクトの3つのタイプがあり、すなわち、リアルオブジェクト146、148、及び150;バーチャルオブジェクト152、154、及び156;リモートオブジェクト158、160、162、164、166、及び168である。
【0080】
リアルオブジェクト146、148、及び150は、それぞれデバイス136、140、及び142の実際のオブジェクトである。これらのオブジェクトによって、デバイスからデータ及び機能にアクセスすることが可能となる。デバイス上で各々が機能の特定のタイプを提供する複数のリアルオブジェクトの存在が可能である。
【0081】
リアルオブジェクトの実施例は、ファイルブラウザ−ファイル及びフォルダへのアクセスを可能にする;メールブラウザ−電子メールコンテンツ及び機能へのアクセスを可能にする;カレンダーブラウザ−カレンダーへのアクセスを可能にする;音楽ストリーマ−音楽コンテンツへのアクセスを可能にする;ボイスモジュール−VOIPのためのデバイスマイクロフォン及びスピーカへのアクセスを可能にする;ビデオストリーマ−ビデオコンテンツへのアクセスを可能にする;チャットモジュール−テキストメッセージングを可能にする;メディアプレーヤ・リモート−デバイスメディアプレーヤのリモート制御を可能にする;リモーアプリケーションモジュール−リモートアプリケーションビュー及び対話を可能にする;広告モジュール−クラウドユーザ固有の情報を有し、ウェブに働きかけて広告を引き込むことができる;バンキング(banking)モジュール−安全なデバイス上にバンククレデンシャル(bank credential)を記憶し、リモートでトランザクションを実行する;プリンタモジュール−クラウドからプリンタへのアクセスを可能にする;パニックモジュール−別のデバイスからのパニック警報を表示する;ウェブRSSフィードモジュール;FTPサーバモジュール−クラウドから既存のFTPサーバへのアクセスを可能にする;ブログ更新モジュール−クラウドからブログの更新を可能にする;レガシーモジュール−クラウド全体にわたってレガシーアプリケーションへのアクセスを可能にする;データベースモジュール−クラウド全体にわたってデータベースアクセスを可能にする;ウェブカメラモジュール−クラウド内のストリーミングビデオにアクセスする:がある。
【0082】
バーチャルオブジェクト152、154、及び156は、リアルオブジェクト146、148、及び150にそれぞれリンクするエンティティ135、170、及び172に追加されたオブジェクトである。リアルオブジェクトにリンクされた各バーチャルオブジェクトは、個々のお気に入りセットを有することができる。これによって、1つのエンティティの1つのバーチャオブジェクトが、別のエンティティの同じリアルオブジェクトとは異なるデータ、ひいては別のバーチャルオブジェクトへのアクセスを可能にすることができる。このように、種々のフォルダは、同じファイル共有オブジェクトからのエンティティの各々において共有することができる。
【0083】
リモートオブジェクト158〜168は、データリンク174を介してバーチャルオブジェクトにリンクされるオブジェクトである。リモートオブジェクト158〜168は、クラウド上の別のエンティティからバーチャルオブジェクトにアクセスするのに使用される。
【0084】
リモートオブジェクトとバーチャルオブジェクトの表面は同じであり;下にある通信メカニズムだけが異なる。エンティティ135は、オブジェクト152、158、160へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト146、148、及び150にアクセスすることが可能になる。同様に、エンティティ170は、オブジェクト154、162、及び164へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト146、148、及び150にアクセスすることが可能になる。また同様に、エンティティ172は、オブジェクト156、166、及び168へアクセスでき、これによって下にある通信メカニズムを介してリアルオブジェクト146、148、及び150にアクセスすることが可能となる。この機能及びアクセス方法によって、エンティティ135、170、及び172の各々は、3つのデバイス136、140、及び142全てにわたって共有される単一のビューを使用して同じ機能及びデータへのアクセスが可能となる。
【0085】
図7は、メタオブジェクトであるオブジェクトの別のタイプを概略的に示している。これは、リアルオブジェクトへのリンクの代わりに、メタオブジェクトが同じエンティティの他のオブジェクトにリンクすることを除いて、バーチャルオブジェクトと同じであり、リンクされたオブジェクトは、それ自体がリモートオブジェクト、バーチャルオブジェクト、又は他のメタオブジェクトになることができる。
【0086】
本実施例では、クラウド176が3つのエンティティ178、180、及び182間に作成されている。デバイス186上のリアルオブジェクト184は、バーチャルオブジェクト185を介してクラウド176と共有されている。メタオブジェクト188は、リモートオブジェクト190にリンクする。
【0087】
通常のリモートオブジェクト190及び196と機能的に同一の2つのリモートメタオブジェクト192及び194がある。ここで、メタオブジェクト188は、リモートオブジェクト190からその機能及びデータを取得する。リアルオブジェクト185は、リアルオブジェクト184からその機能及びデータを取得する。
【0088】
メタオブジェクト188は、リンクするオブジェクトに包含されない付加的な機能を作成できる付加的な論理を含む。単一のメタオブジェクトは、クラウド内の複数の(潜在的に全ての)他のオブジェクトにリンクすることができる。
【0089】
メタオブジェクトの実施例は、警報オブジェクト−変化について1つのオブジェクトを監視し、別のオブジェクトで動作する−;バーチャルフォルダオブジェクト−バーチャルフォルダに保存されるあらゆるデータが自動的にバックアップロケーションに移されるようにバーチャルフォルダを追加するためにファイルフェッチャー(File Fetcher)オブジェクトを使用し、例えば、記憶スペースが制限されたモバイルデバイス上で、これを用いて無制限の写真記憶を可能にすることができる;メール添付オブジェクト−クラウド内のどこからでもファイルを添付できるSend Mail(メール送信)動作を実施するためにファイルフェッチャーオブジェクト及びメールオブジェクトを全てリンクする;バックドア(backdoor)オブジェクト−ソフトウェア上のあらゆる法的要件に対してバックドアを実施するために全てのクラウドオブジェクトへのアクセスを可能にする;パニック警報オブジェクト−他のデバイスにシステム的に又は同時に警告するためにパニックモジュールオブジェクトにリンクする;を含む。
【0090】
図8は、動作とオブジェクトとの間の関係を概略的に示している。どのオブジェクトも動作を含む。この実施例では、オブジェクト194は、動作(i)、(ii)、及び(iii)を含む。メタオブジェクト196は、動作(iv)、(vv)、及び(vi)を含む。
【0091】
ここでオブジェクトによる動作の使用について図9を参照して説明する。クラウド198は、2つのデバイス200及び202間で作成されている。バーチャルオブジェクト204は、デバイス200上のリアルオブジェクト208からエンティティ206に追加される。メタオブジェクト210は、デバイス200上のエンティティ206に追加される。リアルオブジェクト208は、2つの動作(i)及び(ii)を含む。これらの動作は、(vi)及び(vii)としてバーチャルオブジェクト204上で利用可能であり、(vi)及び(vii)としてリモートオブジェクト220上で利用可能である。
【0092】
動作のインスタンス(instance)は、動作を使用するために作成される。デバイス202上で、リモートオブジェクト220の動作(vi)の3つのインスタンスは、(pi)、(pii)、及び(piii)として作成されている。実施例として、オブジェクトが「ファイルフェッチャー(File Fetcher)」であり動作が「GetFile」である場合、3つの同時ファイルリクエスト(pi)、(pii)、及び(piii)を行うことができる。エンティティ226でのオブジェクト220の動作(vi)は、エンティティ206でのオブジェクト204の動作(vi)にマップする。これは、デバイス200のオブジェクト208での動作(i)にマップする。
【0093】
デバイス202の動作インスタンス(ai)は、エンティティ226のリモートメタオブジェクト232から動作(mi)にマップする。動作(mi)は、エンティティ206のメタオブジェクト210の動作(bi)にマップする。動作(bi)は、バーチャルオブジェクト204の動作(vi)の動作インスタンス(biii)を作成する。この実施例での動作(bi)は、単一のオブジェクトと対話するだけであるが、異なるオブジェクト又は同じオブジェクトからの幾つかの動作インスタンスと対話することも可能である。
【0094】
ここで、不明のエンティティを検出するための上述の完全性リンクの使用について図10(a)を参照しながら説明する。この実施例では、ルックアップポイント246を含むクラウド244を形成している4つのエンティティ236、238、240、及び242が存在する。完全性リンクは、全てのエンティティ236、238、240、及び242を共にリンクするサークルを完成するリンク248、250、252、及び254によって設定される。図10(b)に図示するように、エンティティ236がオフラインになった場合、新しい完全性リンク256がエンティティ238と242の間に設定される。全ての他のリンクは影響を受けない。
【0095】
同様にして、このリンクを用いて、クラウドへの接続を望む新しいデバイスを位置付けることができる。図11を参照すると、クラウド260は、エンティティ238、240、及び242の間に設定されている。完全性リンク248、250、及び256は、これらのエンティティ間に存在する。
【0096】
エンティティ236がオンラインになった場合、ルックアップポイント246に対し接続部262が設定される。エンティティ236は、クラウド260のロケーション(位置)をルックアップポイント246に要求する。ルックアップポイント246は、エンティティ238が登録済みクラウド260コンタクトポイント(contact point)であると判断し、よってルックアップポイント246は、エンティティ236からの接続が許容されるかどうかをエンティティ238に問い合わせる264。これはまた、エンティティ236についてのロケーション情報をエンティティ238に転送している。エンティティ238が接続を許容できると応答した266場合、ルックアップポイント246は、エンティティ238のロケーションをエンティティ236に伝送する267。
【0097】
次いで、接続254がエンティティ236とエンティティ238との間に設定される。エンティティ236及びエンティティ238は、互いにチャレンジし検証する(以下に更に詳しく説明する)。エンティティ236は、エンティティ238から情報をコピーすることによって更新されたクラウド状態情報を有する。最新情報は、他のクラウドメンバーの状態とクラウドメンバーのリストを同期させたものである。この状態更新(クラウド内の他のエンティティのオンライン及び検証された状態を含む)によって、エンティティ236は、完全性リンクサークルに組み込まれた場所及びクラウド上で利用可能なものを知ることができる。次に、エンティティ236及び242は、完全性リンクサークルを完成させるために新しい完全性リンク252を設定する。
【0098】
セキュリティを向上させるためには、デバイスがいずれかのクラウドに接続することができる前に、最初に登録する必要がある。これは、図12を参照して説明される。これらのデバイスを使用して、ユーザは登録情報を入力しなくてはならない。登録情報は通常、ユーザ名とパスワードを含むことができる。
【0099】
この実施例では、デバイス270は、ルックアップポイント274との接続272を設定する。登録メッセージは、接続272を通じて送られ、これは、登録ユーザ名;登録パスワードのソルトハッシュ;デバイスの固有の識別子;及びローカルネットワークアドレス情報を含む。
【0100】
登録がルックアップポイント274によって受け付けられた場合、次の情報;すなわちクラウディ・アプリケーション情報のロック解除に使用されるマスターキー278(これは、デバイス情報;デバイスセキュリティ鍵;暗号化されたファイルシステム鍵;クラウド情報;クラウドセキュリティ鍵を含む)がデバイス270に戻される(276)。
【0101】
クラウディ・アプリケーションは、デバイスから離れることのないローカルに記憶された鍵280と、デバイス上に記憶されることのないマスターキー278であるルックアップポイント記憶情報の両方を使用することによって、デバイス270上でロック解除される。
【0102】
ここで、図11で説明されるようにエンティティがクラウドに結合するときのセキュリティ鍵の使用について、図13を参照しながら説明する。クラウド288は、デバイス290と292の間に設定される。デバイス290は、以下のセキュリティ情報、すなわち、クラウド対称鍵294、ルックアップポイント公開鍵296、秘密鍵300、公開鍵302、及び公開鍵304を含む。
【0103】
クラウド対称鍵294は、各クラウドに固有のランダムに作成されたシーケンスである。データメッセージのクラウドに固有の部分の全ては、一定の時間間隔で変化し各エンティティに対して異なるランダム作成シードと組み合わされた鍵294によって暗号化される(図15(b)、(c)、及び(d)に関して以下に更に詳しく説明する)。
【0104】
ルックアップポイント公開鍵296は、ルックアップポイント298と通信するのに使用される。デバイス290の秘密鍵300は、他のデバイスから送られたメッセージのロック解除に使用される。これは、対称鍵が完全性リンク設定の間に交換されるときに初期の完全性リンク設定についてのみ使用される。デバイス290の公開鍵302は、信頼できるエンティティが完全性リンク設定の間にデバイス290と通信することができるように信頼できるエンティティに渡される。デバイス292の公開鍵304は、デバイス290がデバイス290との完全性リンクを設定できるようにデバイス292から受け取られる。
【0105】
デバイス292は、以下のセキュリティ情報;すなわちクラウド対称鍵294、ルックアップポイント公開鍵296、デバイス292の秘密鍵306、デバイス292の公開鍵304、及びデバイス290の公開鍵302を含む。
【0106】
各エンティティ290及び292は各々、簡単にするためのこの実施例では省略されている追加鍵を含むが、図15(b)、(c)、及び(d)を参照して以下に更に詳しく説明する。
【0107】
デバイス310は、クラウド288のメンバーではなく、ルックアップポイント公開鍵296、デバイス310の秘密鍵312、及びデバイス310の公開鍵314を含むだけである。
【0108】
ルックアップポイント298は、ルックアップポイント公開鍵296、及びルックアップポイント秘密鍵316を含む。
【0109】
図13で説明されたクラウド288に基づいて、クラウドに結合するデバイス310の方法について図14を参照しながら説明する。
【0110】
まず、デバイス310のユーザは、クラウディ・アプリケーションに以下の情報;すなわちクラウド名(C)、クラウド招待番号(I)、クラウドユーザ名(U)、及びクラウドユーザパスワード(P)を入力する。
【0111】
デバイス310は、ルックアップポイント298にクラウド名(C)及び招待番号(I)を含む結合ルックアップメッセージを送る(330)。ルックアップポイント298は、このクラウドをサーチし、クラウドに対して固有のエンティティ識別子を戻す(332)。
【0112】
次にデバイス310は、このエンティティIDについての接続要求をルックアップポイント298に送る(334)。ルックアップポイント298は、接続要求をエンティティ290に送る(336)。デバイス290は、接続受け付けメッセージによってルックアップ298に応答する(338)。ルックアップポイント298は、デバイス310に要求受け付けメッセージを送る(340)。
【0113】
次にデバイス290及びデバイス310は接続342を設定する。最初に、デバイス310は、デバイス290に送るための結合メッセージを構成する。メッセージは、C、U、P、及びIのハッシュドバージョンとランダムシーケンス(S)を使用して自己暗号化される。デバイス290は、結合メッセージをチェックし、OKであれば、デバイス290はデバイス310についての情報を要求する。
【0114】
これに応答して、デバイス310は、以下の情報;すなわちデバイス310の公開鍵314、及びデバイス310のエンティティIDを290に送る。
【0115】
デバイス290はこの情報を受け取り、クラウド対称鍵294、デバイス290の公開鍵302、及びデバイス290のエンティティIDを含む招待で応答する。
【0116】
デバイス290及びデバイス310は完全性リンクを設定し、クラウド状態はこのリンクを通じて同期される。状態情報は、クラウドの各メンバーに対するエンティティIDのリストを含む。これは、各クラウドエンティティのオンライン状態を受け取る。クラウドレコードは同期され、これらのレコードは、クラウド、エンティティ、及びオブジェクト情報を含む。クラウドレコードは、クラウド内のエンティティ並びにクラウドユーザ/パスワードのリストを含む。クラウドメンバーレコード(各エンティティに対して1つ)は、そのメンバーに対するオブジェクト並びにメンバーに対する表示名のリストを含む。オブジェクトレコード(各オブジェクトに対して1つ)は、オブジェクトがサポートするクラス並びに利用可能な機能タイプのリストを含む。
【0117】
同期化はまた、他のクラウドエンティティの公開鍵を含む。このように、エンティティ310は、エンティティ310及び292が完全性リンクを作成し完全性サークルを完成できるように、エンティティ292の公開鍵を受け取る。図15(a)は最終状態を示す。
【0118】
デバイス290は、以下のセキュリティ情報;すなわちクラウド対称鍵294、デバイス290の秘密鍵300、デバイス290の公開鍵302、デバイス310の公開鍵314、及びデバイス292の公開鍵304を含む。
【0119】
デバイス292は、以下のセキュリティ情報;すなわちクラウド対称鍵294、デバイス292の秘密鍵306、デバイス292の公開鍵304、デバイス310の公開鍵314、及びデバイス290の公開鍵302を含む。
【0120】
デバイス310は、以下のセキュリティ情報;すなわちクラウド対称鍵294、デバイス310の秘密鍵312、デバイス310の公開鍵314、デバイス290の公開鍵302、及びデバイス292の公開鍵304を含む。
【0121】
290と292の間の完全性サークルに位置付けられる追加的エンティティが存在していた場合、エンティティ310と290間の同期中に、エンティティ310は、追加的エンティティの公開鍵を受け取ることになる。このように、エンティティ210及び追加的エンティティがデータを共有したい場合、エンティティ290又は290を経由してこれを中継するのではなく、エンティティ310及び追加的エンティティは、その新しい接続を通じて検証チャレンジ及び要求を伝達し、データトラフィックを送信することによって完全性リンクを直接設定することができる。
【0122】
静的鍵であり且つクラウド内の全てのエンティティに共通のクラウド対称鍵294に加えて、追加の動的鍵を用いて完全性リンクを設定しデータを交換する。これについて、図15(b)、(c)、及び(d)を参照しながら説明する。
【0123】
最初に図15(b)(i)を参照し、鍵交換を含む完全性リンクチャレンジ及び応答方法について説明する。この実施例では、完全性リンクは、エンティティA及びB間に設定される。
【0124】
エンティティAでは、ランダムに作成されたシーケンスが各チャレンジに対して生成され(更に周期的に再生成され)、ここでは完全性動的鍵(integrity dynamic key)と呼ばれる。この完全性動的鍵は、対称鍵AB’600として使用される。AB’600は、Bの公開鍵304を使用して暗号化され、この暗号化されたバージョンは、チャレンジとしてBに送られる(604)。
【0125】
エンティティBでは、チャレンジが受け取られ、Bの秘密鍵306を使用して復号され、AB”608として示されるAB’600の復号バージョンがBに記憶され、AB”608がAの公開鍵302を使用して暗号化され、応答がAに戻される(612)。
【0126】
エンティティAでは、応答が受け取られ、Aの秘密鍵300を使用して復号され、復号されたデータとオリジナルのAB’600の比較が行われ、照合された場合、リンクは有効であるとしてマーク付けされ、受け付けメッセージ616がBに戻される。
【0127】
エンティティBでは、受け付け応答が受け取られ、リンクが受け付けられたものとしてマーク付けされる。
【0128】
この方法は、エンティティAがエンティティBにチャレンジするための方法である。同様に、エンティティBからエンティティAへのチャレンジもあるが、この場合、使用される完全性動的鍵は、BA’620である。この方法は、図15(b)(ii)に示される。Bで受け取られたオリジナルチャレンジは、BがAを検証する必要がある場合にBからのカウンタチャレンジをトリガすることになる。この2つのチャレンジは、同時に発生することができる。
【0129】
AからB及びBからAへの完全性リンクが受け付けられたものとしてマーク付けされると、そのリンクを通じたデータチャンネルが開かれる。最終状態が図15(b)(iii)に示されており、ここで上記のプロセスは、次のチャレンジサイクル(例えば10秒毎に)で繰り返される。古い鍵(AB’、AB”、BA’、BA”)がデータリンクに対して未だに有効である一時的なオーバーラップ時間期間が存在することができる。このオーバーラップ時間期間の間、完全性動的鍵の古いバージョンと新しいバージョンの両方が有効である。これによって、データリンクは後続のチャレンジの間に開いたままにすることが可能となる。
【0130】
ここで、2つのエンティティA及びB間のデータトラフィックを暗号化する方法について、図15(c)を参照しながら説明する。
【0131】
クラウドは、エンティティAからエンティティBにデータDを送ることを要求する。図15(b)に関して説明されたように完全性リンクが設定され、エンティティA及びBが完全性動的鍵を交換するようになる。
【0132】
エンティティAは、エンティティAがその一部である各クラウドに対しデータメッセージを送るのに使用されるシーケンスRをランダムに生成する。このシーケンスは、クラウド静的対称鍵(cloud static symmetrical key)Cと組み合わされて、新しいデータ動的対称鍵CA’650を生成する。R及びひいてはCA’は、発生するどのようなチャレンジレスポンスにも関係しない周期的時間で再生成される。
【0133】
エンティティAでは、新しいメッセージが開始され(656)、RがAB’600を使用して暗号化され652、アドレス指定情報を含むメッセージ656のヘッダ660に付加され654;Dでは、CA’650を使用して暗号化され(664)、メッセージ656の本体662に付加され、該メッセージは、エンティティAからエンティティBに送られる(668)。
【0134】
エンティティBでは、メッセージが受け取られ、ヘッダ660がAB”608を使用して復号され(690)、更にR’が抽出され(692);クラウド静的対称鍵C294及びR’が組み合わされて、CA”650を生成し(694);CA”650が、メッセージ本体662を復号しデータDを抽出700するのに使用される(696)。
【0135】
ネットワーク最適化によって、ヘッダを記憶するようにBに通知するフラグをヘッダに設定することが可能となる。2つの別個のピア間のシーケンシャルメッセージについてメッセージヘッダが同じである場合、ヘッダにフラグがセットされ、受信者(この場合はエンティティB)がヘッダをキャッシュする必要がある旨の信号を送る。次のメッセージは、キャッシュされたヘッダを使用するようにエンティティBに知らせるフラグセットを有することができる。
【0136】
エンティティAが同じクラウドのメンバーであったエンティティCにメッセージを送りたい場合、エンティティAは、エンティティBにメッセージを送るときに使用した同じ値Rを使用する。
【0137】
簡単にするために、この実施例は、1つだけのクラウドを共有するエンティティA及びBについて説明している。エンティティA及びBが両方とも第2クラウドのメンバーであり、エンティティAがBと通信したい場合、そのクラウドで通信する場合に更なる別個のランダムシーケンスRが生成され使用されることになる。
【0138】
クラウドに結合するプロセスについて、図15(d)を参照しながら説明する。ここで、エンティティA、B、及びCは同じクラウドのメンバーであり、互いにチャレンジし且つ対称鍵を交換している。
【0139】
エンティティDは、クラウドに結合するプロセス中にある。エンティティDは、エンティティCの公開鍵と静的クラウド鍵を含む招待を受け取り、結合要求においてその公開鍵をCに送っている。
【0140】
チャレンジは正常に実行され、C及びDは、完全性動的対称鍵を交換している。
【0141】
エンティティDは、Bをチャレンジして完全性リンクを完了できるようにBの公開鍵をCに要求するプロセス中にある。
【0142】
クラウドの登録、結合、離脱、作成、及びクラウド上のコンテンツの共有の方法は、各デバイス及びルックアップポイントにインストールされて、これによってデバイスが上述の方法に従って動作するアプリケーションソフトウェアによって制御される。このアプリケーションソフトウェアの適切なプログラミング言語の実施例は、C++及びJavaであるが、この代わりに或いはこれに加えて他のいずれかのプログラミング環境を使用することができる。
【0143】
図16は、ソフトウェアのメインソフトウェアモジュールを示す。ソフトウェアは、3つの部分:すなわちユーザインターフェースであるグラフィカルユーザインターフェース(GUI)400と、セキュリティ、デバイス接続、及びクラウドを維持し、エンティティを作成及びリンクする基本エンジンであるコア402と、機能及びデータをエンティティに付加するオブジェクト404に分けられる。
【0144】
新しいアプリケーションは、GUI及びオブジェクトを変えることによって作成することができる。例えば、フォルダ及びファイルを示しアクセス可能なファイルフェッチングオブジェクトを付加することによるファイル共有、1つのデバイスが別のデバイスにメッセージを送ることを可能にするチャットオブジェクトを付加することによるメッセージング、付属デバイスから音声データを送ることのできるボイスオブジェクトを付加することによるボイップ(VOIP)、及び他のアプリケーションがある。
【0145】
ソフトウェアの設計を図17に概略的に示す。コアは、サブシステム及びクラウドの全てを作成し初期化するメインマネージャー(Main Manager)410を含む。
【0146】
OSラッパー(Wrapper)412は、下にあるデバイスと通信するソフトウェアモジュールである。これは、暗号化ファイル記憶と、新規/既存のエンティティが使用することができる実施可能なオブジェクトのライブラリを供給する。OSラッパー412は、バーチャルオブジェクト及びリモートオブジェクトを作成するのに使用される。ネットワーキング(Networking)414は、デバイス間の通信の全てを管理するソフトウェアモジュールであり、エンティティルックアップ、完全性リンク設定、メッセージ中継、及びデバイス固有の暗号化を実行する。
【0147】
クラウド416は、デバイス上の特定のエンティティ及びこれに関連するクラウドを管理するソフトウェアモジュールである。各クラウドに対してこのモジュールのインスタンスが存在する。クラウド416は、クラウド固有の暗号化、クラウド状態の同期化、クラウドレコードの同期化、オブジェクト及び動作メッセージング、及びクラウド完全性リンク維持を実行する。
【0148】
クラウド418のインスタンスは、デバイス上の単純なクラウドのレイアウトを示す。OSラッパー420は、メインマネージャーOSラッパー412から直接取得される。エンティティネットワーキング422は、414から取得される。
【0149】
クラウド424は、メインマネージャー410によって管理されるクラウドの別のインスタンスである。これは、クラウドと同じソフトウェアを含む。
【0150】
クラウド426は、クラウド426上のエンティティであるクラウド424上に構築されたクラウドであり、実際にはクラウド424である。クラウド426は、メインマネージャー410にバックするのではなく、クラウド424を参照する。OSラッパー428は、クラウド424からのOSラッパー430から取得される。クラウド426からのあらゆるセーブされた非ユーザデータが、クラウド424全体にわたって自動的に伝搬され、これは、クラウド状態を含むが、オブジェクトデータ要求からのデータは含まない。クラウド426に付加することができる実施可能なオブジェクトのライブラリは、クラウド424からのライブラリである。エンティティネットワーキング430は、クラウド424からのエンティティネットワーキング432から取得される。
【0151】
更に、クラウド434は、クラウド426上に構築されたクラウドである。OSラッパー436は、クラウド426からのOSラッパー440から取得される。クラウド434からのあらゆるクラウド状態情報が、クラウド426全体にわたって自動的に伝搬される。同様に、クラウド434に付加することができる実施可能なオブジェクトのライブラリは、クラウド426からのライブラリである。エンティティネットワーキング442は、クラウド426からのエンティティネットワーキング444から取得される。
【0152】
ここで、図18を参照して、2つの相互接続されたクラウドに関係するソフトウェアについて説明する。全体で5つのデバイスと2つのクラウドがある。クラウドAは、デバイス(この場合これらはエンティティでもある)450、452、及び454を含む。クラウドBは、デバイス454、456、及び458を含む。リンク460は、クラウドAの完全性リンクを含む。リンク462は、クラウドBの完全性リンクを含む。
【0153】
デバイス450のユーザがクラウドBと対話する場合、デバイス456のリアルオブジェクトにデータを送る必要がある。エンティティネットワーキングメッセージがデバイス450からデバイス456に送られる。このメッセージは、クラウドAのクラウドBコンタクトポイント(デバイス454)に中継される。
【0154】
次に、5つのデバイス470、472、474、476、及び478上に広がった3つのクラウドA、B、及びCに関するソフトウェア及びリンクについて図19の概概略図を参照しながら説明する。
【0155】
クラウドAは、デバイス470、472、及び474上に存在するエンティティから構成される。クラウドBは、デバイス470、デバイス476、デバイス478、及びクラウドA上に存在するエンティティから構成される。クラウドCは、デバイス472及びデバイス474上に存在するエンティティから作られる。
【0156】
クラウドAの完全性リンクは、デバイス470をデバイス474に接続し、デバイス470をデバイス472に接続し、最後にデバイス472をデバイス474に接続するリンク480から構成される。クラウドBの完全性リンクは、クラウドAをデバイス478に接続し、クラウドAをデバイス470に接続し、デバイス470をデバイス476に接続し、及びデバイス4をデバイス478に接続するリンク486から構成される。最後に、クラウドCの完全性リンクは、デバイス472をデバイス474にリンクするリンク490である。
【0157】
次に、更なる実施例に関するソフトウェア及びリンクについて図20を参照しながら説明する。この実施例には4つのクラウドA、B、C、及びDがある。
【0158】
クラウドAは、デバイス500、502、及び504を含む。クラウドBは、デバイス500、506、508、及びクラウドAを含む。クラウドCは、デバイス502及び504を含む。最後に、クラウドDは、クラウドA、クラウドB、及びクラウドCを含む。リンク510は、クラウドAの完全性リンクを含む。リンク512は、クラウドBの完全性リンクを形成する。リンク514は、クラウドCの完全性リンクを形成する。最後にリンク516は、クラウドDの完全性リンクを形成する。
【0159】
図20に示されるクラウドのアプリケーションは、以下の通りとすることができ、:すなわち、クラウドA=ボスの仕事クラウド、デバイス500=ボスのオフィスPC、デバイス502=ボスの携帯電話、デバイス504=ボスのラップトップ、クラウドB=ボスの共有クラウド、クラウドA=ボスの仕事クラウド(このクラウドから共有コンテンツへのアクセスを可能にする)、デバイス500=ボスのオフィスPC(クラウドAの一部として共有されていた可能性のないPC上のコンテンツへのアクセスを可能にする)、デバイス506=レセプショニストPC(ボスのスケジュールなどへのアクセスを可能にする)、デバイス508=アシスタントPC、クラウドC=ボスの携帯502とラップトップ504との間のボスのプライベートクラウド、クラウドD=アドミニストレータクラウド(メンバーからこのクラウドにアクセス可能なプライベートデータを有することができず、これによってデバイスのメンテナンス及びモニタリングオブジェクトへのアクセスだけが可能になる)。
【0160】
ここで、ソフトウェアを使用する実施例について、図21〜47を参照しながら説明する。
【0161】
図21は、ルックアップポイントGUIのGUIを示す。例えば、これは、図2のルックアップポイント104を動作させるサーバのユーザに提示されるインターフェースとすることができる。このGUIでは、クラウディアドミニストレータに登録されたデバイスがシステムに登録される。
【0162】
図22は同じGUIを示しているが、この場合には、アドミニストレータに登録したユーザ全てが表示されている。ここでは、登録されている1人のユーザ「Jason」が存在し、200のデバイスのうちの39、及び400クラウドのうちの14に関連付けられている。これは、ユーザ「Jason」が200の別個のデバイスをルックアップポイントに登録し、これらのデバイスを使用して400クラウドを作成することが可能であることを意味する。現在のところ、39デバイスが14クラウドと共に登録されている。
【0163】
上述のデバイスのいずれかとすることができるデバイス上でユーザに提示されるインターフェースをユーザの視点から図23に示されている。この実施例では、デバイスはパーソナルコンピュータであり、「TELPAC−DEV」と呼ばれる。これは、ユーザ用のイントロダクション/ウェルカム画面である。
【0164】
ユーザが既にルックアップポイントに登録されている場合、ユーザは、既存のユーザであることを示す「Old」を選択することができる。図24に示されるように、ユーザは、ユーザ名とパスワードを入力するよう指示される。ユーザが「OK」をクリックすると、この情報は図12に関して上記で説明されたようにルックアップポイントに送られる。次いで、デバイスは、ルックアップポイントからデバイス上のアプリケーションをロック解除する鍵を受け取る。ここでデバイスのソフトウェアアプリケーションの全機能がユーザに利用可能となる。
【0165】
図25に示されるように、アプリケーションは実行されているが、デバイスはどのクラウドにも接続されていない。クラウドを作成するために、ユーザは、「Create New Cloud(新しいクラウドの作成)」を選択し、図26に示されるようにダイアログボックスが現れる。ユーザは、クラウドの名前、そのユーザ名及びパスワードを入力する。これは、新しいクラウドDemoをルックアップポイントに登録している。
【0166】
ディスプレイは、ルックアップポイントに同期されており、クラウドDemoのサマリーを図27に示される拡張可能ツリーとしてユーザに表示させる。ここでクラウドは、3つのオブジェクト;すなわちファイル、メール、及びデバイスから構成されている。現在のところコンテンツは共有されておらず、TELPAC-DEVは、クラウド上の唯一のデバイスである。
【0167】
ユーザがDemoクラウド上のメールを共有したい場合、ユーザは、Demoクラウドのサマリーをクリックすることによって現れるポップアップボックスで「local mail sharing(ローカルメール共有)」を選択する。これによって、図28のダイアログボックスが現れ、ユーザは、チェックボックス「Share mail(メール共有)」を選択する。これによって、デバイス名「TELPAC-DEV」が図29に示されるようにDemoクラウドのサマリーにおける見出し「メール」の下にリストされるようになる。「メール」見出しの下のTELPAC-DEVを選択することによって、TELPAC-DEVで利用可能なメールのサマリーがインターフェースの右側に表示される。サマリーを使用すると、ユーザはTELPAC-DEV上に記憶されているメールフォルダをナビゲートすることができる。
【0168】
ユーザはまたファイルを共有することができる。図30に示されるように、Demoクラウドサマリーをクリックすることによって、ユーザは、オプション「local mail sharing(ローカルファイル共有)」を選択することができる。これによって、図31のダイアログボックスが表示されるようになる。ユーザは、ダイアログボックスから「Add(追加)」を選択し、図32に示されるダイアログボックスを表示させることができる。ここでユーザはタイトルを入力し、ファイルがサマリー内にリストされ、この実施例では名前「Docs」が選択されている。ユーザはまた、共有されるフォルダを選択するためにブラウズすることが可能である。この実施例では、フォルダは、パス名「C:\Documents and Settings\Jason\My Documents」によって識別される。ユーザは、「OK」を選択して、図31のダイアログボックスにユーザを戻すが、図33に示されるように選択されたフォルダ及びシェア名がダイアログボックス内にリストされる。ダイアログボックスで「OK」を選択することによって、フォルダは、クラウド上で利用可能になる。これは、図34に示されたDemoクラウドの更新されたサマリーに示されており、ここでTELPAC-DEVデバイスが見出し「Files(ファイル)」の下にリストされる。TELPAC-DEVによって共有されるフォルダのサマリーは、インターフェースの右側に表示される。
【0169】
ユーザはまた、異なるデバイスからクラウディ・アプリケーションを使用することができる。以下の実施例では、ユーザはWM-Jasonと呼ばれるPDAを現在使用している。ここで、PDAでユーザに提示することができるインターフェースについて説明する。
【0170】
ユーザには図35に示されるウェルカム画面が提示される。図24と同様に、ユーザは、図36に示されるようにアプリケーションをロック解除するためにログインしなくてはならない。
【0171】
図37に示されるように、ログインすると、ユーザは未だクラウドに登録していないので、コンテンツを見ることができない。クラウドに登録する段階は、図38、39、及び40に示されている。図14を参照して説明されたように、最初にユーザは、「join a cloud(クラウドに結合)」を選択し、クラウド名(内部結合から作成されたピックリストから取ることができる)、クラウドにおけるユーザ名、パスワード、及びクラウド招待番号を入力する。この場合、ユーザは、「Demo」と呼ばれるクラウドに結合するよう選択している。
【0172】
ユーザのデバイスは、クラウド内の1つ又はそれ以上のデバイスへの完全性リンクを作成することによって自動的にクラウドに結合し、次いで、クラウドの状態が、このリンク全体にわたって同期化される。この同期によって、クラウドで既に利用可能であるデータがデバイスによってアクセス可能になる。
【0173】
図41に示されるように、コンテンツを有するクラウドDemoが利用可能である。見出しDemoをクリックすることによって、コンテンツツリーリストが図42に示されるように展開される。これは、クラウドDemo上に接続されている2つのデバイス、すなわちデバイス「TELPAC-DEV」及び「WM-Jason」を有することを示している。クラウドに接続されているデバイスTELPAC-DEVから、メール、コンタクト、及びファイルが利用可能である。
【0174】
図43は、TELPAC-DEVのコンテンツがデバイス上のインターフェースを使用してどのようにナビゲートできるかを示す。「ファイル」見出しの下の「TELPAC-DEV」を選択すると、名前「Docs」の下で共有されるフォルダのツリーダイアグラムとその下にリストされるサブフォルダの全てを表示することができる。サブフォルダ「Telpac」(図示せず)が選択された場合、そのフォルダに含まれる文書のリストが図44に示されるように表示される。これらの文書のいずれか1つを選択することによって、好ましくは2つのデバイス間の直接リンクを使用して文書がTELPAC-DEVデバイスからデバイスにダウンロードされる。
【0175】
更なる実施例として、ユーザは、図45に示されるようなデバイス上でビューすることができるグラフィクファイルを含むものからフォルダ「バックアップ」を選択できる。
【0176】
図42を再度参照すると、メール見出しの下のTELPAC-DEVを選択することができ、これは、図46に示されるように共有されているTELPAC-DEV上のメールフォルダのサマリーをユーザに提示する。サマリーツリーを使用してフォルダを選択し、図47に示されるようなクラウドを使用してアクセス可能な電子メールのサマリーの詳細をユーザに提示することができる。
【0177】
広範に説明される本発明の精神又は範囲から逸脱することなく、特定の実施形態に示される本発明に対して多数の変形及び/又は修正を行い得ることは当業者には理解されるであろう。
【0178】
例えば、クラウド上のエンティティによってビューされる共有インターフェースは、例えば、人が家の中を移動して本棚及びTVなどのデバイスを選択し、共有コンテンツにアクセスするようにして芸術的に表示することができる。
【実施例】
【0179】
ここで幾つかの付加的な実施形態及び実施例を示す。
【0180】
図48では、この実施形態では「Razberry」と呼ばれるアプリケーションの起動手順を概説するためにフローチャート(600)が使用される。起動は、この実施形態では自動化される。アプリケーションがデバイスで初期化されると、スプラッシュ画面(601−「A」)が表示され、次に、登録画面(602−「B」)に続き、ここでユーザは、先に進むためにはユーザ名とパスワードを入力しなくてはならない。これらの詳細は、この記憶された情報のルックアップからプログラムによって確認される。ログイン画面の実施例が図49に示されている。ログイン画面はまた、図49に示されるようにユーザの詳細を忘れてしまったユーザを管理するための機能を有することができる。
【0181】
成功した登録に続いてルックアップから戻されたセキュリティ情報を使用して(詳細は図50を参照)ユーザがプリケーションのロック解除を正常に行うと(603−「C」)、アプリケーションは、初期「Razberry」クラウドがデバイスで利用可能かどうかチェックする(604−「D」)。利用可能でない場合(605)、ユーザは、このクラウドを作成するよう招待される。初期クラウドが既にデバイス上で利用可能である場合、該初期クラウドが始まる(606)。初期クラウドが行われると、GUIが表示され(607)、これによってユーザは「Razberry」アプリケーションを利用することが可能になる。
【0182】
ロック解除されたデータのチェックが行われ(「D」)、「Razberry」クラウドがこのデバイスで既にセットアップされているかどうかを調べる。デバイスは、「Razberry」クラウドを未だ結合しておらず(「E」)、よって現在登録されているユーザがどのクラウドを有しているかを見つけ出すためにルックアップからの要求が実行される。(詳しくは図51を参照。)結果がチェックされ(「F」)、「Razberry」クラウドがこれまでに作成されていたかどうかを調べる。作成されていた場合(「G」)、管理用パスワードをユーザが入力することができ、或いは固定パスワードをアプリケーションが使用することができる。このパスワードは、新しいデバイスをクラウドに追加するのに必要である。固有のクラウドIDがルックアップによってチェックされる(「H」)。クラウドIDチェックが失敗すると(「I」)必ずローカルRazberryクラウドデータが取り除かれる。結合は、アプリケーションによって行われ(「J」)、Razberryクラウドに結合しようとする。結合が失敗すると(「K」)、ユーザは、新しいクラウドを開始するように指示される。ユーザが新しいクラウドを開始することを選択した場合(「L」)、既存のクラウドを削除するようにルックアップが示される。新しい管理用パスワードは、ユーザ又はアプリケーションによって設定される(「M」)。Razberryクラウドは、新しい管理用パスワードを使用して作成される(「N」)。既存のクラウドは、ローカルに記憶されたデータを使用して起動される(「O」)。
【0183】
上述のように、クラウドは、幾つかのデバイスを含み、各デバイスの登録の詳細が図50に示すようにフローチャートで例示される。
【0184】
デバイスは、デバイスのランダムに生成された固有のIDを登録ユーザ名及びパスワードと共に渡すことによってルックアップに登録する(「A」)。ルックアップは、ユーザ登録をチェックし、このデバイスがこのユーザの下で登録されていることを確認する(「B」)。このデバイスが現在のユーザにとって未知のデバイスである場合(「C」)は常に、ルックアップはこのユーザの登録詳細をチェックし、これらに新しいデバイスを追加することが可能であるかどうかを調べる。新しいデバイスを追加できる場合(「D」)、ルックアップ上でこのデバイスについての新しい登録レコードが作成される。新しい登録レコードは、ランダムに作成されたセキュリティ鍵を含む。ランダムに作成されたセキュリティ鍵はデバイスに戻される(「E」)。デバイスは、ランダムに作成されたセキュリティ鍵を使用してそのローカルクラウドアプリケーションデータをロック解除する(「F」)。
【0185】
更に、ユーザは、幾つかのクラウド、及び図51に示されるリストを取得するための手順へのアクセスを有することができる。デバイスは、ユーザの登録に関連する利用可能なクラウドのリストを要求する(「A」)。ルックアップは、要求を受け取り(「B」)、要求側デバイス登録において登録されたクラウドのリストを検索する。リストは、要求側デバイスに戻される(「C」)。利用可能なクラウドのリスト(「D」)は、デバイスによって受け取られる。
【0186】
ユーザがアクセスへの許可を有するクラウドに結合可能にするプロセスを図52に示す。クラウド名及び招待が、ルックアップ結合を行うためにルックアップに送られる(「A」)。ルックアップは、現在の登録に対してクラウド名及び招待についての一致を求めて登録クラウドをサーチする(「B」)。一致したクラウドについての固有のクラウド識別子(「C」)がデバイスに戻される。デバイスは、クラウドid(「D」)を受け取り、そのidを使用してルックアップを実行する。ルックアップを介してクラウドへの直接接続が設定される(「E」)(図59を参照)。
【0187】
結合要求がクラウドのコンタクトデバイスに送られる(「F」)。コンタクトデバイスは、クラウドとのコンタクトの好ましい初期ポイントに登録された現在のデバイスである。この要求は、クラウドへの招待のためのクラウド名、招待名、及びユーザ名/パスワードを含む。受け取られたクラウド結合クレデンシャル(「G」)は、クラウドのあらゆるアクティブな招待に対してチェックされる。招待(「H」)は、クラウド名、招待及びユーザ名/パスワードを一致させることによって検証される。結合が受け付けられた旨の応答(「I」)がジョイナーに送られる。そのデバイス情報に対するジョイナーへの要求(「J」)が送られる。デバイス情報(「K」)は、クラウドコンタクトデバイスに返送される。この情報は、デバイス結合の識別子及び結合デバイスの公開鍵を含む。受け取られたデバイス情報(「L」)は、メモリ内に記憶される。クラウド識別子、クラウドセキュリティ鍵、このクラウド上のデバイスに対する現在のデバイスidのリスト、及びこのデバイスの公開鍵を含む招待(「M」)がジョイナーに戻される。ジョイナーは、クラウド(「N」)をアプリケーションデータに追加し、クラウドを起動し初期化する。ジョイナー(「O」)は、全てがokであることをクラウドコンタクトデバイスに応答する。
【0188】
クラウドコンタクトデバイス(「P」)はokを受け取り、メモリに記憶されたジョイナーの情報をアプリケーションデータにロードする。結合デバイス(「Q」)は、このクラウドのデバイスのリストに追加される。検証プロセス(「R」)は、ジョイナーとクラウドコンタクトデバイスとの間で開始される。ピア間の標準同期プロセス(「S」)は、クラウドのデバイス及びオブジェクトレコードと共にクラウド上の他のデバイスのセキュリティ鍵によってジョイナー(joiner)を更新する。
【0189】
ユーザにクラウドを作成させるためのプロセスが図53に示される。クラウドの固有の識別子、クラウドの名前、及びこのクラウドに結合するのに使用されることになる招待を含む作成メッセージ(「A」)が、デバイスによってルックアップに送られる。ルックアップ(「B」)は、デバイスが行っている登録においてクラウド名が未使用であることをチェックする。同じ名前は、各登録毎にのみ使用することができる。ルックアップは、現在の登録が新しいクラウドの作成を可能にすることをチェックする(「C」)。クラウドのレコード(「D」)が登録データベースに追加される。デバイス(「E」)は、クラウドを作成することが許可されたことをルックアップによって知らされる。デバイス(「F」)は、クラウドの起動及び初期化に進む。各デバイス(「G」)は、メンバーであるクラウドの固有の識別子のリストを含む。このリストは、新しいクラウド識別子によって更新される。ユーザがクラウドに追加される(「H」)。招待(「I」)は、他のデバイスがこのクラウドに結合することを可能にするクラウドに付加される。新しいクラウド(「J」)の作成は、ユーザに提示するためのGUIに通知される。
【0190】
ユーザがアクセスできるクラウドが決定されると、各クラウドのコンテンツをユーザに利用可能にすることができる。デバイスに登録されている各クラウドの起動プロセスのフローチャートが図54に示されている。デバイス(「A」)は、特定のクラウドの固有の識別子がルックアップに登録されているかどうかを確認するよう要求するメッセージをルックアップに送る。固有のクラウド識別子のリストは、デバイスがそのメンバーであるクラウドに対して各デバイス上のアプリケーションによって記憶される。ルックアップ(「B」)は、そのデータベース内でクラウド識別子をサーチする。デバイス(「C」)は、ルックアップの結果を戻される。固有のクラウド識別子(「D」)がルックアップ上で見つかると常に、デバイスはクラウドの初期化に進む。GUIは、ユーザに提示するのに利用可能なクラウドについて通知される(「E」)。クラウドの固有の識別子(「F」)がルックアップで見つからなかった場合、クラウドはこのデバイスから削除される。
【0191】
初期化手順フローチャートが図55に示される。デバイス上に既に登録されている各クラウドに対して、この結果に対するメッセージがルックアップに送られる(「A」)。クラウドidは、ルックアップデータベースで見つけられる(「B」)。見つけられた場合(「C」)、クラウドが初期化される(「D」)。各クラウド(「D」)は、クラウド固有の通信に使用される固有の対称暗号鍵を有する。各クラウド(「E」)は、クラウドの完全性を維持するのに使用される完全性スレッドを有し、これは、クラウドデータの同期化、クラウド状態データの維持、クラウド完全性サークルの維持、及びクラウドセキュリティの維持を含む。各クラウド(「F」)は、このデバイス上のオブジェクトに対する動作要求を処理するのに使用されるオブジェクト動作ワーカースレッドを含む。新しいクラウド(「G」)に対して、クラウドレコードが、クラウド、ユーザ、招待、及びメンバーについて追加される。レコードは、このデバイスレコードに対して追加される(「H」)。クラウドレコードは、同期化のために登録される(「I」)。全てのアクティブなクラウド招待が、インバイターモジュールに登録され(「J」)、これによって他のデバイスがこのクラウドに結合可能になる。
【0192】
図56には、クラウドオブジェクトにおける全てのデバイスにわたって単一のビューを読み込むためのプロセスの段階を指示するフローチャートを示しており、これらのオブジェクトとの更なる対話のためにクラウド内のオブジェクト全てをユーザに表示することが可能となる。図56Aに示されるように、システムは、デバイス上のデータ及び機能を表わす3つのメイン層、GUI、通信コア、及びオブジェクトを有する。図56Aの図表は、3つのデバイスの配置を示している。左側の第1デバイスは、そのコアが3つのデバイス全てにわたって延びているように動作する。これによって、第1デバイス上のGUIは、3つのデバイス全てのオブジェクトによって動作不可能になった機能及びデータの全てにアクセスすることが可能となる。この状況は、3つのデバイスの全てに対して繰り返される。
【0193】
図56Bに示されるように、コア間のリンクは、インターネット、或いはデバイスを接続する他のネットワークにわたって維持される。
【0194】
図56Cに示されるように、デバイスの特定のグループ化(すなわちクラウド)において、上記のデータレコードが各デバイス上で維持される。これらのレコードは、クラウド内のレコードマネージャーによって継続して同期化される。各レコードは、各クラウドに対して異なる固有の識別子によって識別される。
【0195】
「クラウドレコード」は、デバイスのレコード、ユーザのレコード、及び招待のレコードへの参照を含むクラウドのマスターレコードである。このレコードは、クラウド全体にわたって継続して同期化され、クラウドの初期作成後は変化しない。「デバイスレコード」は、クラウド内の各デバイスの「デバイスレコード」に対する参照のリストを含む。デバイスレコードは、新しいデバイスがクラウドに結合したときに更新される。「デバイスAレコード」は、デバイスAについて維持されるレコードである。デバイスAはこのレコードを作成し、このレコードを更新できる唯一のデバイスである。レコードは、Aの各オブジェクトに対して維持されるオブジェクトレコードへの参照のリストを含む。「オブジェクトA1レコード」は、オブジェクトA1上で実行可能な可能な動作のリストを含む。動作は、フォルダのリストを取得する、ファイルのリストを取得する、電子メールを送る、コンタクトを追加する、その他を行うことができる。レコードはまた、オブジェクトに包含されるクラスをリストする。クラスは、要求される動作の予め定められたセットである。クラスの実施例は、ファイルブラウザ、電子メールブラウザ、コンタクト、カレンダー、その他を含む。オブジェクトが特定のクラスを有する場合、これは特定の動作のサブセットを含むと見なすことができる。これは、オブジェクトの標準化を可能にする。
【0196】
オブジェクト共有における段階を説明するフローチャートを図57に示す。フローチャートの(「A」)から(「H」)で示される段階は、オブジェクト共有を実行するために続く。
【0197】
幾つかの実施可能なオブジェクト通信のフローチャートが図58に示されている。これはまた、XMLを介して発生する対話の実施例を示す。種々のフォーマットでのデータは、この実施例に示されるようにXMLとすることができ、或いは他の何らかの規格とすることができる共通規格によって管理される。しかしながら、XMLは詳細でかなりの冗長性を含む傾向があるので、動作するのに必要な情報だけを含む特定のより簡潔な規格を「Razberry」アプリケーションと共に使用するために開発することができる。図58の実施例では、メッセージがXMLを使用して前後に渡され、これによってアクティビティの発生が可能になる。段階(「A」)は、フローチャートに示されるように実行される。
【0198】
デバイス接続及びルックアップの方法を説明するフローチャートが図59に示されている。これは、接続マトリクスを利用する。
【0199】
図59では、デバイスRがデバイスL(「a」)への接続を望み、デバイス接続/ルックアップ要求をルックアップに送る。ルックアップは、するためにそのデバイス登録データベース(「b」)をサーチして、デバイスLについてのネットワークアドレス情報を検索する。この情報は、デバイスLのIPアドレス並びにデバイスLのルックアップによって調べられたIPアドレスである。ルックアップは、新しい接続リンクのための接続マトリクスに要求を送る。接続マトリクスは、2つのネットワークポート間で透過的にデータを転送するためにリンクされている2つの新しいネットワークポート(「c」)を割り当てる。これらの2つのリンクされたアドレスM1及びM2は、ルックアップに戻される。
【0200】
ルックアップは、接続マトリクスを受け取る(「d」)。接続要求がデバイスLに送られる(「e」)。この接続は、デバイスR及びM2のネットワークアドレス情報(接続リンクの半分)を要求する。デバイスLは要求(「f」)を受け取り、接続を受け付けることを望むか否かを決定する。この決定は、許可された又は禁止されたIPアドレスリストに基づくことができる。デバイスLは、接続が受け付けられた旨を応答する(「g」)。デバイスLは、接続マトリクス上のM2に接続する(「h」)。デバイスLは、デバイスRとの直接接続を設定しようとする(「i」)。この直接接続の試みは、デバイスRの実際のアドレス及びルックアップによって調べられたアドレスの両方を使用する。ルックアップは、接続に対してデバイスLからokを受け取り(「j」)、接続マトリクスM1と共にデバイスLのロケーションをデバイスRに渡す。デバイスRは、デバイスLの接続情報を受け取る(「k」)。デバイスRは、M1を使用して接続マトリクス上のM1に接続する(「l」)。接続マトリクスにおいて、M1及びM2両方への接続の存在が接続リンクを開く(「m」)。これが開かれると、デバイスR及びデバイスLは、直接通信を始めるのに使用することができるハンドシェークメッセージを受け取る。デバイスRは、デバイスLとの直接接続を作成しようとする(「n」)。この接続が設定された場合、接続マトリクスリンクが開放され、全てのデバイス通信がシームレスに直接リンクに切り替わる。
【0201】
図60には、「Razberry」アプリケーションでのメッセージ交換のプロセスを示すフローチャートが示されている。これは、クラウド内の種々のサブシステムがどのようにアドレス指定されるかを示す。通信交換ボックスによって受け取られたネットワークデータは、データの受信者を識別するヘッダ情報を含む((「a」)を参照)。
【0202】
受信者は、:(i)このデバイス上のクラウドに対する結合要求を管理及び処理し、要求を受け付け又は拒否するインバイター(Inviter)、(ii)クラウドコンタクトデバイスを介してクラウドへのクラウド結合要求を管理するジョイナー(Joiner)、(iii)ジョイナーとインバイターの間の中継ポイントであるメディエーター(Mediator)、(iv)デバイスチャレンジメッセージ(H)及びデバイス/クラウドメッセージ(I)を管理するピア通信、(v)全てのクラウドに対してルックアップとの通信を管理し、更にルックアップからの接続要求を管理するルックアップ通信とすることができる。
【0203】
デバイスクラウド通信は、メッセージがそれによって受けとられるこのデバイス上のクラウドデバイスペアを識別する第2ヘッダを含む(「(b)」を参照)。メッセージは、正しいクラウドに切り替えられる。
【0204】
クラウドメッセージは、クラウドメッセージのタイプ及び受信者を識別する第3ヘッダを含む(「(c)」を参照)。受信者は、(i)これらのメッセージがクラウド状態の交換及びクラウドセキュリティ鍵の同期化を行っている完全性マネージャー、(ii)これらのメッセージが、単一のビューを構築するのに使用されるクラウド固有のレコードを同期させるレコード同期化マネージャー、(iii)これらの要求がこのデバイス上のオブジェクトでの動作を実行するために受け取られる動作要求に対するキュー(Queue)、のうちの1つである。
【0205】
追加的なメッセージ交換は、ファイルオブジェクト、メールオブジェクト、チャットオブジェクトなどの特定のオブジェクトにメッセージをターゲットするために行われる(「(d)」を参照)。リモートオブジェクトである場合、メッセージは、リモートオブジェクトから要求された特定の動作に切り替えられる(「(e)」を参照)。
【0206】
クラウド完全性の維持のための幾つかの段階の実施例を示すフローチャートが図61に示される。もはやアクセスされないクラウドレコード(「(a)」)は、アプリケーションのメモリ使用量を低減するためにメモリから取り除かれる。デバイスがクラウドの他のいずれのデバイスをも認識しない(「(b)」)場合は常に、デバイスはクラウドを捜そうとする。クラウドが見つからない場合、デバイスは、クラウドコンタクトポイントでルックアップに登録する。クラウドのデバイス識別子のリストは、継続して同期される(「(c)」)。これについて図63で更に説明する。デバイスがオンライン及びオフラインになると常に、決定(「(d)」)が、クラウド内の各オンラインデバイスによってデバイスが新しいクラウドコンタクトポイントになるべきかどうかを決定するための判断が行われる。左側完全性リンクが周期的にチェックされ(「(e)」)、リンクがセット時間期間後にチャレンジされていない場合、新しいチャレンジが行われる。別のセット時間期間後にチャレンジが応答されていない場合、ピアはオフライン及び無効としてマーク付けされる。クラウドでの全ての他のデバイスは、このデバイスのオフライン状態によって即座に更新される。右側完全性リンク(「(f)」)は、(「(e)」)と同様に機能する。
【0207】
ピア情報の同期を示すフローチャートが図62に示される。同様に、クラウド情報の同期化を示すフローチャートが図63に示されている。
【0208】
図64には、ルックアップポイントのメッセージ処理機能が示されており、並びにこれに包含されるメッセージの実施可能な構造及びメッセージヘッダが示される。
【0209】
図65には、結合問合せのメッセージ処理機能が示されており、並びにこれに包含される幾つかのメッセージの実施可能な構造が示されている。
【0210】
図66から70では、「Razberry」アプリケーションの種々のスクリーンショットが示されている。図66は、上部のツールバーのボタンのリストから選択された電子メールサブシステムを示し、クラウドに集められたMicrosoft「Outlook」電子メールフォルダを含む幾つかのデバイスを示している。1つの選択されたデバイスの電子メールが図67に示されている。図68は、選択されている1つのデバイスをそのデバイスに対して選択されたファイル管理サブシステムと共に示している。図69では、カレンダー機能が上部のツールバーから選択されており、「Razberry」アプリケーションを介してMicrosoft「Outlook」カレンダーデータを表示している。図70は、「Razberry」アプリケーションを介して開かれている1つの電子メールを示している。
【0211】
<オペレーションの実施例>
「Razberry」アプリケーションのオペレーションを示す実施例として、Johnがファイルを捜していると仮定する。
【0212】
Johnは、自分のPDAでRazberryを起動し、ルックアップに登録するために自分のユーザ名及びパスワードを入力する。PDAは、ルックアップからJohnのRazberryクラウドのロケーションを要求し、Johnの家庭用PCの識別子を受け取る。
【0213】
PDAは、家庭用PCに直接接続し、PDAと家庭用PCとの間でセキュリティ検証と状態及びヘッダレコード同期が行われる。PDAは、職場用PCがオンラインであることを知り、職場用PCのロケーションをルックアップに問い合わせる。PDA及び職場用PCが共に接続され、完全性リンクが3つのデバイス間で設定される。
【0214】
Johnは、職場用PC上でファイルをビューしたいと決定し、RazberryアプリケーションGUIでこの機能を選択する。PDAは、職場用PCのデバイスレコードを検索し、これを用いて職場用PC上のオブジェクトを取得する。PDAは、このオブジェクトをサーチし、オブジェクトクラス「ファイル」を有するオブジェクトを捜す。PDAは、職場PC上のファイルオブジェクトにアドレス指定された新しいオブジェクト/動作を作成し、動作要求メッセージを送る。職場PCは、動作要求メッセージを受け取り、動作要求を処理し、応答メッセージを送信者に戻す。PDAは、動作要求メッセージへの応答を受け取り、PDA GUIを使用して職場PC上のフォルダのリストを表示することができる。
【0215】
<Razberry機能の実施例>
・ファイルブラウザ−ファイル及びフォルダへのアクセスを可能にする(図67を参照)
・メールブラウザ−電子メールコンテンツ及び機能へのアクセスを可能にする(図66及び68を参照)
・カレンダーブラウザ−カレンダーへのアクセスを可能にする(図69を参照)
・音楽ストリーマ−音楽コンテンツへのアクセスを可能にする
・音声モジュール−VOIPのためのデバイスマイクロフォン及びスピーカへのアクセスを可能にする
・ビデオストリーマ−ビデオコンテンツへのアクセスを可能にする
・チャットモジュール−テキストメッセージングを可能にする
・メディアプレーヤ・リモート−デバイスのメディアプレーヤのリモート制御を可能にする
・リモートアプリケーションモジュール−リモートアプリケーションビュー及び対話を可能にする
・広告モジュール−クラウドユーザ固有情報を有し、ウェブに働きかけて広告を引き込むことができる
・バンキングモジュール−安全なデバイス上にバンククレデンシャルを記憶しリモートでトランザクションを実行する
・プリンタモジュール−クラウドからプリンタへのアクセスを可能にする
・パニックモジュール−別のデバイスからのパニック警報を表示する
・ウェブRSSフィードモジュール
・FTPサーバモジュール−クラウドから既存のFTPサーバへのアクセスを可能にする
・BLOG更新モジュール−クラウドからBLOGの更新を可能にする
・レガシーモジュール−クラウド全体にわたってレガシーアプリケーションへのアクセスを可能にする
・データベースモジュール−クラウド全体にわたってデータベースアクセスを可能にする
・ウェブカメラモジュール−クラウドでのストリーミングビデオにアクセスする
【0216】
本発明が関係する当業者であれば、本発明の構成及び広範な多岐に渡る実施形態並びにアプリケーションにおける多くの変更は、添付の請求項で定義される本発明の範囲から逸脱することなく当業者に想起されるであろう。本明細書の開示及び説明は、純粋に例証であり、どのような制限を意味するものではない。
【符号の説明】
【0217】
100 単一のクラウド
102 インターネット及び/又はイントラネット 有線又は無線
104 ルックアップポイント
106 ファイアウォール
108a 108b 108c 108d コンテンツ
110 フルアクセス及び操作
【特許請求の範囲】
【請求項1】
インターネット接続性を有する2つ又はそれ以上のリンクされたエンティティからなるセキュア仮想プライベートネットワーク(VPN100)を形成するための方法であって、各エンティティが前記VPN上の少なくとも1つの他のデバイスとのリンクを有し、
(a)前記VPNに接続可能であることが既知なエンティティの更新可能なインデックスを備えた既知のアドレスを有し、前記VPNへのリンクを望む既知のエンティティ(「結合エンティティ」)(236)からの要求を受け付けるルックアップデバイス(104、246)を提供する段階と、
(b)前記VPN上の少なくとも1つの事前に指定されたコンタクトエンティティ(238)が、受信した結合要求に関する前記ルックアップデバイス(104)を定期的にポーリングを生じさせる段階と、
(c)前記ルックアップデバイス(104)が、前記VPN(100)に接続するための結合エンティティからの要求を受信する段階と、
(d)結合要求に対するポーリングに応じて、前記ルックアップデバイス(104)が、前記ポーリング側コンタクトエンティティ(238)に各結合エンティティ(236)の少なくとも前記アドレスを通知する段階と、
(e)前記コンタクトエンティティ(238)が前記VPNへの接続を許可した場合、前記コンタクトエンティティは、少なくともそのアドレスを前記ルックアップデバイスに提供し、これを前記結合エンティティに渡す段階と、
(f)前記結合エンティティ(236)及びコンタクトエンティティ(238)が、双方の間に第1リンク(254)を設定する段階と、
(g)前記結合エンティティ及び前記コンタクトエンティティが、前記第1リンクを介して認証プロセスを行う段階と、
(h)前記認証プロセスが成功した場合、前記コンタクトエンティティが、前記VPNに属する少なくとも他のエンティティの状態を前記結合エンティティに通知し、前記結合デバイスが前記VPNに結合していることを前記VPN上の全てのエンティティに通知する段階と、
(i)前記結合デバイスが、前記VPNに属する他のエンティティの状態を使用して、接続する前記1つ又は2つの近傍のエンティティを含む前記VPNにおけるそのノード位置を算出する段階と、
(j)前記1つ又は2つの近傍のエンティティが、前記ルックアップエンティティと共に段階(c)から(f)において指示されたタイプのプロセスを開始して、前記結合エンティティと1つ又はそれ以上の第2リンクを設定し、前記第1リンクを終了させる段階と、
(k)前記結合エンティティ及び少なくとも1つの近傍のエンティティが、成功した場合に前記1つ又はそれ以上の第2リンクを維持する相互認証プロセスを行う段階と、
によって特徴付けられる方法。
【請求項2】
初期登録段階(an initial registration step)を含み、これによってエンティティ(270)が、1つ又はそれ以上の所要のVPNへのアクセスのために前記ルックアップデバイス(104、274)に登録し、該登録されたエンティティのみが、続いて前記ルックアップデバイスに認識され又は既知とされ、前記登録段階は、前記エンティティ(270)が、少なくともユーザ名、パスワードを含む登録情報を前記ルックアップデバイスに送る段階と、登録されたエンティティがVPN結合要求を前記ルックアップデバイスに送るときに前記ルックアップデバイス(104、274)が識別目的で前記登録情報を記憶する段階とを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記登録段階は、前記ルックアップデバイス(104、274)が登録エンティティにセキュリティ鍵(278)を送り、登録されており且つ他のエンティティが登録されているVPNに固有のセキュリティ鍵に前記エンティティがアクセスできるようにする、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記段階(h)において、前記コンタクトエンティティは更に、前記VPNに属する他のエンティティのエンティティ識別子を前記結合エンティティに通知する、
ことを特徴とする請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記段階(i)において、前記結合エンティティは更に、前記VPNに属する他のエンティティのエンティティ識別子を使用して前記他のエンティティのノード位置を計算する、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記エンティティ識別子がアドレスである、ことを特徴とする請求項4又は請求項5に記載の方法。
【請求項7】
前記認証プロセスは、前記他のエンティティの称するアイデンティティに固有の鍵(304)を使用して前記他のエンティティにチャレンジする前記2つのエンティティの各々からなり、各チャレンジは、前記他のエンティティへの送信(604)、前記他のエンティティからの応答(612)、及び前記応答が正しいことの前記チャレンジ側エンティティによる検証を含む、
ことを特徴とする請求項1から6のいずれか1項に記載の方法。
【請求項8】
第1エンティティと第2エンティティとの間の各チャレンジが、
(a)前記第1エンティティが、データのランダムシーケンス(AB’600)を作成し、これを記憶し、これを前記第2エンティティの公開鍵(304)で暗号化して、結果として得られる暗号文を前記第2エンティティに送る段階と、
(b)前記第2エンティティが、前記第1エンティティから前記暗号文を受け取り、前記第2エンティティの秘密鍵(306)を使用してこれを復号し、結果として得られる平文を前記第1エンティティの公開鍵(302)で暗号化して、これを前記第1エンティティに送る段階と、
(c)前記第1エンティティが、前記第2エンティティから前記暗号文を受け取り、前記第1エンティティの秘密鍵(300)を使用してこれを復号し、前記結果として得られる平文を前記記憶されたデータのランダムシーケンス(AB’600)と比較し、その結果一致する場合には前記第2エンティティが認証されたことを受け付ける段階と、
を含む、
ことを特徴とする請求項7に記載の方法。
【請求項9】
VPNに接続されたエンティティ間のデータトラフィックが対称鍵を使用して暗号化され、前記対称鍵は、前記データのランダムシーケンス(AB’600)である、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記認証プロセスが周期的に繰り返され、前記周期的に生成されたランダムデータシーケンスは、動的対称セッション鍵として使用される、
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記エンティティは、前記インターネットに接続することができるプロセッサを有するデバイスである、
ことを特徴とする請求項1から10のいずれか1項に記載の方法。
【請求項12】
前記デバイスは、コンピュータ、PDA、PPC、携帯電話又はスマートフォン、及び組込み型デバイスを含む、
ことを特徴とする請求項11に記載の方法。
【請求項1】
インターネット接続性を有する2つ又はそれ以上のリンクされたエンティティからなるセキュア仮想プライベートネットワーク(VPN100)を形成するための方法であって、各エンティティが前記VPN上の少なくとも1つの他のデバイスとのリンクを有し、
(a)前記VPNに接続可能であることが既知なエンティティの更新可能なインデックスを備えた既知のアドレスを有し、前記VPNへのリンクを望む既知のエンティティ(「結合エンティティ」)(236)からの要求を受け付けるルックアップデバイス(104、246)を提供する段階と、
(b)前記VPN上の少なくとも1つの事前に指定されたコンタクトエンティティ(238)が、受信した結合要求に関する前記ルックアップデバイス(104)を定期的にポーリングを生じさせる段階と、
(c)前記ルックアップデバイス(104)が、前記VPN(100)に接続するための結合エンティティからの要求を受信する段階と、
(d)結合要求に対するポーリングに応じて、前記ルックアップデバイス(104)が、前記ポーリング側コンタクトエンティティ(238)に各結合エンティティ(236)の少なくとも前記アドレスを通知する段階と、
(e)前記コンタクトエンティティ(238)が前記VPNへの接続を許可した場合、前記コンタクトエンティティは、少なくともそのアドレスを前記ルックアップデバイスに提供し、これを前記結合エンティティに渡す段階と、
(f)前記結合エンティティ(236)及びコンタクトエンティティ(238)が、双方の間に第1リンク(254)を設定する段階と、
(g)前記結合エンティティ及び前記コンタクトエンティティが、前記第1リンクを介して認証プロセスを行う段階と、
(h)前記認証プロセスが成功した場合、前記コンタクトエンティティが、前記VPNに属する少なくとも他のエンティティの状態を前記結合エンティティに通知し、前記結合デバイスが前記VPNに結合していることを前記VPN上の全てのエンティティに通知する段階と、
(i)前記結合デバイスが、前記VPNに属する他のエンティティの状態を使用して、接続する前記1つ又は2つの近傍のエンティティを含む前記VPNにおけるそのノード位置を算出する段階と、
(j)前記1つ又は2つの近傍のエンティティが、前記ルックアップエンティティと共に段階(c)から(f)において指示されたタイプのプロセスを開始して、前記結合エンティティと1つ又はそれ以上の第2リンクを設定し、前記第1リンクを終了させる段階と、
(k)前記結合エンティティ及び少なくとも1つの近傍のエンティティが、成功した場合に前記1つ又はそれ以上の第2リンクを維持する相互認証プロセスを行う段階と、
によって特徴付けられる方法。
【請求項2】
初期登録段階(an initial registration step)を含み、これによってエンティティ(270)が、1つ又はそれ以上の所要のVPNへのアクセスのために前記ルックアップデバイス(104、274)に登録し、該登録されたエンティティのみが、続いて前記ルックアップデバイスに認識され又は既知とされ、前記登録段階は、前記エンティティ(270)が、少なくともユーザ名、パスワードを含む登録情報を前記ルックアップデバイスに送る段階と、登録されたエンティティがVPN結合要求を前記ルックアップデバイスに送るときに前記ルックアップデバイス(104、274)が識別目的で前記登録情報を記憶する段階とを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記登録段階は、前記ルックアップデバイス(104、274)が登録エンティティにセキュリティ鍵(278)を送り、登録されており且つ他のエンティティが登録されているVPNに固有のセキュリティ鍵に前記エンティティがアクセスできるようにする、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記段階(h)において、前記コンタクトエンティティは更に、前記VPNに属する他のエンティティのエンティティ識別子を前記結合エンティティに通知する、
ことを特徴とする請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記段階(i)において、前記結合エンティティは更に、前記VPNに属する他のエンティティのエンティティ識別子を使用して前記他のエンティティのノード位置を計算する、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記エンティティ識別子がアドレスである、ことを特徴とする請求項4又は請求項5に記載の方法。
【請求項7】
前記認証プロセスは、前記他のエンティティの称するアイデンティティに固有の鍵(304)を使用して前記他のエンティティにチャレンジする前記2つのエンティティの各々からなり、各チャレンジは、前記他のエンティティへの送信(604)、前記他のエンティティからの応答(612)、及び前記応答が正しいことの前記チャレンジ側エンティティによる検証を含む、
ことを特徴とする請求項1から6のいずれか1項に記載の方法。
【請求項8】
第1エンティティと第2エンティティとの間の各チャレンジが、
(a)前記第1エンティティが、データのランダムシーケンス(AB’600)を作成し、これを記憶し、これを前記第2エンティティの公開鍵(304)で暗号化して、結果として得られる暗号文を前記第2エンティティに送る段階と、
(b)前記第2エンティティが、前記第1エンティティから前記暗号文を受け取り、前記第2エンティティの秘密鍵(306)を使用してこれを復号し、結果として得られる平文を前記第1エンティティの公開鍵(302)で暗号化して、これを前記第1エンティティに送る段階と、
(c)前記第1エンティティが、前記第2エンティティから前記暗号文を受け取り、前記第1エンティティの秘密鍵(300)を使用してこれを復号し、前記結果として得られる平文を前記記憶されたデータのランダムシーケンス(AB’600)と比較し、その結果一致する場合には前記第2エンティティが認証されたことを受け付ける段階と、
を含む、
ことを特徴とする請求項7に記載の方法。
【請求項9】
VPNに接続されたエンティティ間のデータトラフィックが対称鍵を使用して暗号化され、前記対称鍵は、前記データのランダムシーケンス(AB’600)である、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記認証プロセスが周期的に繰り返され、前記周期的に生成されたランダムデータシーケンスは、動的対称セッション鍵として使用される、
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記エンティティは、前記インターネットに接続することができるプロセッサを有するデバイスである、
ことを特徴とする請求項1から10のいずれか1項に記載の方法。
【請求項12】
前記デバイスは、コンピュータ、PDA、PPC、携帯電話又はスマートフォン、及び組込み型デバイスを含む、
ことを特徴とする請求項11に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15(a)】
【図15(b)】
【図15(c)】
【図15(d)】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図52】
【図53】
【図54】
【図55】
【図56】
【図56A】
【図56B】
【図56C】
【図57】
【図58】
【図59】
【図60】
【図61】
【図62】
【図63】
【図64】
【図65】
【図66】
【図67】
【図68】
【図69】
【図70】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15(a)】
【図15(b)】
【図15(c)】
【図15(d)】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図45】
【図46】
【図47】
【図48】
【図49】
【図50】
【図51】
【図52】
【図53】
【図54】
【図55】
【図56】
【図56A】
【図56B】
【図56C】
【図57】
【図58】
【図59】
【図60】
【図61】
【図62】
【図63】
【図64】
【図65】
【図66】
【図67】
【図68】
【図69】
【図70】
【公開番号】特開2013−48472(P2013−48472A)
【公開日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願番号】特願2012−236710(P2012−236710)
【出願日】平成24年10月26日(2012.10.26)
【分割の表示】特願2007−292575(P2007−292575)の分割
【原出願日】平成19年10月15日(2007.10.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.Macintosh
3.Palm OS
4.BlackBerry
5.Nokia
6.Symbian
【出願人】(507371858)クィパ ホールディングス リミテッド (2)
【Fターム(参考)】
【公開日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願日】平成24年10月26日(2012.10.26)
【分割の表示】特願2007−292575(P2007−292575)の分割
【原出願日】平成19年10月15日(2007.10.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.Macintosh
3.Palm OS
4.BlackBerry
5.Nokia
6.Symbian
【出願人】(507371858)クィパ ホールディングス リミテッド (2)
【Fターム(参考)】
[ Back to top ]