(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムの管理者機能又はメンテナンス機能を不正使用可能又は潜在的に不正使用可能でなくなるように、前記オペレーティングシステムにおける不正使用可能な又は潜在的に不正使用可能なアプリケーションを制限する方法であって、
当該方法は、実行された際に前記方法を行う一又は複数のコンピュータプログラム命令によってプログラムされた一又は複数の物理プロセッサを含むコンピュータシステムによって実施され、
当該方法は、
前記コンピュータシステムによって、少なくとも第一のオペレーティングシステムであって、第一のアプリケーションによって提供される、前記少なくとも第一のオペレーティングシステムに対する管理者機能又はメンテナンス機能が無効化される、前記少なくとも第一のオペレーティングシステムを特定する工程を含み、前記管理者機能又は前記メンテナンス機能は、前記第一のオペレーティングシステムを管理又はメンテナンスするためのシステム管理者権限を有するユーザによって用いられるが、前記第一のオペレーティングシステムに侵入するために他人によって不正使用可能又は潜在的に不正使用可能であり、
当該方法はさらに、
前記コンピュータシステムによって、前記第一のアプリケーションを特定する工程と、
前記コンピュータシステムによって、前記第一のオペレーティングシステムが実行される場合に、前記第一のアプリケーションにより提供される前記管理者機能又は前記メンテナンス機能が前記第一のオペレーティングシステムを介して利用可能とならないように前記第一のアプリケーションを無効化する工程と、
前記第一のアプリケーションにより提供される前記管理者機能又は前記メンテナンス機能が前記第一のオペレーティングシステムを管理又はメンテナンスするために利用可能でなく、前記第一のオペレーティングシステムに侵入するために不正使用可能又は潜在的に不正使用可能でないように、前記コンピュータシステムによって、前記第一のアプリケーションが無効化された場合に、前記第一のオペレーティングシステムを実行する工程と、
を含み、
前記第一のアプリケーションが無効化された後であって、前記第一のオペレーティングシステムの実行の前に、前記第一のオペレーティングシステムが、コンポーネントレポジトリとは別個のコンポーネント生成環境のコンポーネント生成サブシステムによって前記コンポーネントレポジトリに配置され、
前記コンポーネント生成サブシステムは前記コンポーネントレポジトリへの読出アクセスを有さず、
前記コンポーネント生成サブシステムおよび前記コンポーネントレポジトリは、前記第一のオペレーティングシステムが実行されているランタイム環境から侵入されないように、該ランタイム環境からはアクセス可能ではなく、
前記第一のオペレーティングシステムは前記ランタイム環境で実行するために、コンポーネントマネージャサブシステムによって前記コンポーネントレポジトリから取得され、
前記コンポーネントマネージャサブシステムは前記コンポーネントレポジトリへの書込アクセスを有しないことを特徴とする方法。
【請求項２】
前記第一のアプリケーションを無効化する工程は、前記第一のオペレーティングシステムから前記第一のアプリケーションを削除することを含むことを特徴とする請求項１記載の方法。
【請求項３】
前記第一のアプリケーションを無効化する工程は、前記第一のオペレーティングシステムから前記第一のアプリケーションを削除せずに、前記第一のアプリケーションによって提供される前記管理者機能又は前記メンテナンス機能をオフにすることを含むことを特徴とする請求項１記載の方法。
【請求項４】
前記第一のアプリケーションを無効化する工程は、前記第一のオペレーティングシステムの起動中に、無効化の命令が、前記第一のアプリケーションによって提供される前記管理者機能又は前記メンテナンス機能の利用可能性を、前記第一のオペレーティングシステムから削除するように、前記第一のオペレーティングシステムを前記無効化の命令に関連付けることを含むことを特徴とする請求項１記載の方法。
【請求項５】
前記無効化の命令を前記第一のオペレーティングシステムに関連付ける工程は、前記無効化の命令を前記第一のオペレーティングシステムに挿入する工程を含むことを特徴とする請求項４記載の方法。
【請求項６】
前記第一のオペレーティングシステムは、不正使用可能又は潜在的に不正使用可能な第二のアプリケーションをさらに含み、
前記第一のアプリケーションは、前記第一のアプリケーションが前記第一のオペレーティングシステムが機能するのに必要ではないとの判定に基づいて無効化され、
前記第二のアプリケーションは、前記第二のアプリケーションが前記第一のオペレーティングシステムが機能するのに必要であるとの判定に基づいて無効化されないことを特徴とする請求項１記載の方法。
【請求項７】
前記第一のオペレーティングシステムは、不正使用可能又は潜在的に不正使用可能な第二のアプリケーションをさらに含み、前記方法は、
前記コンピュータシステムによって、前記第二のアプリケーションが不正使用可能又は潜在的に不正使用可能となることを引き起こす前記第二のアプリケーションと関連付けられたコードセットを特定する工程と、
前記コンピュータシステムによって、前記第二のアプリケーションが前記コードセットを含まないよう、前記第二のアプリケーションから前記コードセットを削除する工程と、
をさらに含み、
前記第一のオペレーティングシステムが実行される場合に、前記第一のオペレーティングシステムは、前記コードセットを含まずに前記第二のアプリケーションを含むことを特徴とする請求項１記載の方法。
【請求項８】
前記方法は、
コンポーネントオーサリングサブシステムによって、前記コンポーネント生成環境において、前記第一のオペレーティングシステムを生成する工程と、
前記コンポーネントオーサリングサブシステムによって、第一のプロファイル情報を、前記第一のオペレーティングシステムと関連付ける工程とをさらに含み、
前記第一のプロファイル情報は、前記第一のオペレーティングシステムの所定のアプリケーションが無効化されるべきかどうかを判定するために用いられ、
前記第一のアプリケーションを特定する工程は、コンポーネントシーリングサブシステムによって、前記第一のプロファイル情報に基づいて前記第一のアプリケーションを特定することを含むことを特徴とする請求項１記載の方法。
【請求項９】
前記方法は、
前記第一のオペレーティングシステムが、前記第一のアプリケーション及び第二のアプリケーションを含むように、コンポーネントオーサリングサブシステムによって、前記コンポーネント生成環境において前記第一のオペレーティングシステムを生成する工程と、
前記コンポーネントオーサリングサブシステムによって、第一のプロファイル情報を、前記第一のオペレーティングシステムと関連付ける工程と、
をさらに含み、
前記第一のプロファイル情報は、前記第一のオペレーティングシステムの所定のアプリケーションが無効化されるべきかどうかを判定するために用いられ、
前記第二のアプリケーションは、前記第一のプロファイル情報に基づいて無効化されないことを特徴とする請求項１記載の方法。
【請求項１０】
前記方法は、
コンポーネントエクスポートサブシステムによって、前記第一のアプリケーションが無効化された後であって前記第一のオペレーティングシステムがコンポーネントレポジトリに配置される前に、前記第一のオペレーティングシステムに対する完全性の情報を生成する工程をさらに含み、
前記完全性の情報は、前記完全性の情報が前記第一のオペレーティングシステムに対して生成された後に、前記第一のオペレーティングシステムが修正されたかどうかを判定するために用いられることを特徴とする請求項１記載の方法。
【請求項１１】
オペレーティングシステムの管理者機能又はメンテナンス機能が不正使用可能又は潜在的に不正使用可能でなくなるように、前記オペレーティングシステムにおける不正使用可能な又は潜在的に不正使用可能なアプリケーションを制限するシステムであって、
前記システムは、一又は複数のコンピュータプログラムの命令によってプログラムされた一又は複数の物理プロセッサを含み、
前記一又は複数の物理プロセッサは、
第一のアプリケーションによって提供される管理者機能又はメンテナンス機能が無効化される少なくとも第一のオペレーティングシステムを特定し、前記管理者機能又は前記メンテナンス機能は前記第一のオペレーティングシステムを管理又はメンテナンスするためのシステム管理者権限を有するユーザによって用いられるが、他人によって前記第一のオペレーティングシステムに侵入するために不正使用可能又は潜在的に不正使用可能であり、
前記第一のアプリケーションを特定し、
前記第一のオペレーティングシステムが実行される場合に、前記第一のアプリケーションにより提供される前記管理者機能および前記メンテナンス機能が、前記第一のオペレーティングシステムを介して利用可能とならないように、前記第一のアプリケーションを無効化し、
前記第一のアプリケーションにより提供される前記管理者機能又はメンテナンス機能が前記第一のオペレーティングシステムを管理又はメンテナンスするために利用可能ではなく、前記第一のオペレーティングシステムに侵入するために不正使用可能又は潜在的に不正使用可能ではないように、前記第一のアプリケーションが無効化された場合に前記第一のオペレーティングシステムを実行する、
ようプログラムされ、
前記第一のアプリケーションが無効化された後であって、前記第一のオペレーティングシステムの実行の前に、前記第一のオペレーティングシステムが、コンポーネントレポジトリとは別個のコンポーネント生成環境のコンポーネント生成サブシステムによって前記コンポーネントレポジトリに配置され、
前記コンポーネント生成サブシステムは前記コンポーネントレポジトリへの読出アクセスを有さず、
前記コンポーネント生成サブシステムおよび前記コンポーネントレポジトリは、前記第一のオペレーティングシステムが実行されているランタイム環境から侵入されないように、該ランタイム環境からはアクセス可能ではなく、
前記第一のオペレーティングシステムは前記ランタイム環境で実行するために、コンポーネントマネージャサブシステムによって前記コンポーネントレポジトリから取得され、
前記コンポーネントマネージャサブシステムは前記コンポーネントレポジトリへの書込アクセスを有しないことを特徴とするシステム。
【請求項１２】
前記一又は複数の物理プロセッサは、前記第一のオペレーティングシステムから前記第一のアプリケーションを削除するようさらにプログラムされ、前記第一のアプリケーションは前記第一のアプリケーションの前記削除に基づき無効化されることを特徴とする請求項１１記載のシステム。
【請求項１３】
前記一又は複数の物理プロセッサは、前記第一のオペレーティングシステムから前記第一のアプリケーションを削除せずに、前記第一のアプリケーションによって提供される前記管理者機能又は前記メンテナンス機能をオフにするようプログラムされ、前記第一のアプリケーションは、前記第一のアプリケーションによって提供される前記管理者機能又は前記メンテナンス機能をオフにすることに基づき、無効化されることを特徴とする請求項１１記載のシステム。
【請求項１４】
前記一又は複数の物理プロセッサは、前記第一のオペレーティングシステムの起動中に、無効化の命令が、前記第一のアプリケーションによって提供される前記管理者機能又は前記メンテナンス機能の利用可能性を、前記第一のオペレーティングシステムから削除するように、前記第一のオペレーティングシステムを、前記無効化の命令に関連付け、前記第一のアプリケーションは、前記第一のオペレーティングシステムと前記命令の無効化との前記関連付けに基づいて無効化されることを含むことを特徴とする請求項１１記載のシステム。
【請求項１５】
前記一又は複数の物理プロセッサはさらに、前記第一のオペレーティングシステムに前記無効化の命令を挿入するようプログラムされ、前記第一のオペレーティングシステムは、前記無効化の命令の前記挿入に基づいて前記無効化の命令に関連付けられることを特徴とする請求項１４記載のシステム。
【請求項１６】
前記第一のオペレーティングシステムは、不正使用可能又は潜在的に不正使用可能な第二のアプリケーションをさらに含み、
前記第一のアプリケーションは、前記第一のアプリケーションが前記第一のオペレーティングシステムが機能するのに必要ではないとの判定に基づいて無効化され、
前記第二のアプリケーションは、前記第二のアプリケーションが前記第一のオペレーティングシステムが機能するのに必要であるとの判定に基づいて無効化されないことを特徴とする請求項１１記載のシステム。
【請求項１７】
前記第一のオペレーティングシステムは、不正使用可能又は潜在的に不正使用可能な第二のアプリケーションをさらに含み、前記一又は複数の物理プロセッサは、
前記第二のアプリケーションが、不正使用可能又は潜在的に不正使用可能となることを引き起こす前記第二のアプリケーションと関連付けられたコードセットを特定し、
前記第二のアプリケーションが、前記コードセットを含まないよう、前記第二のアプリケーションから前記コードセットを削除する、
ようプログラムされ、
前記第一のオペレーティングシステムが実行される場合に、前記第一のオペレーティングシステムは、前記コードセットを含まずに前記第二のアプリケーションを含むことを特徴とする請求項１１記載のシステム。
【請求項１８】
前記一又は複数の物理プロセッサが、
コンポーネント生成環境において前記第一のオペレーティングシステムを生成し、第一のプロファイル情報を前記第一のオペレーティングシステムと関連付けるようプログラムされ、
前記第一のプロファイル情報は、前記第一のオペレーティングシステムの所定のアプリケーションが無効化されるべきかどうかを判定するために用いられ、
前記第一のアプリケーションを特定することは、前記第一のプロファイル情報に基づいて、前記第一のアプリケーションを特定することを含むことを特徴とする請求項１１記載のシステム。
【請求項１９】
前記一又は複数の物理プロセッサが、
前記第一のオペレーティングシステムが前記第一のアプリケーション及び第二のアプリケーションを含むようにコンポーネント生成環境において前記第一のオペレーティングシステムを生成し、
第一のプロファイル情報を前記第一のオペレーティングシステムと関連付ける、
ようプログラムされ、
前記第一のプロファイル情報は、前記第一のオペレーティングシステムの所定のアプリケーションが無効化されるべきかどうかを判定するために用いられ、
前記第二のアプリケーションは前記第一のプロファイル情報に基づいて無効化されないことを特徴とする請求項１１記載のシステム。
【請求項２０】
前記一又は複数の物理プロセッサが、
前記第一のアプリケーションが無効化された後であって前記第一のオペレーティングシステムがコンポーネントレポジトリに配置される前に、前記第一のオペレーティングシステムに対する完全性の情報を生成するようプログラムされ、
前記完全性の情報は、前記完全性の情報が前記第一のオペレーティングシステムに対して生成された後に、前記第一のオペレーティングシステムが修正されたかどうかを判定するために用いられることを特徴とする請求項１１記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、（１）２０１２年８月１８日に出願された米国特許仮出願第６１／６８４，７４３号、（２）２０１２年８月１８日に出願された米国特許仮出願第６１／６８４，７４４号、（３）２０１２年８月１８日に出願された米国特許仮出願第６１／６８４，７４５号、及び（４）２０１２年８月１８日に出願された米国特許仮出願第６１／６８４，７４６号に基づく優先権を主張し、これらのすべての内容は、全体として参照により本明細書に組み込まれる。
【０００２】
加えて、本出願は、同日に出願され、同じく係属中の米国特許出願である、（１）米国特許出願番号第１３／９６９，１５８号（発明の名称「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＬＩＭＩＴＩＮＧ  ＥＸＰＬＯＩＴＡＢＬＥ  ＯＲ  ＰＯＴＥＮＴＩＡＬＬＹ  ＥＸＰＬＯＩＴＡＢＬＥ  ＳＵＢ―ＣＯＭＰＯＮＥＮＴＳ  ＩＮ  ＳＯＦＴＷＡＲＥ  ＣＯＭＰＯＮＥＮＴＳ」、アトーニードケット番号：０２６４０９―０４２４０９２）、（２）米国特許出願番号第１３／９６９，１８１号（発明の名称「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＲＥＰＬＡＣＩＮＧ  ＳＯＦＴＷＡＲＥ  ＣＯＭＰＯＮＥＮＴＳ  ＷＩＴＨ  ＣＯＲＲＥＳＰＯＮＤＩＮＧ  ＫＮＯＷＮ―ＧＯＯＤ  ＳＯＦＴＷＡＲＥ  ＣＯＭＰＯＮＥＮＴＳ  ＷＩＴＨＯＵＴ  ＲＥＧＡＲＤ  ＴＯ  ＷＨＥＴＨＥＲ  ＴＨＥ  ＳＯＦＴＷＡＲＥ  ＣＯＭＰＯＮＥＮＴＳ  ＨＡＶＥ  ＢＥＥＮ  ＣＯＭＰＲＯＭＩＳＥＤ  ＯＲ  ＰＯＴＥＮＴＩＡＬＬＹ  ＣＯＭＰＲＯＭＩＳＥＤ」、アトーニードケット番号：０２６４０９―０４２４０９４）、及び（３）米国特許出願番号第１３／９６９，２１６号（発明の名称「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＩＮＴＥＲＬＥＡＶＩＮＧ  ＩＮＦＯＲＭＡＴＩＯＮ  ＩＮＴＯ  ＳＬＩＣＥＳ  ＯＦ  Ａ  ＤＡＴＡ  ＰＡＣＫＥＴ，  ＤＩＦＦＥＲＥＮＴＩＡＬＬＹ  ＥＮＣＲＹＰＴＩＮＧ  ＴＨＥＳＬＩＣＥＳ,  ＡＮＤ  ＯＢＦＵＳＣＡＴＩＮＧ  ＩＮＦＯＲＭＡＴＩＯＮ  ＩＮ  ＴＨＥ  ＤＡＴＡ  ＰＡＣＫＥＴ」、アトーニードケット番号：０２６４０９―０４２４０９５）と関連しており、それぞれ、追加的に全体として参照により本明細書に組み込まれる。
【０００３】
本発明は、不正使用及び／又は潜在的に不正使用可能なソフトウェアコンポーネントのサブコンポーネントコンポーネントを制限することで、ソフトウェアコンポーネントが侵入された又は潜在的に侵入され得たのかとは無関係に、ソフトウェアコンポーネントを対応する既知の良好な（ｋｎｏｗｎ−ｇｏｏｄ）ソフトウェアコンポーネントと置換することで、送信される異なるデータをデータパケットの異なるデータスライスに組合わせて異なる暗号化スキームを用いて該スライスを暗号化することで、暗号化された異なる情報に関連付けられたデータスライスを有するデータパケットを処理することで、データパケット内で他のデータパケットとは異なる位置で始まるヘッダを有するデータパケットを用いて情報をセキュア化する（Ｓｅｃｕｒｅ）ことで、データパケット内で他のデータパケットとは異なる位置から始まるヘッダを有するデータパケットを処理することで、又は他の手法を用いることで、情報及び／又はコンポーネントの完全性（Ｉｎｔｅｇｒｉｔｙ）をセキュア化する及び維持することに関する。
【背景技術】
【０００４】
全世界で技術がより進展し、コンピュータシステムに依存するにつれ、サイバー攻撃が洗練されていき、そして集中するようになってきている。これらの攻撃には、財産情報を盗み、マルウェアを拡散させ、サービスを混乱させ、又は他の問題を生じさせるような不正使用が含まれる。ファイアーウォール、アンチマルウェア検出システム等といった従来の防御ソリューションは、これらの脅威を特定し、軽減することに焦点を置いていた。しかしながら、この従来の防御ソリューションは、不正使用又は存在する他の脅威を可能とする多くの潜在的な問題を無視している。例えば、コンポーネントは、一般的に、長期間ランタイム環境に曝され、動作に必ずしも必要ではない管理者アクセス及び管理者特権を提供している。加えて、ネットワークは、典型的には、ランタイム環境のコンポーネントを維持するために必要な接続を介して曝されている。さらに、多くの例において、侵入されたコンポーネントを検知することは難しく、仮に最終的に見つけた場合／時でも、すでに甚大なダメージ又は負の影響を被っている。
【発明の概要】
【０００５】
これらの及び他の欠点に対処するため、本開示の本発明は、コンポーネント、及び／又は情報の完全性（インテグリティ、ｉｎｔｅｇｒｉｔｙ）をセキュアにする、及び維持することに関する。例えば、本システムは、不正使用及び／又は潜在的に不正使用可能なソフトウェアコンポーネントのサブコンポーネントコンポーネントを制限することで、ソフトウェアコンポーネントが、侵入された又は潜在的に侵入さ得たのかとは無関係に、ソフトウェアコンポーネントを対応する既知の良好な（ｋｎｏｗｎ−ｇｏｏｄ）と置換することで、送信される異なるデータをデータパケットの異なるデータスライス組合わせて異なる暗号化スキームを用いて該スライスを暗号化することで、暗号化された異なる情報に関連付けられたデータスライスを有するデータパケットを処理することで、データパケット内で他のデータパケットとは異なる位置で始まるヘッダを有するデータパケットを用いて情報をセキュア化する（Ｓｅｃｕｒｅ）ことで、及び／又はデータパケット内で他のデータパケットとは異なる位置から始まるヘッダを有するデータパケットを処理することで、情報及び／又はコンポーネントの完全性（Ｉｎｔｅｇｒｉｔｙ）をセキュア化する及び維持することを促進してもよい。
【０００６】
上述したように、ソフトウェアコンポーネントは、典型的には、動作に必ずしも必要がない管理者アクセス、又は管理者特権を提供する。このような、アクセス又は特権は、例えば、マルウェア又は管理者アクセス／管理者特権、又は他のソフトウェアコンポーネントを提供するソフトウェアコンポーネントに侵入する他の脅威によって不正使用されうる。従来の防御ソリューションは、一般的には、侵入されたソフトウェアコンポーネントを見つけ、侵入されたソフトウェアコンポーネントに関連する負の影響を和らげることに焦点を置いているが、本システムは、ネットワーク、又は他のアクセス可能な環境にさらされうるコンポーネントのセキュリティ及び完全性を促進し、及び／又はシステムコンポーネントへ又は当該システムコンポーネントからネットワークを介して送信される情報のセキュリティを促進する追加的な、又は代替的な防御手段を提供する。この追加的な、又は代替的な防御手段は、個別に、又は他の防御手段と組み合わせて用いられてもよい。
【０００７】
一例として、本システムは、ソフトウェアコンポーネントが生成された後にソフトウェアコンポーネントが侵入されうる環境に置かれる前に、ソフトウェアコンポーネントの不正使用される又は潜在的に不正使用されうるサブコンポーネントを削除し又はそれ以外の方法で無効化することで、侵入されたソフトウェアコンポーネント及び関連する負の影響を除去又はそれ以外方法で減少させる。
【０００８】
他の一例として、本システムは、置換のために必須な検知を行わずに、ランタイム環境で利用可能なソフトウェアコンポーネントを、対応する既知の良好な（ｋｎｏｗｎ−ｇｏｏｄ）ソフトウェアコンポーネントに置き換えることが可能である。例えば、この置換は、ランタイム環境で利用可能なソフトウェアコンポーネントが侵入されたか又は潜在的に潜入されうるかどうかとは無関係に、定期的に及び／又はオンデマンドで行われる。すなわち、本システムは、所定のソフトウェアコンポーネントを、必ずしも前記所定のソフトウェアコンポーネントが侵入された又は潜在的に侵入されたかどうかを決定せずに、置換しうる。その結果、一部の例では、本システムは、侵入されたソフトウェアコンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換してもよい。
【０００９】
ソフトウェアコンポーネントがランタイム環境で実行された場合、当該ソフトウェアコンポーネントが当該ランタイム環境で実行されている間、侵入された又は潜在的に侵入された全てのソフトウェアコンポーネントを特定することは、不可能でないとしても困難なタスクである。このように、他の利点とともに、ランタイム環境中で頻繁に及び／又は定期的に実行される又は利用可能であるソフトウェアコンポーネントを置換することにより、ソフトウェアコンポーネントが侵入されたか又は潜在的に侵入されうるかどうかとは無関係に、ソフトウェアコンポーネントがランタイム環境で実行している間に、ソフトウェアコンポーネントを侵入されたものとして又は潜在的に侵入されるものとして特定する必要性を除去し又は減少させることができる。
【００１０】
他の一例として、本システムは、ネットワークを介して送信されたインターリーブされ難読化している（ｏｂｆｕｓｃａｔｉｎｇ）情報を提供してもよい。一例として、各データパケットが異なるコンポーネントと関連付けられた情報の一部を含むようにデータパケットを生成することができる。情報のそれぞれの部分は、データパケット内において、当該データパケット内の各データスライスが他のデータスライスによって表現された情報の一部に関連付けられた他のコンポーネントとは異なるコンポーネントに関連付けられた情報の少なくとも一部を表すように、暗号化されたデータスライスとしてで表されてもよい。追加的に又は代替的に、データパケット中のそれぞれのデータスライスは、前記データパケット中の他の一つのデータスライスを暗号化するのに用いられる他の一つの暗号化スキームとは異なる暗号化スキームによって暗号化されてもよい。例えば、異なる暗号化スキームとは、異なる暗号の種類及び／又は異なる暗号鍵の使用が含まれてもよい。
【００１１】
他の一例として、データパケット内のヘッダの部分がデータパケット間で変化し続けるようデータパケットが生成されてもよい。一つの使用態様において、後続のデータパケットは、先行するデータパケットにおける位置とは異なる位置にヘッダを有してもよい。例えば、後続のデータパケットのヘッダの位置は、先行するデータパケットによって規定されてもよい。このように、異なる情報の一部と組合わされ、異なる暗号化スキームを用いてデータスライスを暗号化し、及び／又は他のデータパケットと比較して、データパケット内の異なる位置から始まるヘッダを有するデータパケットを用いることで、情報がセキュア化される。
【００１２】
本発明の様々なその他の側面、特徴及び利点が、以下の本発明の詳細な説明及び添付の図面を参照することにより明らかとなる。また、上記の概要及び以下の詳細な説明は共に例示にすぎず、本発明の範囲を限定するものではない。本明細書及び特許請求の範囲における用法によれば、単数形の「ａ」、「ａｎ」及び「ｔｈｅ」には複数のものへの言及が含まれる。ただし、文脈によって別に解すべきことが明白な場合はこの限りでない。加えて、本明細書及び特許請求の範囲における、「又は」は、「及び／又は」と解される。文脈によって別に解すべきことが明白な場合はこの限りではない。
【図面の簡単な説明】
【００１３】
本発明は、以下の図において、例として非限定的な方法で示されている。各図において、類似の参照番号は、類似の要素を示している。
【００１４】
【図１】本発明の一実施形態における、コンポーネント及び情報のセキュリティ及び完全性を促進するシステムを例示する図
【００１５】
【図２】本発明の一実施形態における、サブシステム、レポジトリ、又はそれ以外コンポーネントが存在しうる環境、及び、前記環境に関連する工程のフローチャートを例示する図
【００１６】
【図３】本発明の一実施形態におけるコンポーネント生成サブシステムを例示する図
【００１７】
【図４】本発明の一実施形態に従って、送信側コンピュータ及び受信側コンピュータを例示する図
【００１８】
図４Ａは、送信側コンピュータを例示し、図４Ｂは、受信側コンピュータを例示している。
【００１９】
【図５】本発明の一実施形態に従って二つのコンピュータシステム間での情報伝達を例示する図
【００２０】
【図６】本発明の一実施形態に従ってデータパケットヘッダを例示する図
【００２１】
【図７】本発明の一実施形態に従って、ランタイム環境で実行しているソフトウェアコンポーネントを対応する既知の良好なソフトウェアと置換する方法のフローチャートを例示する図
【００２２】
【図８】本発明の一実施形態に従って、ソフトウェアコンポーネントにおいて不正使用可能又は潜在的に不正使用可能なサブコンポーネントを制限する方法のフローチャートを例示する図
【００２３】
【図９】本発明の一実施形態に従って、データパケットの異なるスライスに送信される異なる情報を組合わせ、情報のセキュアな送信のために異なる暗号化スキームを用いて前記スライスを暗号化する方法のフローチャートを例示する図
【００２４】
【図１０】本発明の一実施形態に従って、データパケットの異なるスライスに伝達される異なる情報を組合わせ、異なる暗号化スキームを用いて暗号化された異なる情報に関連したデータスライスを有するデータパケットを処理する方法のフローチャートを例示する図
【００２５】
【図１１】本発明の一実施形態に従って、コンポーネントのサブコンポーネントを制限し、コンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換し、また、ネットワークを介してコンポーネントに又は当該コンポーネントから送信された情報をセキュア化又は隠蔽（Ｏｂｓｃｕｒｅ）することにより、コンポーネント及び情報のセキュリティと完全性を促進する方法のフローチャートを例示する図
【００２６】
【図１２】本発明の一実施形態に従って、コンポーネントのサブコンポーネントを制限し、また、コンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換することにより、コンポーネントと情報のセキュリティ及び完全性を促進する方法のフローチャートを例示する図
【００２７】
【図１３】本発明の一実施形態に従って、コンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換し、また、ネットワークを介してコンポーネントに又は当該コンポーネントから送信された情報をセキュア化又は隠蔽することにより、コンポーネント及び情報のセキュリティと完全性を促進する方法のフローチャートを例示する図
【００２８】
【図１４】本発明の一実施形態に従って、コンポーネントのサブコンポーネントを制限し、また、ネットワークを介してコンポーネントに又は当該コンポーネントから送信された情報をセキュア化又は隠蔽することにより、コンポーネント及び情報のセキュリティと完全性を促進する方法のフローチャートを例示する図
【発明を実施するための形態】
【００２９】
以下の記載において、本発明の実施形態の完全な理解を提供するため、説明の目的で、多くの具体的で詳細な事項が記載される。しかしながら、この具体的な詳細がなくとも本発明を実施することができ、また、等価な構成を用いても本発明を実施できることは、当業者にとって明らかである。他の例として、周知の構造及び装置が、本発明の実施例を不必要に曖昧なものとさせない目的で、ブロック図の形式で示される。
【００３０】
図１は、本発明の一実施形態におけるコンポーネント及び情報のセキュリティ及び完全性を促進するシステム１００を例示する。システム１００は、ネットワーク又は他のアクセス可能な環境に露出するコンポーネントのセキュリティ及び完全性を促進し、及び／又は、システムコンポーネントへ又は当該システムコンポーネントからネットワークを介して送信される情報のセキュリティを促進する様々な防御手段を提供する一又は複数のコンピュータ及びサブシステムを含む。この様々な防御手段は、単独で用いられてもよく、他の防御手段と組み合わせて用いられてもよい。例えば、この防御手段は、所定のインターフェイス、又はソフトウェアコンポーネントの他のサブコンポーネントを無効化し、ソフトウェアコンポーネントが侵入されたか否かと無関係に、ソフトウェアコンポーネントを、対応する既知の良好なソフトウェアコンポーネントと置換し、ネットワークを介して伝達される情報を、インターリーブし難読化させる、及び／又は他の手段が含まれうる。
【００３１】
一部の実施形態において、システム１００は、インターフェイス、又は侵入する脅威に曝される所定のコンポーネントの他のサブコンポーネントを無効化する。例えば、システム１００は、インスタンスとして作成される場合に、ランタイム環境で動作し、ネットワークを介してアクセス可能なコンポーネントを生成するコンポーネント生成サブシステム１１８を含む。所定のコンポーネントには、例えば、この所定のコンポーネントに対してメンテナンス、又は管理者操作を行うシステム管理者によって従来から用いられるが、この所定のコンポーネントに侵入しようとする攻撃者及びその他によってしばしば不正使用されるコンポーネントインターフェイスといったサブコンポーネントが含まれる。一部の実施形態において、コンポーネント生成サブシステム１１８は、サブコンポーネントがアクセスが不可能となり、従って攻撃者又はその他によって不正使用ができないように、サブコンポーネントを無効化するようプログラムされている。このように、コンポーネント生成サブシステム１１８によって生成されたコンポーネントは、インスタンス化された場合に無効化され、従って攻撃の脅威にさらされない所定のサブコンポーネントを含んでもよい。不正使用可能又は潜在的に不正使用可能なサブコンポーネントの無効化は、例えば、設定（例えば、もう一つのコンポーネント又は、他の設定とのユニークな関係を構築する事前設定）が、ソフトウェアコンポーネントが送信し、受信し、又は保存する情報及びソフトウェアコンポーネントのセキュリティ又は完全性に対し負の影響を与えうる方法で修正されることを防ぐ。
【００３２】
コンポーネント生成サブシステム１１８は、メンテナンス又は管理者機能を提供するような命令、プログラムコード、又はコンポーネントから削除し、及び、サブコンポーネントがアクセスできない、及び／又はサブコンポーネントをアクセス不可能とするよう（システム、管理者、又はその他によってアクセス不可能とすることを含む）、コンポーネントを設定することによってサブコンポーネントを無効化するようプログラムされてもよい。このように、不正使用可能な所定のサブコンポーネントを削除することでシステムのセキュリティを高めるために、システムは、コンポーネントレベルでコンポーネントを保護してもよい。
【００３３】
一部の実施形態において、そのサブコンポーネントの一又は複数が無効化されているかどうかに関わらず、コンポーネント生成サブシステム１１８は、生成されたコンポーネントを、コンポーネントレポジトリ１１４に保存してもよい。これらの実施形態において、システム１００は、コンポーネントレポジトリ１１４から所定のコンポーネントを得て、この所定のコンポーネントをランタイム環境でアクセス可能とするようプログラムされたコンピュータマネージャサブシステム１１２を含んでもよい。
【００３４】
一部の実施形態において、システム１００は、ランタイム環境で動作するコンポーネントを、対応する既知の良好なコンポーネントと置換してもよい。例えば、コンポーネントマネージャサブシステム１１２は、コンポーネントが侵入されたかどうかと無関係に、ランタイム環境で動作するコンポーネントを、対応する既知の良好なコンポーネントと置換するようプログラムされてもよい。対応する既知の良好なコンポーネントは、コンポーネント生成サブシステム１１８によって生成されてもよい。一部の実施形態において、対応する既知の良好なコンポーネントの一又は複数のサブコンポーネントは、本明細書に記載の通り無効化されていてもよい。これらの実施形態において、システムは、制限されたコンポーネントのインターフェイスと、対応する既知の良好なコンポーネントに置換されたコンポーネントとを組合わせる保護手段を提供してもよい。他の実施形態において、対応する既知の良好なコンポーネントの一又は複数のサブコンポーネントのいずれも無効化されなくてもよい。
【００３５】
一部の実施形態において、システム１００は、置換されたコンポーネントの分析を実行してもよい。これらの実施形態において、システム１００は置換後の分析（ｐｏｓｔ  ｒｅｐｌａｃｅｍｅｎｔ  ａｎａｌｙｓｉｓ）を実行するようプログラムされたコンポーネント分析サブシステム１１６を含んでもよい。このシステムは、このような置換後の分析を、どの程度及び／又はどのように置換されたコンポーネントが侵入されたかを決定するのに用いてもよい。分析は、置換後に行われるので、分析結果は、分析対象のコンポーネントが置換されるべきかどうかを決定することには用いられない。
【００３６】
一部の実施形態において、システム１００は、ネットワークを介してシステムコンポーネントに及び／又はシステムコンポーネントから、情報をセキュアに送信してもよい。このような情報として、例えば、ネットワークを介して送信されうる文書、メッセージ、テクスト、画像、データ、及び／又は他の種類の情報が含まれてもよい。例えば、一又は複数の送信側コンポーネント１０８（図１で、送信側コンポーネント１０８ａ、１０８ｂ、１０８ｃとして図示される）が、対応する受信側コンポーネント（図１で、受信側コンポーネント１１０ａ、１１０ｂ、１１０ｃとして図示される）に対して、関連する情報を個別に送信することを所望してもよい。所定の送信側コンポーネント１０８、又は所定の受信側コンポーネント１１０は、それぞれネットワークを介して提供される情報を生成、又は受信できるアプリケーション、計算デバイス、及び／又は他のコンポーネントを含んでもよい。
【００３７】
一部の実施形態において、システム１００は、データパケットの異なるスライスに、伝達される異なる情報を組合わせ、情報のセキュアな伝達のために異なる暗号化スキームを用いてスライスを暗号化するようプログラムされた送信側コンピュータ１０４を含んでもよい。一例として、送信側コンピュータ１０４は、送信側コンポーネント１０８ａと関連付けられた情報の一部、送信側コンポーネント１０８ｂと関連付けられた情報の一部、及び送信側コンポーネント１０８ｃと関連付けられた情報の一部をそれぞれのデータパケットが含むようなデータパケットを生成してもよい。情報と関連付けられたその他の数の送信側コンポーネント１０８が用いられてもよい。データパケット中のそれぞれのデータスライスが、データスライスが表現されたもう一つの部分の情報と関連付けられたもう一つの送信側コンポーネント１０８とは異なる送信側コンポーネント１０８に関連付けられた部分の情報を表現するように、及びデータパケット中のそれぞれのデータスライスが、データパケット中のもう一つのデータスライスを暗号化するのに用いられたもう一つの暗号化スキームと異なる暗号化スキームで暗号化されうるように、それぞれの部分の情報は、暗号化されたデータスライスとして、表現されてもよい。例えば、異なる暗号化スキームとは、異なる暗号タの種類、及び／又は異なる暗号鍵の使用が含まれうる。暗号化の種類の例として、ワンタイムパッド（ｏｎｅ  ｔｉｍｅ  ｐａｄ、ＯＴＰ）、データ暗号化標準（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、ＤＥＳ）、高度暗号化標準（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、ＡＥＳ）、及び／又は他の種類の暗号化が含まれる。本明細書で用いられる通り、データパケットは、通信のユニットを指しうる。例えば、データパケットは、データグラム、セグメント、ブロック、セル、フレーム、又はネットワークを介して伝達される通信の他のユニットを指してもよい。
【００３８】
一部の実施形態において、受信側コンピュータ１０６は、異なる暗号化スキームを用いて暗号化された異なる情報に関連付けられたデータスライスを備えるデータパケットを処理するようプログラムされてもよい。一例として、それぞれのデータパケットが、異なる情報と関連付けられた及び異なる暗号化スキームを用いて暗号化された異なるデータスライスを含むように、送信側コンピュータ１０４及び受信側コンピュータ１０６は、データパケットを介してお互いに通信するよう事前にプログラムされてもよい。一部の実施形態において、送信側コンピュータ１０４及び受信側コンピュータ１０６の該事前設定は、該二つのコンピュータ１０４及び１０６の間のユニークな関係性を確立してもよい。例えば、前記二つのコンピュータ間の該関係性は、以下の通り定義されてもよい。（ｉ）  前記二つのコンピュータに利用可能なポリシー、（ｉｉ）  ヘッダ、データスライス、又は他のデータパケットの要素を暗号化するのに用いられる、パッド（例えば、ＯＴＰ）、又は他の暗号化スキームの収集、（ｉｉｉ）  関係性のステータス（例えば、次のデータパケット中のヘッダが位置する場所、現在用いられるべきパッド、又は他のステータス情報）、又は（ｉｖ）  関係性の他の特徴。送信側コンピュータ１０４は、他のコンピュータとの他の関係性を有し得るが、前記他のコンピュータは、異なるポリシー、暗号化スキーム、関係性ステータス、又は他の関係性の特徴の結果の通り、送信側コンピュータ１０４から受信側コンピュータ１０６へと向けられたデータパケットを処理しなくてもよい。一方で、異なる送信側コンポーネント１０８と関連付けられた部分の情報を取得するため、及びその後に適切な受信側コンポーネント１１０に提供される情報を形成するよう取得した部分を組み合わせるため、受信側コンピュータ１０６は、送信側コンピュータ１０４からのデータパケットを処理してもよい。
【００３９】
所定の送信側コンポーネント１０８、及び所定の受信側コンポーネントは、一又は複数の無効化されたインターフェイスを有してもよく、及び／又はコンポーネントが、本明細書に記載したように侵入されたかどうかと無関係にシステムによって置換されてもよい。このように、本明細書に記載されたように、単独で、又は本明細書にも記載された一又は複数の他の保護手段にと組み合わされてネットワークを介して伝達される情報を、システムは、セキュア化し、及び／又は難読化させてもよい。
【００４０】
一部の実施形態において、ソフトウェアコンポーネントが侵入されたか、又は、潜在的に侵入されうるかとは無関係に、送信側コンピュータ１０４と関連付けられたソフトウェアコンポーネント、及び／又は受信側コンピュータ１０６と関連付けられたソフトウェアコンポーネントを、対応する既知の良好なソフトウェアコンポーネントに置換するようコンポーネントマネージャサブシステム１１２は、プログラムされてもよい。一例として、置換時間間隔の経過により、伝達される異なる情報をデータパケット中の異なるデータスライスに組合わせ、異なる暗号化スキームを用いて該スライスの暗号化を実行する送信側コンピュータ１０４において、コンポーネントマネージャサブシステム１１２は、コンポーネント（例えば、情報送信サブシステム）を置換してもよい。該置換時間間隔の経過により、異なる暗号化スキームを用いて暗号化された異なる情報と関連付けられたデータスライスを有するデータパケットの処理を実行する受信側コンピュータ１０６において、コンポーネントマネージャサブシステム１１２は、コンポーネント（例えば、情報受信サブシステム）を置換してもよい。
【００４１】
それぞれのデータパケットが、異なる情報と関連付けられた及び異なる暗号化スキームを用いて暗号化された異なるデータスライスを含むように、送信側コンピュータ１０４におけるコンポーネント中の及び受信側コンポーネントにおけるコンポーネント中の置換コンポーネントは、データパケットを介してお互いに通信するよう事前にプログラムされてもよい。例えば、該置換コンポーネントの該該事前設定は、置換されたコンポーネント間の関係と同一の関係、又は置換されたコンポーネント間の関係と異なるユニークな関係性を確立してもよい。置換コンポーネント、及び／又は他の既知の良好なソフトウェアコンポーネントは、送信側コンピュータ１０４、受信側コンピュータ１０６、それらの個々のコンポーネント、又は他のコンポーネントが実行されるランタイム環境から区別されるコンポーネントレポジトリ１１４から取得されてもよい。一部の実施形態において、コンポーネントを、事前設定された関係性を有する既知の良好なソフトウェアコンポーネントに、定期的に置換することが実行されてもよく、ポリシー、暗号化スキーム及び関係性ステータスが定期的に変更されることを引き起こし、それにより、コンポーネント及び情報の更なるセキュリティ及び完全性を提供する。
【００４２】
一部の実施形態において、コンポーネントマネージャサブシステム１１２は、置換されたコンポーネントを、前記置換されたコンポーネントが過去に実行されていたランタイム環境から区別された分析環境に移動させるようプログラムされてもよい。置換されたコンポーネントを分析環境に移動させた後、コンポーネント分析サブシステム１１６は、前記置換されたコンポーネントが侵入されたかどうか、及び／又はどのように侵入されたかを決定するために、前記置換されたコンポーネントを分析するようプログラムされてもよい。このように、他の利点の中で、侵入に対してより優れた抵抗性を有する新しいバージョンのソフトウェアコンポーネントが、対応するソフトウェアコンポーネントの低い抵抗性を除去するよう開発されてもよい。
【００４３】
図１に図示されるとおり、システム１００は、クライアントコンピュータ１２０（又は複数のクライアントコンピュータ１２０）をさらに備えてもよい。クライアントコンピュータ１２０には、あらゆる種類のモバイル端末、固定端末、又は他の装置が含まれる。一例として、クライアントコンピュータ１２０には、デスクトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、スマートフォン、ナビゲーション装置、電子書籍デバイス、ゲーム装置、又は他のクライアントコンピュータが含まれる。例えば、ユーザは、一又は複数のクライアントコンピュータを、送信側コンピュータ１０４、受信側コンピュータ１０６、送信側コンポーネント１０８、受信側コンポーネント１１０、又はシステム１００の他のコンポーネントと相互に対話するために利用する。他の一例として、クライアントコンピュータ１２０には、送信側コンピュータ１０４、受信側コンピュータ１０６、又はシステム１００の他のコンポーネントが含まれてもよい。
【００４４】
本明細書で説明された様々なシステムコンポーネント及びそれらの全体の機能について、それぞれの保護手段のより詳細な説明を以下行う。本明細書で記載されるとおりシステムは、単独で、又は一又は複数の他の保護手段と組合わせて、このような保護手段を用いてもよい。
【００４５】
コンポーネントの対応する既知の良好なコンポーネントとの置換
【００４６】
図２は、本発明の一実施形態におけるサブシステム、レポジトリ、又は他のコンポーネントが存在しうる環境１０２、及び前記環境に関連する動作に関するフローチャートを例示する図である。図示されるとおり、環境１０２はコンポーネントマネージャサブシステム１１２、コンポーネントレポジトリ１１４、コンポーネント分析サブシステム１１６、コンポーネント生成サブシステム１１８、又は他のサブシステム、レポジトリ又はコンポーネントを含んでもよい。図２は、区別される環境１０２を図示するが、コンポーネントマネージャサブシステム１１２、コンポーネントレポジトリ１１４、コンポーネント分析サブシステム、及びコンポーネント生成サブシステム１１８の一又は複数は、同一の環境又は区別される環境に存在してもよい。本明細書で記載されるように、一つの環境におけるコンポーネント又はサブシステムが、他の環境に対してアクセスが制限される、又はアクセス不能である（例えばリードアクセス（ｒｅａｄ  ａｃｃｅｓｓ）制限、書き込みアクセス制限、実行アクセス制限、消去アクセス制限、及び／又は他のアクセス制限）ことが有利になり得る。
【００４７】
一部の実施形態において、ランタイム環境において実行しているソフトウェアコンポーネントを、既知の良好なソフトウェアコンポーネントと置換することで、セキュリティ及び／又は完全性が、促進される。ランタイム環境で利用可能なソフトウェアコンポーネントが侵入された、又は潜在的に潜入されえたかと無関係に、このソフトウェアコンポーネントの置換が行われる。一例として、このソフトウェアコンポーネント（例えば、コンポーネント２０２ａ、２０２ｂ、又は他のコンポーネント）の置換に関連する工程には、以下でさらに詳細に記載される工程２０４、２０６、２０８、２１０、２１２、２１４、又は他の動作の一又は複数が含まれる。
【００４８】
一の実施形態において、コンポーネントマネージャサブシステム１１２は、ソフトウェアコンポーネントを、既知の良好なソフトウェアコンポーネントに置換するようプログラムされてもよい。例えば、コンポーネントマネージャサブシステム１１２は、ランタイム環境１０２ａにおいて実行している少なくとも一つの第一のソフトウェアコンポーネントが置換されるべきかを示す、少なくとも一つの第一のイベントを決定してもよい。コンポーネントマネージャサブシステム１１２は、前記第一のソフトウェアコンポーネントを、前記第一のイベントに基づいて、前記第一のソフトウェアコンポーネントに対応する第二のソフトウェアコンポーネントと置換してもよい。前記第一のイベント後前記第一のソフトウェアコンポーネント及び前記第一のイベントが利用可能ではなくなった後に、ランタイム環境１０２ａにおいて、前記第二のソフトウェアコンポーネントが利用可能となるように、前記第一のソフトウェアコンポーネントが、前記第二のソフトウェアコンポーネントと置換されてもよい。前記第二のソフトウェアコンポーネントは、ランタイム環境１０２ａ（例えば、コンポーネントレポジトリ１１４は、ランタイム環境１０２ａと区別される環境に存在してもよい）と区別されるコンポーネントレポジトリ１１４からコンポーネントマネージャサブシステム１１２によって取得されてもよい。
【００４９】
一例として、両方のソフトウェアコンポーネントが同一のソフトウェアのインスタンスであり、第二のソフトウェアコンポーネントが前記第一のソフトウェアコンポーネントのアップデートされたバージョンであり、又は前記第二のソフトウェアコンポーネントが前記第一のソフトウェアコンポーネントを置換するコンポーネントであるという点で、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、お互いに対応してもよい。ランタイム環境１０２ａに置かれる、及び実行される前に、前記第一のソフトウェアコンポーネントは、既知の良好なソフトウェアコンポーネントとしてコンポーネントレポジトリ１１４に保存されてもよい。
【００５０】
図２に係る一部の実施形態において、前記第一のソフトウェアコンポーネントは、コンポーネント２０２ａでもよく、及び前記第二のソフトウェアコンポーネントは、コンポーネント２０２ｂでもよい。コンポーネント２０２ａ及び２０２ｂは、コンポーネント生成サブシステム１１８によってコンポーネント生成環境において生成された同一のソフトウェアコンポーネントの、対応するインスタンスでもよい。工程２０４及び２０６において、該対応するコンポーネント２０２ａ及び２０２ｂは、置換コンポーネントとしてコンポーネントレポジトリ１１４に追加されてもよい。工程２０８において、その後に前記コンポーネント２０２ａは、該他の対応するコンポーネントの代わりにランタイム環境１０２で実行されるよう、ランタイム環境１０２ａにおいて実行されているもう一つの対応するコンポーネントを置換するため、コンポーネントマネージャサブシステム１１２により、コンポーネント２０２ａが、取得されてもよい。工程２１０において、コンポーネント２０２ｂは、コンポーネントマネージャサブシステム１１２によって取得されてもよく、及びランタイム環境１０２ａにおいて実行されているコンポーネント２０２ａに対する置換コンポーネントとしてランタイム環境中に置かれてもよい。
【００５１】
前記第一のイベント（この第一のイベントに前記第一のソフトウェアコンポーネントの置換は基づいている）は、前記第一のソフトウェアコンポーネントが侵入されたか、又は潜在的に侵入されているかとは無関係に、前記第一のソフトウェアコンポーネントが置換されるべきかを示す。一部の実施形態において、前記第一のイベントには、一又は複数の置換時間間隔の経過、使用閾値に到達した又はを超えた前記第一のソフトウェアコンポーネントの使用回数、前記第一のソフトウェアのアップデートバージョンの使用可能性、及び／又は他のイベントが含まれてもよい。
【００５２】
一部の実施形態において、前記第一のソフトウェアコンポーネントは、前記一又は複数の置換時間間隔の経過後に置換されてもよく、前記第二のソフトウェアコンポーネントは、前記一又は複数の置換時間間隔の第二の経過後に置換されてもよい。一例として、ランタイム環境１０２ａにおいて実行されるソフトウェアコンポーネントは、定期的に既知の良好なソフトウェアコンポーネントと置換されてもよい。他の実施形態において、前記第一のソフトウェアコンポーネントは、前記使用閾値に到達した又はを超えた前記第一のソフトウェアコンポーネントが多くの回数使用された後に、置換されてもよい。このように、他の利点とともに、ソフトウェアコンポーネントを、対応する既知の良好なソフトウェアコンポーネントと定期的置換することで、ランタイム１０２ａにおいて実行されるソフトウェアコンポーネントの完全性が、維持されうる。このように、該ソフトウェアコンポーネントが侵入されるか、又は潜在的に侵入されうるかとは無関係に、該ソフトウェアコンポーネントが、対応する既知の良好なコンポーネントと定期的に置換されることにより、ランタイム環境１０２ａにおいて実行されるソフトウェアコンポーネントが侵入された場合でも、侵入されたソフトウェアコンポーネントに関連付けられた負の影響が減少することになる。
【００５３】
他の実施形態において、前記第一のソフトウェアコンポーネントのアップデートされたバージョン（例えば、前記第二のソフトウェアコンポーネント）が利用可能になった後に、前記第一のソフトウェアコンポーネントは、置換されてもよい。すなわち、他の利点と共に、ランタイム環境１０２ａは、マルウェアによる攻撃や他のセキュリティ問題に対して抵抗することができるバージョンのソフトウェアコンポーネントを含む利用可能な最新バージョンのソフトウェアコンポーネントを、反映することができる。
【００５４】
様々な実施形態において、コンポーネントマネージャサブシステム１１２は、ランタイム環境１０２ａにおいて、前記第二のソフトウェアコンポーネントをインスタンス化するようプログラムされてもよい。例えば、前記第二のソフトウェアコンポーネントが、ランタイム環境１０２ａにおいて利用可能とならないよう、前記第二のソフトウェアコンポーネントは、不活性パスにおいてインスタンス化されてもよい。前記第一のソフトウェアコンポーネントの、前記第二のソフトウェアコンポーネントとの該置換は、前記第二のソフトウェアコンポーネントがランタイム環境１０２ａにおいて利用可能となるように、コンポーネントマネージャサブシステム１１２が、前記第二のソフトウェアコンポーネントを活性パスに配置することを含んでもよい。前記第一のソフトウェアコンポーネントの該置換は、コンポーネントマネージャサブシステム１１２が、前記第一のソフトウェアコンポーネントを前記活性パスの外に移動させることをさらに含んでもよい。
【００５５】
一例として、ランタイム環境１０２ａは、所定のソフトウェアコンポーネントの一又は複数の活性インスタンス、及び前記ソフトウェアコンポーネントの一又は複数の不活性インスタンスを含んでもよい。例えば、前記ソフトウェアコンポーネントの前記不活性インスタンスは、前記ソフトウェアコンポーネントの活性インスタンスに対する置換インスタンスでもよい。このように、前記活性インスタンスのうち一つの置換が発生した場合、前記活性インスタンスは、単純に、前記不活性インスタンスのうち一つと置換されてもよい。前記ソフトウェアコンポーネントの付加的な対応する既知の良好なインスタンスは、コンポーネントレポジトリ１１４から取得されてもよく、及びランタイム環境１０２ａにおいて、使用可能とする準備が整った置換インスタンスをランタイム環境１０２ａに提供するため、不活性インスタンスとしてインスタンス化されてもよい。一部の実施形態において、前記第一のソフトウェアコンポーネントは、特定のソフトウェアコンポーネントの活性インスタンスでもよく、前記第二のソフトウェアコンポーネントは、該ソフトウェアコンポーネントの不活性インスタンスでもよい。前記第二のソフトウェアコンポーネントは、前記活性パスにおける前記第一のソフトウェアコンポーネントを置換するために、前記化成パス中に巡回させてもよく、前記第一のソフトウェアコンポーネントは、前記活性パスを出て巡回させてもよい。このように、前記第二のソフトウェアコンポーネントは、前記活性パス中で前記第二のソフトウェアコンポーネントを巡回させることで活性化させてもよい。このように、前記第一のソフトウェアコンポーネントは、前記活性パスを出て前記第一のソフトウェアコンポーネントを巡回させることで不活性化させてもよい。
【００５６】
一部の実施形態において、コンポーネントマネージャサブシステム１１２は、前記活性パスに前記第二のソフトウェアコンポーネントを配置するのと同時に、又は配置した後に、前記不活性パスから、前記第一のソフトウェアコンポーネントを移動させるようプログラムされてもよい。一例として、前記第一のソフトウェアコンポーネントの、前記第二のソフトウェアコンポーネントとの該置換は、該置換の前に前記第一のソフトウェアコンポーネントによって提供されていた継続的なスムースな動作に依存して、他のコンポーネント又はユーザにより経験するダウンタイム（ｄｏｗｎｔｉｍｅ）がないようにシームレス（ｓｅａｍｌｅｓｓ）な方法で行われてもよい。
【００５７】
一部の実施形態において、前記第一のソフトウェアコンポーネントは、前記第一のソフトウェアコンポーネントが置換されるべきことを示す前記第一のイベントの時間において、前記第一のソフトウェアコンポーネントによりハンドル（ｈａｎｄｌｅ）されているタスクを完結させることが可能でもよい。しかしながら、新たなタスクは、前記第一のソフトウェアコンポーネントによってハンドルされるようアサイン（ａｓｓｉｇｎ）されなくてもよいが、その代わり、前記第一のソフトウェアコンポーネントに対応する他の活性化したソフトウェアコンポーネント（例えば、前記第一のソフトウェアの活性化した他のインスタンス）にアサインされうる。前記第一のイベントの時間に前記第一のソフトウェアコンポーネントによってハンドルされた前記タスクの完結において、コンポーネントマネージャサブシステムは、前記ソフトウェアコンポーネントを前記活性パスから移動させるが、同時に前記第二のソフトウェアコンポーネントを前記活性パスに配置してもよい。しかしながら、前記第二のソフトウェアコンポーネントに対応する他の活性化したソフトウェアコンポーネントと同様、新たなタスクは、前記第二のソフトウェアコンポーネント（例えば、前記第二のソフトウェアコンポーネント又は前記第一のソフトウェアコンポーネントの他の活性化されたインスタンス）にアサインされてもよい。
【００５８】
ある実施形態において、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、それぞれバーチャルマシンであってもよい。該ソフトウェアコンポーネントの定義は、一又は複数のディスクイメージを含んでもよい。ランタイム環境１０２ａは、該置換の前に前記第一のソフトウェアコンポーネントが実行される、及び該置換の後に前記第二のソフトウェアコンポーネントが実行されるハイパーバイザ（ｈｙｐｅｒｖｉｓｏｒ）を含んでもよい。前記活性パスにおける前記第二のソフトウェアコンポーネントの該置換は、前記第二のソフトウェアコンポーネントがランタイム環境において利用可能であるよう、コンポーネントマネージャ１１２が前記第二のソフトウェアコンポーネントと関連付けられたネットワーク設定をアップデートすることを含んでもよい。
【００５９】
一部の実施形態において、一又は複数の外部ＩＰアドレスが、活性化されたサブネットアドレスにアサインされたソフトウェアコンポーネントにリダイレクトされるよう活性化された一又は複数のサブネットアドレスと関連付けられてもよい。ソフトウェアコンポーネントは、ランタイム環境１０２ａ利用可能ではなくてもよいが、前記活性化されたサブネットアドレスにアサインされたソフトウェアコンポーネントは、ランタイム環境１０２ａにおいて利用可能であってもよい。前記第二のソフトウェアコンポーネントは、該置換の前に、前記不活性化されたサブネットアドレスの一つにアサインされてもよいが、前記第一のソフトウェアコンポーネントは、該置換の前に前記活性化されたサブネットアドレスの一つにアサインされてもよい。前記第一のソフトウェアコンポーネントが置換されるべきであると示す前記第一のイベントに応じて、外部ＩＰアドレスに向かうリクエストが、前記第二のソフトウェアコンポーネントに、そのアサインされた活性化されたサブネットアドレスを介してリダイレクトされるよう、前記第二のソフトウェアコンポーネントにアサインされた前記不活性化されたサブネットアドレスが、活性化されてもよく、又は他の活性化されたサブネットアドレスが、前記第二のソフトウェアコンポーネントにアサインされてもよい。
【００６０】
様々な実施形態において、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、それぞれオペレーティングシステムのプロセスであってもよい。活性パスにおける前記第二のソフトウェアコンポーネントの該置換は、コンポーネントマネージャ１１２が、プロセス間通信の設定に基づいて、前記第二のソフトウェアコンポーネントを前記活性パスに移動させることを含んでもよい。
【００６１】
一部の実施形態において、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、それぞれ実行可能コードであってもよい。前記活性パスにおける前記第二のソフトウェアコンポーネントの該置換は、コンポーネントマネージャサブシステム１１２が、前記第二のソフトウェアコンポーネントに関連付けられたルックアップテーブル（ｌｏｏｋ  ｕｐ  ｔａｂｌｅ）又はメモリアドレスのポインタをアップデートすることを含んでもよい。一例として、言語ライブラリは、機能又は関数呼び出し（ｆｕｎｃｔｉｏｎ  ｃａｌｌ）を促進する前記言語ライブラリにおいて利用可能な機能（例えば、ソフトウェアコンポーネント）に関連付けられたルックアップテーブル又はメモリアドレスのポインタを利用してもよい。例えば、前記ルックアップテーブル又は前記メモリアドレスのポインタは、置換実行可能コードが存在するメモリにおける異なる位置を示す（ｐｏｉｎｔ）それぞれの機能呼び出しの後に更新されてもよい。一実施形態において、前記第一のソフトウェアコンポーネントは、前記言語ライブラリのルックアップテーブル又はメモリアドレスのポインタが示す第一のメモリ位置にある所定の機能と関連付けられた実行可能コードであってもよい。ソフトウェアコンポーネント（例えば、前記機能と関連付けられた実行可能コード）が置換ソフトウェアコンポーネントと置換される前に、前記ソフトウェアコンポーネントが一度のみ呼び出されるように、前記言語ライブラリが設定されてもよい。このように、前記第一のソフトウェアコンポーネントが一度呼び出された後に前記第一のメモリ位置を示す前記ルックアップテーブル又は前記メモリアドレスポインタが、前記機能に関連付けられた置換実行可能コードが存在する場所である第二のメモリ位置を示すようアップデートされてもよい。
【００６２】
ある実施形態において、コンポーネントマネージャサブシステム１１２は、前記第二のソフトウェアコンポーネントに関連付けられた完全性の情報を取得できるようプログラムされてもよい。前記第二のソフトウェアコンポーネントは、完全性の情報に基づいて、コンポーネントマネージャサブシステム１１２により検証されてもよい。例えば、前記第一のソフトウェアコンポーネントを置換するため、前記コンポーネントマネージャサブシステム１１２が前記第二のソフトウェアコンポーネントを利用する前に、前記第二のソフトウェアコンポーネントの該検証が行われてもよい。一部の実施形態において、前記第二のソフトウェアコンポーネントが、既知の良好なソフトウェアコンポーネントであっても、前記完全性の情報は、前記第二のソフトウェアコンポーネントに対して生成されてもよい。一例として、前記第二のソフトウェアコンポーネントがその生成された環境、又は前記第二のソフトウェアコンポーネントが既知の良好なソフトウェアコンポーネントのままである他の環境の外に配布される前で、配布される準備がされたすぐ後に、前記完全性の情報は、前記第二のソフトウェアコンポーネントに対して生成されてもよい。例えば、前記完全性の情報は、前記第二のソフトウェアコンポーネントが既知の良好な形式から修正されていないことを決定するために用いられてもよい。一部の実施形態において、前記完全性の情報は、前記第二のソフトウェアコンポーネントでのハッシュ操作（一方向ハッシュ、又は他のハッシュ操作）を行うことで、生成されてもよい。
【００６３】
一部の実施形態において、コンポーネント分析サブシステム１１６は、第一のソフトウェアコンポーネントが置換された後に、前記第一のソフトウェアコンポーネントを分析するようプログラムされてもよい。コンポーネント分析サブシステム１１６は、前記第一のソフトウェアコンポーネントが該分析に基づき侵入されたかどうか、及び／又はどのように侵入されたかを決定するようプログラムされてもよい。一例として、前記第一のソフトウェアコンポーネントが前記活性パスから移動させられた後、コンポーネントマネージャサブシステム１１２は、分析環境１０２ｅに前記第一のソフトウェアコンポーネントを移動させてもよい。前記第一のソフトウェアコンポーネントが侵入されたか、又は潜在的に侵入されているかとは無関係に、前記第一のソフトウェアコンポーネントが、前記第二のソフトウェアコンポーネントと置換されてもよい。前記第一のソフトウェアコンポーネントが侵入されたか、及び、侵入された場合に前記第一のソフトウェアコンポーネントがどのように侵入されたかを決定するために、コンポーネント分析サブシステム１１６は、前記第一のソフトウェアコンポーネントを分析してもよい。このように、他の利点とともに、侵入に対してより優れた抵抗性を有する新しいバージョンのソフトウェアコンポーネントが、対応するソフトウェアコンポーネントの低い抵抗性を除去するよう開発されうる。
【００６４】
図２に係る一部の実施形態において、対応するコンポーネント２０２ｂがランタイム環境１０２ａにおいてコンポーネント２０２ａを置換した後に、工程２１２において、コンポーネントマネージャサブシステム１１２により、コンポーネント２０２ａは、ランタイム環境１０２から分析環境１０２ｅへと移動させられてもよい。さらなる実施形態において、他の対応するコンポーネントがランタイム環境１０２ｂにおいてコンポーネント２０２ｂを置換した後に、工程２１４において、コンポーネントマネージャサブシステム１１２により、コンポーネント２０２ｂも、ランタイム環境１０２ａから分析環境１０２ｅに移動させられてもよい。
【００６５】
上述のように、環境１０２は、一又は複数の区別された環境１０２ａ、１０２ｂ、１０２ｃ、１０２ｄ、１０２ｅ、又は他の環境を含みうる。一つの環境におけるコンポーネント又はサブシステムが、他の環境に対しアクセス制限されてもよい（例えばリードアクセス（ｒｅａｄ  ａｃｃｅｓｓ）制限、書き込みアクセス制限、実行アクセス制限、消去アクセス制限、及び／又は他のアクセス制限）。
【００６６】
一例として、コンポーネントレポジトリ１１４から前記第二のソフトウェアコンポーネントを取得するために、コンポーネントマネージャサブシステム１１２（例えば、環境１０２ｂに位置する）は、コンポーネントレポジトリ１１４（例えば、環境１０２ｃに位置する）に対するリードアクセスを有していてもよい。しかしながら、コンポーネントマネージャサブシステム１１２が、コンポーネントレポジトリ１１４又は環境１０２ｃに対する書き込みアクセス、実行アクセス、又は消去アクセスを有さないよう、環境１０２ｂ、環境１０２ｃ、コンポーネントレポジトリ１１４、又はコンポーネントマネージャサブシステム１１２が、設定されてもよい。したがって、コンポーネントレポジトリ１１４に保存される既知の良好なコンポーネントに集中的に、又は偶発的に、侵入するために、コンポーネントマネージャサブシステム１１２は用いられなくてもよい。
【００６７】
他の一例として、前記第二のソフトウェアコンポーネント又は他のソフトウェアコンポーネントをコンポーネントレポジトリ１１４に追加するために、コンポーネント生成サブシステム１１８（例えば、環境１０２ｄに位置する）は、コンポーネントレポジトリ１１４に対して書き込みアクセスを有してもよい。しかしながら、コンポーネント生成サブシステム１１８が、コンポーネントレポジトリ１１４又は環境１０２ｃに対してリードアクセス、実行アクセス、又は消去アクセスを有さないように、環境１０２ｃ、環境１０２ｄ、コンポーネント生成サブシステム１１８、又はコンポーネントレポジトリ１１４が設定されてもよい。一部の実施形態において、環境１０２ｂ、１０２ａ、１０２ｃ、又は１０２ｅにおける他のコンポーネント又はサブシステムは、コンポーネント生成サブシステム１１８又は環境１０２ｄに対して書き込みアクセス、リードアクセス、実行アクセス、又は消去アクセスを有しなくてもよい。例えば、コンポーネント生成サブシステム１１８が、ランタイム環境１０２ａから侵入され得ないように、コンポーネント生成サブシステム１１８がランタイム環境１０２ａからアクセス不可能であってもよい。このように、生成されたソフトウェアコンポーネントがコンポーネントレポジトリ１１４に配置される場合、ソフトウェアコンポーネントが、既知の良好なソフトウェアコンポーネントとなるように、コンポーネント生成サブシステム１１８は、侵入のない環境でソフトウェアコンポーネントを生成してもよい。
【００６８】
一部の実施形態において、コンポーネント生成環境から区別されるコンポーネントレポジトリに、ソフトウェアコンポーネントを配置する前に、コンポーネント生成環境において生成されるソフトウェアコンポーネントのサブコンポーネントを不正使用すること、又は潜在的に不正使用が可能であることを制限することで、セキュリティ、及び／又は完全性が促進されてもよい。例として、コンポーネント生成サブシステム１１８は、コンポーネント生成環境１０２ｄにおいてソフトウェアコンポーネントを生成するようプログラムされてもよく、前記ソフトウェアコンポーネントがコンポーネント生成環境１０２ｄから外へ移動させられる前に、前記ソフトウェアコンポーネントのサブコンポーネントに対し不正使用可能、又は潜在的に不正使用可能であることを制限してもよい（例えば、前記ソフトウェアコンポーネントがコンポーネントレポジトリ１１４に配置される前に、前記ソフトウェアコンポーネントがランタイム環境１０２ａにおいてインスタンス化される等）。
【００６９】
インターフェイス及び他のサブコンポーネントの制限化又は無効化
【００７０】
一の実施形態において、図３に図示されるように、コンポーネント生成サブシステム１１８は、コンポーネントオーサリング（ａｕｔｈｏｒｉｎｇ）サブシステム３０２、コンポーネントシーリング（ｓｅａｌｉｎｇ）サブシステム３０４、コンポーネントエクスポート（ｅｘｐｏｒｔｉｎｇ）サブシステム３０６、及び／又は他のサブシステムを含んでよい。
【００７１】
一部の実施形態において、コンポーネントシーリングサブシステム３０４は、コンポーネント生成環境１０２ｄにおいて少なくとも一つの第一のソフトウェアコンポーネントを特定してもよい。前記第一のソフトウェアコンポーネントは、前記第一のソフトウェアコンポーネント、第二のサブコンポーネント、又は他のコンポーネントに侵入して不正使用される、又は潜在的に不正使用されうる機能を提供する第一のサブコンポーネントを含む。前記第一のソフトウェアコンポーネントが実行される場合に、第一のサブコンポーネントによって提供される機能が、前記第一のソフトウェアコンポーネントを介して利用可能とならないように、コンポーネントシーリングサブシステム３０４は、前記第一のサブコンポーネントを特定し、無効化する。前記第一のサブコンポーネントによって提供される前記機能が利用不可能に、前記第一のソフトウェアコンポーネントがコンポーネントレポジトリ１１４に配置されるよう、コンポーネントエクスポートサブシステム３０６は、コンポーネントレポジトリ１１４に、前記第一のソフトウェアコンポーネントを配置することができる。このように、前記第一のソフトウェアコンポーネントからの機能が不正使用可能、又は潜在的に不正使用されうる可能性を除去するため、前記第一のソフトウェアコンポーネントは、該不正使用可能、又は潜在的に不正使用されうる機能へアクセスするために用いられ得ない。他の利点と共に、侵入されるようになる前記第一のソフトウェアコンポーネントに関連付けられたリスクを減少させることが可能である。
【００７２】
一の実施形態において、前記第一のサブコンポーネントの無効化は、コンポーネントシーリングサブシステム３０４が、前記第一のサブコンポーネントを、前記第一のソフトウェアコンポーネントから削除することを含んでもよい。このように、前記第一のソフトウェアコンポーネントが、コンポーネントレポジトリ１１４に配置された場合、前記第一のソフトウェアコンポーネントは、前記第一のサブコンポーネントを含まなくてもよい。前記第一のソフトウェアコンポーネントからの前記第一のサブコンポーネントの該削除は、前記第一のソフトウェアコンポーネントが、前記第一のサブコンポーネントに関連付けられたソースコード又は実行可能コードをもはや含まないよう、前記第一のサブコンポーネントと関連付けられたソースコード、又は実行可能コードを、前記第一のソフトウェアコンポーネントから削除することを含んでもよい。一部の実施形態において、前記第一のソフトウェアコンポーネントは、バーチャルマシーンでもよく、及び前記第一のサブコンポーネントはセキュアシェル（ｓｅｃｕｒｅ  ｓｈｅｌｌ、ＳＳＨ）プログラムでもよい。前記第一のソフトウェアコンポーネントからの前記第一のサブコンポーネントの該削除は、バーチャルマシーンから前記ＳＳＨプログラムからなる実行コードを削除することを含んでもよい。
【００７３】
他の実施形態において、前記第一のサブコンポーネントの無効化は、前記第一のソフトウェアコンポーネントから前記第一のサブコンポーネントを削除すること無しに、前記第一のサブコンポーネントから提供される機能を切る（ｔｕｒｎ  ｏｆｆ）ことを含みうる。従って、コンポーネントレポジトリ１１４における前記第一のソフトウェアコンポーネントの前記第一のサブコンポーネントが無効化されうるにもかかわらず、前記第一のソフトウェアコンポーネントは、前記第一のサブコンポーネントを含んだままでもよい。一例として、前記第一のソフトウェアコンポーネントが不安定になるのを避けるため、前記第一のサブコンポーネントを前記第一のソフトウェアコンポーネントから削除すること無しに、前記第一のサブコンポーネントは、前記第一のソフトウェアコンポーネントに対して無効化されてもよい。
【００７４】
一部の実施形態において、前記第一のサブコンポーネントの該無効化は、前記第一のソフトウェアコンポーネントを無効化命令と関連付けることを含んでもよい。一の実施形態において、前記第一のサブコンポーネントが前記無効化命令に基づいて前記第一のソフトウェアコンポーネントから削除されるよう、前記第一のソフトウェアコンポーネントは前記無効化命令と関連付けられてもよい。一例として、前記第一のソフトウェアコンポーネントは、ランタイム環境で第一のソフトウェアコンポーネントをインスタンス化するよう実行されるスクリプト（例えば、Ｂａｓｈスクリプト、又は他のスクリプト）と関連付けられてもよい。前記第一のソフトウェアコンポーネントがインスタンス化された場合、前記スクリプトは、前記第一のソフトウェアコンポーネントから前記第一のサブコンポーネントに関連付けられたコードを削除してもよい。このように、前記第一のソフトウェアコンポーネントが実行された場合、前記第一のソフトウェアコンポーネントは、前記第一のサブコンポーネントと関連付けられた該コードを含まなくてもよい。他の一例として、前記第一のソフトウェアコンポーネントが前記コンポーネントレポジトリに配置される、又はランタイム環境において利用可能とされる前に、前記無効化命令が、前記第一のソフトウェアコンポーネントに注入されてもよい。前記第一のソフトウェアコンポーネントが実行された場合、前記無効化命令は、前記第一のソフトウェアコンポーネントから削除される前記第一のサブコンポーネントと関連付けられた該コードを引き起こしてもよい。
【００７５】
他の実施形態において、前記無効化命令に基づいて前記第一のサブコンポーネントにより提供された機能が切られるよう、前記第一のソフトウェアコンポーネントが、前記無効化命令に関連付けられてもよい。一例として、前記第一のソフトウェアコンポーネントは、ランタイム環境で第一のソフトウェアコンポーネントをインスタンス化するよう実行されるスクリプト（例えば、Ｂａｓｈスクリプト、又は他のスクリプト）と関連付けられてもよい。前記第一のソフトウェアコンポーネントがインスタンス化される場合、前記スクリプトは、前記第一のサブコンポーネントにより提供される前記機能を切ることができる。したがって、前記第一のソフトウェアコンポーネントが実行される場合に、第一のサブコンポーネントによって提供される機能は、前記第一のソフトウェアコンポーネントを介して利用可能とならない。他の一例として、前記第一のソフトウェアコンポーネントが前記コンポーネントレポジトリに配置される、又はランタイム環境において利用可能とされる前に、前記無効化命令が、前記第一のソフトウェアコンポーネントに注入されてもよい。前記第一のソフトウェアコンポーネントの実行において、前記無効化命令は、前記第一のサブコンポーネントによって提供される前記機能を切る（ｔｕｒｎ  ｏｆｆ）ことになる。
【００７６】
様々な実施形態において、前記第一のサブコンポーネントによって提供される前記機能は、前記第一のソフトウェアコンポーネントを維持するために用いられる管理者機能、又はメンテナンス機能を含みうる。前記第一のサブコンポーネントは、前記第一のサブコンポーネントにより提供される前記管理者機能又は前記メンテナンス機能に基づいて無効化、又は特定されてもよい。例として、バーチャルマシンを維持するための管理者機能又はメンテナンス機能を含むバーチャルマシンのサブコンポーネントは、テルネット（ｔｅｌｎｅｔ）インターフェイス、ＳＳＨインターフェイス、リモートデスクトッププロトコル（ｒｅｍｏｔｅ  ｄｅｓｋｔｏｐ  ｐｒｏｔｏｃｏｌ、ＲＤＰ）インターフェイス、アドミニストレイティブアプリケーションプログラマブルインターフェイス（Ａｄｍｉｎｉｓｎｔｒａｔｉｖｅ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍａｂｌｅ  ｉｎｔｅｒｆａｃｅ、ＡＰＩ）、管理者ウェブサイト、又は他のサブコンポーネントを含んでもよい。
【００７７】
一部の実施形態において、前記第一のソフトウェアコンポーネントは、不正使用可能、又は潜在的に不正使用可能な第二のサブコンポーネントをさらに含み得る。前記第一のソフトウェアコンポーネントの前記第一のサブコンポーネントは、無効化されるが、前記第二のサブコンポーネントは無効化されなくてもよい。前記第一のサブコンポーネントが前記第一のソフトウェアコンポーネントの機能にとって必要でないとの決定に基づき、前記第一のサブコンポーネントはコンポーネントシーリングサブシステム３０４により無効化されてもよい。前記第二のサブコンポーネントが前記第一のソフトウェアコンポーネントの機能にとって必要であるという決定に基づいて、前記第二のサブコンポーネントは、コンポーネントシーリングサブ巣システム３０４によって無効化されてもよい。
【００７８】
ある実施形態においては、前記第２のサブコンポーネントが前記第一のソフトウェアコンポーネントから削除されなくてもよいが、コンポーネントシーリングサブシステム３０４は、前記第二のサブコンポーネントに関連するリスクを削除するあるいは減少させるため、前記第二のサブコンポーネントから前記第二のサブコンポーネントに関連付けられた一又は複数のコードセット（コード集合、ｃｏｄｅ  ｓｅｔ）を削除するようにプログラムされてもよい。例として、コンポーネントシーリングサブシステムは、前記第二のサブコンポーネントを不正使用可能、又は潜在的に不正使用可能とすることを引き起こす前記第二のサブコンポーネントと関連付けられたコードを特定するように、及び前記第二のサブコンポーネントがもはや前記コードセットを含まなくなるよう前記第二のサブコンポーネントから、前記コードを削除するようにプログラムされてもよい。前記第一のソフトウェアコンポーネントがコンポーネントレポジトリ１１４に配置された場合、前記第一のソフトウェアコンポーネントは、前記コードセット無しに前記第二のサブコンポーネントを含んでもよい。
【００７９】
一の実施形態において、ソフトウェアコンポーネントはバーチャルマシンでもよい。前記バーチャルマシンのサブコンポーネントはＢａｓｈであってもよい。Ｂａｓｈは、バーチャルマシンのオペレーティングシステムにとって、適切に動作するために必要なシェルであるので、Ｂａｓｈは、バーチャルマシンから削除されなくてもよく、あるいは無効化されなくてもよい。しかしながら、「ｌｓ」、「ｓｅｄ」、「ｖｉ」等の多くのコマンドは、適切に動作するためにバーチャルマシーンのオペレーティングシステムに対して必要ではないので、これらのコマンドは、削除、あるいは無効化されてもよい。例えば、これらの不要なコマンドと関連付けられたコードセットは、バーチャルマシンがこれらのコードセットを含まないＢａｓｈを含みうるよう、Ｂａｓｈから削除されてもよい。
【００８０】
一部の実施形態において、コンポーネントオーサリングサブシステム３０２は、コンポーネント生成環境１０２ｄにおいて、前記第一のソフトウェアコンポーネントを生成するようプログラムされてもよい。コンポーネントオーサリングサブシステム３０２によって生成される前記第一のソフトウェアコンポーネントは、前記第一のサブコンポーネント（前記第一のソフトウェアコンポーネントに侵入して不正使用可能、又は潜在的に不正使用可能となり得る機能を提供する）、第二のサブコンポーネント、又は他のサブコンポーネントを含んでもよい。
【００８１】
ある実施形態において、コンポーネントオーサリングサブシステム３０２は、第一のプロファイル情報を前記第一のソフトウェアコンポーネントと関連付けてもよい。例として、前記第一のプロファイル情報は、所定のソフトウェアコンポーネントの所定のサブコンポーネントが無効化されるべきかを決定するために用いられる。前記第一のサブコンポーネントは前記第一のプロファイル情報に基づいて無効化される、又は特定されてもよい。一例として、前記第一のプロファイル情報は、削除を介して無効化されうるサブコンポーネントを規定する情報、削除されること無しに無効化されうるサブコンポーネントを規定する情報、無効化されないサブコンポーネントを規定する情報、又は他の情報を含みうる。一の実施形態において、前記第一のプロファイル情報は、ソフトウェアコンポーネントにおいて不正使用可能な又は潜在的に不正使用可能なサブコンポーネントを制限することに対して、一般的には適用可能になり得る。他の一つの実施形態において、前記第一のプロファイル情報は、ソフトウェアコンポーネント、特定の識別子と関連付けられたソフトウェアコンポーネント等のうち一又は複数の特定の種類において、不正使用可能な、又は潜在的に不正使用可能なサブコンポーネントを制限するためのものである。例えば、前記第一のプロファイル情報は、前記第一のソフトウェアコンポーネントの種類のソフトウェアコンポーネントを有するソフトウェアコンポーネントを規定する、又は前記第一のソフトウェアコンポーネントの識別子と対応する識別子を有するソフトウェアコンポーネントを規定してもよい。
【００８２】
様々な実施形態において、コンポーネントオーサリングサブシステム３０２は、前記第一のソフトウェアコンポーネントが前記第一のサブコンポーネント及び第二のサブコンポーネントを含むように、コンポーネント生成環境１０２ｄにおいて前記第一のソフトウェアコンポーネントを生成するようプログラムされてもよい。該第一のコンポーネントは、前記第一のプロファイル情報に基づいて、コンポーネントシーリングサブシステム３０４によって無効化されてもよい。該第二のコンポーネントは、前記第一のプロファイル情報に基づいて、コンポーネントシーリングサブシステム３０４によって無効化されなくてもよい。
【００８３】
ある実施形態において、コンポーネントエクスポートサブシステム３０６は、前記第一のソフトウェアコンポーネントに関連付けられた完全性の情報を生成するようプログラムされてもよい。例として、前記第一のソフトウェアコンポーネントが、既知の良好なソフトウェアコンポーネントであっても、前記完全性の情報は、前記第一のソフトウェアコンポーネントに対して生成されてもよい。一例として、前記第一のソフトウェアコンポーネントがその生成された環境（例えば、環境１０２ｄ）、又は前記第一のソフトウェアコンポーネントが既知の良好なソフトウェアコンポーネントのままである他の環境の外に配布される前で、配布される準備がされたすぐ後に、前記完全性の情報は、前記第一のソフトウェアコンポーネントに対して生成されてもよい。
【００８４】
一部の実施形態において、前記第一のサブコンポーネントが無効化された後で、及び前記第一のソフトウェアコンポーネントがコンポーネントレポジトリ１１４に配置される前に、前記完全性の情報は、前記第一のソフトウェアコンポーネントに対して生成されてもよい。前記完全性の情報は、前記第一のソフトウェアに対して前記完全性の情報が生成された後に、前記第一のソフトウェアコンポーネントが修正されたかどうかを決定するために用いられてもよい。一部の実施形態において、前記完全性の情報は、前記第一のソフトウェアコンポーネントでのハッシュ操作（一方向ハッシュ、又は他のハッシュ操作）を行うことで生成されてもよい。
【００８５】
ネットワークを介して伝達される、インターリーブしており、難読化した情報
【００８６】
図４を参照すると、一部の実施形態において、送信側コンピュータ１０４は、データパケットの異なるスライスに伝達される異なる情報を組合わせ、及び／又は情報のセキュアな伝達のために異なる暗号化スキームを用いて当該スライスを暗号化するようプログラムされてもよい。例として、送信側コンピュータ１０４は伝達されるべき第一の情報、伝達されるべき第二の情報、又は伝達されるべき他の情報を受信してもよい。前記第一の情報は、第一の送信側コンポーネントと関連付けられてもよい。前記第二の情報は、第一の送信側コンポーネントと異なる第二の送信側コンポーネントと関連付けられてもよい。例えば、送信側コンポーネント１０８は、送信側コンピュータ１０４の外部のコンポーネント、送信側コンピュータ１０４内で実行されるコンポーネント、又は、他のコンポーネントを含んでもよい。
【００８７】
送信側コンピュータ１０４は、少なくとも前記第一の情報の一部を表す第一のデータスライス、少なくとも前記第二の情報の一部を表す第二のデータスライス、又は他のデータスライスを生成するようプログラムされてもよい。前記第一のデータスライスは、第一の暗号化スキームに基づき生成されてもよい。前記第二のデータスライスは、前記第一の暗号化スキームとは異なる第二の暗号化スキームに基づき生成されてもよい。一例として、前記第一の暗号化スキームに基づく前記第一のデータスライスの生成は、第一の暗号化の種類又は第一の暗号キーを用いて前記第一の情報の一部を暗号化することを含む。前記第二の暗号化スキームに基づく前記第二のデータスライスの生成は、前記第一の暗号化の種類又は前記第一の暗号キーとそれぞれ異なる第二の暗号の種類又は第二の暗号キーを用いて前記第二の情報の一部を暗号化することを含む。暗号化の種類の例として、ワンタイムパッド（ｏｎｅ  ｔｉｍｅ  ｐａｄ、ＯＴＰ）、データ暗号化標準（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、ＤＥＳ）、高度暗号化標準（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ、ＡＥＳ）、又は他の種類の暗号化が含まれる。
【００８８】
送信側コンピュータ１０４は、前記第一のデータスライスに対する前記第一の暗号化スキーム、前記第二のデータスライスに対する前記第二の暗号化スキーム、又は他の情報を規定する第一のヘッダを生成するようプログラムされてもよい。送信側コンピュータ１０４は、前記第一のヘッダ、前記第一のデータスライス、前記第二のデータスライス、又は他のデータパケットの要素を含む第一のデータパケットを生成するようプログラムされてもよい。その後、前記第一のデータパケットは、適切な受信側コンピュータに対して送信されてもよい（例えば、受信側コンピュータ１０６、又は他の受信側コンピュータ）。
【００８９】
図４Ａに関し、一部の実施形態において、送信側コンピュータ１０４は、送信側コンポーネント１０８ａ〜１０８ｎ、情報送信サブシステム４０２、又は他のコンポーネントを含んでもよい。図４Ｂに関し、他の一つの使用例において、受信側コンピュータ１０６は、受信側コンポーネント１１０ａ〜１１０ｎ、情報受信サブシステム４０４、又は他のコンポーネントを含んでもよい。状況に応じて、所定の送信側コンポーネント１０８は受信側コンポーネントであってもよく、及び所定の受信側コンポーネント１１０は、送信側コンポーネントであってもよい点に留意すべきである。さらに、状況に応じて、所定の送信側コンポーネント１０４は受信側コンピュータであってもよく、及び所定の受信側コンポーネント１０６は送信側コンピュータであってもよい点に留意すべきである。一例として、送信側コンピュータ１０４は、受信したデータパケットを処理する情報受信サブシステム４０４、又は他のコンポーネントをさらに含む。前記受信したデータパケットは、異なる暗号化スキームを用いて暗号化された異なる情報と関連付けられたデータスライスを含む。他の一例において、受信側コンピュータ１０６は、送信されるべき異なる情報を、データパケットの異なるスライスに組合わせ、及び／又はセキュアな前記情報の伝達のため異なる暗号化スキームを用いて前記スライスを暗号化する、情報送信サブシステム４０２、又は他のコンポーネントを含む。
【００９０】
図示されるとおり、一部の実施形態において、それぞれのデータパケットが異なる情報と関連付けられた及び異なる暗号化スキームを用いて暗号化された異なるデータスライスを含むように、送信側コンピュータ１０４及び受信側コンピュータ１０６は、データパケットを介してお互いに通信するよう事前にプログラムされてもよい。例えば、送信側コンピュータ１０４及び受信側コンピュータ１０６の該事前設定は、該二つのコンピュータ１０４及び１０６の間のユニークな関係性を確立してもよい。例えば、前記二つのコンピュータ間の該関係性は、（ｉ）  前記二つのコンピュータに利用可能なポリシー、（ｉｉ）  ヘッダ、データスライス、又は他のデータパケットの要素を暗号化するのに用いられる、パッド（例えば、ＯＴＰ）、又は他の暗号化スキームの収集、（ｉｉｉ）  関係性のステータス（例えば、次のデータパケット中のヘッダが位置する場所、現在用いられるべきパッド、又は他のステータス情報）、又は（ｉｖ）  関係性の他の特徴、と定義されてもよい。送信側コンピュータ１０４は、他のコンピュータとの他の関係性を有し得るが、前記他のコンピュータは、異なるポリシー、暗号化スキーム、関係性ステータス、又は他の関係性の特徴の結果の通り、送信側コンピュータ１０４から受信側コンピュータ１０６へと向けられたデータパケットを処理しなくてもよい。一方で、異なる送信側コンポーネント１０８と関連付けられた部分の情報を取得するため、及びその後に適切な受信側コンポーネント１１０に提供される情報を形成するよう取得した部分を組み合わせるため、受信側コンピュータ１０６は、送信側コンピュータ１０４からのデータパケットを処理してもよい。
【００９１】
図５に関し、一部の実施形態において、送信側コンピュータ１０４は、送信側コンポーネント１０８ａ、１０８ｂ、及び１０８ｃから、情報５０２、５０４、及び５０６を受信してもよい。一部の実施形態において、送信側コンポーネント１０８ａ、１０８ｂ、及び１０８ｃは、送信側コンピュータ１０４において、バーチャルマシン、アプリケーション、又は他のコンポーネントを含んでもよい。前記情報５０２、５０４、及び５０６は、受信側コンポーネント１１０ａ、１１０ｂ、及び１１０ｃとそれぞれ対応する送信側コンポーネント１０８ａ、１０８ｂ、及び１０８ｃから伝達されるべき通信を含んでもよい。
【００９２】
送信側コンピュータ１０４は、少なくとも情報５０２の部分５０２ａ〜５０２ｎ、少なくとも情報５０４の部分５０４ａ〜５０４ｎ各々を表すデータスライス、及び少なくとも情報５０６の部分５０６ａ〜５０６ｎを表すデータスライスを生成してもよい。データパケット５０８ａ〜５０８ｎは、（ｉ）  データパケット５０８ａが、ヘッダ５１０ａ、部分５０２ａ、５０４ａ、及び５０６ａ、又は他のデータパケットの要素を含み、（ｉｉ）  データパケット５０８ｂが、ヘッダ５１０ｂ、部分５０２ｂ、５０４ｂ、及び５０６ｂ、又は他のデータパケットの要素を含み、及び（ｉｉｉ）  以下同様、に生成されてもよい。ヘッダ５１０ａは、部分５０２ａ、５０４ａ、及び５０６ａを表す前記データスライスを暗号化するのに用いられた暗号化スキームを規定してもよい。ヘッダ５１０ｂは、部分５０２ｂ、５０４ｂ、及び５０６ｂを表す前記データスライスを暗号化するのに用いられた暗号化スキームを規定してもよい。一例として、ヘッダ５１０を翻訳するのに用いられるべきポリシーを規定し、及び前記暗号化スキームに対応する前記ポリシーの暗号化スキームインデックスを規定することで、ヘッダ５１０は、暗号化スキームを規定する。ポリシーに関する更なる説明、及び暗号化スキームインデックスは、以下で記載される。
【００９３】
図５に関し、データパケット５０８ａ〜５０８ｎは、受信側コンピュータ１０６に送信されてもよい。情報５０２、５０４、及び５０６を形成するため、及び情報５０２、５０４、及び５０６を、それぞれの受信側コンポーネント１１０ａ、１１０ｂｍ及び１１０ｃに提供するために、受信側コンピュータ１０６は、データパケット５０８ａ〜５０８ｎを処理してもよい。一例として、部分５０２ａ〜５０２ｎを表すデータスライスを暗号化するために用いられた暗号化スキーム、部分５０４ａ〜５０４ｎを表すデータスライスを暗号化するために用いられた暗号化スキーム、及び部分５０６ａ〜５０６ｎを表すデータスライスを暗号化するために用いられた暗号化スキームを特定するため、受信側コンピュータ１０６は、ヘッダ５１０ａ〜５１０ｎを処理する。部分５０２ａ〜５０２ｎ、５０４ａ〜５０４ｎ、及び５０６ａ〜５０６ｎを取得するため、該特定された暗号化スキームを用いて、前記データスライスは、解読される。その後、該対応する部分は、情報５０２、５０４、及び５０６を形成するために組合わされる。
【００９４】
一部の実施形態において、送信側コンピュータ１０４は、ランダムに生成されたフィラーデータ（ｆｉｌｌｅｒ  ｄａｔａ）を含む第三のデータスライスを生成するようプログラムされてもよい。前記第三のデータスライスは、前記第一のデータスライス、又は前記第二のデータスライスのサイズとは異なるサイズを有してもよい。前記第一のデータパケットは、前記第一のデータパケットが前記第三のデータパケットを含むように生成されてもよい。このように、他の利点とともに、情報の部分を実際に表しているデータに対するカモフラージュの他の一つのレイヤを提供するために、ランダムに生成されたフィラーデータは、データパケット内でインターリーブされてもよい。前記ランダムに生成されたフィラーデータを含む前記データスライスが、情報の部分を表さない事実を、意図しない受信側にさらに隠すための暗号化スキームを用いて、前記ランダムに生成されたフィラーデータを含む前記データスライスは、暗号化されてもよい。付加的に又は代替的に、情報の部分を表すデータスライスの開始位置及び終端位置を隠すため、ランダムに生成されたフィラーデータを含むデータスライスのサイズは、データパケット内で異なっていてもよい。
【００９５】
図５に関し、非制限的な例として、データパケット５０８ａ〜５０８ｎそれぞれが、ランダムに生成されたフィラーデータ５１２を含むデータスライスを含んでもよい。データパケット５０８ａ〜５０８ｎが、受信側コンピュータ１０６によって受信された場合、ランダムに生成されたフィラーデータ（情報の部分とは反対に）は、無視されてもよい。例えば、情報の部分を表す前記データスライスの前記開始位置及び終端位置は、特定されてもよい。情報の部分を表すデータスライスは、ランダムに生成されたフィラーデータを含むデータスライスをそのままにして、抽出（ｅｘｔｒａｃｔ）されてもよい。その後、情報の部分は、該抽出されたデータスライスを解読することで、情報の部分は、取得されてもよい。
【００９６】
一部の実施形態において、前記第一のヘッダは、前記第一のデータパケット内の前記第一のデータスライスの位置、前記第一のデータパケット内の前記第二のデータスライスの位置、前記第一のデータパケット内の前記第三のデータスライスの位置、又は他の位置情報を規定する。例として、データパケットヘッダを翻訳するのに用いられるべきポリシーを規定することで、データパケットヘッダは、データスライスの開始位置、データスライスの終端位置、データスライスのうちランダムに生成されたフィラーデータを含むデータスライス、又は他のデータパケットに関連する情報を規定してもよい。
【００９７】
一部の実施形態において、特定のポリシーに対する例ポリシー（ｅｘａｍｐｌｅ  ｐｏｌｉｃｙ）の定義は、｛"Ｐｏｌｉｃｙ"：｛"Ｉｎｄｅｘ"：０，  "Ｎａｍｅ"："Ｓｔａｎｄａｒｄ  ＯＤＥＰ"，  "ＳｌｉｃｅＳｉｚｅｓ"：１２８，  ５１２，  ３２，  ３２，  １２８，  ３８４，  ２６８，  ２４，  "ＴｒａｆｆｉｃＭｏｄｅｌ"：２，  "ＤａｔａＴｙｐｅｓ"：｛０："ｒａｎｄ"，  １："ｏｔｐ"，  ２："ｄｅｓ"，  ３："ａｅｓ２５６"｝｝である。データパケットヘッダは、ポリシーインデックス（ｐｏｌｉｃｙ  ｉｎｄｅｘ）０を規定することで、データパケットを翻訳するために用いられるべき例ポリシーを規定し得る。ポリシーの定義に基づいて、トラフィックモデルインデックス（Ｔｒａｆｆｉｃ  ｍｏｄｅｌ  ｉｎｄｅｘ）２  と対応するトラフィックモデルは、データパケット内のデータスライスの位置、データスライスのうちランダムに生成されたフィラーデータを含むデータスライス、又は他のデータパケットに関連する情報を規定する。一部の実施形態において、議論されたとおり、ポリシー又は他のポリシーに関連する情報は、所定の送信側コンピュータ及び所定の受信側コンピュータ間で確立されたユニークな関係によって定義され得る。一例として、データパケットヘッダによって規定されるポリシーインデックスに対応するポリシーは、前記ユニークな関係を共有する送信側側コンピュータ及び受信側コンピュータによってのみ知られ得る。他の一例として、所定の送信側コンピュータは、前記送信側コンピュータから所定の受信側コンピュータへのセキュアな送信（例えば、送信チャネル）のため、前記受信側コンピュータとの第一の関係を有してもよく、及び前記受信側コンピュータから前記第二のコンピュータにおいて受信されるデータパケットを処理する（例えば、受信チャネル）ため、第二の関係を有してもよい。例えば、それぞれの関係は、該関係に利用可能な異なるポリシー又は他のデータパケットに関連する情報を定義してもよい。
【００９８】
図６に関し、一部の実施形態において、ビットの第一のセット中のデータパケットヘッダ６００を含むデータパケットを翻訳するために用いられるべきポリシーを表すポリシーインデックス、データパケット中のデータスライスを暗号化するのに用いられた暗号化スキームを表す暗号化スキームインデックス、次のデータパケットのヘッダの位置を示すヘッダオフセット、逆接続のためのポート、又は他のデータパケットに関連する情報を、データパケットヘッダ６００は、規定してもよい。
【００９９】
一部の実施形態において、送信側コンピュータ１０４は、第三の暗号化スキームに基づいて、前記第一のヘッダを生成するようプログラムされてもよい。前記第三の暗号化スキームは、前記第一の暗号化スキーム又は前記第二の暗号化スキームと同一でもよく、又は前記第一の暗号化スキーム及び前記第二の暗号化スキームの両方とから異なっていてもよい。図６に関し、一の実施形態において、特定のパッドが、データパケットヘッダ６００を暗号化するのに用いられてもよい。例えば、データパケットヘッダ６００を暗号化するのに用いられるパッドは、所定の送信側コンピュータ及び所定の受信側コンピュータ間のユニークな関係の一部として事前設定されたパッド集のうちの一つであってもよい。
【０１００】
様々な実施形態において、送信側コンピュータ１０４は、前記第三の暗号化スキームに基づいて、第一のハンドシェイクリクエスト（Ｈａｎｄｓｈａｋｅ  ｒｅｑｕｅｓｔ）を生成するようプログラムされてもよい。前記第一のハンドシェイクリクエストは、受信側コンピュータに送信されてもよい。送信側コンピュータ１０４は、受信側コンピュータ１０６から第一のレスポンスを受信してもよい。前記第一のヘッダは、ヘッダの暗号化について前記第三の暗号化スキームを用いることを確認する前記第一のレスポンスに基づいて、前記第三の暗号化スキームを用いて暗号化される。
【０１０１】
一部の実施形態において、送信側コンピュータ１０４が受信側コンピュータ１０６に情報をセキュアに送信するため、送信側コンピュータ１０４は、前記受信側コンピュータ１０６と通信セッションを開始して最初にハンドシェイクヘッダとともにハンドシェイクパケットを送信してもよい。前記ハンドシェイクヘッダは、標準的な２４ビットのヘッダで、ボディ部は無く、このヘッダの全てのビットは０にセットされ、該二つのコンピュータ間で確立された関係がインデックス０と定義された第一のパッドを用いて暗号化されてもよい。前記ハンドシェイクヘッダが受信側コンピュータ１０６によって理解された場合（例えば、送信側コンピュータ１０４及び受信側コンピュータ１０６で用意されたパッド）、受信側コンピュータ１０６は、リプライとして、情報をセキュアに伝達するようデータパケットを生成するために、及び／又はデータパケットから情報の部分を取得するようデータパケットを処理するために用いられるべき確立した関係によって定義された事前設定されたポリシーの一つを規定するメッセージを送信してもよい。
【０１０２】
一部の実施形態において、前記第一のデータパケットが送信される前に受信側コンピュータ１０６に送信されたデータパケットを処理するために、送信側コンピュータ１０４は、受信側コンピュータ１０６の失敗に基づいてリセットリクエスト（ｒｅｓｅｔ  ｒｅｑｕｓｅｓｔ）を受信してもよい。例えば、前記第一のハンドシェイクリクエストは、前記リセットリクエストに基づいて生成されてもよい。受信側コンピュータ１０６から受信した前記第一のレスポンスは、前記第一のヘッダに対する前記第一のデータパケット内の第一の位置を規定してもよい。前記第一のデータパケットが、前記第一のデータパケットを、前記第一のデータパケット内の前記第一の位置で含むように、前記第一のデータパケットは、生成されてもよい。一例として、受信側コンピュータ１０６が、後続のヘッダの位置を見失い、ヘッダを解読できず、あるいは送信側コンピュータ１０４から送信されたデータパケットを適切に処理できなかった場合、後続のデータパケットヘッダを暗号化するのに用いられた暗号化スキーム、次のデータパケットヘッダの開始位置、データパケットを生成／処理するために用いられたポリシー、又は他の情報を決定するよう、該二つのコンピュータ間のハンドシェイクを開始するため、受信側コンピュータ１０６は、送信側コンピュータ１０４にリセットリクエストを送信してもよい。
【０１０３】
ある実施形態において、送信側コンピュータ１０４は、前記第三の暗号化スキーム（前記第一のヘッダの生成が基づくもの）と異なる第四の暗号化スキームに基づき、第一のハンドシェイクリクエストを生成するようプログラムされてもよい。前記第一のハンドシェイクリクエストは、受信側コンピュータに送信されてもよい。送信側コンピュータ１０４は、受信側コンピュータ１０６から第一のレスポンスを受信してもよい。前記第一のレスポンスは、前記第三の暗号化スキームの使用を規定してもよい。例えば、前記第一のレスポンスは、ヘッダインデックスを規定することで、前記第三の暗号化スキームの使用を規定してもよい。前記第三の暗号化スキームに対応する前記ヘッダインデックスに基づいて、送信側コンピュータ１０４は、前記第三の暗号化スキームを用いて第二のハンドシェイクリクエストを生成してもよい。前記第二のハンドシェイクリクエストは、受信側コンピュータ１０６に送信されてもよい。第二のレスポンスは、前記第二のコンピュータシステムから受信してもよい。例えば、前記第二のレスポンスは、ヘッダを暗号化することに対し、前記第三の暗号化スキームの使用を確認してもよい。前記第三の暗号化スキームは、前記第三の暗号化スキームの使用を確認する前記第二のレスポンスに基づいて前記第一のヘッダを暗号化するために用いられてもよい。
【０１０４】
一部の実施形態においては、上述のとおり、送信側コンピュータ１０４は、送信側コンピュータ１０４が受信側コンピュータ１０６に情報をセキュアに送信するため、前記受信側コンピュータ１０６と通信セッションを開始して最初に、ハンドシェイクヘッダとともにハンドシェイクパケットを送信してもよい。前記ハンドシェイクヘッダは、該二つのコンピュータ間で確立された関係がインデックス０と定義する第一のパッドを用いて暗号化され得る。前記ハンドシェイクヘッダが受信側コンピュータ１０６によって理解された場合（例えば、用意されたパッド）、受信側コンピュータ１０６は、リプライとして、情報をセキュアに伝達するようデータパケットを生成するために、及び／又はデータパケットから情報の部分を取得するようデータパケットを処理するために用いられるべき確立した関係によって定義された事前設定されたポリシーの一つを規定するメッセージを送信してもよい。
【０１０５】
他方、（例えば、パッドのミスアラインメント（ｍｉｓｓａｌｉｇｎｍｅｎｔ）又は他の理由により）受信側コンピュータ１０６が該ヘッダを読めない場合、受信側コンピュータ１０６は、送信側コンピュータ１０４に、次に用いられるパッドファイルのインデックスを送信してもよい。その後、送信側コンピュータ１０４は、前記インデックスに対応するパッドを用いて暗号化されたハンドシェイクヘッダとともにハンドシェイクパケットを送信することで、通信セッションを再度開始してもよい。一部の実施形態において、該二つのコンピュータの関係は、ハンドシェイクの試行（ａｔｔｅｍｐｔ）が所定回数失敗した場合、未来の接続の試行を破棄するよう、無効としてマークされてもよい。
【０１０６】
様々な実施形態において、送信側コンピュータ１０４は、少なくとも前記第一の情報の第二の部分を表す第三のデータスライス、少なくとも前記第二の情報の第二の部分を表す第四のデータスライス、又は他のデータスライスを生成するようプログラムされてもよい。送信側コンピュータ１０４は、前記第二のヘッダ、前記第三のデータスライス、前記第四のデータスライス、又は他のデータパケットの要素を含む第二のデータパケットを生成するようプログラムされてもよい。その後、前記第二のデータパケットは、適切な受信側コンピュータに対して送信されてもよい（例えば、受信側コンピュータ１０６、又は他の受信側コンピュータ）。
【０１０７】
一の実施形態において、前記第三のデータスライスは、前記第一の暗号化スキームに基づき生成されてもよい。前記第四のデータスライスは、前記第二の暗号化スキームに基づき生成されてもよい。前記第三のデータスライスのための前記第一の暗号化スキーム、前記第四のデータスライスのための前期第二の暗号化スキーム、又は他の情報を前記第二のヘッダが規定できるように、送信側コンピュータ１０４が前記第二のヘッダを生成するようプログラムされてもよい。
【０１０８】
一部の実施形態において、前記第三のデータスライスは、前記第一の暗号化スキームとは異なる暗号化スキームに基づき生成されてもよい。前記第四のデータスライスは、前記第二の暗号化スキームとは異なる暗号化スキームに基づき生成されてもよい。前記第三のデータスライスのための前記第一の暗号化スキームとは異なる暗号化スキーム、前記第四のデータスライスのための前期第二の暗号化スキームとは異なる暗号化スキーム、又は他の情報を、前記第二のヘッダが、規定できるように、送信側コンピュータ１０４が、前記第二のヘッダを生成するようプログラムされてもよい。
【０１０９】
一部の実施形態において、前記第一のヘッダは、前記第一のデータパケット内の第一の位置に位置してもよい。前記第一のヘッダは、前記第二のヘッダに対して、前記第二のデータパケット内の第二の位置を規定してもよい。前記第二のデータパケットは、前記第二のデータパケットが前記第二のデータパケットを前記第一のヘッダで規定される前記第二のデータパケット内の前記第二の位置で含むように生成されてもよい。前記第二のヘッダは、前記第二のデータパケット内の前記第三のデータスライスの位置、前記第二のデータパケット内の前記第四のデータスライスの位置、又は他の情報を規定してもよい。このように、ヘッダの位置は、一つのデータパケットと次のデータパケットで異なり得るので、データスライスを暗号化するのに用いられた暗号化スキーム、及び暗号化スキームが適用された対応するデータスライスを特定することは、送信側コンピュータ１０４及び受信側コンピュータ１０６間の確立した関係の外にあるコンポーネントにとって、不可能ではないものの、大変困難である。
【０１１０】
ある実施形態において、前記第一のデータパケット又は前記第二のデータパケットは、第一のセッションの間に生成され、又は送信されてもよい。前記第二のヘッダは、前記第三のヘッダに対して、前記第三のデータパケット内の第三の位置を規定してもよい。送信側コンピュータ１０４は、前記第一のセッションと異なる第二のセッションの間、前記第一の送信側コンポーネントに関連付けられた、送信される第三の情報を受信するようプログラムされてもよい。送信側コンピュータ１０４は、少なくとも前記第三の情報の一部を表す第五のデータスライスを生成するようプログラムされてもよい。送信側コンピュータ１０４は、前記第三のデータパケットが、前記第三のヘッダ及び前記第五のデータスライスを含むように前記第三のデータパケットを生成するようプログラムされてもよい。その後、前記第三のデータパケットは、前記第二のセッションの間に、適切な受信側コンピュータに対して送信されてもよい（例えば、受信側コンピュータ１０６、又は他の受信側コンピュータ）。このように、一部の実施形態において、データパケットは、次のデータパケットが、後続の通信セッションまで生成されないとしても、確立した関係を介して、次の（あるいは、後続の）データパケット中のヘッダの位置を規定する。
【０１１１】
一の実施形態において、前記第五のデータスライスは、前記第一の暗号化スキームに基づき生成されてもよい。前記第三のヘッダが、前記第五のデータスライスに対する前記第一の暗号化スキームを規定するように、送信側コンピュータ１０４は、前記第三のデータパケットを生成するようプログラムされてもよい。
【０１１２】
一部の実施形態において、前記第五のデータスライスは、前記第一の暗号化スキームとは異なる暗号化スキームに基づき生成されてもよい。前記第三のヘッダが、前記第一の暗号化スキームと異なる暗号化スキームを規定するように、送信側コンピュータ１０４は、前記第三のヘッダを生成するようプログラムされてもよい。
【０１１３】
様々な実施形態において、第一のポリシー、第二のポリシー、又は他のポリシーは、送信側コンピュータ１０４に、又は送信側コンピュータ１０４と関連付けられて保存されてもよい。前記第一のポリシーを規定することで、前記第一のヘッダは、前記第一のデータスライスに対する前記第一の暗号化スキーム、及び前記第二のデータスライスに対する前記第二の暗号化スキームを規定してもよい。
【０１１４】
一部の実施形態において、議論したように、特定のポリシーに対する例ポリシー（ｅｘａｍｐｌｅ  ｐｏｌｉｃｙ）の定義は、｛"Ｐｏｌｉｃｙ"：｛"Ｉｎｄｅｘ"：０，  "Ｎａｍｅ"："Ｓｔａｎｄａｒｄ  ＯＤＥＰ"，  "ＳｌｉｃｅＳｉｚｅｓ"：１２８，  ５１２，  ３２，  ３２，  １２８，  ３８４，  ２６８，  ２４，  "ＴｒａｆｆｉｃＭｏｄｅｌ"：２，  "ＤａｔａＴｙｐｅｓ"：｛０："ｒａｎｄ"，  １："ｏｔｐ"，  ２："ｄｅｓ"，  ３："ａｅｓ２５６"｝｝である。データパケットヘッダは、ポリシーインデックス（ｐｏｌｉｃｙ  ｉｎｄｅｘ）０を規定することで、データパケットを翻訳するために用いられるべき例ポリシーを規定し得る。ポリシーインデックス０が規定された場合、暗号化スキームは、ポリシーインデックス０に対応するポリシーの暗号化スキームインデックスを用いて、データスライスに対して暗号化スキームが規定されうる（例えば、ＯＴＰに対してインデックス１、ＤＥＳに対してインデックス２、ＡＥＳ２５６に対してインデックス３等）。
【０１１５】
一部の実施形態において、送信側コンピュータ１０４は、受信側コンピュータ１０６から第二のデータパケットを受信するようプログラムされてもよい。前記第二のデータパケットは、第二のヘッダ、第三のデータスライス、又は他のデータパケットの要素を含んでもよい。前記第三のデータスライスは、第三の情報の位置を表してもよい。前記第二のヘッダは、前記第二のポリシーを規定してもよい。送信側コンピュータ１０４は、前記第一の暗号化スキームを、前記第二のポリシーを規定する前記第二のヘッダに基づいて前記第三のデータスライスを暗号化するために用いられる暗号化スキームとして特定してもよい。送信側コンピュータ１０４は、前記第三の情報の一部を取得するため、前記第一の暗号化スキームに基づいて、前記第三のデータスライスを処理するようプログラムされてもよい。このように、一部の実施形態において、異なるポリシーによって規定される暗号化スキームは、それにもかかわらず、重なってもよい。
【０１１６】
一部の実施形態においては、上述のとおり、ポリシー又は他のポリシーに関連する情報は、所定の送信側コンピュータ及び所定の受信側コンピュータ間で確立されたユニークな関係によって定義されてもよい。一例として、データパケットヘッダによって規定されるポリシーインデックスに対応するポリシーは、前記ユニークな関係を共有する送信側側コンピュータ及び受信側コンピュータによってのみ知られてもよい。他の一例として、所定の送信側コンピュータは、前記送信側コンピュータから所定の受信側コンピュータへのセキュアな送信のため、前記受信側コンピュータとの第一の関係を有してもよく、及び前記受信側コンピュータから前記第二のコンピュータにおいて受信されるデータパケットを処理するため、第二の関係を有してもよい。例えば、それぞれの関係は、該関係に利用可能な異なるポリシー又は他のデータパケットに関連する情報を定義してもよい。
【０１１７】
一の実施形態において、前記第一のポリシーは、第一の暗号化スキームインデックスの前記第一の暗号化スキームとの関連性、第二の暗号化スキームインデックスの前記第二の暗号化スキームとの関連性、又は他の関連性を規定し得る。前記第二のポリシーは、第三の暗号化スキームインデックスの前記第一の暗号化スキームとの関連性、又は他の関連性を規定し得る。前記第一のポリシー、前記第一のデータスライスに対する前記第一の暗号化スキームインデックス、及び前記第二のデータスライスに対する前記第二の暗号化スキームインデックスを規定することで、前記第一のヘッダは、前記第一のデータスライスに対する前記第一の暗号化スキーム、及び前記第二のデータスライスに対する前記第二の暗号化スキームを規定してもよい。前記第三のデータスライスに対する前記第三の暗号化スキームインデックス及び前記第二のポリシーを規定することで、前記第二のヘッダは、前記第三のデータスライスに対する前記第一の暗号化スキームを規定し得る。前記第三のデータスライスに対する前記第三の暗号化スキーム、及び前記第二のポリシーを規定する前記第二のヘッダに基づいて、前記第一の暗号化スキームは、前記第三のデータスライスを暗号化するために用いられる暗号化スキームとして特定されてもよい。
【０１１８】
ある実施形態において、受信側コンピュータ１０６は、異なる暗号化スキームを用いて暗号化された異なる情報に関連付けられたデータスライスを備えるデータパケットを処理するようプログラムされてもよい。受信側コンピュータ１０６は、第一のヘッダ、少なくとも第一の情報の一部を表す第一のデータスライス、少なくとも第二の情報の一部を表す第二のデータスライス、又は他のデータパケットの要素を含む第一のデータパケットを受信するようプログラムされてもよい。前記第一の通信は、第一の送信側コンポーネントと関連付けられてもよい。前記第二の通信は、前記第一の送信側コンポーネントと異なる第二の送信側コンポーネントと関連付けられてもよい。例えば、受信側コンポーネントは、受信側コンピュータ１０６の外部のコンポーネント、受信側コンピュータ１０６内で実行されるコンポーネント（例えば、送信側コンピュータ１０４で実行される、バーチャルマシン、アプリケーション、又は他のコンポーネント）、又は他のコンポーネントを含んでもよい。
【０１１９】
受信側コンピュータ１０６は、前記第一のデータスライスを暗号化するために用いられる暗号化スキームとして第一の暗号化スキームを、第二のデータスライスを暗号化するために用いられる暗号化スキームとして第二の暗号化スキームを、又は他の情報を、前記第一のヘッダに基づいて特定するようプログラムされてもよい。一例として、前記第一の暗号化スキームを用いて前記第一のデータスライスを暗号化することは、第一の暗号化の種類、又は第一の暗号キーを用いて前記第一の情報の部分を暗号化することを含み得る。前記第二の暗号化スキームを用いた前記第二のデータスライスの暗号化は、前記第一の暗号化の種類又は前記第一の暗号キーとそれぞれ異なる第二の暗号の種類又は第二の暗号キーを用いて前記第二の情報の一部を暗号化することを含む。議論されたとおり、暗号化の種類の例は、ＯＴＰ、ＤＥＳ、ＡＥＳ、又は他の暗号化の種類を含んでもよい。
【０１２０】
受信側コンピュータ１０６は、前記第一の情報の部分を取得するため前記第一の暗号化スキームに基づき前記第一のデータスライスを処理するよう、及び前記第二の情報の部分を取得するため前記第二の暗号化スキームに基づき前記第二のデータスライスを処理するようプログラムされてもよい。
【０１２１】
一部の実施形態において、受信側コンピュータ１０６は、第二のヘッダ、少なくとも前記第一の情報の第二の部分を表す第三のデータスライス、少なくとも前記第二の情報の第二の部分を表す第四のデータスライス、又は他のデータパケットの要素を含む第二のデータパケットを受信するようプログラムされてもよい。受信側コンピュータ１０６は、前記第三のデータスライスを暗号化するために用いられる暗号化スキームとして前記第一の暗号化スキームを、第四のデータスライスを暗号化するために用いられる暗号化スキームとして前記第二の暗号化スキームを、又は他の情報を、前記第二のヘッダに基づいて特定するようプログラムされてもよい。受信側コンピュータ１０６は、前記第一の情報の前記第二の部分を取得するため前記第一の暗号化スキームに基づき前記第三のデータスライスを処理するよう、及び前記第二の情報の前記第二の部分を取得するため前記第二の暗号化スキームに基づき前記第四のデータスライスを処理するようプログラムされてもよい。
【０１２２】
受信側コンピュータ１０６は、第一の受信側コンポーネントに対して前記第一の情報を形成するため前記第一の情報の部分と前記第一の情報の第二の部分をを組合わせるように、及び第二の受信側コンポーネントに対し、前記第二の情報を形成するため前記第二の情報の部分と前記第二の情報の第二の部分とを組み合わせるようにプログラムされてもよい。
【０１２３】
例えば、図５に関し、受信側コンピュータ１０６によって受信されるデータパケット５０８ａ〜５０８ｎは、、（ｉ）  ヘッダ５１０ａ、部分５０２ａ、５０４ａ、及び５０６ａ、又は他のデータパケットの要素を有するデータパケット５０８ａ、（ｉｉ）  ヘッダ５１０ｂ、部分５０２ｂ、５０４ｂ、及び５０６ｂ、又は他のデータパケットの要素をを有するデータパケット５０８ｂ、（ｉｉｉ）  以下同様、を含んでもよい。ヘッダ５１０ａは、部分５０２ａ、５０４ａ、及び５０６ａを表す前記データスライスを暗号化するのに用いられた暗号化スキームを規定してもよい。ヘッダ５１０ｂは、部分５０２ｂ、５０４ｂ、及び５０６ｂを表す前記データスライスを暗号化するのに用いられた暗号化スキームを規定してもよい。
【０１２４】
情報５０２、５０４、及び５０６を形成するため、及び情報５０２、５０４、及び５０６を、それぞれの受信側コンポーネント１１０ａ、１１０ｂｍ及び１１０ｃに提供するために、受信側コンピュータ１０６は、データパケット５０８ａ〜５０８ｎを処理してもよい。一例として、部分５０２ａ〜５０２ｎを表すデータスライスを暗号化するために用いられた前記暗号化スキーム、部分５０４ａ〜５０４ｎを表すデータスライスを暗号化するために用いられた暗号化スキーム、及び部分５０６ａ〜５０６ｎを表すデータスライスを暗号化するために用いられた暗号化スキームを特定するため、受信側コンピュータ１０６は、ヘッダ５１０ａ〜５１０ｎを処理する。部分５０２ａ〜５０２ｎ、５０４ａ〜５０４ｎ、及び５０６ａ〜５０６ｎを取得するため、該特定された暗号化スキームを用いて、前記データスライスは、解読される。その後、該対応する部分は、情報５０２、５０４、及び５０６を形成するために組合わされる。
【０１２５】
一の実施形態において、前記第一のヘッダは、前記第一のデータパケット内の第一の位置に位置してもよい。前記第一のヘッダは、前記第二のヘッダに対して、前記第二のデータパケット内の第二の位置を規定してもよい。前記第二のデータパケットが、前記第二のデータパケットを、前記第一のヘッダで規定される前記第二のデータパケット内の前記第二の位置で含んでもよい。このように、ヘッダの位置は、一つのデータパケットと次のデータパケットで異なり得るので、データスライスを暗号化するのに用いられた暗号化スキーム、及び暗号化スキームが適用された対応するデータスライスを特定することは、送信側コンピュータ１０４及び受信側コンピュータ１０６間の確立した関係の外にあるコンポーネントにとって、不可能ではないものの、大変困難である。
【０１２６】
一部の実施形態において、前記第一のデータパケット及び／又は前記第二のデータパケットは、ランダムに生成されたフィラーデータを含んでもよい。上述のとおり、他の利点とともに、情報の部分を実際に表しているデータに対するカモフラージュの他の一つのレイヤを提供するために、ランダムに生成されたフィラーデータは、データパケット内でインターリーブされてもよい。前記ランダムに生成されたフィラーデータを含む前記データスライスが、情報の部分を表さない事実を、意図しない受信側にさらに隠すための暗号化スキームを用いて、前記ランダムに生成されたフィラーデータを含む前記データスライスは、暗号化されてもよい。付加的に又は代替的に、情報の部分を表すデータスライスの開始位置及び終端位置を隠すため、ランダムに生成されたフィラーデータを含むデータスライスのサイズは、データパケット内で異なっていてもよい。
【０１２７】
図５に関して図示されたとおり、データパケット５０８ａ〜５０８ｎそれぞれが、ランダムに生成されたフィラーデータ５１２を含むデータスライスを含んでもよい。データパケット５０８ａ〜５０８ｎが、受信側コンピュータ１０６によって受信された場合、ランダムに生成されたフィラーデータ（情報の部分とは反対に）は、無視されてもよい。例えば、情報の部分を表す前記データスライスの前記開始位置及び終端位置は、特定されてもよい。情報の部分を表すデータスライスは、ランダムに生成されたフィラーデータを含むデータスライスをそのままにして、抽出（ｅｘｔｒａｃｔ）されてもよい。その後、情報の部分は、該抽出されたデータスライスを解読することで、情報の部分は取得されてもよい。
【０１２８】
様々な実施形態において、受信側コンピュータ１０６は、前記第一のデータスライスを暗号化するために用いられる暗号化スキームとして前記第一の暗号化スキーム、第二のデータスライスを暗号化するために用いられる暗号化スキームとして前記第二の暗号化スキーム、又はこれら以外のヘッダ情報を特定するために、第三の暗号化スキームを用いて前記第一のヘッダを処理するようにプログラムされてもよい。前記第三の暗号化スキームは、前記第一の暗号化スキーム又は前記第二の暗号化スキームと同一でもよく、又は前記第一の暗号化スキーム及び前記第二の暗号化スキームの両方とから異なっていてもよい。一の実施形態において、特定のパッドが、前記データパケットヘッダ６００（図６に図示）を暗号化するために用いられる。例えば、データパケットヘッダ６００を暗号化するのに用いられるパッドは、所定の送信側コンピュータ及び所定の受信側コンピュータ間のユニークな関係の一部として事前設定されたパッド集のうちの一つであってもよい。
【０１２９】
図５に戻り、一部の実施形態において、前記第一のデータパケットが、送信側コンピュータ１０４から受信されてもよい。受信側コンピュータ１０６は、送信側コンピュータ１０４から第一のハンドシェイクリクエストを受信してもよい。前記第一のハンドシェイクリクエストは、前記第三の暗号化スキームに基づき生成されてもよい。受信側コンピュータ１０６は、ヘッダの生成に対し、前記第三の暗号化スキームを用いることを確認する第一のレスポンスを生成するようプログラムされてもよい。前記第一のレスポンスは、送信側コンピュータ１０４に送信されてもよい。例えば、前記第一のヘッダは、前記第一のレスポンスに基づいて前記第三の暗号化スキームを用いて生成されてもよい。
【０１３０】
一部の実施形態において、議論されたとおり、送信側コンピュータ１０４が、受信側コンピュータ１０６に情報をセキュアに送信するため、前記受信側コンピュータ１０６と通信セッションを開始して最初に、送信側コンピュータ１０４は、ハンドシェイクヘッダとともにハンドシェイクパケットを送信してもよい。前記ハンドシェイクヘッダは、該二つのコンピュータ間で確立された関係がインデックス０と定義する第一のパッドを用いて暗号化されてもよい。前記ハンドシェイクヘッダが、受信側コンピュータ１０６によって理解された場合（例えば、用意されたパッド）、受信側コンピュータ１０６は、リプライとして、情報をセキュアに伝達するようデータパケットを生成するために、及び／又はデータパケットから情報の部分を取得するようデータパケットを処理するために用いられるべき確立した関係によって定義された事前設定されたポリシーの一つを規定するメッセージを送信してもよい。
【０１３１】
一の実施形態において、受信側コンピュータ１０６は、前記第一のパケットが受信される前に受信したデータパケットの処理に失敗したことに基づき、リセットリクエストを生成するようプログラムされてもよい。前記リセットリクエストは、送信側コンピュータ１０４に送信されてもよい。前記第一のハンドシェイクリクエストは、れセットリクエストの伝達に基づいて送信側コンピュータ１０４から受信されてもよい。送信側コンピュータ１０４へ送信された前記第一のレスポンスは、前記第一のヘッダに対する前記第一のデータパケット内の第一の位置を規定してもよい。前記第一のデータパケットが、前記第一のデータパケットを、前記第一のデータパケット内の前記第一の位置で含むように、前記第一のデータパケットは、生成されてもよい。例として、受信側コンピュータ１０６が、後続のヘッダの位置を見失い、ヘッダを解読できず、あるいは送信側コンピュータ１０４から送信されたデータパケットを適切に処理できなかった場合、後続のデータパケットヘッダを暗号化するのに用いられた暗号化スキーム、次のデータパケットヘッダの開始位置、データパケットを生成／処理するために用いられたポリシー、又は他の情報を決定するよう、該二つのコンピュータ間のハンドシェイクを開始するため、受信側コンピュータ１０６は、送信側コンピュータ１０４にリセットリクエストを送信してもよい。
【０１３２】
ある実施形態において、送信側コンピュータ１０４は、他のデータパケットに関してあるデータパケット内の異なる位置から始まるヘッダを有するデータパケットを用いて情報をセキュア化するようプログラムされてもよい。例として、送信側コンピュータ１０４は伝達されるべき第一の情報を受信するようプログラムされてもよい。前記第一の情報は、第一の送信側コンポーネントと関連付けられてもよい。
【０１３３】
送信側コンピュータ１０４は、少なくとも前記第一の情報の第一の部分を表す第一のデータスライス、少なくとも前記第一の情報の第二の部分を表す第二のデータスライス、又は他のデータスライスを生成するようプログラムされてもよい。送信側コンピュータ１０４は、前記第一のヘッダ、前記第一のデータスライス、又は他のデータパケットの要素を含む第一のデータパケットを生成するようプログラムされてもよい。前記第一のデータパケットは、前記第一のヘッダが前記第一のデータパケット内の第一の位置に位置するよう生成されてもよい。前記第一のデータパケットは、前記第一のヘッダが第二のヘッダに対する第二のデータパケット内の第二の位置を規定するよう生成されてもよい。送信側コンピュータ１０４は、前記第二のデータパケットが前記第二のヘッダ、前記第二のデータスライス、又は他のデータパケットの要素を含むような前記第二のデータパケットを生成するようプログラムされてもよい。前記第二のヘデータパケットは、前記第二のヘッダが前記第一のヘッダで規定される前記第二のデータパケット内の前記第二の位置に位置するように生成されてもよい。その後、前記第一のデータパケット及び前記第二のデータパケットは、適切な受信側コンピュータに対して送信されてもよい（例えば、受信側コンピュータ１０６、又は他の受信側コンピュータ）。このように、ヘッダの位置は、一つのデータパケットと次のデータパケットで異なり得るので、データスライスを暗号化するのに用いられた暗号化スキーム及び暗号化スキームが適用された対応するデータスライスを特定することは、送信側コンピュータ１０４及び受信側コンピュータ１０６間の確立した関係の外にあるコンポーネントにとって、不可能ではないものの、大変困難である。
【０１３４】
一部の実施形態において、送信側コンピュータ１０４は、第一の暗号化スキームに基づいて前記第一のヘッダを生成するように、また、第一の暗号化スキームに基づいて前記第二のヘッダを生成するようプログラムされてもよい。前記第一のデータスライス及び前記第二のデータスライスは、それぞれ前記第一の暗号化スキームとは異なる第二の暗号化スキームに基づき生成されてもよい。
【０１３５】
一の実施形態において、前記第一の情報は、第一のセッションの間に受信されてもよい。前記第二のヘッダは、前記第三のヘッダに対して前記第三のデータパケット内の第三の位置を規定してもよい。送信側コンピュータ１０４は、前記第一のセッションとは異なる第二のセッションの間に第二の情報を受信するようプログラムされてもよい。送信側コンピュータ１０４は、少なくとも前記第二の情報の一部を表す第三のデータスライスを生成するようプログラムされてもよい。送信側コンピュータ１０４は、前記第三のデータパケットが前記第三のヘッダ、前記第三のデータスライス、又は他のデータパケットの要素を含むような前記第三のデータパケットを生成するようプログラムされてもよい。前記第三のデータパケットは、前記第三のヘッダが前記第二のヘッダで規定される前記第三のデータパケット内の前記第三の位置に位置するように生成されてもよい。前記第三のデータパケットは、適切な受信側コンピュータに対して送信されてもよい（例えば、受信側コンピュータ１０６、又は他の受信側コンピュータ）。このように、一部の実施形態において、データパケットは、次のデータパケットが、後続の通信セッションまで生成されないとしても、確立した関係を介して、次の（あるいは、後続の）データパケット中のヘッダの位置を規定する。
【０１３６】
ある実施形態において、受信側コンピュータ１０６は、データパケット内の他のデータパケットとは異なる位置から始まるヘッダを有するデータパケットを処理するようプログラムされてもよい。例として、受信側コンピュータ１０６は、第一のデータパケット、第二のデータパケット、又は他のデータパケットを受信するようプログラムされてもよい。前記第一のデータパケットは、第一のヘッダ、第一の情報の第一の部分を表す第一のデータスライス、又は他のデータパケットの要素を含んでもよい。前記第二のデータパケットは、第二のヘッダ、前記第一の情報の第二の部分を表す第二のデータスライス、又は他のデータパケットの要素を含んでもよい。
【０１３７】
受信側コンピュータ１０６は、前記第一のデータパケット内の第一の位置おける前記第一のヘッダを特定するようプログラムされてもよい。受信側コンピュータ１０６は、前記第二のヘッダの前記第二の位置を規定する前記第一のヘッダに基づいて、前記第二のデータパケット内の第二の位置における前記第二ヘッダを特定するようプログラムされてもよい。受信側コンピュータ１０６は、前記第一のヘッダに基づいて前記第一のデータパケット内の前記第一のデータスライスを特定し、また、前記第二のヘッダに基づいて前記第二のデータパケット内の前記第二のデータスライスを特定するようプログラムされてもよい。
【０１３８】
受信側コンピュータ１０６は、前記第一の情報の前記第一の部分を取得するために前記第一のデータスライスを処理するよう、また、前記第一の情報の前記第二の部分を取得するために前記第二のデータスライスを処理するようプログラムされてもよい。受信側コンピュータ１０６は、前記第一の情報を形成するため、前記第一の情報の前記第二の部分及び前記第一の情報の前記第一の部分を組合わせるようプログラムされてもよい。
【０１３９】
一部の実施形態において、前記第一のヘッダを暗号化するために用いられる第一の暗号化スキームを特定するようプログラムされてもよい。受信側コンピュータ１０６は、前記第一のデータスライスを暗号化するために用いられる第二の暗号化スキームを特定するため前記第一の暗号化スキームを用いて前記第一のヘッダを処理するようプログラムされてもよい。前記第二の暗号化スキームは、前記第一の暗号化スキームと異なってもよい。前記第一のデータスライスは、前記第一の情報の前記第一の部分を取得するため、前記第二の暗号化スキームを用いて処理されてもよい。前記第二のデータスライスは、前記第一の情報の前記第二の部分を取得するため、前記第二の暗号化スキームを用いて処理されてもよい。
【０１４０】
図７は、本発明の一実施形態において、ランタイム環境で実行しているソフトウェアコンポーネントを対応する既知の良好なソフトウェアと置換する方法のフローチャートを例示する図である。以下で説明する方法７００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法７００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、及び／又は説明する工程の一又は複数を省略して実現されてもよい。また、図７に示されて以下で説明される方法７００の工程の順序は限定するよう意図されていない。
【０１４１】
一部の実施形態において、方法７００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行されてもよい。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法７００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法７００の段階の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０１４２】
工程７０２において、少なくとも前記ランタイム環境で実行されている少なくとも第一のソフトウェアコンポーネントを示す第一のイベントが置換されるべきか否かが決定されてもよい。例えば、前記第一のイベントは、前記第一のソフトウェアコンポーネントが侵入されたか、又は潜在的に侵入され得たのかと無関係に決定されてもよい。一部の実施形態において、前記第一のイベントには、一又は複数の置換時間間隔の経過、使用閾値に到達した又はを超えた前記第一のソフトウェアコンポーネントの使用回数、前記第一のソフトウェアのアップデートバージョンの使用可能性、及び／又は他のイベントが含まれてもよい。一又は複数の実施形態において、工程７０２は、コンポーネントマネージャサブシステム１１２と同一の、又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１４３】
工程７０４において、少なくとも前記第一のソフトウェアコンポーネントと対応する第二のソフトウェアコンポーネントが、前記ランタイム環境と区別された（別個の、ｓｅｐａｒａｔｅ）コンポーネントレポジトリから取得されてもよい。一又は複数の実施形態において、工程７０４は、コンポーネントマネージャサブシステム１１２と同一の、又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１４４】
工程７０６において、前記第二のソフトウェアコンポーネントに関連付けられた完全性の情報が、取得されてもよい。一又は複数の実施形態において、工程７０６は、コンポーネントマネージャサブシステム１１２と同一の又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１４５】
工程７０８において、前記第二のソフトウェアコンポーネントは、前記完全性の情報に基づいて検証されてもよい。一又は複数の実施形態において、工程７０８は、コンポーネントマネージャサブシステム１１２と同一の又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１４６】
工程７１０において、前記第二のソフトウェアコンポーネントは、前記ランタイム環境でインスタンス化されてもよい。前記第二のソフトウェアコンポーネントが、前記ランタイム環境において利用可能とならないよう、前記第二のソフトウェアコンポーネントは、不活性パスにおいてインスタンス化されてもよい。一部の実施形態において、前記第二のソフトウェアコンポーネントは、前記完全性の情報を介して検証された前記第二のソフトウェアコンポーネントに基づいてインスタンス化されてもよい。一又は複数の実施形態において、工程７１０は、コンポーネントマネージャサブシステム１１２と同一の、又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１４７】
工程７１２において、前記第一のソフトウェアコンポーネントは、前記第一のイベント（少なくとも第一のソフトウェアコンポーネントが置換されるべきであることを示す）に基づいて、前記第二のソフトウェアコンポーネントと置換されてもよい。一又は複数の実施形態において、工程７１２は、コンポーネントマネージャサブシステム１１２と同一の又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１４８】
ある実施形態において、工程７１２に関し、前記第一のイベントは、一又は複数の置換時間間隔の経過、使用閾値に到達した又はを超えた前記第一のソフトウェアコンポーネントの使用回数、前記第一のソフトウェアコンポーネントのアップデートバージョンの利用可能性、又はたの条件を含んでもよい。一例として、前記第一のソフトウェアコンポーネントは、前記一又は複数の置換時間間隔の経過後に置換されてもよい。前記第二のソフトウェアコンポーネントは、前記一又は複数の置換時間間隔の第二の経過後に置換されてもよい。他の一の実施形態において、前記第一のソフトウェアコンポーネントは、前記使用閾値に到達した又はを超えた前記第一のソフトウェアコンポーネントの使用回数に基づいて置換されてもよい。他の一の実施形態において、前記第一のソフトウェアコンポーネントは、前記第一のソフトウェアコンポーネントの利用可能なアップデートバージョンに基づいて置換されてもよい。前記第二のソフトウェアコンポーネントはアップデートバージョンを含んでもよい。
【０１４９】
様々な実施形態において、工程７１２に関し、前記第一のソフトウェアコンポーネントの前記第二のソフトウェアコンポーネントとの該置換には、前記第二のソフトウェアコンポーネントが前記ランタイム環境で利用可能であるように活性パスに前記第二のソフトウェアコンポーネントを配置することが含まれてもよい。一の実施形態において、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、それぞれバーチャルマシンを含み、前記活性パスに前記第二のソフトウェアコンポーネントを配置することには、前記第二のソフトウェアコンポーネントが前記ランタイム環境で使用可能となるよう前記第二のソフトウェアコンポーネントに関連付けられたネットワーク設定をアップデートすることが含まれてもよい。他の一の実施形態において、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、それぞれオペレーティングシステムの処理を含み、前記活性パスに前記第二のソフトウェアコンポーネントを配置することには、プロセス間通信の設定を介して前記第二のソフトウェアコンポーネントを活性パスに移動させることが含まれる。他の一の実施形態において、前記第一のソフトウェアコンポーネント及び前記第二のソフトウェアコンポーネントは、それぞれ実行コードを含み、前記活性パスに前記第二のソフトウェアコンポーネントを配置することには、前記第二のソフトウェアコンポーネントに関連付けられたメモリアドレスポインタ又はルックアップテーブルを更新することが含まれてもよい。
【０１５０】
一部の実施形態において、工程７１２に関し、前記第一のソフトウェアコンポーネントの前記第二のソフトウェアコンポーネントとの該置換は、前記第一のソフトウェアコンポーネントを前記活性パスの外に移動させることが含まれてもよい。一の実施形態において、前記第一のソフトウェアコンポーネントは、前記第二のソフトウェアコンポーネントが前記活性パスに配置された後に、前記活性パスから移動させられる。
【０１５１】
工程７１４において、前記第一のソフトウェアコンポーネントは、前記第一のソフトウェアコンポーネントが置換された後に、分析されてもよい。一又は複数の実施形態において、工程７１４は、コンポーネント分析サブシステム１１６と同一の、又は類似するコンポーネント分析サブシステムによって行われてもよい。
【０１５２】
工程７１６において、前記第一のソフトウェアコンポーネントが侵入されたか、及び／又はどのように侵入されたかの決定が実行される。例えば、前記第一のソフトウェアコンポーネントが侵入されたか及び／又はどのように侵入されたかは、前記第一のソフトウェアコンポーネントの分析に基づいて実行される。一又は複数の実施形態において、工程７１６は、コンポーネントマネージャサブシステム１１２と同一の又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０１５３】
図８は、本発明の一実施形態における、ソフトウェアコンポーネントにおける、不正使用可能な又は潜在的に不正使用可能なサブコンポーネントを制限する方法のフローチャートを例示する図である。以下で説明する方法８００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法８００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図８に示されて以下で説明される方法８００の工程の順序は、限定するよう意図されていない。
【０１５４】
一部の実施形態において、方法８００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行され得る。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法８００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法８００の工程の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０１５５】
工程８０２において、少なくともコンポーネント生成環境における第一のソフトウェアコンポーネントが特定されてもよい。前記第一のソフトウェアコンポーネントは、前記第一のソフトウェアコンポーネントに侵入して不正使用可能又は潜在的に不正使用可能な機能を提供する第一のサブコンポーネントを含む。前記第一のソフトウェアコンポーネントは、前記第一のソフトウェアコンポーネントに侵入するため、不正使用されうる又は潜在的に不正使用されうる第二のサブコンポーネントをさらに含んでもよい。一又は複数の実施形態において、工程８０２は、コンポーネントシーリングサブシステム３０４と同一の又は類似するコンポーネントシーリングサブシステムによって行われてもよい。
【０１５６】
工程８０４において、前記第一のソフトウェアコンポーネントの前記第一のサブコンポーネントが規定されてもよい。一部の実施形態において、前記第一のサブコンポーネントによって提供される前記機能は、前記第一のソフトウェアコンポーネントを維持するために用いられる管理者機能又はメンテナンス機能を含みうる。前記第一のサブコンポーネントは、前記第一のサブコンポーネントにより提供される前記管理者機能又は前記メンテナンス機能に基づいて特定されてもよい。一又は複数の実施形態において、工程８０４は、コンポーネントシーリングサブシステム３０４と同一の又は類似するコンポーネントシーリングサブシステムによって行われてもよい。
【０１５７】
工程８０６において、前記第一のサブコンポーネントが無効化されてもよい。例えば、前記第一のサブコンポーネントが実行されている場合、前記第一のサブコンポーネントにより提供される機能が利用不可能となるよう、前記第一のサブコンポーネントが無効化されてもよい。ある実施形態において、前記第一のサブコンポーネントの無効化は、前記第一のサブコンポーネントを前記第一のソフトウェアコンポーネントから削除することを含みんでもよい。一部の実施形態において、前記第一のサブコンポーネントの無効化は、前記第一のソフトウェアコンポーネントから前記第一のサブコンポーネントを削除することなく、前記第一のサブコンポーネントから提供される機能を切ることを含んでもよい。様々な実施形態において、前記第一のサブコンポーネントの無効化は、前記第一のソフトウェアコンポーネントを無効化命令と関連付けることを含んでもよい。一例として、前記無効化命令は、前記第一のサブコンポーネントが該命令の無効化に基づいて前記第一のソフトウェアコンポーネントから削除されるように、前記第一のソフトウェアコンポーネントと関連付けられてもよい。他の一例において、前記無効化命令は、前記第一のサブコンポーネントにより提供される機能が前記無効化命令により切られるように、前記第一のソフトウェアコンポーネントと関連付けられてもよい。一又は複数の実施形態において、工程８０６は、コンポーネントシーリングサブシステム３０４と同一の、又は類似するコンポーネントシーリングサブシステムによって行われてもよい。
【０１５８】
ある実施形態において、前記第一のソフトウェアコンポーネントが、前記第一のサブコンポーネント、前記第二のサブコンポーネント、又は他のサブコンポーネントを含むよう、前記第一のソフトウェアコンポーネントは、前記コンポーネント生成環境で生成されてもよい。第一のプロファイル情報は、前記第一のソフトウェアコンポーネントと関連付けられてもよい。例えば、前記第一のプロファイル情報は、所定のソフトウェアコンポーネントの所定のサブコンポーネントが無効化されるべきかを決定するために用いられる。前記第一のサブコンポーネントは前記第一のプロファイル情報に基づいて無効化されてもよい。前記第二のサブコンポーネントは前記第一のプロファイル情報に基づいて無効化されなくてもよい。一又は複数の実施形態において、前記第一のソフトウェアコンポーネントの生成及び前記第一のプロファイル情報の前記第一のソフトウェアコンポーネントとの関連付けは、コンポーネントオーサリングサブシステム３０２と同一の又は類似するコンポーネントオーサリングサブシステムによって行われてもよい。
【０１５９】
工程８０８において、前記第一のソフトウェアコンポーネントの前記第二のサブコンポーネントが、特定されてもよい。前記第二のサブコンポーネントは、不正使用可能又は潜在的に不正使用可能なサブコンポーネントとして特定されてもよい。一部の実施形態において、前記第一のサブコンポーネントが前記第一のソフトウェアコンポーネントの機能にとって必要でないとの決定に基づいて、前記第一のサブコンポーネントを無効化してもよい。。前記第一のソフトウェアコンポーネントを機能させるために前記第二のサブコンポーネントが必要であるという決定に基づいて、前記第二のサブコンポーネントを無効化しなくてもよい。一又は複数の実施形態において、工程８０８は、コンポーネントシーリングサブシステム３０４と同一の又は類似のコンポーネントシーリングサブシステムによって行われなくてもよい。
【０１６０】
工程８１０において、第二のサブコンポーネントが不正使用可能又は潜在的に不正使用可能となることを引き起こす前記第二のサブコンポーネントと関連付けられたコードセットを特定してもよい。一又は複数の実施形態において、工程８１０は、コンポーネントシーリングサブシステム３０４と同一の又は類似するコンポーネントシーリングサブシステムによって行われてもよい。
【０１６１】
工程８１２において、前記第二のサブコンポーネントから、前記コードセットが削除されてもよい。例えば、前記第二のサブコンポーネントがもはや前記コードセットを含まないよう、前記コードセットが前記第二のサブコンポーネントから削除されてもよい。。一又は複数の実施形態において、工程８１２は、コンポーネントシーリングサブシステム３０４と同一の又は類似するコンポーネントシーリングサブシステムによって行われてもよい。
【０１６２】
工程８１４において、完全性の情報が、前記第一のソフトウェアコンポーネントに対して生成されてもよい。例えば、前記第一のサブコンポーネントが無効化された後、前記コードセットが前記第二のサブコンポーネントから削除された後、及び前記第一のソフトウェアコンポーネントが前記コンポーネント生成環境から区別されるコンポーネントレポジトリに配置される前に、前記完全性の情報が、前記第一のソフトウェアコンポーネントに対して生成されてもよい。例えば、前記第一のソフトウェアに対して前記完全性の情報が生成された後に、前記完全性の情報は、前記第一のソフトウェアコンポーネントが修正されたかどうかを決定するために用いられてもよい。一又は複数の実施形態において、工程８１４は、コンポーネントエクスポートサブシステム３０６と同一の又は類似するコンポーネントエクスポートサブシステムによって行われてもよい。
【０１６３】
工程８１６において、前記第一のソフトウェアコンポーネント及び前記完全性の情報は、前記コンポーネントレポジトリに配置されてもよい。一又は複数の実施形態において、工程８１６は、コンポーネントエクスポートサブシステム３０６と同一の又は類似するコンポーネントエクスポートサブシステムによって行われてもよい。
【０１６４】
図９は、本発明の一実施形態における、データパケットの異なるスライスに、送信される異なる情報を組合わせ、及び情報のセキュアな送信のために異なる暗号化スキームを用いて前記スライスを暗号化する方法のフローチャートを例示する図である。以下で説明する方法９００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法９００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図９に示されて以下で説明される方法９００の工程の順序は限定するよう意図されていない。
【０１６５】
一部の実施形態において、方法９００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行され得る。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法９００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法９００の工程の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０１６６】
工程９０２において、送信される第一の情報及び第二の情報が、受信されてもよい。前記第一の情報は、第一の送信側コンポーネントと関連付けられてもよい。前記第二の情報は、第二の送信側コンポーネントと関連付けられてもよい。一又は複数の実施形態において、工程９０２は、情報送信サブシステム４０２と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１６７】
工程９０４において、第一のデータスライスは、第一の暗号化スキームに基づき生成されてもよい。前記第一のデータスライスは、前記第一のデータスライスが少なくとも前記第一の情報の第一の部分を表すように生成されてもよい。例えば、前記第一の情報の前記第一の部分は、前記第一のデータスライスを生成するため、前記第一の暗号化スキームを用いて暗号化されてもよい。一又は複数の実施形態において、工程９０４は、情報送信サブシステム４０２と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１６８】
工程９０６において、第二のデータスライスは、第二の暗号化スキームに基づき生成されてもよい。前記第二のデータスライスは、前記第二のデータスライスが少なくとも前記第二の情報の第一の部分を表すように生成されてもよい。例えば、前記第二の情報の前記第一の部分は、前記第二のデータスライスを生成するため、前記第二の暗号化スキームを用いて暗号化されてもよい。一又は複数の実施形態において、工程９０６は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１６９】
工程９０８において、第一のヘッダは、第三の暗号化スキームに基づいて生成されてもよい。前記第一のヘッダが前記第一のデータスライスに対する前記第一の暗号化スキームを、及び前記第二のデータスライスに対する前記第二の暗号化スキームを規定するように、前記第一のヘッダが生成されてもよい。例えば、前記第一のヘッダは、前記第三の暗号化スキームを用いて生成されてもよい。一又は複数の実施形態において、工程９０８は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１７０】
一部の実施形態において、工程９０８に関し、前記第一のヘッダがデータパケット内の前記第一のデータスライスの位置、データパケット内の前記第二のデータスライスの位置、又はデータパケット内の他のデータスライスの位置を規定するように、前記第一のヘッダが生成されてもよい。
【０１７１】
ある実施形態において、工程９０８に関し、第一のハンドシェイクリクエストが、前記第三の暗号化スキームに基づいて第一のコンピュータシステムで（そこでは、前記第一のヘッダが生成される）生成されてもよい。前記第一のハンドシェイクリクエストは、第二のコンピュータシステムへ送信されてもよい。第一のレスポンスは、前記第二のコンピュータシステムから受信してもよい。例えば、前記第一のレスポンスは、ヘッダを暗号化することに対し、前記第三の暗号化スキームの使用を確認してもよい。前記第三の暗号化スキームは、前記第三の暗号化スキームの使用を確認する前記第一のレスポンスに基づいて前記第一のヘッダを暗号化するために用いられてもよい。一部の実施形態において、前記第二のコンピュータシステムによる前記第二のコンピュータシステムに送信されたデータパケットの処理の失敗に基づいて（例えば、前記第一のヘッダの生成の前に）、リセットリクエストは、前記第一のコンピュータシステムで受信されてもよい。例えば、前記第一のハンドシェイクリクエストは、前記リセットリクエストに基づいて生成されてもよい。一又は複数の実施形態において、このような工程は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１７２】
様々な実施形態において、工程９０８に関し、第一のハンドシェイクリクエストが、第四の暗号化スキームに基づいて第一のコンピュータシステムで（そこでは、前記第一のヘッダが生成される）生成されてもよい。前記第一のハンドシェイクリクエストは、第二のコンピュータシステムへ送信されてもよい。第一のレスポンスは、前記第二のコンピュータシステムから受信されてもよい。前記第一のレスポンスは、前記第三の暗号化スキームの使用を規定してもよい。例えば、前記第一のレスポンスは、ヘッダインデックスを規定することで、前記第三の暗号化スキームの使用を規定してもよい。第二のハンドシェイクリクエストは、前記第三の暗号化スキームに対応するヘッダインデックスに基づき前記第三の暗号化スキームを用いて生成されてもよい。前記第二のハンドシェイクリクエストは、前記第二のコンピュータシステムへ送信されてもよい。第二のレスポンスは、前記第二のコンピュータシステムから受信されてもよい。例えば、前記第二のレスポンスは、ヘッダを暗号化することに対し、前記第三の暗号化スキームの使用を確認してもよい。前記第三の暗号化スキームは、前記第三の暗号化スキームの使用を確認する前記第二のレスポンスに基づいて前記第一のヘッダを暗号化するために用いられてもよい。一又は複数の実施形態において、このような工程は、情報送信サブシステム４０２と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１７３】
工程９１０において、第一のデータパケットが生成されてもよい。前記第一のデータパケットが、前記第一のヘッダ、前記第一のデータスライス、前記第二のデータスライス、ランダムに生成されるフィラーデータ、又はこれら以外のデータを含むように、前記第一のデータパケットが生成されてもよい。一部の実施形態において、前記第一のデータパケットが、前記第一のデータスライスに対して前記第一のヘッダによって規定される前記第一のデータパケット内の位置にある前記第一のデータスライス、前記第二のデータスライス、若しくは他のデータスライス、前記第二のデータスライス、又は他のデータスライスを含むように、前記第一のデータパケットが生成されてもよい。一又は複数の実施形態において、工程９１０は、情報送信サブシステム４０２と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１７４】
工程９１２において、第三のデータスライスは、前記第一の暗号化スキームに基づき生成されてもよい。前記第三のデータスライスは、前記第三のデータスライスが少なくとも前記第一の情報の第二の部分を表すように生成されてもよい。例えば、前記第一の情報の前記第二の部分は、前記第三のデータスライスを生成するため、前記第一の暗号化スキームを用いて暗号化されてもよい。一又は複数の実施形態において、工程９１２は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１７５】
工程９１４において、第四のデータスライスは、前記第二の暗号化スキームに基づき生成されてもよい。前記第四のデータスライスは、前記第四のデータスライスが少なくとも前記第二の情報の第二の部分を表すように生成されてもよい。例えば、前記第二の情報の前記第二の部分は、前記第四のデータスライスを生成するために、前記第二の暗号化スキームを用いて暗号化されてもよい。一又は複数の実施形態において、工程９１４は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１７６】
工程９１６において、第二のヘッダは、第三の暗号化スキームに基づいて生成されてもよい。前記第二のヘッダが、前記第三のデータスライスに対して前記第一の暗号化スキームを規定し、また、前記第四のデータスライスに対して前記第二の暗号化スキームを規定するように、前記第二のヘッダを生成してもよい。例えば、前記第二のヘッダは、前記第三の暗号化スキームを用いて生成されてもよい。一又は複数の実施形態において、工程９１６は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１７７】
工程９１８において、第二のデータパケットが生成されてもよい。前記第二のデータパケットが、前記第二のヘッダ、前記第三のデータスライス、前記第四のデータスライス、ランダムに生成されたフィラーデータ、又はこれら以外のデータを含むように、前記第二のデータパケットが生成されてもよい。一部の実施形態において、前記第二のデータパケットは、前記第二のデータパケットが前記第三のデータスライスに対して前記第二のヘッダにより規定される前記第二のデータ内の位置にある前期第三のデータスライス、前記第四のデータスライス、若しくは他のデータスライス、前記第四のデータスライス、又はこれら以外のデータスライスを含むように生成されてもよい。一又は複数の実施形態において、工程９１８は、情報送信サブシステム４０２と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１７８】
ある実施形態において、工程９０８、工程９１０、及び工程９１８に関して、前記第一のデータパケットは、前記第一のデータパケットが前記第一のデータパケット内の第一の位置にある前記第一のヘッダを含むように生成されてもよい。この第一のヘッダは、当該第一のヘッダが位置する前記第二のヘッダに対して前記第二のデータパケット内の第二の位置を規定するように生成されてもよい。前記第二のデータパケットは、前記第二のデータパケットが前記第二のデータパケットを前記第一のヘッダで規定される前記第二の位置で含むように生成されてもよい。
【０１７９】
工程９２０において、前記第一のデータパケット及び前記第二のデータパケットが送信されてもよい。例えば、前記第一のデータパケット及び前記第二のデータパケットは、第一のコンピュータシステム（そこでは、前記第一のデータパケット及び前記第二のデータパケットが生成される）から第二のコンピュータシステムへ送信されてもよい。一又は複数の実施形態において、工程９２０は、情報送信サブシステム４０２と同一の又は類似する通信サブシステムによって行われてもよい。
【０１８０】
図１０は、本発明の一実施形態において、異なる暗号化スキームを用いて暗号化された異なる情報に関連したデータスライスを有するデータパケットを処理する方法のフローチャートを例示する図である。以下で説明する方法１０００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法１０００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図１０に示されて以下で説明される方法１０００の工程の順序は、限定するよう意図されていない。
【０１８１】
一部の実施形態において、方法１０００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行され得る。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法１０００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法１０００の段階の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０１８２】
工程１００２において、第一のデータパケットが受信されてもよい。前記第一のデータパケットは、第一のヘッダ、第一のデータスライス、第二のデータスライス、又は他のデータを含んでもよい。前記第一のデータスライスは、少なくとも第一の情報の第一の部分を表してもよい。前記第二のデータスライスは、少なくとも第二の情報の第一の部分を表してもよい。前記第一の情報は、第一の送信側コンポーネントと関連付けられてもよい。前記第二の情報は、第二の送信側コンポーネントと関連付けられてもよい。前記第二の送信側コンポーネントは、前記第一の送信側コンポーネントと異なってもよい。一又は複数の実施形態において、工程１００２は、情報受信サブシステム４０４と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１８３】
工程１００４において、第二のデータパケットが受信されてもよい。前記第二のデータパケットは、第二のヘッダ、第三のデータスライス、第四のデータスライス、又は他のデータを含んでもよい。前記第三のデータスライスは、少なくとも前記第一の情報の第二の部分を表してもよい。前記第四のデータスライスは、少なくとも前記第二の情報の第二の部分を表してもよい。一部の実施形態において、前記第一のヘッダは、前記第一のデータパケット内の第一の位置に位置してもよい。前記第一のヘッダは、位置する前記第二のヘッダに対して、前記第二のデータパケット内の第二の位置を規定してもよい。一又は複数の実施形態において、工程１００４は、情報受信サブシステム４０４と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１８４】
工程１００６において、第一の暗号化スキームが、前記第一のデータスライスを暗号化するのに用いられる暗号化スキームとして特定されてもよい。第二の暗号化スキームが、第二のデータスライスを暗号化するために用いられる暗号化スキームとして特定される。前記第一の暗号化スキームの特定、又は前記第二の暗号化スキームの特定は、前記第一のヘッダに基づく。一又は複数の実施形態において、工程１００６は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１８５】
ある実施形態において、工程１００６に関し、暗号化された前記第一のデータスライスに用いられた暗号化スキームとして前記第一の暗号化スキームを特定するため、前記第二のデータスライスを暗号化するのに用いられる暗号化スキームとして前記第二の暗号化スキームを特定するため、又は他のデータスライスを暗号化するために用いられる他の暗号化スキームを特定するために、第三の暗号化スキームを用いて、前記第一のヘッダが、処理される。一部の実施形態において、前記第一のデータパケットを受信する前に、受信したデータパケットを処理するのに失敗したことに基づいて、リセットリクエストが、前記第一のコンピュータシステム（そこでは、前記第一のヘッダが処理される）で生成される。前記リセットリクエストは、第二のコンピュータシステムに送信される。前記第二のコンピュータシステムから前記第一のデータパケットが、続いて受信されることになる。ハンドシェイクリクエストは、前記リセットリクエストに基づいて、前記第二のコンピュータシステムから前記第一のコンピュータシステムで受信されてもよい。前記ハンドシェイクリクエストは、前記第三の暗号化スキームに基づき生成されてもよい。ヘッダを生成することに対し、前記第三の暗号化スキームの使用を確認するレスポンスが生成されてもよい。前記レスポンスは前記第二のコンピュータシステムに送信されてもよい。例えば、前記第一のヘッダは、前記レスポンスに基づいて前記第三の暗号化スキームを用いて生成されてもよい。一又は複数の実施形態において、このような工程は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１８６】
工程１００８において、前記第一の情報の第一の部分を取得するために、前記第一のデータスライスは、前記第一の暗号化スキームに基づいて、前記第一のデータスライスが処理されてもよい。一又は複数の実施形態において、工程１００８は、情報受信サブシステム４０４と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１８７】
工程１０１０において、前記第二の情報の前記第一の部分を取得するため、前記第二の暗号化スキームに基づいて前記第二のデータスライスを処理してもよい。一又は複数の実施形態において、工程１０１０は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１８８】
工程１０１２においては、前記第一の暗号化スキームが、前記第三のデータスライスを暗号化するために用いられる暗号化スキームとして特定されてもよく、第二の暗号化スキームが、第四のデータスライスを暗号化するために用いられる暗号化スキームとして特定されてもよい。前記第一の暗号化スキームの特定又は前記第二の暗号化スキームの特定は、前記第二のヘッダに基づいて行われる。一又は複数の実施形態において、工程１０１２は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１８９】
様々な実施形態において、工程１０１２に関し、暗号化された前記第三のデータスライスに用いられた暗号化スキームとして前記第一の暗号化スキームを特定するため、前記第四のデータスライスを暗号化するのに用いられる暗号化スキームとして前記第二の暗号化スキームを特定するため、又は他のデータスライスを暗号化するために用いられる他の暗号化スキームを特定するために、前記第二のヘッダが第三の暗号化スキームを用いて処理されてもよい。一又は複数の実施形態において、このような工程は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１９０】
工程１０１４において、前記第一の情報の前記第二の部分を取得するため、前記第一の暗号化スキームに基づいて、前記第三のデータスライスが処理されてもよい。一又は複数の実施形態において、工程１０１４は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１９１】
工程１０１６において、前記第二の情報の前記第二の部分を取得するため、前記第二の暗号化スキームに基づいて、前記第四のデータスライスが処理されてもよい。一又は複数の実施形態において、工程１０１６は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１９２】
工程１０１８において、前記第一の受信側コンポーネントに対して前記第一の情報を形成するため前記第一の情報の前記第一の部分及び前記第一の情報の前記第二の部分が組合わされてもよい。一又は複数の実施形態において、工程１０１８は、情報受信サブシステム４０４と同一の又は類似する通信サブシステムによって行われてもよい。
【０１９３】
工程１０２０において、前記第二の受信側コンポーネントに対して前記第二の情報を形成するため前記第二の情報の前記第二の部分及び前記第二の情報の前記第二の部分が組合わされてもよい。一又は複数の実施形態において、工程１０２０は、情報受信サブシステム４０４と同一の、又は類似する通信サブシステムによって行われてもよい。
【０１９４】
図１１は、本発明の一実施形態における、コンポーネントのサブコンポーネントを制限し、コンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換し、及びネットワークを介して、コンポーネントに又は当該コンポーネントから送信された情報をセキュア化する又は隠す（Ｏｂｓｃｕｒｅ）ことにより、コンポーネント及び情報のセキュリティと完全性を促進する方法のフローチャートを例示する図である。
【０１９５】
以下で説明する方法１１００の工程、説明のためのものに過ぎない。一部の実施形態において、方法１１００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図１１に示されて以下で説明される方法１１００の工程の順序は、発明の内容を限定することを意図していない。
【０１９６】
一部の実施形態において、方法１１００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行され得る。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法１１００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法１１００の段階の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０１９７】
工程１１０２において、ソフトウェアコンポーネントは、コンポーネント生成環境で生成されてもよい。一又は複数の実施形態において、工程１１０２は、コンポーネントオーサリングサブシステム３０２と同一の、又は類似するコンポーネントオーサリングサブシステムによって行われてもよい。
【０１９８】
工程１１０４において、前記ソフトウェアコンポーネントに侵入するために、不正使用可能又は潜在的に不正使用可能な前記ソフトウェアコンポーネントのサブコンポーネントが無効化されてもよい。一又は複数の実施形態において、工程１１０４は、図８で示される方法８００の工程８０２、工程８０４、工程８０６、工程８０８、工程８１０、又は工程８１２のうちの一又は複数を含む。
【０１９９】
工程１１０６において、前記ソフトウェアコンポーネントは、ランタイム環境から区別されるコンポーネントレポジトリに保存されてもよい。例えば、前記ランタイム環境は、対応するソフトウェアコンポーネントが実行される生産環境である。一又は複数の実施形態において、工程１１０６は、図８で示される方法８００の工程８１４及び工程８１６のうちの一又は複数を含む。
【０２００】
工程１１０８において、前記ランタイム環境で実行している対応するソフトウェアコンポーネントは、第一のイベントに基づいて、保存されたソフトウェアコンポーネントと置換されてもよい。一部の実施形態において、前記第一のイベントには、一又は複数の置換時間間隔の経過、使用閾値に到達した又は使用閾値を超えた前記対応するソフトウェアコンポーネントの使用回数、前記対応するソフトウェアのアップデートバージョンの使用可能性、及び／又は他のイベントが含まれてもよい。一又は複数の実施形態において、工程１１０８は、図７で示される方法７００の工程７０２、工程７０４、工程７０６、工程７０８、工程７１０、工程７１２、工程７１４、又は工程７１６のうち一又は複数を含む。
【０２０１】
工程１１１０において、データパケットは、前記ソフトウェアコンポーネントによって生成されてもよい。該生成されたデータパケットのそれぞれは、異なるコンポーネントを関連付けられた異なる情報の部分を表すデータスライスを含んでもよい。一部の実施形態において、前記ソフトウェアコンポーネントは、情報送信サブシステム４０２及び／又は情報受信サブシステム４０４と同一の、又は類似する情報送信サブシステム、及び／又は情報受信サブシステムを含むソフトウェアコンポーネントのインスタンスを含んでもよい。一又は複数の実施形態において、工程１１１０は、図９に示される方法９００の工程９０２、工程９０４、工程９０６、工程９０８、工程９１０、工程９１２、工程９１４、工程９１６、又は工程９１８のうち一又は複数を含んでもよい。
【０２０２】
工程１１１２において、受信したデータパケットは、前記ソフトウェアコンポーネントで処理されてもよい。該受信したデータパケットのそれぞれは、異なるコンポーネントと関連付けられた異なる情報の部分を表すデータスライスを含んでもよい。一部の実施形態において、前記ソフトウェアコンポーネントは、情報送信サブシステム４０２及び／又は情報受信サブシステム４０４と同一の、又は類似する情報送信サブシステム、及び／又は情報受信サブシステムを含むソフトウェアコンポーネントのインスタンスを含んでもよい。一又は複数の実施形態において、工程１１１２は、図１０に示される方法１０００の工程１００２、工程１００４、工程１００６、工程１００８、工程１０１０、工程１０１２、工程１０１４、工程１０１６、又は工程１０１８のうち一又は複数を含んでもよい。
【０２０３】
図１２は、本発明の一実施形態における、コンポーネントのサブコンポーネントを制限し、及びコンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換することにより、コンポーネントと情報のセキュリティ及び完全性を促進する方法のフローチャートを例示する図である。
【０２０４】
以下で説明する方法１２００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法１２００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図１２に示されて以下で説明される方法１２００の工程の順序は、発明の内容を限定することを意図していない。
【０２０５】
一部の実施形態において、方法１２００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行され得る。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法１２００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法１２００の段階の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０２０６】
工程１２０２において、ソフトウェアコンポーネントは、コンポーネント生成環境で生成されてもよい。一又は複数の実施形態において、工程１２０２は、コンポーネントオーサリングサブシステム３０２と同一の又は類似するコンポーネントオーサリングサブシステムによって行われてもよい。
【０２０７】
工程１２０４において、前記ソフトウェアコンポーネントに侵入するために、不正使用される、又は潜在的に不正使用されうる前記ソフトウェアコンポーネントのサブコンポーネントが無効化されてもよい。一又は複数の実施形態において、工程１２０４は、図８で示される方法８００の工程８０２、工程８０４、工程８０６、工程８０８、工程８１０、又は工程８１２のうちの一又は複数を含む。
【０２０８】
工程１２０６において、前記ソフトウェアコンポーネントは、ランタイム環境から区別されるコンポーネントレポジトリに保存されてもよい。例えば、前記ランタイム環境は、対応するソフトウェアコンポーネントが実行される生産環境である。一又は複数の実施形態において、工程１２０６は、図８で示される方法８００の工程８１４及び工程８１６のうちの一又は複数を含む。
【０２０９】
工程１２０６において、前記ランタイム環境で実行している対応するソフトウェアコンポーネントは、第一のイベントに基づいて、保存されたソフトウェアコンポーネントと置換されてもよい。一部の実施形態において、前記第一のイベントには、一又は複数の置換時間間隔の経過、使用閾値に到達した又はを超えた前記対応するソフトウェアコンポーネントの使用回数、前記対応するソフトウェアのアップデートバージョンの使用可能性、及び／又は他のイベントが含まれてもよい。一又は複数の実施形態において、工程１２０８は、図７で示される方法７００の工程７０２、工程７０４、工程７０６、工程７０８、工程７１０、工程７１２、工程７１４、又は工程７１６のうち一又は複数を含む。
【０２１０】
図１３は、本発明の一実施形態における、コンポーネントを対応する既知の良好なソフトウェアコンポーネントで置換し、及びネットワークを介して、コンポーネントに又は当該コンポーネントから伝達された情報をセキュア化する又は隠す（Ｏｂｓｃｕｒｅ）ことにより、コンポーネント及び情報のセキュリティと完全性を促進する方法のフローチャートを例示する図である。
【０２１１】
以下で説明する方法１３００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法１３００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図１３に示されて以下で説明される方法１３００の工程の順序は、発明の内容を限定することを意図していない。
【０２１２】
一部の実施形態において、方法１３００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）が実装される。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法１３００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法１３００の段階の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０２１３】
工程１３０２において、ランタイム環境で実行している対応するソフトウェアコンポーネントは、前記ランタイム環境と区別されるコンテントレポジトリに保存されるソフトウェアコンポーネントと置換されてもよい。前記対応するソフトウェアコンポーネントの該置換は、第一のイベントに基づく。一部の実施形態において、前記第一のイベントには、一又は複数の置換時間間隔の経過、使用閾値に到達した又はを超えた前記対応するソフトウェアコンポーネントの使用回数、前記対応するソフトウェアのアップデートバージョンの使用可能性、及び／又は他のイベントが含まれうる。一又は複数の実施形態において、工程１３０２は、図７で示される方法７００の工程７０２、工程７０４、工程７０６、工程７０８、工程７１０、工程７１２、工程７１４、又は工程７１６のうち一又は複数を含む。
【０２１４】
工程１３０４において、データパケットは、前記ソフトウェアコンポーネントによって生成されてもよい。該生成されたデータパケットのそれぞれは、異なるコンポーネントを関連付けられた異なる情報の部分を表すデータスライスを含んでもよい。一部の実施形態において、前記ソフトウェアコンポーネントは、情報送信サブシステム４０２及び／又は情報受信サブシステム４０４と同一の、又は類似する情報送信サブシステム、及び／又は情報受信サブシステムを含むソフトウェアコンポーネントのインスタンスを含んでもよい。一又は複数の実施形態において、工程１３０４は、図９に示される方法９００の工程９０２、工程９０４、工程９０６、工程９０８、工程９１０、工程９１２、工程９１４、工程９１６、又は工程９１８のうち一又は複数を含んでもよい。
【０２１５】
工程１３０６において、受信したデータパケットは、前記ソフトウェアコンポーネントで処理されてもよい。該受信したデータパケットのそれぞれは、異なるコンポーネントと関連付けられた異なる情報の部分を表すデータスライスを含んでもよい。一部の実施形態において、前記ソフトウェアコンポーネントは、情報送信サブシステム４０２及び／又は情報受信サブシステム４０４と同一の、又は類似する情報送信サブシステム、及び／又は情報受信サブシステムを含むソフトウェアコンポーネントのインスタンスを含んでもよい。一又は複数の実施形態において、工程１３０６は、図１０に示される方法１０００の工程１００２、工程１００４、工程１００６、工程１００８、工程１０１０、工程１０１２、工程１０１４、工程１０１６、又は工程１０１８のうち一又は複数を含んでもよい。
【０２１６】
図１４は、本発明の一実施形態における、コンポーネントのサブコンポーネントを制限し、及びネットワークを介して、コンポーネントに又は当該コンポーネントから伝達された情報をセキュア化する又は隠す（Ｏｂｓｃｕｒｅ）ことにより、コンポーネント及び情報のセキュリティと完全性を促進する方法のフローチャートを例示する図である。
【０２１７】
以下で説明する方法１４００の工程は、説明のためのものに過ぎない。一部の実施形態において、方法１４００は、説明されていない一又は複数の追加的な工程を備えて実現されてもよく、説明する工程の一又は複数を省略して実現されてもよい。また、図１４に示されて以下で説明される方法１４００の工程の順序は、発明の内容を限定することを意図していない。
【０２１８】
一部の実施形態において、方法１４００は、一又は複数の処理装置（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズム）において実行され得る。この一又は複数の処理装置には、電子ストレージメディアに電子的に格納された命令に応答して、方法１４００の工程の一部又は全部を実行する一又は複数の装置を備えてもよい。この一又は複数の処理装置には、方法１４００の段階の一又は複数を実行するために設計されたハードウェア、ファームウェア、及び／又はソフトウェアで構成された一又は複数の装置が含まれる。
【０２１９】
工程１４０２において、ソフトウェアコンポーネントは、コンポーネント生成環境で生成されてもよい。一又は複数の実施形態において、工程１４０２は、コンポーネントオーサリングサブシステム３０２と同一の又は類似するコンポーネントオーサリングサブシステムによって行われてもよい。
【０２２０】
工程１４０４において、前記ソフトウェアコンポーネントに侵入するために、不正使用される、又は潜在的に不正使用されうる前記ソフトウェアコンポーネントのサブコンポーネントが無効化されてもよい。一又は複数の実施形態において、工程１４０４は、図８で示される方法８００の工程８０２、工程８０４、工程８０６、工程８０８、工程８１０、又は工程８１２のうちの一又は複数を含む。
【０２２１】
工程１４０６において、前記ソフトウェアコンポーネントは、ランタイム環境から区別されるコンポーネントレポジトリに保存されてもよい。一又は複数の実施形態において、工程１４０６は、図８で示される方法８００の工程８１４及び工程８１６のうちの一又は複数を含む。
【０２２２】
工程１４０８において、前記ソフトウェアコンポーネントは、前記ランタイム環境でインスタンス化されてもよい。例えば、前記ソフトウェアコンポーネントは、前記コンポーネントレポジトリから取得されて、その後前記ランタイム環境でインスタンス化される。続いて、前記ソフトウェアコンポーネントは、前記ランタイム環境のランタイム実行サブシステムで実行されてもよい。一又は複数の実施形態において、工程１４０８は、コンポーネントマネージャサブシステム１１２と同一の又は類似するコンポーネントマネージャサブシステムによって行われてもよい。
【０２２３】
工程１４１０において、データパケットは、前記ソフトウェアコンポーネントによって生成されてもよい。該生成されたデータパケットのそれぞれは、異なるコンポーネントを関連付けられた異なる情報の部分を表すデータスライスを含みうる。一部の実施形態において、前記ソフトウェアコンポーネントは、情報送信サブシステム４０２及び／又は情報受信サブシステム４０４と同一の、又は類似する情報送信サブシステム、及び／又は情報受信サブシステムを含むソフトウェアコンポーネントのインスタンスを含んでもよい。一又は複数の実施形態において、工程１４１０は、図９に示される方法９００の工程９０２、工程９０４、工程９０６、工程９０８、工程９１０、工程９１２、工程９１４、工程９１６、又は工程９１８のうち一又は複数を含んでもよい。
【０２２４】
工程１４１２において、受信したデータパケットは、前記ソフトウェアコンポーネントで処理されてもよい。該受信したデータパケットのそれぞれは、異なるコンポーネントと関連付けられた異なる情報の部分を表すデータスライスを含んでもよい。一部の実施形態において、前記ソフトウェアコンポーネントは、情報送信サブシステム４０２及び／又は情報受信サブシステム４０４と同一の、又は類似する情報送信サブシステム、及び／又は情報受信サブシステムを含むソフトウェアコンポーネントのインスタンスを含んでもよい。一又は複数の実施形態において、工程１４１２は、図１０に示される方法１０００の工程１００２、工程１００４、工程１００６、工程１００８、工程１０１０、工程１０１２、工程１０１４、工程１０１６、又は工程１０１８のうち一又は複数を含んでもよい。
【０２２５】
一部の実施形態において、図に示された様々なコンピュータ及びサブシステムは、本明細書に記載された機能を行うようプログラムされた一又は複数のコンピューティング装置を含んでもよい。前記コンピューティング装置は、一又は複数の電子ストレージ、一又は複数のコンピュータプログラムでプログラムされた一又は複数の物理プロセッサ、及び／又は他のコンポーネントを含んでもよい。前記コンピューティング装置は、ネットワーク及び／又は他の計算機プラットフォームと情報を交換することを可能にする通信線、又はポートを含んでもよい。コンピューティング装置は、共同して動作してコンピューティング装置の機能を提供する複数のハードウェア、ソフトウェア、及び／又はファームウェア・コンポーネントを含んでもよい。例えば、コンピューティング装置は、コンピューティング装置として共同して動作する多数の計算機プラットフォームによって実装されてもよい。前記コンピュータ及びサブシステムの各々は、それぞれ所定の保護手段を提供し、又は他のコンピュータ及びサブシステムと共同して本明細書で記載した保護手段の組合わせを提供してもよい。
【０２２６】
前記電子ストレージには、情報を電子的に記憶する持続性ストレージ・メディアが含んでもよい。前記電子ストレージの電子ストレージメディアには、前記サーバと一体に（すなわち、実質的に着脱不能に）設けられたシステムストレージ、及び、例えばポート（例えばＵＳＢポート、ファイヤーワイヤーポート等）やドライブ（例えばディスクドライブ等）を介して前記サーバに着脱可能に接続されたリムーバブルストレージの少なくとも一方が含んでもよい。前記電子ストレージには、光学的に読み取り可能な記憶メディア（例えば光学ディスク等）、磁気的に読み取り可能な記憶メディア（例えば磁気テープ、磁気ハードドライブ、フロッピードライブ等）、電荷型ストレージメディア（例えばＥＥＰＲＯＭ、ＲＡＭ等）、ソリッドステート・ストレージメディア（例えばフラッシュドライブ等）、及び／又は前記以外の電子的に読み取り可能なストレージメディアが含んでもよい。前記電子ストレージには、一又は複数の仮想ストレージリソース（例えば、クラウドストレージ、仮想プライベートネットワーク、及び／又はこれら以外の仮想ストレージリソース）が含んでもよい。前記電子ストレージは、本明細書に記載した、ソフトウェアアルゴリズム、前記プロセッサで決定された情報、前記サーバから受信した情報、クライアントコンピューティングプラットフォームから受信した情報、又はサーバを機能させることを可能とする他の情報を含んでもよい。
【０２２７】
前記プロセッサは、前記サーバの機能を処理する情報を提供するようプログラムされてもよい。このように、前記プロセッサは、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、及び／又は電子的に情報を処理する前記以外のメカニズムのうちの一又は複数を含んでもよい。一部の実施形態において、前記プロセッサは複数の処理装置を含んでもよい。これらの処理装置は物理的に同一の装置内に配置されてもよく、又は共同して動作する複数の装置の処理機能を前記プロセッサが代表してもよい。前記プロセッサは、サブシステム１１２、１１６、１１８、３０２、３０４、４０２、４０４又は他のサブシステムの本明細書で記載された機能を発揮するコンピュータプログラムの命令を実行するようプログラムされてもよい。前記プロセッサは、モジュールを実行する際に、ソフトウェア、ハードウェア、ファームウェア、何らかの方法で組み合わされたソフトウェア、ハードウェア、又はファームウェア、及び／又は前記プロセッサの処理能力を構成する他の機構を用いてもよい。
【０２２８】
以下の異なるサブシステム１１２、１１６、１１８、３０２、３０４、４０２、又は４０４によって提供される機能の記述は説明のためのものであり、限定を意図したものではない。サブシステム１１２、１１６、１１８、３０２、３０４、４０２、又は４０４はいずれも記述されるよりも多くの、又は少ない機能を提供してもよい点留意すべきである。例えば、サブシステム１１２、１１６、１１８、３０２、３０４、４０２、又は４０４のうちの一又は複数を取り除き、その機能の一部又はすべてを、サブシステム１１２、１１６、１１８、３０２、３０４、４０２、又は４０４のうちの他のサブシステムで提供してもよい。他の例として、サブシステム１１２、１１６、１１８、３０２、３０４、４０２、又は４０４のうちの一つに帰せられる機能の一部又は全てを発揮するよう追加的なサブシステムがプログラムされてもよい。
【０２２９】
現時点で最も実用的であり好ましいと考えられる態様に基づいて、本発明を例示のために詳細に説明したが、このような詳細な説明は例示のみを目的としたものである。本発明の技術は開示された実施形態に限定されるものではなく、むしろ添付された特許請求の範囲の趣旨及び範囲に入る変形や均等な配置も本発明に含められることが意図されている。例えば、本発明は、可能な範囲で、いずれの実施形態の一又は複数の特徴が他の実施形態のいずれの一又は複数の特徴と組合わせられることが考えられることが理解される。
【図１】
0006382196.tif 000002
【図２】
0006382196.tif 000003
【図３】
0006382196.tif 000004
【図４Ａ】
0006382196.tif 000005
【図４Ｂ】
0006382196.tif 000006
【図５】
0006382196.tif 000007
【図６】
0006382196.tif 000008
【図７】
0006382196.tif 000009
【図８】
0006382196.tif 000010
【図９】
0006382196.tif 000011
【図１０】
0006382196.tif 000012
【図１１】
0006382196.tif 000013
【図１２】
0006382196.tif 000014
【図１３】
0006382196.tif 000015
【図１４】
0006382196.tif 000016