(57)【要約】安全なソフトウェアの更新は、ターゲットデバイスに、更新定義、秘密暗号キー及び公開署名キーを有する更新ユーティリティを提供する。実行可能更新プログラム、対称キーで暗号化されたプログラムのチェックサム、公開暗号キーで暗号化された暗号化対称キー、及び、秘密署名キーで準備されたデジタル署名を備える携帯型媒体で、ソフトウェアの更新パッケージは準備される。更新プロセスは、デジタル署名を認証し、秘密暗号キーを使用して対称キーを復号化し、そして、対称キーを使用してチェックサムを復号化する。新しいチェックサムが、実行可能更新プログラムのために生成され、復号化されたチェックサムと比較される。不一致が更新プロセスの間に検出される場合には、プロセスは中止される。それ以外の場合には、破損、ウイルス及び第三者の干渉に対して比較的高い保証度で、ソフトウェアの更新はインストール可能となる。
2014505318.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットデバイスにソフトウェアの更新を実施するシステムであり、
ソフトウェアの更新の検証を行うために記憶装置の更新コンポーネントにアクセスするように動作する更新ユーティリティと、
第１の非対称暗号キーのペア中からの第１暗号キーと、
チェックサムアルゴリズムと、
を実施するために、前記記憶装置に接続され、前記記憶装置に格納された命令を読み出しそして実行するように操作可能なプロセッサを含み、
前記更新ユーティリティが、暗号化されたチェックサム及び更新プロセスファイルを備える更新データを受け取るように動作し、前記暗号化されたチェックサムが、前記更新プロセスファイル及び前記第１の非対称暗号キーのペア中からの第２暗号キーを使用して生成され、
前記更新ユーティリティが、第１チェックサムを獲得するために前記第１暗号キーを使用して前記更新データを処理するように更に動作し、
前記更新ユーティリティが、第２チェックサムを生成して、前記第１チェックサムが前記第２チェックサムと合致する場合には前記更新プロセスファイルに実行許可を与えるために、前記チェックサムアルゴリズムを使用して前記更新プロセスファイルを処理するように更に動作するシステム。
【請求項２】
第２の非対称暗号キーのペア中からの第１署名キーを更に含み、前記更新ユーティリティが、前記第２の非対称暗号キーのペア中からの第２署名キーで生成されたデジタル署名の受け取りに応答して、前記第１署名キーを使用して前記デジタル署名を認証する、請求項１に記載のシステム。
【請求項３】
前記第１暗号キーが、公開／秘密キーのペア中からの秘密キーである、請求項１に記載のシステム。
【請求項４】
前記第１署名キーが、公開／秘密キーのペア中からの公開キーである、請求項２に記載のシステム。
【請求項５】
前記更新データを記述する更新定義を更に含み、前記更新データが前記更新定義と適合しない場合には、前記更新ユーティリティが前記ソフトウェアの更新を中止するように動作する、請求項１に記載のシステム。
【請求項６】
前記プロセッサに選択的に接続され、前記ソフトウェアの更新のための前記更新データ及び前記更新プロセスファイルを格納するように動作する着脱可能な外付け記憶デバイスを更に含む、請求項１に記載のシステム。
【請求項７】
前記更新データが、
暗号化されたセッションキーを更に含み、前記セッションキーが対称暗号キーで、前記第２暗号キーを使用して暗号化され、
前記暗号化されたチェックサムが、前記セッションキーによって暗号化される、
請求項６に記載のシステム。
【請求項８】
前記更新ユーティリティが、前記セッションキーを獲得するために前記第１暗号キーを使用して前記暗号化されたセッションキーを復号化し、前記第１チェックサムを獲得するために前記セッションキーで前記暗号化されたチェックサムを復号化するように、更に動作する、請求項７に記載のシステム。
【請求項９】
前記更新データが、前記暗号化されたセッションキー及び第２の非対称暗号キーのペア中からの秘密署名キーを使用して生成されたデジタル署名を更に含む、請求項７に記載のシステム。
【請求項１０】
ソフトウェアの更新を実施するための固定更新データを格納する記憶デバイスであり、
前記固定更新データが、
ターゲットシステムに前記ソフトウェアの更新をインストールするために実行可能な更新ファイルと、
対称暗号キーであるセッションキーを使用して暗号化される暗号化されたチェックサムであって、前記更新ファイルから演算されたチェックサムと、
非対称暗号キーのペア中からの第１暗号キーで前記セッションキーを暗号化することによって生成された暗号化されたセッションキーと、
を含む記憶デバイス。
【請求項１１】
前記第１暗号キーが、公開／秘密キーのペア中からの公開キーである、請求項１０に記載のデバイス。
【請求項１２】
前記暗号化されたセッションキー及び非対称暗号キーのペア中からの秘密キーを使用して生成されたデジタル署名を更に含む、請求項１０に記載のデバイス。
【請求項１３】
前記暗号化されたチェックサム、前記暗号化されたセッションキー及び前記デジタル署名を備える更新ドキュメントを更に含む、請求項１２に記載のデバイス。
【請求項１４】
前記更新ドキュメント及び更新ファイルが、記憶デバイスに、予め決められた各名称及び各位置で提供される、請求項１３に記載のデバイス。
【請求項１５】
前記更新ドキュメントが、ＸＭＬ形式のファイルである、請求項１４に記載のデバイス。
【請求項１６】
数値演算プロセッサを備えるターゲットデバイス上のソフトウェアの更新を実施する方法であって、
第１の非対称暗号キーのペア中からの第１暗号キーを使用して生成された暗号化されたチェックサム及び前記ソフトウェアの更新を設定するための更新プロセスファイルを備える更新データを受け取るステップと、
第１チェックサムを獲得するために、前記第１の非対称暗号キーのペア中からの第２暗号キーを使用して前記更新データを処理するステップと、
チェックサムアルゴリズムを使用して前記更新プロセスファイルから第２チェックサムを演算するステップと、
前記第１チェックサムが前記第２チェックサムと合致する場合には前記更新プロセスファイルに実行許可を与えるステップと、
を含む方法。
【請求項１７】
前記暗号化されたチェックサム及び第２の非対称暗号キーのペア中からの第１署名キーを使用して形成されたデジタル署名を受け取るステップと、
前記第２の非対称暗号キーのペア中からの第２署名キーを使用して前記デジタル署名を認証するステップと、
を更に含む、請求項１６に記載の方法。
【請求項１８】
前記第２暗号キーが、公開／秘密キーのペア中からの秘密キーである、請求項１６に記載の方法。
【請求項１９】
前記第２署名キーが、公開／秘密キーのペア中からの公開キーである、請求項１７に記載の方法。
【請求項２０】
前記更新データを記述する更新定義と前記更新データの各特性を比較するステップと、
前記各特性が前記更新定義と適合しない場合には前記ソフトウェアの更新を中止するステップと、
を更に含む、請求項１６に記載の方法。
【請求項２１】
対称暗号キーである暗号化されたセッションキーを受け取るステップであって、前記暗号化されたセッションキーが、前記第１暗号キーを使用して暗号化されるステップと、
前記セッションキーを獲得するために前記第２暗号キーを使用して前記暗号化されたセッションキーを復号化するステップと、
前記第１チェックサムを獲得するために前記セッションキーで前記暗号化されたチェックサムを復号化するステップと、
を更に含む、請求項１６に記載の方法。
【請求項２２】
前記暗号化されたセッションキー及び第２の非対称暗号キーのペア中からの秘密署名キーを使用して生成されたデジタル署名を受け取るステップと、
前記第２の非対称暗号キーのペア中からの公開署名キーを使用して前記デジタル署名を認証するステップと、
を更に含む、請求項２１に記載のシステム。
【請求項２３】
ソフトウェアの更新を実施するためにソフトウェアの更新パッケージを準備して、記憶デバイスに固定形式で格納させる方法であって、
ターゲットシステムに前記ソフトウェアの更新をインストールするために実行可能な更新ファイルを準備するステップと、
前記更新ファイルのチェックサムを演算するステップと、
対称暗号キーであるセッションキーを使用して前記チェックサムを暗号化するステップと、
第１の非対称暗号キーのペア中からの第１暗号キーによって前記セッションキーを暗号化するステップと、
前記記憶デバイスに前記更新ファイル、前記暗号化されたチェックサム及び前記暗号化されたセッションキーを格納するステップと、
を含む方法。
【請求項２４】
前記第１暗号キーが、公開／秘密キーのペア中からの公開キーである、請求項２３に記載の方法。
【請求項２５】
前記暗号化されたセッションキー及び第２の非対称暗号キーのペア中からの秘密キーを使用してデジタル署名を生成するステップを更に含む、請求項２３に記載の方法。
【請求項２６】
前記記憶デバイスの更新ドキュメントに前記暗号化されたチェックサム、前記暗号化されたセッションキー及び前記デジタル署名を格納するステップを更に含む、請求項２５に記載の方法。
【請求項２７】
前記更新ドキュメント及び更新ファイルを、前記記憶デバイスに、予め決められた各名称及び各位置で提供するステップを更に含む、請求項２６に記載の方法。
【請求項２８】
前記更新ドキュメントが、ＸＭＬ形式のファイルである、請求項２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
連邦政府資金による研究開発の記載
【０００２】
発明の背景
本発明は、概略的に、インストール前にソフトウェアを検証するソフトウェアの更新機能に関する。より具体的には、インストール前の安全な検証を伴うソフトウェアの更新の実施に関する。
【０００３】
スタンドアロンベースで多くの場合作動する埋め込みデバイスを含む、ソフトウェアアプリケーションを実行する様々なタイプのデバイスは、それらの有用なサイクル寿命に渡ってソフトウェアの更新を提供される場合がある。デスクトップＰＣ及び他の汎用コンピュータなどの、コンピュータデバイスの場合、更新は、通信リンクで通常は実行され、例えば、ＬＡＮ、ＷＡＮ、イントラネット又はインターネットへのネットワーク接続によって、提供される。通信リンクによって、コンピュータは、比較的容易にコンピュータにインストールすることができる更新を、ダウンロード又は検索することができる。
【０００４】
例えば埋め込みシステムに多くの場合存在する、計算エンジン及びソフトウェアを備えたスタンドアロンデバイスの場合には、ソフトウェアの更新は、物理的なコンポーネントによって実施される傾向にある。例えば、新たなソフトウェアの更新を備えるようにプログラムされたＲＯＭを交換することによって、いくつかのスタンドアロンデバイスは、更新される。別の手法としては、ＲＡＭカードを交換するか又は磁気若しくは電子メディアから半永久的なメモリにソフトウェアをロードする。場合によっては、新たなソフトウェアをアップロードするために、例えばネットワーク接続などの、通信リンクをデバイスに適用することによって、埋め込みシステムが更新される。
【０００５】
ソフトウェアの更新のインストールに関連して生じる１つの問題は、ソフトウェアのインストール及び実行前のソフトウェアの更新の検証である。例えば、ソフトウェアが破損、修正、又は、ウイルスに感染していないことを確認するために、検証は、多くの場合、行われる。ソフトウェアを検証する１つの普及している技術は、ソフトウェアの更新インストールのために使用される所与のファイルのチェックサムを計算することである。多くの場合、ソフトウェアの更新は、バイナリ又はイメージタイプのファイルの形であり、このファイルに、チェックサムアルゴリズムを容易に適用することができる。典型的なチェックサムアルゴリズムはＭＤ５（メッセージ・ダイジェスト５）アルゴリズムであり、このアルゴリズムでは、アルゴリズムが適用されるファイルのブロックが、ファイル内容を表す高度に固有な数をもたらすように再帰的アルゴリズムに従って組み合わせられる。ＭＤ５は、時には暗号化ハッシュ関数と呼ばれ、１２８ビットハッシュ値又はチェックサムを提供する。異なるファイル内容が同じチェックサムをもたらす可能性は極めて低いため、ＭＤ５は、多くの場合、添付ファイルの安全性を確認するために、使用される。
【０００６】
ソフトウェアの更新ファイルに埋め込まれる破損、修正又は悪性コードといった、ソフトウェアの更新の際にまぬがれない潜在的なセキュリティ問題のために、ソフトウェアの更新用のソフトウェアファイルを更に安全なものとする技術が開発されている。セキュリティ対策としては、改竄又は破損に対してファイル内容及び／又はチェックサム値を保護する技術が挙げられる。このようなセキュリティ技術の１つは、ファイル内容及び／又はチェックサム値に対する暗号化の適用であり、例えば、データを暗号化及び復号化するために使用される公開キー／秘密キーのペアを用いることにより、達成される。このタイプの非対称暗号化は、公開キーを使用して暗号化されたデータを復号化するために、秘密キーが使用される。特定のデバイスのソフトウェアがこのタイプのセキュリティを使用して更新されることになった場合、秘密キーは更新されるデバイスに割り当てられるが、デバイスは、公開／秘密キーのペアのセキュリティ設計の目的を妨害する傾向にある。
【０００７】
データを安全なものとするために使用されることがある別のセキュリティ対策は、電子署名と共にデジタル証明書を獲得及び適用することである。ドキュメントが請求されたソースからのものであるという高いレベルの検証を、デジタル証明書は、提供する。通常は、ハッシュ値又はチェックサムといった、比較的固有の値をもたらすように、ドキュメント又はデータは処理される。非対称の公開／秘密キーのペア中からの署名者の秘密キーを使用して、ハッシュ値又はチェックサムが暗号化され、デジタル署名がもたらされる。デジタル証明書がデジタル署名を使用して作成され、送信しそしてオリジナルデータを引き出して遠隔地で認証することができるデジタル署名されたデータがもたらされ、データ用のハッシュ値又はチェックサムが計算され、公開／秘密キーのペア中からの公開キーを使用してデジタル署名が復号化されてオリジナルのハッシュ値又はチェックサムが獲得され、それから、計算及び伝送されたハッシュ値又はチェックサムを比較して、デジタル署名が有効であるかどうか判定され、そして、データのソース及び完全性が認証される。
【０００８】
しかしながら、デジタル証明書には、多くの場合、証明書及びその結果生じるデジタル署名の現時点での有効性を確認すべく、有効期限が提供される。加えて、デジタル証明書は、現時点で通用し、有効であることを確認するために、有効性が頻繁にチェックされ、このチェックは、継続的にデジタル証明書を維持するために、通信リンクを通じて頻繁に実行される。スタンドアロンデバイスの場合、デジタル証明書の使用は、一般的にコストが高く、高度なセキュリティ維持技術であり、この技術は、更新されることになるデバイスとの通信リンクを用いることによって、他のセキュリティギャップの導入を可能にする。  
【０００９】
安全な更新環境を提供する別の手法は、更新用の信頼された環境を生成するためにカーネルレベルの保護を実施することである。しかしながら、この手法は、更新を可能にするためにソフトウェアの更新のためのセキュリティ機構がデバイスに配信されるという点で、上述したものと同じいくらかの欠点を有し、その結果、検査のためのセキュリティ機構が危険に晒される。加えて、いくらかのシステムは、多くの場合、フルカーネルモードにおいて作動するが、フルカーネルモードは、カーネルレベルの保護による信頼された環境を実施するために、通常は操作不可とされる。
【００１０】
安全なソフトウェアの更新のための更に別の選択肢は、ソフトウェアの更新を内蔵したハードウェア暗号化デバイスを利用することである。しかしながら、このタイプのセキュリティ実施は、更新されるデバイス又はオペレーティングシステムとの適合性の問題をもたらし、その結果、このようなハードウェア暗号化デバイスは、多くのシステムで使用できない。加えて、デジタル証明書又は非対称若しくは対称の暗号キーにアクセスすることによって、ハードウェア暗号化は通常動作し、このアクセスは、更新中のデバイスに提供される通信リンクに通常依存する。
【００１１】
一般的に、通信リンクの更なるコスト、複雑さ及び潜在的なセキュリティギャップを伴わないデバイスへのインストール前にソフトウェアの更新を検証するはっきりとそして確実に有用な技術は存在しない。
【００１２】
発明の概要
本発明によれば、ソフトウェアの更新が適用されるデバイスに有効な通信リンクに依存しない、安全なソフトウェアの更新機能が提供される。破損され、悪意のあるソフトウェアを備え、認可されず、又は、他のタイプの完全性／セキュリティ問題を有する可能性のある更新のインストールを防止するために、インストール前に、安全な機能を使用して、ソフトウェアの更新は確認及び検証される。ソフトウェアの更新は外付けのハードウェアデバイスを使用して適用することが可能で、例えば、ハードウェアデバイスを、更新されるデバイスの入出力ポートに取り付けることができる。外付けのハードウェアデバイスの例としては、シリアル又はパラレルポート接続可能デバイス、ＵＳＢフラッシュドライブなどの、ＵＳＢタイプデバイスだけでなく、ソフトウェアの更新パッケージを格納することが可能な他の任意の携帯型、接続可能ハードウェアデバイスが挙げられる。
【００１３】
例示的な実施形態によれば、ソフトウェアの更新を受け取るデバイスは、起動するとすぐに、外部に接続可能な記憶デバイス上の特定の位置で特定のデータを検索する更新ユーティリティを備える。更新ユーティリティが外部に接続された記憶装置の予め決められた位置に予め決められたデータを確認する場合には、確認及び検証プロセスは進行可能だが、適切なデータ及び位置を検出できない場合には更新ユーティリティは中止される。
【００１４】
本発明の例示的な実施形態によれば、確認及び検証プロセスは、ソフトウェアの更新で使用されるファイルのチェックサムを演算し、実行可能更新ファイルにチェックサムをパッケージ化することによって、実施される。次に、実行可能更新ファイルが、パッケージチェックサムを生成するために処理され、それから、パッケージチェックサムが、対称キー、すなわちセッションキーで暗号化される。次に、セッションキー自体が、公開キーで暗号化され、公開キーと相補的な秘密キーが、ソフトウェアの更新が適用されるデバイスに常駐する更新ユーティリティに埋め込まれる。それから、暗号化されたセッションキーが、デジタル署名をもたらすために、公開／秘密キーのペア中からの秘密キーによって、デジタル署名される。秘密キーは、例えば、ソフトウェアの更新製作者の側で安全に保持されることによって、秘密保持される。公開／秘密キーのペア中からの公開キーは、ソフトウェアの更新を受け取るデバイスに常駐の更新ユーティリティに埋め込まれる。
【００１５】
安全なパッケージチェックサム、安全なセッションキー及びデジタル署名は、すべて、ＸＭＬファイルなどのドキュメントに配置され、次に、ソフトウェアの更新を受け取るユニットに更新を行うために使用されるハードウェアデバイスに、ドキュメントが格納される。ソフトウェアの更新を行うために使用される実行可能及び／又はデータファイルも、ソフトウェアの更新を確認、検証及びインストールするために使用されるすべてのファイル及びデータを備える割当パッケージを提供する記憶デバイスに格納される。
【００１６】
本発明の例示的な実施形態によれば、デバイスに常駐するソフトウェアの更新ユーティリティを起動させることによって、デバイスへのソフトウェアの更新が実施される。更新ユーティリティは、接続された記憶デバイスを検索する。記憶デバイスには、更新を行うための特定のファイル及びデータが位置する。本発明の一態様によれば、更新ユーティリティは、記憶デバイスの明示的な位置で明示的なファイル又はデータを検出しようと試み、データ、ファイル又は位置の特定の条件が満たされない場合には、更新プロセスを中止することができる。格納されたデータ及びファイルが正確に検索され及び／又は位置づけられていると更新ユーティリティが判定する場合には、確認及び／又は検証プロセスを開始することができる。
【００１７】
確認及び／又は検証プロセスとしては、ドキュメントファイルからデジタル署名を読み取ること及び常駐更新ユーティリティに埋め込まれた公開キーを使用してデジタル署名のソースを検証することが挙げられる。検証は、特定の結果を獲得するために、デジタル署名を復号化すべく公開キーを用いて実施することが可能で、その結果は、テキストブロックの形とすることができ、この場合には、暗号化されたセッションキーに相当する。このように獲得されたデジタル署名の復号化の結果は、特定の値の集合と比較される。この場合には、特定の値の集合は、ドキュメントファイルから同様に読み出された暗号化されたセッションキーである。復号化の結果と値の集合が合致する場合には、更新の有効な及び認可されたソースが示され、そして、更新の進行が許可可能となる。更新ソースが、上記の技術による復号化の結果と値の集合の間の合致によって認証されない場合には、更新プロセスは終了する。
【００１８】
デジタル署名が認証され、更新のための認可されたソースが検証された場合には、続いて、更新ユーティリティは、暗号化されたセッションキーを読み出して、更新ユーティリティに埋め込まれた秘密キーを使用してセッションキーを復号化する。復号化されたセッションキーは、次に、パッケージチェックサム値を復号化するために用いられ、パッケージチェックサム値は、実行可能ファイルの完全性を評価するために、実行可能更新ファイルの算出されたチェックサム値と比較される。
【００１９】
本発明の一態様によれば、更新ユーティリティは、実行可能な更新のチェックサムを確認及び検証し、算出され及び読み出されたチェックサムが合致すると判定された場合には、実行可能ファイルに実行許可を与える。更新ファイルは、格納されたファイル及びデータのチェックサムの読み出しを実行し、データ及びファイルの完全性に検証するために、データ及びファイルの追加的なチェックサムを演算する。完全性が検証可能な場合には、ファイル及びデータは、更新のためにインストールされる。
【００２０】
本発明は、下記の添付図面を参照にして、以下でより詳細に説明される。
【図面の簡単な説明】
【００２１】
【図１】ソフトウェアの更新ターゲットデバイス及び記憶媒体のコンテンツを示したブロック図である。
【図２】ソフトウェアの更新プロセスの準備及びインストールをそれぞれ示す、フローチャートである。
【図３】ソフトウェアの更新プロセスの準備及びインストールをそれぞれ示す、フローチャートである。
【００２２】
発明の詳細な説明
本発明は、比較的高いセキュリティレベルによって、ソフトウェアを実行する予定のシステムに記憶させる前に、ソフトウェアの更新の完全性を確認する、システム及び方法を提供する。暗号化のための対称及び非対称のキー並びに更新を認証するデジタル署名を使用して、セキュリティは、実施される。対称キー暗号化方式は、保護されるデータ又はドキュメントを暗号化そして復号化するために、キーを使用する。対称キー暗号化及び復号化アルゴリズムは、非対称キーアルゴリズムより通常は効率的であり、その結果、複雑でなく及び／又は時間をかけずに、その実施が可能である。しかしながら、対称キーシステム方式によって利用可能なセキュリティレベルは、暗号化／復号化方法を使用する当事者間のキーの秘匿性に依存する。対称キーが所期の当事者以外に明らかとなる場合、対称キーを用いて暗号化されるいかなるデータ又はドキュメントのセキュリティも危険に晒される。
【００２３】
非対称キー暗号化及び復号化は、同一データ又はドキュメントを復号化するために使用されるのとは異なるキーを、データ又はドキュメントを暗号化するために使用する。多くの場合公開／秘密キーのペアと呼ばれ、公開キーは、受信当事者に安全に配信されることになるデータを暗号化するために通常は用いられる。所期の受信当事者は、暗号化のために使用される公開キーとペアになる秘密キーを所有する。秘密キーは受信当事者によって秘密に保持され、その結果、一般に秘密キーを所有する当事者だけが、公開キーを使用して暗号化されたメッセージを復号化することができる。公開／秘密キーのペア中からの秘密キーを所有する当事者に対してメッセージを安全に送信することができる誰にでも、公開キーを利用可能とすることができる。非対称キーセキュリティ方式によって維持可能なセキュリティレベルは、秘密キーの秘匿性の維持に依存する。
【００２４】
非対称キー暗号化のための別の適用としては、デジタル署名が挙げられ、多くの場合、デジタルセキュリティ証明書で使用される。この適用の場合には、データ又はドキュメントを送信するために使用されるかもしれないデータ、ドキュメント又はメッセージといったアイテムを暗号化、すなわち署名、するために、非対称公開／秘密キーのペア中からの秘密キーが、使用される。受信データの信頼性の検証を望んでいる当事者は、署名を検証して、データのソースを確認するために、合致した公開キーを適用することができる。このタイプのデジタル証明書セキュリティは、署名をする当事者によって使用される秘密キーの秘匿性に依存する。
【００２５】
対称及び非対称キーの生成は、適切にドキュメント化され、当業者に公知であるため、生成についての更に詳細な説明は省略される。本発明の例示的な実施形態によれば、異なったシステムへの様々なソフトウェアの更新の適用で、暗号化及び復号化のために、単一の対称キーを、生成及び使用可能である。代替として、又は加えて、それぞれのソフトウェアの更新及び／又は更新されるそれぞれのシステムのために、異なる対称キーを生成することができる。同様に、安全なソフトウェアの更新を配信するために、単一の非対称公開／秘密キーのペアを生成することができ、ペア中からの秘密キーが、ソフトウェアの更新ソース又は発信者によって、安全に、秘密に保持される。加えて、安全なソフトウェアの更新のために、１つ以上の異なった公開／秘密非対称キーのペアを生成することができ、ペア中からの秘密キーが、ソフトウェアの更新が適用されることになるデバイスに提供される。いずれの場合でも、公開／秘密キー及び対称キーは、固有のものとなるように、生成及び維持されて、メンテナンス及び管理業務を支援することができ、又は、ソフトウェアの更新若しくはデバイスに対して別個のものとなるように生成及び保持され、例えば、トラッキングデバイス及び更新を支援することができる。
【００２６】
ここで図１を参照にすると、安全なソフトウェアの更新を実施するシステム１００のブロック図が示される。システム１００は、ソフトウェアの更新ターゲットデバイス１１０及び更新関連のプログラムファイルを格納するソフトウェアの更新媒体１２０を備える。デバイス１１０は、プロセッサを有するコンピューティングデバイス、及び、デバイス１１０の様々な操作機能を実行するために使用されるソフトウェア並びにデータを格納する１つ以上のタイプの搭載記憶装置として、通常実施される。デバイス１１０に格納されるソフトウェアの一部として、更新ユーティリティ１１２が、提供される。例えば、ＩＤ及びパスワードによって維持可能な一定のアクセス権を有する管理者によって等、安全な状況下で開始されるように、ユーティリティ１１２は、実施可能である。ユーティリティ１１２は、更新プロセスの一部として公知の状態にデバイス１１０を設定するために動作することができ、ソフトウェアの更新に備えて他の管理機能を実行することができる。例えば、デバイス１１０のプロセッサの実行前にデバイス１１０のメモリにロードされるかもしれない、実行可能更新プログラムに実行許可を与える前に更新を検証するために、ユーティリティ１１２は、所期のソフトウェアの更新のセキュリティ評価を行うことができる。
【００２７】
ユーティリティ１１２は、ソフトウェアの更新の初期処理のために予め設定された更新定義１１４を備えるように、実施される。また、ユーティリティ１１２は、公開／秘密非対称キーのペア中からの秘密復号キー１１６の他に、公開／秘密非対称キーのペア中からの公開署名キー１１８を備える。ユーティリティ１１２のコンポーネントは、ソフトウェアの更新のセキュリティ、検証及び確認に関与するために、各々、順番に使用される。例えば、媒体１２０のコンテンツが適切に構成されているかを判定するために、ソフトウェアの更新の初期プロセスの間、更新定義１１４は使用される。
【００２８】
更新定義１１４は、ソフトウェアの更新の開始に応じて、ユーティリティ１１２が予想した特定のデータの記憶のための媒体１２０上の特定の記憶位置を示すことができる。例えば、更新定義１１４は、フォルダ位置、ファイル位置、ファイルのデータ位置、又は、媒体１２０のハードウェア特性若しくはアクセス媒体１２０に使用されるハードウェア機構によって定義されるデータ位置の１つ以上を特定するリテラル又はハードコード化識別子を備えることができる。例示的な実施形態によれば、媒体１２０は、ファイルアロケーションテーブル（ＦＡＴ）ファイルシステム又はＮＴＦＳ（ニューテクノロジー・ファイルシステム）ファイルシステムによって編成することができる。このようなＦＡＴ又はＮＴＦＳファイルシステムによって、更新定義１１４は、ファイル名若しくは符号及び／又はファイル若しくは符号が位置するディレクトリ若しくはフォルダを定義することができる。ユーティリティ１１２は、媒体１２０のコンテンツが予想通りであるかを判定する最初の試験として、記憶媒体１２０に含まれる特定のファイル名又は符号を、検索することができる。一例として、ユーティリティ１１２は、媒体１２０のコンテンツを承認するかを判定するために、更新定義１１４に従って、ｕｐｄａｔｅ．ｅｘｅ名を有するファイル、又は、ＸＭＬファイルの＜ｕｐｄａｔｅ１＞のタグを、検索することができる。したがって、更新定義１１４の使用は、第１セキュリティ閾値を形成し、ソフトウェアの更新の完全性を確認する一助となる。ユーティリティ１１２が更新定義１１４によって示されるような適切な位置に適切なデータを見つけ出す場合には、ソフトウェアの更新プロセスを継続することができ、他の場合には、終了することになる。
【００２９】
ユーティリティ１１２は、復号／署名キー１１６、１１８にアクセスする。このキーは、安全なソフトウェアの更新で使用される公開／秘密非対称キーのペア中からの半分を各々形成する。キー１１６は、公開／秘密非対称暗号／復号キーのペア中からの秘密復号キーで、キー１１８は、公開／秘密非対称署名キーのペア中からの公開署名キーである。ソフトウェアの更新用の媒体１２０に提供される情報を復号化及び認証するために、キー１１６、１１８は、それぞれ用いられる。媒体１２０に格納される様々なコンポーネントは、キー１１６、１１８に対応している公開／秘密キーのペア中からの残りの半分によって、暗号化される。したがって、インストール前にソフトウェアの更新の態様を検証するために、キー１１６、１１８は、媒体１２０に提供される情報を復号化、ロック解除又は認証するべく、ユーティリティ１１２によって使用可能である。
【００３０】
媒体１２０は、ソフトウェアの更新のセキュリティをサポートするために使用されるアイテムを提供する更新ドキュメント１２２を備える。例えば、更新ドキュメント１２２は、暗号化された対称、すなわちセッション、キーを備えるＸＭＬファイルとして実施することができ、公開／秘密非対称暗号／復号キーのペア中からの公開暗号キーで暗号化される。暗号化キー１２４は、セキュリティ機構をソフトウェアの更新に提供するために用いられるセッションキーを獲得すべく、秘密キー１１６を使用して、復号化することができる。加えて、更新ドキュメント１２２はデジタル署名１２６を提供する。デジタル署名は、暗号化対称キー１２４及び公開／秘密非対称署名キーのペア中からの秘密署名キーで形成される。デジタル署名１２６は、対応する公開／秘密非対称署名キーのペア中からの公開署名キー１１８を使用して認証されるように、設計される。
【００３１】
更新ドキュメント１２２に加えて、媒体１２０は、所期のソフトウェアの更新を実施するために使用される更新実行可能ファイル１２８を格納する。媒体１２０は、また更新ファイル１３０を備える。この更新ファイルは、安全なソフトウェアの更新プロセスで使用することが可能な０個以上のファイルに相当する。例示的な実施形態によれば、一度安全なソフトウェアの更新の検証プロセスが完了すると、更新実行可能ファイル１２８は実行制御される。ソフトウェアの更新の検証後、デバイス１１０上にソフトウェアの更新をインストールするために、更新実行可能ファイル１２８は、実行することができる。
【００３２】
更新実行可能ファイル１２８及び／又は更新ファイル１３０は、ソフトウェアの更新を開始及び検証するためにユーティリティ１１２によって使用される新しいバージョンのコンポーネントを備えてもよい。例えば、新しいバージョンの更新定義１１４、秘密暗号キー１１６及び／又は公開署名キー１１８を、場合によっては新しいバージョンのユーティリティ１１２と共に、インストール及び更新プロセスの間に、デバイス１１０にインストールすることができる。インストール及び更新プロセスは、将来のソフトウェアの更新のための検証を開始及び実行する固有のユーティリティ１１２を提供可能にすることによって、将来の日付での更なる更新のためのデバイス１１０を準備することができる。
【００３３】
ここで図２を参照すると、フローチャート２００に、本発明に従って安全なソフトウェアの更新を準備するためのプロセスが示される。ブロック２１０に示されるように、プロセスは、本明細書では暗号キーのペア及び署名キーのペアと称される２つの公開／秘密非対称のキーのペア中からの生成又は取得から開始される。いずれのキーのペアも暗号及び／又はデジタル証明のために使用できるという点で、暗号及び署名キーのペアは抽象的に扱われる。本解説では、暗号キーのペアは暗号化目的のために使用され、署名キーのペアはデジタル証明書生成及び認証のために使用される。
【００３４】
暗号及び署名キーのペアが利用可能となった後、様々な更新コンポーネントを備える更新ユーティリティが、ソフトウェアの更新によって更新されるターゲットシステム又はデバイスに提供される。ブロック２１２に示されるように、更新コンポーネントは、更新定義、秘密復号キー及び公開署名キーを備えることができる。更新定義、秘密復号キー及び公開署名キーは、図１のユーティリティ１１２に示される。ターゲットデバイスに提供されたこれらのコンポーネントは、デバイスに提示されるソフトウェアの更新を検証、確認及び認証するために、用いられる。ターゲットデバイスに確立された更新ユーティリティ及びコンポーネントを利用して、安全なソフトウェアの更新を、更新ユーティリティ及びコンポーネントに基づいて実施することが可能となる。
【００３５】
安全なソフトウェアの更新は、所与のデバイスへの更新アプリケーション用の所与の媒体プラットホームに割り当てられた更新パッケージで構成することができる。ブロック２１４に示されるように、ソフトウェアの更新インストールプロセスで使用されることになる各々のファイルのためのチェックサム値の演算から、更新パッケージは、生成開始される。比較的高いレベルの完全性の検証を更新ファイルに提供するために、ＭＤ５アルゴリズムを使用して、チェックサムを生成することができる。
【００３６】
ブロック２１６に示されるように、一度チェックサムが演算されると、実行可能更新ファイルは生成され、チェックサムが実行可能更新ファイルに埋め込まれる。一度更新の完全性が本発明に従って検証されると、埋め込まれたチェックサムは、ターゲットデバイスに更新をインストールするために使用される実行可能イメージの一部を形成する。次に、ブロック２１８に示されるように、実行可能更新ファイルを処理して、チェックサムを生成する。実行可能更新ファイルの完全性の比較的高いレベルの保証を獲得するために、ここでもまた、ＭＤ５アルゴリズムを使用して、チェックサムを生成することができる。
【００３７】
プロセスは、ブロック２２０に示されるように、セッションキーの生成又は取得を継続する。セッションキーは、対称暗号キーである、生成中のソフトウェアの更新に固有であるか、又は、所与のデバイス若しくはソフトウェアの更新のために一般的であるように、セッションキーは、生成することができる。ブロック２２２に示されるように、次に、セッションキーは、実行可能更新ファイルのチェックサムを暗号化するために用いられる。ブロック２２４に示されるように、次に、セッションキー自体が、公開／秘密暗号／復号キーのペア中からの公開暗号キーを使用して、暗号化され、暗号化されたセッションキーに相当する第１データブロックが形成される。特定のデバイスへの追加的な更新ができるようにするため、及び、セッションキーの暗号化のためのソースの維持を確実にするために、公開暗号キーは、ソフトウェアの更新開発者又は発信者に保持される。
【００３８】
ブロック２２６に示されるように、ソフトウェアの更新パッケージの生成のためのプロセスは、暗号化されたセッションキーに相当する第１データブロックから、デジタル署名の生成を継続する。デジタル署名は、公開／秘密署名キーのペア中からの秘密署名キーで生成され、この秘密署名キーも、ソフトウェアの更新提供者又は発信者によって保持される。暗号化されたセッションキーを認証するために使用されるデジタル署名が有効なままであることを確実にするために、秘密署名キーは、ソフトウェア発信者又は提供者に秘密に保持される。暗号化されたセッションキーに相当する第１データブロックは、秘密署名キーを使用して暗号化され、デジタル署名が作成される。
【００３９】
一度、暗号化された実行可能チェックサム、暗号化されたセッションキー及びデジタル署名が生成されると、ブロック２２８に示されるように、ソフトウェアの更新プロセスの一部として使用されるパッケージドキュメントに、アイテムが配置される。暗号化された実行可能チェックサム、暗号化されたセッションキー及びデジタル署名は、安全な更新完全性検証プロセスを逆転させるために、チェックサム、復号化又は認証アルゴリズムによって読み出し及び使用することができるＸＭＬタグ又は符号化データのブロックの形をとることができる。例示的な実施形態によれば、暗号化されたチェックサム、暗号化されたセッションキー及びデジタル署名は、ソフトウェアの更新検証プロセスで用いられるＸＭＬタグとして、ＸＭＬ形式にされたファイルに配置される。
【００４０】
安全なソフトウェアの更新を生成するためのプロセスは、例えば、携帯型記憶媒体を使用してターゲットデバイス位置へ配布するための更新パッケージを生成することで終わる。更新パッケージは、前もって生成されたパッケージドキュメントを備え、パッケージドキュメントは、ＸＭＬファイル、実行可能更新ファイル及びソフトウェアの更新を実行するために使用されることになるファイルとすることができる。生成された更新パッケージは、ソフトウェアの更新を受け取ることになるターゲットデバイスのユーティリティ及びコンテンツを引き立たせ、その結果、ターゲットデバイスユーティリティ及び更新パッケージの組み合わせは、安全なソフトウェアの更新を実施するために、互いに機能することが可能となる。
【００４１】
ここで図３を参照にすると、フローチャート３００に、本発明によるソフトウェアの更新インストールプロセスが示される。ブロック３１０に示されるように、フローチャート３００に示されるソフトウェアの更新プロセスは、ターゲットシステム又はデバイスへの記憶媒体の接続又は取り付けから始まる。更新記憶媒体は、検証されてターゲットデバイスにインストールされることになる、安全なソフトウェアの更新を実行するための更新パッケージを備える。本発明の例示的な実施形態によれば、ソフトウェアの更新プロセスはターゲットデバイスから開始されるが、記憶媒体に格納された実行可能ソフトウェアによって更新を開始させることができる。ターゲットデバイスに提供されるソフトウェアの更新オプションを管理者権限を有するユーザによって選択可能とすることにより、安全な更新プロセスの開始は、ブロック３１２に示されるように、例えば、ターゲットデバイスによって実施可能である。ソフトウェアの更新オプションは、例えば、図１に示されるように、安全なソフトウェアの更新を実施するためのコンポーネントと共に、ターゲットデバイスに提供される更新ユーティリティを起動させることができる。
【００４２】
安全な更新プロセスの開始に応じて、ターゲットデバイスは、コンテンツが予想通りであることを検証するために、記憶媒体のコンテンツの所定のチェックを実行する。記憶媒体に配置されるファイルのコンテンツ及び性質に関する予想は、ターゲットデバイスに前もって提供された更新定義によって定義される。例えば、更新定義は、記憶媒体に配置されたファイルの一定のタグ又は識別子を特定することができ、記憶媒体の様々なタグ、識別子又はファイルの個々の位置を特定することができる。更新された定義による記憶媒体のコンテンツのチェックは、フローチャート３００のブロック３１４に示される。判定ブロック３１６に示されるように、記憶媒体のコンテンツが更新定義で特定される予想と合致しない場合には、判定ブロック３１６の「いいえ」枝路を介して到達するブロック３１８に示されるように、ソフトウェアの更新は中止される。ソフトウェアの更新をインストールの前に中止する場合には、ソフトウェアの更新インストールが中止又は失敗したというメッセージを、ユーザに伝えることができる。
【００４３】
記憶媒体のコンテンツが更新定義によって特定される予想と適合する場合には、記憶媒体コンテンツはこの閾値テストを通過したと考えられ、判定ブロック３１６から出る「はい」枝路によって示されるように、ソフトウェアの更新インストールプロセスを継続することができる。ブロック３２０に示されるように、ソフトウェアの更新インストールプロセスは、更新パッケージの認証を可能にするために、パッケージドキュメントからデジタル署名及び暗号化されたセッションキーに相当する第１データブロックの読み出しを継続する。
【００４４】
デジタル署名が公開署名キーによって処理される。公開署名キーは、デジタル署名によって保護されているデータのソース及び完全性の認証ができるように、ターゲットデバイスに予め提供される。公開署名キーは、デジタル署名から獲得されるような、暗号化されたセッションキーに相当する第２データブロックを獲得すべく、デジタル署名を復号化するために使用される。次に、第２データブロックが、暗号化されたセッションキーに相当するパッケージドキュメントから読み出された第１データブロックと比較される。公開署名キーでデジタル署名を復号化して、その結果獲得された第２データブロックを、デジタル署名を認証するために第１データブロックと比較するステップは、デジタル署名認証専用のソフトウェアモジュールで、任意に実行することができる。認証操作は、フローチャート３００のブロック３２２に示され、ソフトウェアの更新のソースが検証されるかどうかを示す結果を伴う。
【００４５】
判定ブロック３２４は、デジタル署名が認証されるかどうかの判定を示す。デジタル署名が認証されない場合には、例えば、算出及び処理されたハッシュ値が合致しないことを意味し、判定ブロック３２４からブロック３１８への「いいえ」枝路によって示されるように、ソフトウェアの更新は中止される。デジタル署名が認証される場合には、判定ブロック３２４からの「はい」枝路で示されるように、ソフトウェアの更新インストールプロセスは継続する。
【００４６】
デジタル署名が適切に認証される場合には、ブロック３２８に示されるように、安全なソフトウェアの更新プロセスは、暗号化されたセッションキーの復号化を継続する。秘密復号キーを使用して、暗号化されたセッションキーは、復号化される。秘密復号キーは、更新ユーティリティの一部としてターゲットデバイスに前もって提供される。ブロック３４０に示されるように、実行可能更新ファイルの暗号化されたチェックサムを読み出し、ブロック３４２に示されるように、復号化されたセッションキーによって実行可能チェックサムを復号化することにより、プロセスは継続する。したがって、チェックサムが改竄されなかった又は損なわれなかったという比較的高いレベルの保証によって、実行可能チェックサムは、実行可能更新ファイルの完全性を検証するために、利用可能となる。その結果、ソフトウェアの更新が、損なわれず、又は、いかなるウイルスも含まず、又は、発信開発者若しくは提供者以外のソースから到着していないという高い信頼度で、ソフトウェアの更新の確認及び検証を、ターゲットデバイスで、続行することができる。
【００４７】
ブロック３４４に示されるように、更新実行可能ファイルの検証は、実行可能ファイルのチェックサムのローカル生成を継続する。ローカルチェックサムは、上記したようにもたらされた、更新パッケージからのチェックサムと比較され、実行可能更新ファイルの完全性を判定する。チェックサムが合致するかの判定は、判定ブロック３４６に示される。チェックサムが合致しない場合には、判定ブロック３４６からブロック３１８への「いいえ」枝路によって示されるように、ソフトウェアの更新インストールは中止される。
【００４８】
チェックサムが合致する場合には、判定ブロック３４６からブロック３４８への「はい」枝路によって示されるように、実行可能更新ファイルに実行許可を与えることができる。実行可能更新ファイルに実行許可が与えられるまで、フローチャート３００に示される処理は、ソフトウェアの更新を確認及び検証するために記憶媒体からデータを読み出しそしてデータを処理するターゲットデバイスによって実施される。一度、実行可能更新ファイルに実行制御許可が与えられると、実行可能更新ファイルは、ターゲットデバイスのメモリにロードされ、更新インストールを実施するために搭載プロセッサによって実行可能となる。
【００４９】
実行可能更新ファイルによって行われる操作の１つは、ブロック３５０に示されるように、更新ファイルの完全性に確実にするために、更新パッケージに含まれる各々のファイルのチェックサムをローカルで生成することである。チェックサムは、ＭＤ５アルゴリズムを使用して生成可能であり、実行可能更新ファイルに埋め込まれたチェックサムと比較され、チェックサムが合致するか判定される。チェックサムが合致するかを判定するための、ローカルで生成されたチェックサム値と埋め込まれたチェックサム値の比較は、判定ブロック３５２に示される。チェックサムのいずれかが合致しない場合には、判定ブロック３５２からブロック３１８への「いいえ」枝路によって示されるように、ソフトウェアの更新インストールは中止される。チェックサムが合致する場合には、ブロック３５４へと誘導される判定ブロック３５２の「はい」枝路で示されるように、インストール設定に従ってターゲットデバイスにソフトウェアの更新をインストールするために、実行可能更新ファイルは更新ファイルを処理する。本発明の例示的な実施形態によれば、更新されるターゲットデバイスにソフトウェアをもたらすために、ターゲットデバイスの永続的記憶装置に更新ファイルから得たデータを格納すべく、実行可能更新ファイルは実行可能である。
【００５０】
本発明はターゲットデバイスを一般にコンピュータデバイスとして説明するが、発明されたシステム及び方法は、コンピュータデバイスに関連して必ずしも案出されないターゲットデバイス、システム又は方法で、一般に実施可能である。本発明のシステム及び／又は方法を利用可能なこのようなターゲットの例としては、テレビ、携帯電話、自動車車両、医療機器だけでなく、データベースアプリケーション又は埋め込みシステムといった、ソフトウェアの更新の典型的なターゲットが挙げられる。一般に、ソフトウェアを実行する任意のタイプの処理システムによって、発明されたシステム又は方法は適用可能である。
【００５１】
本明細書に説明される操作は、全く例示的であり、順不同である。更に、操作は、適切な場合に任意の順序で使用可能で、部分的に使用可能である。上記の実施形態を考慮して、発明されたシステム、デバイス、方法及び／又は用途は、コンピュータシステムに転送又は格納されるデータに関係した様々なコンピュータ実施操作を利用できることを理解すべきである。これらの操作は、物理量の物理的操作を必要とする。必ずではないが、通常、これらの量は、格納、転送、組み合わせ、比較、また、操作可能な電気、磁気、光信号といった形をとる。
【００５２】
本発明の一部を形成する本明細書で説明をした操作のいくらかは、有用な機械操作である。本発明は、また、これらの操作を実行するデバイス又は装置に関する。所要の目的のために装置を特別に構成することができ、又は、装置を、コンピュータに格納されるコンピュータプログラムによって選択的に起動若しくは構成される汎用コンピュータとすることができる。特に、下で説明される、１つ以上のコンピュータ可読媒体に接続された１つ以上のプロセッサを利用する様々な汎用機を、本明細書の教示に従って書き込まれたコンピュータプログラムによって、使用することができるが、必要な操作を行う、より専門的な装置を構成するほうがより好都合である。
【００５３】
発明されたシステム及び方法は、また、コンピュータ可読媒体上のコンピュータ可読コードとして実施することができる。コンピュータ可読媒体はデータを格納することができる任意のデータ記憶デバイスであり、データは、その後、コンピュータシステムによって読み出し可能である。コンピュータ可読媒体の例としては、ハードディスク、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ―ＲＯＭ、ＣＤ―Ｒ、ＣＤ―ＲＷ、磁気テープ並びに他の光学及び非光学データ記憶デバイスが挙げられる。コンピュータ可読コードが分散型で格納及び実行されるように、コンピュータ可読媒体を、ネットワーク接続コンピュータシステムに分散することもできる。
【００５４】
上記の説明は、本発明の特定の実施形態を目的としている。しかしながら、他の変形及び修正が、これらの利点の一部又は全部の達成と共に、説明された実施形態に行われてもよいことは、明らかである。本明細書において説明された手順、プロセス及び／又はモジュールは、プログラム命令、ファームウェア又はこれらの組み合わせを有するコンピュータ可読媒体として実施された、ハードウェア、ソフトウェアで実現することができる。例えば、メモリ又は他の記憶デバイスからのプログラム命令を実行するプロセッサによって、本明細書において説明された機能を、実行することができる。したがって、添付の請求の範囲の目的は、本発明の真の趣旨及び範囲内にあるすべてのこのような変形及び修正を網羅することである。
【図１】
2014505318.tif 000003
【図２】
2014505318.tif 000004
【図３】
2014505318.tif 000005
【国際調査報告】
2014505318.tif 000006