JP2006350850A - ソフトウェア・パッケージを再構成する方法、装置、プログラム - Google Patents

ソフトウェア・パッケージを再構成する方法、装置、プログラム Download PDF

Info

Publication number
JP2006350850A
JP2006350850A JP2005178382A JP2005178382A JP2006350850A JP 2006350850 A JP2006350850 A JP 2006350850A JP 2005178382 A JP2005178382 A JP 2005178382A JP 2005178382 A JP2005178382 A JP 2005178382A JP 2006350850 A JP2006350850 A JP 2006350850A
Authority
JP
Japan
Prior art keywords
combination
package
components
software package
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005178382A
Other languages
English (en)
Other versions
JP4126705B2 (ja
Inventor
Naoshi Yamamoto
直志 山本
Naoki Yamagoshi
直樹 山腰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2005178382A priority Critical patent/JP4126705B2/ja
Priority to US11/422,958 priority patent/US20060288221A1/en
Publication of JP2006350850A publication Critical patent/JP2006350850A/ja
Application granted granted Critical
Publication of JP4126705B2 publication Critical patent/JP4126705B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 所定のコンポーネントからソフトウェア・パッケージをユーザが再構成するにあたって、シングルパッケージを提供する提供者が保証したパッケージを顧客に提供することが可能なパッケージの構成方法、装置、プログラムを提供することである。
【解決手段】 ソフトウェア・パッケージを再構成する方法であり、一次ソフトウェア・パッケージは複数のコンポーネントと、当該コンポーネントの許可された組み合わせに関する組合せ情報とを備え、前記複数のコンポーネントのうち、ある組合せの選択を受け、前記組合せ情報に基づいて、前記選択された組合せのコンポーネントによるソフトウェア・パッケージの再構成を許可するか否かを判断し、前記再構成を許可する判断に応じて、前記選択された組合せのコンポーネントを備える二次ソフトウェア・パッケージを再構成する方法。
【選択図】 図3

Description

本発明は、ソフトウェア・パッケージを再構成する方法、装置、プログラムに関する。さらに具体的には、コンピュータにて使用されるソフトウェアコンポーネントを組み合わせてソフトウェア・パッケージを再構成するための方法、装置、プログラムに関する。
近年のソフトウェアの多様化に伴い、ソフトウェアのパッケージは多数のコンポーネントから構成されるようになっている。しかし、ソフトウェアの使用者がその全てのコンポーネントを使用することは希であり、ソフトウェアを提供するベンダーは、顧客の必要の度合いが高いコンポーネントだけを含むソフトウェア・パッケージ(以下、適宜、「パッケージ」)を顧客に配布することが必要とされている。
通常、一次提供者となるベンダーは、顧客に最適なパッケージを構成する際には、この顧客のニーズにあったソフトウェア・プログラム(以下「コンポーネント」)を選択して、パッケージを構成する。
例えば、ベンダーがオペレーティング・システムをパッケージとして提供する際には、このオペレーティング・システムが提供する言語により、必要となるコンポーネントが異なる。したがって、英語、日本語、フランス語対応の各コンポーネントのうち、顧客に適した一言語のコンポーネントを選択し、全体を別々のパッケージとして提供する場合が多い。
しかし、パッケージの提供者がその都度個別のパッケージを作成するようでは、多数のパッケージの管理、検査、配布、メディアの作成のための人的・時間的コストが増大してしまう。このため、ベンダーは、選択される全てのコンポーネントを含んだ一次ソフトウェア・パッケージ(以下「シングルパッケージ」)を提供し、使用者がインストール時に導入するコンポーネントを選択するという方法が用いられる。このような構造は、オフィスアプリケーションの配布などの際に良く用いられている。
しかし現状では、ソフトウェア・プログラムの機能の充実に伴い、シングルパッケージを構成する各コンポーネントのファイルサイズが大きくなる傾向があり、これに伴ってシングルパッケージのサイズも巨大化している。近年ソフトウェア・パッケージがインターネットなどのネットワークを介して配布されることが多くなっているが、こうしたシングルパッケージをネットワークにて配布する際に、サーバの処理能力に対する負荷や、ネットワークに対する負荷、サーバや使用者の記憶装置に占める容量が高まる傾向があった。
そこで、シングルパッケージのサイズが大きくなったとしても、ネットワークを介してシングルパッケージを配信する際に、サーバやネットワークの負荷を低減して配信する方法が提案されている(例えば、特許文献1、2)。
特開平8−83245号公報 特開2000−285048号公報
しかしながら、特許文献1、2の方法では、巨大化したシングルパッケージの配布に対してサーバ及びネットワークの負荷を低減することは、ある程度可能であるが、大規模なソフトウェア・パッケージの場合には、企業のネットワークの管理者等がパッケージを一時的に企業内のサーバ等に記録する。そして、クライアントはこれをサーバからダウンロードして利用する場合が多いが、この手法では、クライアントが企業内サーバやネットワークに負荷をかけることを減らすことが不可能である。
このような課題を解決する方法として、シングルパッケージから必要なコンポーネントだけを取り出し、新たにパッケージを構成し再配布する方法が考えられる。しかし、一般的にソフトウェア・パッケージは、悪意のある改変やウイルスの混入等を防ぐため、デジタル署名によって、内容が保証されている。このため、シングルパッケージを取得した後に、所定のコンポーネントを仲介者が任意に選択してパッケージを再構成すると、パッケージが改変されたと判断されるため、シングルパッケージの提供者の保証がなくなる。したがって、仲介者が提供者の契約のもと正当にパッケージを構成したとしても、仲介者から提供されたパッケージを取得した顧客は、提供者の保証を受けられない。この結果、パッケージの利用そのものが不可能になり、ソフトウェアに問題があった場合にも提供者に対応を求めることができなくなる場合がある。
本発明の目的は、所定のコンポーネントからソフトウェア・パッケージを仲介者等のユーザが再構成するにあたって、シングルパッケージを提供する一次提供者が内容の正当性を保証した再構成済みパッケージを顧客に提供することが可能なパッケージの再構成方法、装置、プログラムを提供することである。
そこで、本発明は、以下のソフトウェア・パッケージを再構成する方法、装置、プログラムを提供する。
本発明のソフトウェア・パッケージを再構成する方法、装置、プログラムは、一次ソフトウェア・パッケージが複数のコンポーネントと当該コンポーネントの許可された組み合わせに関する組合せ情報とを備え、前記複数のコンポーネントのうちある組合せの選択を受け、前記組合せ情報に基づいて前記選択された組合せのコンポーネントによるソフトウェア・パッケージの再構成を許可するか否かを判断し、前記再構成を許可する判断に応じて前記選択された組合せのコンポーネントを備える二次ソフトウェア・パッケージを再構成する。
すなわち、本発明によれば、1以上のコンポーネントからソフトウェア・パッケージを再構成する際に、所定のコンポーネントの選択を受け、許可されたコンポーネントの組合せ情報に基づいて、所定のコンポーネントの組合せを判断し、この判断に基づいて、選択されたコンポーネントを含む二次ソフトウェア・パッケージを再構成する。
したがって、本発明によれば、ソフトウェア・パッケージを再構成するにあたって、再構成する場合のコンポーネントの組合せに関する情報である組合せ情報に基づいて、ソフトウェア・パッケージを構成するため、一次提供者が許可したコンポーネントの組合せに基づいて、二次ソフトウェア・パッケージを再構成することが可能である。
さらに具体的には、上述の構成に加えて、上述の組合せ情報がデジタル署名を付加されてパッケージ内に格納され、パッケージの正当性は、組合せ情報のデジタル署名により検証される。この構成の場合には、組合せ情報に関する一次提供者の確実な保証のもとに、二次ソフトウェア・パッケージを再構成することが可能である。
さらに具体的には、上述の構成に加えて、再構成するステップにおいて、組合せ情報が、二次ソフトウェア・パッケージに引き継がれる。したがって、一次提供者が許可したコンポーネントの組合せが変更されることなく二次提供者に引き継がれることで、一次提供者のコンポーネントの組合せの許可を、下位の提供者まで引き継ぐことが可能である。
したがって、本発明によれば、所定のコンポーネントを含むソフトウェア・パッケージを二次提供者等のユーザが再構成するにあたって、一次ソフトウェア・パッケージを提供する一次提供者が保証した組み合わせのコンポーネントからなるパッケージを、次の提供者となる二次提供者や、最終的な利用者となる顧客に提供することが可能なソフトウェア・パッケージの再構成方法、装置、プログラムを提供することが可能である。
以下に、本発明の好適な実施形態を図面に基づいて説明する。
図1に示すように、パッケージ構成装置100は、情報の制御を行う制御部110とユーザからの入力を受ける入力部120と、ソフトウェア・パッケージを記録するパッケージ記録部130とから構成される。
パッケージ構成装置100は、コンポーネントの選択をユーザから受けて、1以上のコンポーネントからなるパッケージを構成する装置である。パッケージ構成装置100は、ソフトウェア・パッケージを最初に提供した者(以下「一次提供者」)が保証した組み合わせのコンポーネントを用いてパッケージを構成する。本明細書において、パッケージ構成装置100は、一次ソフトウェア・パッケージであるシングルパッケージ50から、二次ソフトウェア・パッケージであるプライベートパッケージ60を構成する処理を行う態様について主に説明する。しかし、パッケージ構成装置100がシングルパッケージ50を構成する処理を行ってもよいし、プライベートパッケージ60を受けた者が使用する装置であってもよい。なお、パッケージ構成装置100は、情報を処理する機能を備えた装置であり、コンピュータであってよい。
ここで、コンポーネントとは、ソフトウェア・プログラム、データ等であってよい。例えば、一のコンポーネントが文章作成ソフトウェアのようなアプリケーション・プログラムであってもよいし、ライブラリやデバイス・ドライバのようなデータやソフトウェア・プログラムであってもよい。さらに、コンピュータが異常時に、起動可能にするためのプログラムや修復するためのプログラムを含んだ、ソフトウェア・プログラムであってもよい。一方、パッケージは、上述のコンポーネントを1以上組み合わせて構成したソフトウェアの集合である。すなわち、パッケージは、提供されたシングルパッケージに対して、仲介者が所定のコンポーネントを選択して構成される。
制御部110は、パッケージ構成装置100にて動作する情報の演算、制御を行う中央処理装置であり、CPU(Central Processing Unit)であってよい。制御部110は、コンポーネントの組合せを判断する組合せ判断部111とパッケージの構成処理を行うパッケージ構成部112と、デジタル署名の検証を行う検証部113とから構成される。
組合せ判断部111は、ユーザにより選択されたコンポーネントの組合せを組合せ情報に基づいて判断する。ここで、組合せ情報とは、パッケージに含まれる各コンポーネントの組合せに関する情報である。すなわち、組合せ情報とは各コンポーネントの組合せのうち、一次提供者が許可する組合せに関する情報である。組合せ情報は、例えば、各コンポーネントの署名を結合したデータ(以下「組合せデータ」)であってよい。
パッケージ構成部112は、ユーザが選択したコンポーネントに対して組合せ判断部111がこれらの組合せを判断し、判断した結果に基づいて、後述するパッケージの構成処理を行う。
検証部113は、一次提供者がデジタル署名による暗号化を行った対象に対して、その正当性を検証する。一次提供者は、シングルパッケージそのものや、各々のコンポーネント、組合せ情報、位置情報等(以下「シングルパッケージ等」)に対して、これらの内容を保証するためにデジタル署名(以下、適宜、「署名」)を行う。このデジタル署名を付加されたシングルパッケージ等が、改変されていないことを保証するために、検証部113が署名の検証を行い、一次提供者が提供する正当なシングルパッケージであることを検証する。
ここで、デジタル署名とは、公開鍵暗号とハッシュを組み合わせることで、一次提供者が提供するデータの内容が改変された場合に、この改変を検出することができる方法である。すなわち、デジタル署名では、受け渡すデータをハッシュによりダイジェストに変換し、このダイジェストを秘密鍵で暗号化することで署名を作成する。この署名をデータと供にユーザに提供し、ユーザは、提供されたデータをハッシュによりダイジェストに変換し、このダイジェストと、受け取った署名から公開鍵により復号化したダイジェストとを比較して、ダイジェストが同じであった場合にのみ、このデータをユーザに利用させる方法である。一般的なソフトウェアのパッケージングおよびパッケージの解除方法では、デジタル署名の検証によって改変がなされていないと判断された場合にのみ、内部のデータの利用を許可する。
具体的な、暗号化技術としては、電子商取引など多くの暗号化製品で使われているRSA暗号技術、DSAを用いた暗号技術であってもよいし、電子鍵標準仕様の一つである、X.509に準拠した仕様の暗号化技術であってもよい。また、認証やデジタル署名に使用されるハッシュアルゴリズムとしては、SHA−1(Secure Hash Algorithm 1)が用いられてもよい。
したがって、一次提供者がシングルパッケージ等をデジタル署名してユーザに提供することで、ユーザは第三者により改変されていないことが保証されたシングルパッケージ等を利用することが可能である。
入力部120は、パッケージ構成装置100に対するユーザからの入力を受ける。入力部120は、例えば、キーボードやポインティング・デバイス等であってよい。入力部120は、コンポーネント選択部121を含む。コンポーネント選択部121は、コンポーネントの選択をユーザから受信する。
ここで、コンポーネントを選択するユーザとは、一次提供者から顧客の間でパッケージの取引を行う仲介者(二次的、三次的に仲介する提供者)であってよい。さらに、パッケージに含まれる情報の最終的なユーザは一次提供者から直接にシングルパッケージを取得する二次提供者ではなく、この二次提供者からパッケージを取得する三次的(さらに、高次)な提供者であってもよい。
パッケージ記録部130は、シングルパッケージや再構成したパッケージを記録する。パッケージ記録部130は、コンピュータのハードディスク等であってよい。
次に、一次提供者が提供するシングルパッケージ50について、図2を用いて説明する。
シングルパッケージ50は、パッケージの構成を行うユーザが構成を行う前に提供されるパッケージである。本発明の実施形態の説明においては、説明を明確にするために、シングルパッケージ50を一次提供者が提供するパッケージとして説明する。しかし、これは本発明の範囲を限定するものではない。
シングルパッケージ50は、ヘッダ51と、組合せ情報52と、位置情報53とを備え、ユーザに選択させるための各コンポーネントA(55)からコンポーネントX(59)と、それぞれのメタ情報A(54)からメタ情報X(58)とを含む。ここで、メタ情報とは、コンポーネントに含まれる最終的に利用したい情報ではなく、コンポーネント自身に関する情報のことであり、各コンポーネントの大きさやデジタル署名などを含んでよい。
ヘッダ51は、シングルパッケージ内の各情報のデジタル署名を含む。すなわち、ヘッダ51は、シングルパッケージ50の署名と、組合せ情報52、位置情報53、メタ情報54、56、58の署名を含む。さらに、ヘッダ51は、各署名を復号化するための公開鍵を含んでいてよい。
また、ヘッダ51がデジタル署名による暗号化がされて、ヘッダ51を読み出すときに、検証部113がこの署名によりヘッダ51を検証してもよい。この場合には、シングルパッケージ50とは別にヘッダの署名と公開鍵が一次提供者からユーザに提供されて、ヘッダ51の検証後に、シングルパッケージ50が読み出される。この場合には、ヘッダ51の検証を行うことで、シングルパッケージ50全体の検証が行われる。
後述するように、ヘッダ51に含まれた署名と公開鍵によりダイジェストが作成され、提供されたシングルパッケージ50から作成されたダイジェストにより、デジタル署名の検証が行われる。例えば、ヘッダ51に含まれた組合せ情報の署名と公開鍵により、この組合せ情報のダイジェストが作成され、このダイジェストとシングルパッケージ50の中の組合せ情報から作成されたダイジェストとを比較することで、デジタル署名の検証が行われる。
組合せ情報52は、各コンポーネントの組合せのうち、シングルパッケージの一次提供者が許可する組合せを記述した情報である。組合せ情報は、後述するように、各コンポーネントの署名を組み合わせたデータ(以下「組合せデータ」)や、この組合せデータに対して作成した署名(組合せ署名)を含む。
位置情報53は、コンポーネントが格納されている物理的な位置(オフセット情報等)に関する情報を含む。位置情報は、パッケージが再構成された際に変更される可能性がある情報である。
メタ情報54、56、58は、各コンポーネントについてのメタ情報である。例えば、メタ情報A(54)は、コンポーネントA(55)のサイズ、名前に加えて、コンポーネントA(55)の署名を含む。
なお、シングルパッケージ50の「ヘッダ情報」や「メタ情報」に関しては、これらの情報が概念的にパッケージの中に格納されることを意味し、パッケージ内の物理的な配置を限定するものではない。
後述するように、例えば、メタ情報54、56、58に含まれた組合せ情報の署名と、ヘッダ51に含まれた公開鍵により、この組合せ情報のダイジェストが作成され、このダイジェストとシングルパッケージ50の中の組合せ情報から作成されたダイジェストとを比較することで、デジタル署名の検証が行われてよい。
一次的にパッケージを提供する一次提供者は、パッケージ構成装置100によりシングルパッケージ50を構成する。本明細書においては、シングルパッケージ50とプライベートパッケージ60とが同一のハードウェアであるパッケージ構成装置100によりパッケージの構成が行われるが、異なるハードウェアにより実現されてもよい。
パッケージ構成装置100は、一次提供者の入力に応答して、シングルパッケージ50を、上述のように、ヘッダ51、組合せ情報52、位置情報53、メタ情報A〜X54、56、58と、このメタ情報A〜X54、56、58に対応したコンポーネントA〜X54、56、58により構成する。
一次提供者は、パッケージ構成装置100により組合せ情報52を作成する。すなわち、一次提供者は、一次提供者が許可する各コンポーネントの組合せを組合せ情報52として作成する。
そして、パッケージ構成装置100は、主に、各コンポーネントのデジタル署名を算出する処理と、各コンポーネントの組合せ情報52を作成して記録する処理と、パッケージ全体のデジタル署名を行う処理を行う。
すなわち、パッケージ構成装置100は、各コンポーネントのデジタル署名を算出して記録するために、選択された各コンポーネントをハッシュ化アルゴリズムによりダイジェストに変換し、このダイジェストを秘密鍵により暗号化し、署名を作成し、この署名を各コンポーネントのメタ情報54、56、58に含める。
さらに、パッケージ構成装置100は、組合せ情報52をハッシュによりダイジェストに変換し、このダイジェストを秘密鍵により暗号化し、署名を作成し、この署名をシングルパッケージ50のヘッダ51に含める。
加えて、パッケージ構成装置100は、シングルパッケージ50をハッシュによりダイジェストに変換し、このダイジェストを秘密鍵により署名を作成し、この署名をシングルパッケージ50のヘッダ51に含めることで、パッケージ全体のデジタル署名を行う。
上述のように構成されたシングルパッケージ50に対して、パッケージ構成装置100が、プライベートパッケージ60を構成する具体的な動作を、図3のフローチャートを用いて説明する。以下では、パッケージ構成装置100が、シングルパッケージ50からプライベートパッケージ60を構成することについて主に説明するが、シングルパッケージ50からプライベートパッケージ60を構成した後に、さらに、プライベートパッケージ60を構成する態様であってもよい。
最初に、検証部113が、シングルパッケージ50を検証する(ステップS01)。すなわち、提供されたシングルパッケージ50が、ユーザに提供されるまでに改変されていないことを保証するために、検証部113は、シングルパッケージ50の検証を行う。
検証部113がシングルパッケージ50を検証する場合には、シングルパッケージ50全体の署名と公開鍵が一次提供者からユーザに提供される。この署名と公開鍵は、パッケージの内部に含まれてもよいし、パッケージと別に提供されてもよい。この署名と公開鍵を用いて、シングルパッケージ50全体が、第三者により改変されていないかが検証される。
検証部113は、ヘッダ51に含まれた署名を公開鍵により復号化してダイジェストに変換する。このダイジェストと、シングルパッケージ50をハッシュにより変換して作成したダイジェストとを比較することで、シングルパッケージ50の正当性を検証する。
検証部113は、一次提供者が保証したシングルパッケージ50であると判断した場合には、検証部113が、組合せ情報52を署名により検証する(ステップS02、S03)。検証部113は、このシングルパッケージが一次提供者の保証がなく、第三者により改変された可能性があると判断した場合には処理を終了する。
検証部113は、一次提供者が保証したシングルパッケージであると判断した場合には、シングルパッケージ50に記録された組合せ情報52をヘッダ51に記録された組合せ情報の署名により検証する(ステップS03)。
検証部113は、ヘッダ51に含まれた署名を公開鍵により復号化してダイジェストに変換する。このダイジェストと、シングルパッケージ50に含まれる組合せ情報52をハッシュ化アルゴリズムにより作成したダイジェストとを比較することで、組合せ情報52の正当性を検証する。
一次提供者が保証した組合せ情報52であると判断した場合には、組合せ判断部111が、選択されたコンポーネントの一覧を受信する(ステップS04、S05)。検証部113は、検証に失敗し、この組合せ情報52が一次提供者の保証がなく、第三者により改変された可能性があると判断した場合には処理を終了する。
ユーザがコンポーネントを選択したことを、コンポーネント選択部121が受信する(ステップS05)。
次に、組合せ判断部111が、組合せ情報52に基づいて、ユーザに選択されたコンポーネントの組合せを判断する(ステップS06)。例えば、コンポーネント選択部121が、ユーザが選択したコンポーネントのリストを作成する。そして、組合せ判断部111が、このリストと組合せ情報52とを比較することで、組合せを判断してもよい。組合せ情報52は、後述するように、組合せにかかる各コンポーネントの署名を集めたデータ(「組合せデータ」)を含む。さらに、組合せ情報は、この組合せデータを保証するために、組合せデータから作成された署名(以下「組合せ署名」)を含む検証部113が組合せデータを検証して、組合せ判断部111が、組合せデータと上述のリストを比較して、組合せを判断する。ここで、組合せデータの正当性を保証するために、組合せ署名を用いる。つまり、検証部113が、組合せ署名を用いて、組合せデータの正当性を検証する。組合せ情報52そのものの検証と、組合せ情報内の組合せデータの検証との両方が、検証部113により行われる。
組合せ判断部111が、一次提供者が許可したコンポーネントの組合せであると判断した場合には、検証部113が各コンポーネントのデジタル署名による検証を行う(ステップS07、S08)。
一方、組合せ判断部111が、一次提供者が許可した組合せでないと判断した場合には、このパッケージの構成は、一次提供者が許可しない構成であるため、処理を終了する。この場合に、組合せ判断部111は、一次提供者が許可しない組合せであることをユーザに通知してもよい。すなわち、パッケージ構成装置100は、一次提供者が許可しない組合せが選択されたことをパッケージ構成装置100の出力装置に表示してもよい。
次に、検証部113が、シングルパッケージに記録されたコンポーネントのうち、組合せとして選択された各コンポーネントの正当性を検証する(ステップS08)。
検証部113は、メタ情報54に含まれた署名を公開鍵により復号化してダイジェストに変換する。このダイジェストと、シングルパッケージに含まれる各コンポーネントをハッシュ化アルゴリズムにより変換して作成したダイジェストとを比較することで、各コンポーネントの正当性を検証する。
検証部113が、一次提供者の保証があるコンポーネントであると判断した場合には、パッケージ構成部112が、パッケージの構成処理を行う(ステップS09、S10)。選択されたコンポーネントのうち1以上のコンポーネントが、デジタル署名の検証に失敗し、第三者により改変された可能性があると判断された場合には、当該コンポーネントに問題があると判断して処理を終了する。
次に、パッケージの構成処理について、図4、図5を用いて説明する。
図4は、パッケージ構成部112が実効するパッケージ構成処理のフローチャート図である。図5は、図2のシングルパッケージ50から構成されたパッケージ(以下「プライベートパッケージ」)である。パッケージ構成部112は、シングルパッケージ50の組合せ情報52を、プライベートパッケージ60にコピーする(ステップS11)。
すなわち、組合せ情報52は、シングルパッケージ50とプライベートパッケージ60とでは変更される必要がない。なぜなら、シングルパッケージ50を構成した一次提供者が保証する組合せ情報52をユーザも引き継ぐ必要があり、このユーザが作成したプライベートパッケージ60をさらに再構成する場合に、一次提供者の保証された組合せに基づいて、構成される必要があるからである。
したがって、プライベートパッケージ60は、一次提供者が保証する組合せ情報を引き継ぐことで、このプライベートパッケージ60に対するパッケージの再構成に対して、一次提供者の保証した範囲でのコンポーネントの組合せに限定することが可能である。ここで、もし悪意ある仲介者が、一次提供者に認められない独自の組み合わせ情報を作成しようとした場合、そのように作成された組み合わせ情報は、パッケージの利用者が組み合わせ情報のデジタル署名を検証することにより、正当なものでないことを検出できる。
次に、パッケージ構成部112は、ユーザにより選択された各コンポーネントとメタ情報とを、シングルパッケージ50からプライベートパッケージ60へコピーする(ステップS12、S13)。次に、プライベートパッケージ60となることで、各コンポーネントの物理的な記録場所が変更されるため、位置情報の再計算を行う(ステップS14)。再計算した位置情報を、位置情報63としてプライベートパッケージ60に記録する(ステップS15)。
次に、パッケージ構成部112は、ヘッダ61の情報を作成し(ステップS16)、プライベートパッケージ60に記録する(ステップS17)。ヘッダ51の情報は、シングルパッケージ50の署名と、組合せ情報52の署名、公開鍵と、位置情報53の署名、公開鍵と、メタ情報54、56、・・・、58の署名、公開鍵を含む。パッケージ構成部112は、このヘッダ51と異なるヘッダ61を作成する。組合せ情報52と組合せ情報62は、同様の情報であるので、ヘッダ61の情報として組合せ情報62の署名と公開鍵が含まれる。
そして、パッケージ構成部112は、ヘッダ61の情報に、選択されたコンポーネントのメタ情報54、56、58の署名と公開鍵を含ませる。さらに、パッケージ構成部112は、再計算した位置情報63の署名と公開鍵を含ませる。パッケージ構成部112は、このように作成されたヘッダ61を、プライベートパッケージ60に記録する。
最後に、パッケージ構成部112は、構成したプライベートパッケージ60に対するデジタル署名処理を行う(ステップS18)。上述のように、パッケージ構成部112が、ヘッダ61の署名を作成することで、パッケージ全体のデジタル署名処理を行ってもよい。
なお、図4のパッケージ構成処理は、一例を示したものであり、各処理の順番が異なっても、最終的にプライベートパッケージ60が構成されることは、当業者からは、自明なことである。また、シングルパッケージの保証があると判断されることで、組合せ情報の保証もあると判断して、組合せ情報の検証(ステップS03、S04)の処理を行わない態様であってもよい。
図5では、一例として、コンポーネントB(57)、コンポーネントF(67)、コンポーネントK(69)から、プライベートパッケージ60を構成した図である。コンポーネント選択部121は、ユーザからこれらのコンポーネントの選択を受信する。そして、組合せ判断部111が、組合せ情報からこれらの組合せを判断する。コンポーネントB(57)、コンポーネントF(67)、コンポーネントK(69)の組合せが、一次提供者が保証した組合せを記録した組合せ情報から、一次提供者が保証したものであると判断された場合には、各コンポーネントとこれに対応したメタ情報56、66、68とをプライベートパッケージ60に記録する。
そして、プライベートパッケージ60に対して、デジタル署名を行うことで、このプライベートパッケージ全体の署名と、この署名の公開鍵とをヘッダ61に含めてもよい。
なお、シングルパッケージ50と同様に、プライベートパッケージ60の「ヘッダ情報」や「メタ情報」に関しては、これらの情報が概念的にパッケージの中に格納されることを意味し、パッケージ内の物理的な配置にまで限定するものではない。
図6を用いて、組合せ情報について詳細に説明する。組合せ情報は、組合せにかかる各コンポーネントの署名を集めたデータである「組合せデータ」から構成されてよい。すなわち、組合せデータは、一次提供者が保障する組合せを有する複数のコンポーネントの各々のデジタル署名を集めたデータであってよい。図6に示すように、一次提供者が許可した組合せが、コンポーネントB、コンポーネントF、コンポーネントKである場合に、各コンポーネントのデジタル署名201、202、203を集めて構成したデータを、組合せデータ210に示した。すなわち、図6では、コンポーネントBのデジタル署名がD201に対応し、コンポーネントFがD202に対応し、コンポーネントKがD203に対応する。このような組合せデータ210が、一次提供者が保証する組合せの数だけ組合せ情報に含まれる。
さらに、この一の組合せデータに対応した組合せ署名220が、組合せデータ210を保証するために備えられていてもよい。この場合には、検証部113が組合せ署名220により、組合せデータ210を検証する。すなわち、組合せ情報52そのものの検証と、組合せ情報内の組合せデータ210の検証との両方が、検証部113により行われる。
図7の例に示すように、組合せ定義200、300は、コンポーネントの一の組合せに関する情報から構成されるデータである。すなわち、組合せ定義200は、組合せデータ210と組合せ署名220とから構成される。組合せ定義300は、組合せデータ210と組合せ署名320とから構成される。組合せ情報80は、複数の組合せ定義200、300、・・により構成される。
そして、組合せ判断部111が、組合せ情報に記録された各組合せデータと、選択されたコンポーネントの組合せ(以下「選択された組合せ」)を比較する。このとき、組合せデータは、組み合わされたコンポーネントの名称を記録したリストを備えていて、これと、選択された組合せを比較することで判断してもよい。
ここで、変形例として、図8に示すように、パッケージ構成部112が、一の組合せ署名を、さらに他の組合せデータに含めることで、第2の組合せ定義を構成してもよい。すなわち、パッケージ構成部112が、一の組合せデータ210の組合せ署名220を含む第2組合せ定義250を構成してもよい。この場合には、第2組合せ定義250のデジタル署名にて、デジタル署名201〜203を含まなくてよい。したがって、第2組合せ定義250のコンパクト化が図れることにより、組合せ情報280の情報量を少なくすることが可能である。
このように、入子状に組み合わせて組合せ情報を構成することは、パッケージ構成部112がユーザからの入力を受けて、プライベートパッケージ60を構成する際に適用されてよいが、一次提供者が提供するシングルパッケージ50が、このようなデータ構造を備えてもよい。
加えて、本明細書においては、シングルパッケージ50とプライベートパッケージ60とを区別するために、シングルパッケージ50が最初に一次提供者から提供されるパッケージであり、プライベートパッケージ60が二次提供者により構成されたパッケージであると説明した。しかしながら、二次的に構成されたプライベートパッケージ60に基づいて、三次的なプライベートパッケージ60が構成される場合には、本明細書のシングルパッケージ50が二次的なプライベートパッケージ60に該当することは、当業者からすれば、自明のことである。
このような実施形態を実現するパッケージ構成方法を、コンピュータやサーバにて実行するためのプログラムにより実現することができる。このプログラムのための記憶媒体としては、光学記憶媒体、テープ媒体、半導体メモリ等が挙げられる。また、専用通信ネットワークやインターネットに接続されたサーバ・システムに設けられたハードディスク又はRAM等の記憶装置を記憶媒体として使用し、ネットワークを介してプログラムを提供してもよい。
以上、本発明の実施形態を説明したが、具体例を例示したに過ぎず、特に本発明を限定しない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載された効果に限定されない。
パッケージ構成装置100の機能ブロック図である。 シングルパッケージ50のデータ構造を示す図である。 パッケージ構成装置100が実行するメイン動作を示すフローチャート図である。 パッケージ構成装置100が実行するパッケージ構成処理を示すフローチャート図である。 プライベートパッケージ60のデータ構造を示す図である。 組合せデータ210と組合せ署名220とを示す図である。 組合せ情報80のデータ構造を示す図である。 組合せ情報280のデータ構造を示す図である。
符号の説明
50 シングルパッケージ
51、61 ヘッダ
52、62 組合せ情報
53、63 位置情報
54 メタ情報A
55 コンポーネントA
56 メタ情報B
57 コンポーネントB
58 メタ情報X
59 コンポーネントX
60 プライベートパッケージ
66 メタ情報F
67 コンポーネントF
68 メタ情報K
69 コンポーネントK
80、280 組合せ情報
100 パッケージ構成装置
110 制御部
111 組合せ判断部
112 パッケージ構成部
113 検証部
120 入力部
121 コンポーネント選択部
130 パッケージ記録部
200、300 組合せ定義
201、202、203、251、252、253、311、312、313、314 デジタル署名
220、320、270、 組合せ署名
210、310 組合せデータ
250 第2組合せ定義

Claims (11)

  1. ソフトウェア・パッケージを再構成する方法であり、
    一次ソフトウェア・パッケージは複数のコンポーネントと、当該コンポーネントの許可された組み合わせに関する組合せ情報とを備え、
    前記複数のコンポーネントのうち、ある組合せの選択を受けるステップと、
    前記組合せ情報に基づいて、前記選択された組合せのコンポーネントによるソフトウェア・パッケージの再構成を許可するか否かを判断するステップと、
    前記再構成を許可する判断に応じて、前記選択された組合せのコンポーネントを備える二次ソフトウェア・パッケージを再構成するステップと、
    をコンピュータに実現させる方法。
  2. 請求項1に記載の方法であって、
    前記再構成するステップにおいて、前記組合せ情報は、前記二次ソフトウェア・パッケージに引き継がれる方法。
  3. 請求項1に記載の方法であって、
    前記選択を受けるステップでは、前記許可された組合せは一次提供者が決定し、前記ある組合せの選択は二次提供者が選択する方法。
  4. 請求項1に記載の方法であって、
    前記コンポーネントの各々がデジタル署名され、前記選択された組合せのコンポーネントの各々をデジタル署名により検証するステップを備えた方法。
  5. 請求項1に記載の方法であって、
    前記コンポーネント間の組合せ情報がデジタル署名され、前記組合せ情報をデジタル署名により正当性を検証するステップを備えた方法。
  6. 請求項1に記載の方法であって、
    構成した前記二次ソフトウェア・パッケージに対して、デジタル署名を行うステップを備えた方法。
  7. 請求項1に記載の方法であって、
    前記一次ソフトウェア・パッケージは、前記コンポーネントを格納している物理的な位置を示す位置情報を含む方法。
  8. 請求項1に記載の方法であって、
    前記二次ソフトウェア・パッケージを再構成するステップでは、前記選択された組合せのコンポーネントと前記組合せ情報とを含む二次ソフトウェア・パッケージを再構成する方法。
  9. ソフトウェア・パッケージを再構成するパッケージ構成装置であり、
    一次ソフトウェア・パッケージは複数のコンポーネントと、当該コンポーネントの許可された組み合わせに関する組合せ情報とを備え、
    前記複数のコンポーネントのうち、ある組合せの選択を受ける選択部と、
    前記組合せ情報に基づいて、前記選択された組合せのコンポーネントによるソフトウェア・パッケージの再構成を許可するか否かを判断する判断部と、
    前記再構成を許可する判断に応じて、前記選択された組合せのコンポーネントを備える二次ソフトウェア・パッケージを再構成する構成部と、
    をパッケージ構成装置。
  10. コンピュータにて読み取り可能な記録媒体のデータ構造であって、
    ソフトウェア・パッケージの構成要素となる1以上のコンポーネントと、
    前記1以上のコンポーネントを組合せた組合せデータ、及び前記組合せデータのデジタル署名から構成される組合せ定義を、前記ソフトウェア・パッケージを提供する提供者が許可する組合せの数だけ備えた組合せ情報と、
    を含むデータ構造。
  11. 請求項10に記載のデータ構造であって、
    前記組合せ情報が、前記組合せデータのデジタル署名を他の組合せデータに含めた第2組合せ定義を含むデータ構造。
JP2005178382A 2005-06-17 2005-06-17 ソフトウェア・パッケージを再構成する方法、装置、プログラム Expired - Fee Related JP4126705B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005178382A JP4126705B2 (ja) 2005-06-17 2005-06-17 ソフトウェア・パッケージを再構成する方法、装置、プログラム
US11/422,958 US20060288221A1 (en) 2005-06-17 2006-06-08 Method, apparatus, and program product for reconfiguring a software package

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005178382A JP4126705B2 (ja) 2005-06-17 2005-06-17 ソフトウェア・パッケージを再構成する方法、装置、プログラム

Publications (2)

Publication Number Publication Date
JP2006350850A true JP2006350850A (ja) 2006-12-28
JP4126705B2 JP4126705B2 (ja) 2008-07-30

Family

ID=37574747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005178382A Expired - Fee Related JP4126705B2 (ja) 2005-06-17 2005-06-17 ソフトウェア・パッケージを再構成する方法、装置、プログラム

Country Status (2)

Country Link
US (1) US20060288221A1 (ja)
JP (1) JP4126705B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521726A (ja) * 2007-03-16 2010-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーション カスタマイズされたソフトウェア製品を配布する方法、システム、およびコンピュータ・プログラム
JP2010541070A (ja) * 2007-09-26 2010-12-24 マイクロソフト コーポレーション 拡張可能な分散アプリケーションの作成とデプロイメント
TWI383779B (zh) * 2009-12-18 2013-02-01 Univ Nat Chiao Tung 生醫電波感測器
JP2013127784A (ja) * 2011-12-16 2013-06-27 Ricoh Co Ltd パッケージベースのサブスクリプションを実施するアプローチ
JP2016507806A (ja) * 2012-12-17 2016-03-10 アイトロン インコーポレイテッド マルチタイプパッケージを通じたユーティリティノードソフトウェア/ファームウェア更新
US9454357B2 (en) 2012-12-17 2016-09-27 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756488B2 (en) 2010-06-18 2014-06-17 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913028A (en) * 1995-10-06 1999-06-15 Xpoint Technologies, Inc. Client/server data traffic delivery system and method
US6862616B1 (en) * 2000-03-20 2005-03-01 Netscape Communications Corp. System and method for facilitating distributed server administration of server systems that are scalable and version independent
US20020147974A1 (en) * 2001-02-09 2002-10-10 Wookey Michael J. Networked installation system for deploying systems management platforms
US7093132B2 (en) * 2001-09-20 2006-08-15 International Business Machines Corporation Method and apparatus for protecting ongoing system integrity of a software product using digital signatures
US20050259668A1 (en) * 2004-05-24 2005-11-24 Kim Kwang N Method of providing broadband services in client dense environments

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521726A (ja) * 2007-03-16 2010-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーション カスタマイズされたソフトウェア製品を配布する方法、システム、およびコンピュータ・プログラム
US8549514B2 (en) 2007-03-16 2013-10-01 International Business Machines Corporation Distributing customized software products
JP2010541070A (ja) * 2007-09-26 2010-12-24 マイクロソフト コーポレーション 拡張可能な分散アプリケーションの作成とデプロイメント
TWI383779B (zh) * 2009-12-18 2013-02-01 Univ Nat Chiao Tung 生醫電波感測器
JP2013127784A (ja) * 2011-12-16 2013-06-27 Ricoh Co Ltd パッケージベースのサブスクリプションを実施するアプローチ
JP2016507806A (ja) * 2012-12-17 2016-03-10 アイトロン インコーポレイテッド マルチタイプパッケージを通じたユーティリティノードソフトウェア/ファームウェア更新
US9454357B2 (en) 2012-12-17 2016-09-27 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set

Also Published As

Publication number Publication date
US20060288221A1 (en) 2006-12-21
JP4126705B2 (ja) 2008-07-30

Similar Documents

Publication Publication Date Title
US7685594B2 (en) Method and data structure for reconfiguring a software package
US11475137B2 (en) Distributed data storage by means of authorisation token
US11128471B2 (en) Accessibility controls in distributed data systems
JP5281074B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
JP5196883B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
US8352735B2 (en) Method and system for encrypted file access
JP4126705B2 (ja) ソフトウェア・パッケージを再構成する方法、装置、プログラム
US8171301B2 (en) Method and system for integrated securing and managing of virtual machines and virtual appliances
JP4838631B2 (ja) 文書アクセス管理プログラム、文書アクセス管理装置および文書アクセス管理方法
EP2176984B1 (en) Creating and validating cryptographically secured documents
US20070235517A1 (en) Secure digital delivery seal for information handling system
US20140068593A1 (en) System and Method for Sharing Information in a Private Ecosystem
US20090327733A1 (en) Data Security Method and System
US8397068B2 (en) Generic file protection format
US20190182293A1 (en) System and method for sharing information in a private ecosystem
US20060059350A1 (en) Strong names
TW201617948A (zh) 複合文件參照資源技術
US20110081017A1 (en) Key migration device
WO2022116761A1 (en) Self auditing blockchain
EP1474908A2 (en) METHOD AND SYSTEM FOR SECURELY TRANSMITTING AND DISTRIBUTING INFORMATION AND FOR PRODUCING A PHYSICAL INSTANTIATION OF THE TRANSMITTED INFORMATION IN AN INTERMEDIATE, INFORMATION−STORAGE MEDIUM
JP2023535886A (ja) ソフトウェア展開構成のための署名の施行
JP3840580B1 (ja) ソフトウエア管理システムおよびソフトウエア管理プログラム
US20230066159A1 (en) Controlling program execution using an access key
GB2506263A (en) Ecosystem for controlling applications in a mobile communications system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071204

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20071217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080430

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080501

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080502

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees