(57)【要約】【課題】  プリンタなどの情報処理装置が電子証明書データを確実に取得して更新することができるとともに、従来の装置構成に対する大幅な機能追加をすることなく、電子証明書データの取得機能を備えた情報処理装置及び情報処理装置の制御方法、情報処理システムを提供する。【解決手段】  更新版ファームウェアは１つのバイナリファイル形式となっており、このファイル内にはコントローラ部３１を動作する上で必要なファームウェアデータと、プリンタ３がコンテンツサーバ２とセキュアな通信を行う上で必要となるルート証明書データが含まれている。取得した更新版のファームウェアから、当該ファームウェアに含まれるルート証明書データの固有情報を抽出し、抽出した固有情報を用いてＲＡＭ３１３に設けられたルート証明書の管理テーブルを更新する処理を実行する。【選択図】  図７
2008129788.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した情報処理装置であって、
前記記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理手段と、
当該情報処理装置と通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得手段と、
前記第１の取得手段で取得した前記第２の固有情報が、前記管理手段で管理している第１の固有情報と異なる場合、前記外部装置に格納されたファームウェアデータを取得する第２の取得手段と、
前記第２の取得手段で取得したファームウェアデータから、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新手段と、
を有することを特徴とする情報処理装置。
【請求項２】
情報処理装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した情報処理装置の制御方法であって、
前記情報処理装置は前記記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理部を有し、
当該情報処理装置と通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得ステップと、
前記第１の取得ステップで取得した前記第２の固有情報が、前記管理部で管理している第１の固有情報と異なる場合、前記外部装置に格納されたファームウェアデータを取得する第２の取得ステップと、
前記第２の取得ステップで取得したファームウェアデータから、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項３】
印刷装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した印刷装置と、当該印刷装置と通信可能なコンピュータとを含む情報処理システムであって、
前記印刷装置は、
前記記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理手段を有し、
前記コンピュータは、
当該コンピュータと通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得手段と、
前記第１の取得手段で取得した第２の固有情報を前記印刷装置に転送する転送手段と、
前記外部装置からファームウェアデータを取得する第２の取得手段と、を有し、
前記印刷装置は、前記転送手段から転送された前記第２の固有情報が、前記管理手段で管理している第１の固有情報と異なる場合、前記コンピュータにファームウェアデータの取得依頼を発行する通知手段と、前記コンピュータが外部装置から取得したファームウェアデータを受信して、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新手段と、
を有することを特徴とする情報処理システム。
【請求項４】
印刷装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した印刷装置と、当該印刷装置と通信可能なコンピュータとを含む情報処理システムであって、
前記コンピュータは、
前記印刷装置の記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理手段と、
当該コンピュータと通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得手段と、
前記第１の取得手段で取得した第２の固有情報を前記印刷装置に転送する転送手段と、
前記外部装置からファームウェアデータを取得する第２の取得手段と、を有し、
前記印刷装置は、
前記転送手段から転送された前記第２の固有情報が、前記管理手段で管理している第１の固有情報と異なる場合、前記コンピュータにファームウェアデータの取得依頼を発行する通知手段と、
前記コンピュータが外部装置から取得したファームウェアデータを受信して、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新手段と、
を有することを特徴とする情報処理システム。
【請求項５】
セキュア通信に用いる電子証明書データを利用し、外部のコンテンツサーバと通信を行う情報処理装置であって、
当該情報処理装置の動作を制御するためのファームウェアを更新するために、ネットワークを介して更新版のファームウェアを取得する取得手段と、
前記取得手段で取得したファームウェアを記憶部の所定の領域に格納するとともに、格納したファームウェアを用いて前記情報処理装置の動作を制御する制御手段と、を有し、
前記制御手段は、前記ファームウェアの一部として電子証明書データが組み入れられたファイルデータを取得した場合、前記電子証明書データの固有情報を当該ファイルデータから抽出し、当該固有情報を前記ファームウェアのバージョン情報とは独立して管理することを特徴とする情報処理装置。
【請求項６】
セキュア通信に用いる電子証明書データを利用し、外部のコンテンツサーバと通信を行う情報処理装置の制御方法であって、
当該情報処理装置の動作を制御するためのファームウェアを更新するために、ネットワークを介して更新版のファームウェアを取得する取得ステップと、
前記取得ステップで取得したファームウェアを記憶部の所定の領域に格納するとともに、格納したファームウェアを用いて前記情報処理装置の動作を制御する制御ステップと、を有し、
前記制御ステップは、前記ファームウェアの一部として電子証明書データが組み入れられたファイルデータを取得した場合、前記電子証明書データの固有情報を当該ファイルデータから抽出し、当該固有情報を前記ファームウェアのバージョン情報とは独立して管理することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置の制御方法、情報処理システムに関するものであり、より詳しくは、情報処理装置のファームウェア並びに電子証明書情報のアップデートを実行する情報処理装置及び情報処理装置の制御方法、情報処理システムに関するものである。
【背景技術】
【０００２】
現在、プリンタやデジタルスチルカメラ、携帯音楽プレーヤなどの情報処理装置にはファームウェアと称されるソフトウェアが組み込まれている。ファームウェアとはプリンタやデジタルスチルカメラなどの機器に実装されたハードウェアの制御を行うために、機器に組み込まれているソフトウェアのことである。例えば、パーソナルコンピュータのＢＩＯＳもファームウェアの一種である。
【０００３】
また、ファームウェアは、機能の追加や不具合の修正のため、後から変更（更新）できるようになっている。ファームウェアの更新は、新バージョンのファームウェアを書き込んだＣＤ−ＲＯＭなどの記録媒体を配布し、その記憶媒体からファームウェアを読み出して、機器に組み込まれた旧バージョンのファームウェアを更新する方法がある。
【０００４】
さらに最近では、インターネットなどのネットワークの普及に伴い、ネットワークを介して新バージョンのファームウェアを配布するサービスが一般化しつつある（特許文献１参照）。
【０００５】
一方、最近ではプリンタやデジタルスチルカメラ、携帯音楽プレーヤ等の情報処理装置自体がインターネットに接続する機能を有するようになっている。そのため、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）などの暗号通信に対応して装置のセキュリティを確保するため、従来はコンピュータ向けであった電子証明書をこのような情報処理装置にも搭載することが要求されている。
【０００６】
電子証明書とは、例えば電子署名などの正当性を検証する際に利用されるものであり、一般的に信頼のある第三者認証機関（認証局と称する）から発行されるものである。発行された電子証明書を利用することで、例えば、アクセスしようとするサーバが暗号化通信可能であることを証明したり、ＷＥＢサイトの提供者が実在していることを証明したりすることが可能となる。
【０００７】
また、電子証明書には認証局自体がその正当性を証明するために自ら署名し、発行するルート証明書と呼ばれるものが存在している。通常、暗号通信を行う場合、Ｗｅｂブラウザやネットワークコントローラなどは、予め認証局が発行したルート証明書を保持している。そして、Ｗｅｂサイト（Ｗｅｂサーバ）と通信を行う場合には、まずＷｅｂサイト（Ｗｅｂサーバ）から送信されたサーバ証明書が正当なものか否かを調べる。サーバ証明書の正当性を調べる場合、まず認証局が発行したサーバ証明書が正当なものであるか否かを判定する。サーバ証明書が正当なものである場合には、次に認証局自体が信頼できるものかを調べる。このとき、この認証局が自ら電子署名したルート証明書を事前にユーザが保持していれば、Ｗｅｂサイト（Ｗｅｂサーバ）は信頼できるものとみなすことができる。
【０００８】
なお、ルート証明書やサーバ証明書は通常、有効期限を有している。そのため、こうした証明書の更新作業を行うための技術が存在している（特許文献２参照）。
【特許文献１】特開２００３−１８６６９０号公報
【特許文献２】特開２００６−２３９９３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従って、プリンタ等の情報処理装置自体がインターネット上での暗号通信に対応する場合、特許文献２のようにルート証明書の取得、並びに更新処理を実現するための機能を備える必要がある。
【００１０】
しかしながら、特許文献２に記載の技術では、ルート証明書の取得にあたって印刷装置に事前に保持しているルート証明書の取得先情報（認証局のパスなど）といった情報を予め設定しておく必要がある。そのため、新たな認証局の追加などに伴う新規のルート証明書の取得を印刷装置が自動で行うことはできない。
【００１１】
また、上述したように、情報処理装置はファームウェアの取得処理と更新処理を実行するための機能を有している。しかしながら、この機能とは別にルート証明書のような電子証明書の取得を実行するための機能を備えることは機器のコスト上、望ましいこととは言えない。
【００１２】
本発明は、上記課題を解決するためになされたもので、プリンタなどの情報処理装置が電子証明書データを確実に取得して更新することができるとともに、従来の装置構成に対する大幅な機能追加をすることなく、電子証明書データの取得機能を備えた情報処理装置及び情報処理装置の制御方法、情報処理システムを提供するものである。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明における情報処理装置は以下の手段を有する。即ち、情報処理装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した情報処理装置であって、前記記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理手段と、当該情報処理装置と通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得手段と、前記第１の取得手段で取得した前記第２の固有情報が、前記管理手段で管理している第１の固有情報と異なる場合、前記外部装置に格納されたファームウェアデータを取得する第２の取得手段と、前記第２の取得手段で取得したファームウェアデータから、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新手段と、を有する。
【００１４】
また、本発明における情報処理装置の制御方法は以下の手順を有する。即ち、情報処理装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した情報処理装置の制御方法であって、前記情報処理装置は前記記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理部を有し、当該情報処理装置と通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得ステップと、前記第１の取得ステップで取得した前記第２の固有情報が、前記管理部で管理している第１の固有情報と異なる場合、前記外部装置に格納されたファームウェアデータを取得する第２の取得ステップと、前記第２の取得ステップで取得したファームウェアデータから、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新ステップと、を有する。
【００１５】
また、本発明における情報処理システムは以下の構成を有する。即ち、印刷装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した印刷装置と、当該印刷装置と通信可能なコンピュータとを含む情報処理システムであって、前記印刷装置は、前記記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理手段を有し、前記コンピュータは、当該コンピュータと通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得手段と、前記第１の取得手段で取得した第２の固有情報を前記印刷装置に転送する転送手段と、前記外部装置からファームウェアデータを取得する第２の取得手段と、を有し、前記印刷装置は、前記転送手段から転送された前記第２の固有情報が、前記管理手段で管理している第１の固有情報と異なる場合、前記コンピュータにファームウェアデータの取得依頼を発行する通知手段と、前記コンピュータが外部装置から取得したファームウェアデータを受信して、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新手段と、を有する。
【００１６】
また、本発明における情報処理システムは以下の構成を有する。即ち、印刷装置の制御を行うためのファームウェアデータと、セキュア通信に用いる電子証明書データとを記憶部に記憶した印刷装置と、当該印刷装置と通信可能なコンピュータとを含む情報処理システムであって、前記コンピュータは、前記印刷装置の記憶部に記憶された前記電子証明書データの第１の固有情報を管理する管理手段と、当該コンピュータと通信可能な外部装置に格納されたファームウェアデータの一部として構成された電子証明書データの第２の固有情報を取得する第１の取得手段と、前記第１の取得手段で取得した第２の固有情報を前記印刷装置に転送する転送手段と、前記外部装置からファームウェアデータを取得する第２の取得手段と、を有し、前記印刷装置は、前記転送手段から転送された前記第２の固有情報が、前記管理手段で管理している第１の固有情報と異なる場合、前記コンピュータにファームウェアデータの取得依頼を発行する通知手段と、前記コンピュータが外部装置から取得したファームウェアデータを受信して、当該ファームウェアデータの一部として構成された前記電子証明書データの第２の固有情報を少なくとも抽出し、抽出した第２の固有情報で前記第１の固有情報を更新する更新手段と、を有する。
【００１７】
また、本発明における情報処理装置は以下の手段を有する。即ち、セキュア通信に用いる電子証明書データを利用し、外部のコンテンツサーバと通信を行う情報処理装置であって、当該情報処理装置の動作を制御するためのファームウェアを更新するために、ネットワークを介して更新版のファームウェアを取得する取得手段と、前記取得手段で取得したファームウェアを記憶部の所定の領域に格納するとともに、格納したファームウェアを用いて前記情報処理装置の動作を制御する制御手段と、を有し、前記制御手段は、前記ファームウェアの一部として電子証明書データが組み入れられたファイルデータを取得した場合、前記電子証明書データの固有情報を当該ファイルデータから抽出し、当該固有情報を前記ファームウェアのバージョン情報とは独立して管理する。
【００１８】
また、本発明における情報処理装置の制御方法は以下の手順を有する。即ち、セキュア通信に用いる電子証明書データを利用し、外部のコンテンツサーバと通信を行う情報処理装置の制御方法であって、当該情報処理装置の動作を制御するためのファームウェアを更新するために、ネットワークを介して更新版のファームウェアを取得する取得ステップと、前記取得ステップで取得したファームウェアを記憶部の所定の領域に格納するとともに、格納したファームウェアを用いて前記情報処理装置の動作を制御する制御ステップと、を有し、前記制御ステップは、前記ファームウェアの一部として電子証明書データが組み入れられたファイルデータを取得した場合、前記電子証明書データの固有情報を当該ファイルデータから抽出し、当該固有情報を前記ファームウェアのバージョン情報とは独立して管理する。
【発明の効果】
【００１９】
以上説明したように、本発明の情報処理装置及び情報処理装置の制御方法、情報処理システムによれば、電子証明書データを確実に取得して更新することができるとともに、従来の装置構成に対する大幅な機能追加をすることなく、電子証明書データの取得機能及び管理機能を備えることが可能となる。
【発明を実施するための最良の形態】
【００２０】
（実施例１）
以下、情報処理装置としてプリンタを例に挙げて本発明を実施するための形態を説明する。
【００２１】
図１は本発明を適用した情報処理装置としてのプリンタを含む印刷システムの構成図である。デジタルテレビジョン（以後、ＤＴＶと称する）１はデジタルテレビ情報化研究会によって策定された規格であるネットＴＶ２．０に準拠したネットＴＶ端末である。
【００２２】
なお、ネットＴＶ規格とはＤＴＶをネットワーク対応端末として用いる場合の端末の要求仕様や、ネットＴＶ端末で利用するコンテンツやサービスの運用ガイドライン等を定めたものである。また、ネットＴＶ端末から要求されたデータの印刷を実行するためのプリンタに対する仕様もネットＴＶ規格に含まれている。
【００２３】
ＤＴＶ１とプリンタ３はＬＡＮなどのネットワークを介して通信可能に接続されている。ＬＡＮはルータ（不図示）によりインターネットに接続されているため、ＤＴＶ１及びプリンタ３はインターネット上のＨＴＴＰサーバ（ＷＥＢサーバ）としてのコンテンツサーバ２及びアップデートサーバ４にアクセスすることが可能となっている。
【００２４】
つまり、ＤＴＶ１は通常の放送受信の他に、インターネットを介してネットワーク上に存在するコンテンツサーバ２へアクセスし、ネットＴＶに実装されたネットＴＶ対応のＷＥＢブラウザを介してＷＥＢページを表示することができる。なお、当然ながらＡＲＩＢ（社団法人  電波産業会）によって定められたデータ放送コンテンツを表示することもできる。さらに、データ放送コンテンツに含まれる印刷用コンテンツや、ネットＴＶ対応の印刷コンテンツをプリンタで印刷することが可能となる。
【００２５】
また、ＤＴＶ１はデータ放送コンテンツに含まれる印刷コンテンツや、ネットＴＶコンテンツに含まれる印刷コンテンツを印刷する指示をプリンタ３に発行することができる。ＤＴＶ１を介したデータ放送印刷形態としてＡＲＩＢに定められているものとしては、（１）ＰｒｉｎｔＦｉｌｅ形式、（２）ＰｒｉｎｔＵＲＩ形式、（３）ＰｒｉｎｔＳｔａｔｉｃＳｃｒｅｅｎ形式の主に３タイプがある。ＰｒｉｎｔＦｉｌｅ形式はデータ放送コンテンツとして印刷コンテンツの実体ファイルがＤＴＶ１に送信される形式である。従って、ＤＴＶ１はこの印刷コンテンツの実体ファイルをプリンタに送信し、プリンタが実体ファイルを元に印刷を行う。
【００２６】
ＰｒｉｎｔＵＲＩ形式はデータ放送コンテンツとして印刷コンテンツの実体ファイルの在りかを示すＵＲＩ情報がＤＴＶ１に送信される形式である。従って、ＤＴＶ１はこのＵＲＩ情報をプリンタに送信し、プリンタがＵＲＩに従って印刷コンテンツの実体ファイルを取得し、印刷を行う。
【００２７】
ＰｒｉｎｔＳｔａｔｉｃＳｃｒｅｅｎ形式はＤＴＶ１がキャプチャしたデータ放送画面などの静止画像をプリンタに送信し、プリンタが印刷する形式である。
【００２８】
なお、（１）のＰｒｉｎｔＦｉｌｅ形式及び（２）のＰｒｉｎｔＵＲＩ形式でプリンタが取得する印刷コンテンツの実体ファイルはＸＨＴＭＬ−Ｐｒｉｎｔ文書と称される構造化文書データで記述されている。
【００２９】
但し、ＡＲＩＢではＤＴＶとプリンタ間の接続やネットワーク上のプリンタの発見処理、状態取得処理の詳細などは規定していない。そのため、ＡＲＩＢで規定されていない印刷に関する仕様はネットＴＶ２．０規格で定められている。なお、ネットＴＶ規格で規定されているネットＴＶコンテンツにおける印刷コンテンツもＸＨＴＭＬ−Ｐｒｉｎｔ文書で構成されるものである。
【００３０】
また、ネットＴＶ規格対応端末としてのＤＴＶ１及びプリンタ３はＵＰｎＰ  ＰｒｉｎｔＥｎｈａｎｃｅｄ：１に準拠している。なお、これらの規格の詳細については各規格を参照するものとし、ここでの説明を省略する。
【００３１】
ネットＴＶ２．０規格では、コンテンツサーバ２とプリンタ３との間の通信プロトコルはＨＴＴＰ１．１を使用すると定められている。さらに、セキュア通信のため、ＳＳＬ３．０又はＴＬＳ１．０に対応する必要がある。つまり、コンテンツサーバ２の電子証明書（サーバ証明書）を確認するために、プリンタ３には信頼された第三者であるルート認証局のルート証明書を搭載する必要がある。ルート証明書をプリンタ３が搭載することで、コンテンツサーバ２とプリンタ３との間ではセキュアなＨＴＴＰ通信が可能である。
【００３２】
続いて、外部装置としてのアップデートサーバ４について説明を行う。アップデートサーバ４はＨＴＴＰ通信が可能なＨＴＴＰサーバである。そして、アップデートサーバ４にはプリンタ３のファームウェアを更新するためのファームウェアアップデート情報ファイルと、ファームウェアの実体ファイルであるファームウェアデータが格納されている。プリンタ３はアップデートサーバ４からファームウェアデータをダウンロードして、プリンタ３の旧バージョンのファームウェアを新バージョンのファームウェアに更新することができる。ファームウェアデータ及びファームウェアアップデート情報ファイルの詳細については後述する。
【００３３】
なお、コンテンツサーバ２及びアップデートサーバ４の夫々のＨＴＴＰサーバとしての機能部については本発明を説明する上では重要ではないため、説明を省略する。
【００３４】
続いて、図２を用いてプリンタ３の詳細な構成を説明する。図２はプリンタ３の内部構成を示すブロック図である。なお、本図においては本発明の説明に関係の無い機能ブロックは省略している。
【００３５】
まず、プリンタ３はネットワークに関する制御を行うコントローラ部３１とプリンタ３本体の制御を行うエンジン部３２に大きく分けられる。コントローラ部３１には、コントローラ部３１全般の制御を司るＣＰＵ３１１が設けられている。また、フラッシュＲＯＭ３１２はファームウェアやルート証明書データを格納する記憶部である。ＲＡＭ３１３は各種の作業領域及び所定の管理データ格納領域として用いられる記憶部である。つまり、ＣＰＵ３１１はフラッシュＲＯＭ３１２に格納されたファームウェア及びＲＡＭ３１３に格納された管理データに従い、ＲＡＭ３１３を作業領域として動作している。
【００３６】
ネットワークインタフェース３１４はプリンタ３とＬＡＮを接続するためのインタフェース部である。なお、本発明の実施例ではＥｔｈｅｒｎｅｔ（登録商標）によりＬＡＮに接続しているものとする。外部インタフェース３１５は例えばＵＳＢのデバイスインタフェースである。従って、プリンタ３はＵＳＢを介してＵＳＢホストインタフェースを有するデジタルスチルカメラ（不図示）などと接続することが可能になっている。
【００３７】
内部インタフェース３１６はエンジン部３２と接続され、コントローラ部３１とエンジン部３２との間でデータの送受信を行う。なお、これらのブロックは全てコントローラ部３１が有するシステムバス３１７に接続されている。
【００３８】
続いて、エンジン部３２の説明を行う。エンジン部３２にはエンジン部３２全般の制御を司るＣＰＵ３２１が設けられている。また、フラッシュＲＯＭ３２２はファームウェアを格納する記憶部である。ＲＡＭ３２３は各種の作業領域に用いられる記憶部である。つまり、ＣＰＵ３２１はフラッシュＲＯＭ３２２に格納されたファームウェアに従い、ＲＡＭ３２３を作業領域として動作している。
【００３９】
内部インタフェース３２４はコントローラ部３１の内部インタフェース３１４と接続されており、コントローラ部３１とエンジン部３２との間でデータの送受信を行う。ユーザインタフェース３２５は、プリンタ３の操作パネル（不図示）に設けられたキーなどの入力装置と情報を表示する表示装置等から構成されており、プリンタ３に対するユーザからの指示入力や、プリンタ３のステータス表示などを実行する。印刷機構３２６は実際に印刷を行う機構部分で、ＣＰＵ３２１の制御に従い動作する。なお、これらのブロックは全てエンジン部３２が有するシステムバス３２７に接続されている。
【００４０】
続いて、図３を用いてプリンタ３のコントローラ部３１のフラッシュＲＯＭ３１２の格納領域に格納された各種のデータを概念的に示す図である。
【００４１】
図３として示したコントローラ部３１のフラッシュＲＯＭ３１２は、コントローラ部３１を動作させるためのファームウェアの格納領域として、ファームウェア格納領域Ａ１０とファームウェア格納領域Ｂ１１を有している。プリンタ３が出荷された状況では、２つの格納領域のうち、どちらか一方の格納領域に初期バージョンのファームウェアが格納されている。また、他方の格納領域はファームウェアが格納されていない状態である。
【００４２】
これに対して、後述するファームウェアのアップデート処理を実行し、新たなファームウェアを取得した場合には、未格納の領域に取得したファームウェアが格納されることになる。そして、さらにファームウェアのアップデート処理が発生した場合には、その時点で利用されていないファームウェアが格納された領域に対して新しいファームウェアが格納（上書き）されることになる。
【００４３】
個別パラメータ格納領域１２は、プリンタ３のＩＰアドレス等といった、デバイス固有の情報が格納される。また、用紙サイズなどの設定情報も格納される領域である。
【００４４】
基本パラメータ格納領域１３は後述するブートプログラムで起動されるファームウェアの情報などを格納するための領域である。具体的には、ファームウェア格納領域Ａ１０及びファームウェア格納領域Ｂ１１の夫々に格納されているファームウェアのバージョン情報などを格納してある。
【００４５】
ブートプログラム格納領域１４は、コントローラ部３１で動作するファームウェアを起動するためのブートプログラムを格納している領域である。ブートプログラム格納領域１４に格納されているブートプログラムは、基本パラメータ格納領域１３に格納されているファームウェアのバージョン情報を参照し、起動するファームウェアを決定する。そして、ブートプログラムは決定したファームウェアの起動処理を実行する。
【００４６】
なお、本発明においては、ファームウェア格納領域Ａ１０及びファームウェア格納領域Ｂ１１のそれぞれの格納領域に、コントローラ部３１で動作するファームウェアの他にコンテンツサーバ２とセキュア通信を実行するために必要なルート証明書データを格納している。ルート証明書データの格納の構成については後述する。
【００４７】
続いて、図４を用いて、コントローラファームウェアの詳細な構成について説明を行う。図４はアップデートサーバ４に設けられた記憶部（不図示）にバイナリイメージとして格納されているコントローラファームウェアのファイル構成を概念的に示した図である。上述したように、アップデートサーバ４にはプリンタ３のコントローラ部３１及びエンジン部３２夫々のファームウェアの更新版ファームウェアが格納されている。なお、ここではコントローラファームウェアのみについて説明し、エンジン部３２用のファームウェアについては説明を省略する。
【００４８】
図４に示した、更新版ファームウェアは１つのバイナリファイル形式となっており、このファイル内にはコントローラ部３１を動作する上で必要なファームウェアデータと、プリンタ３がコンテンツサーバ２とセキュアな通信を行う上で必要となるルート証明書データが含まれている。図４では、ルート証明書データとして、ＣＡ１とＣＡ２という２種類のルート証明書データが含まれている様子を示している。
【００４９】
ファームウェアデータ中にはバイナリファイル中にあるルート証明書データＣＡ１及びＣＡ２の格納位置を特定するためのポインタが記載されている。このポインタを参照することで、バイナリファイルのどの部分にルート証明書データが格納されているかを特定することが可能となる。
【００５０】
また、ルート証明書データ中には、当該ルート証明書データの種類や認証局情報、ルート証明書データ毎に付与されるシリアルコード、有効期限といったルート証明書の固有情報が含まれている。
【００５１】
なお、図４はアップデートサーバ４内部に格納された更新版ファームウェアのファイル構造として説明したが、このファイル構造は図３で示したファームウェア格納領域Ａ１０（又はＢ１１）においても基本的に維持される。つまり、アップデートサーバ４から更新版ファームウェアを取得し、ファームウェア格納領域Ａ１０（又はＢ１１）に最終的に格納された場合も、格納領域内のファームウェアは図４に示したものと基本的には同様のファイル構造となっている。
【００５２】
なお、図４に示したバイナリファイルイメージでは、ファームウェアデータの間にルート証明書データＣＡ１及びＣＡ２を配置するようなファイル構成としているが、本発明はこの構成に限定されるものではない。ファームウェアデータとルート証明書データとが一体化したファイル構成を有していれば、本発明と同様の効果を得ることができる。
【００５３】
このように、ルート証明書に相当するルート証明書データをコントローラファームウェアデータファイルの一部として保持するように構成してある。そのため、コントローラファームウェアをダウンロードする際、ルート証明書データもあわせて取得することができる。換言すれば、ルート証明書データの取得を行うには、コントローラ部３１のファームウェア更新処理を実行すれば良い、ということになる。
【００５４】
続いて、図５を用いてコントローラ部３１のソフトウェア構成のうち、本発明に関するソフトウェア構成を説明する。なお、以下で説明するソフトウェアはコントローラファームウェアに含まれるものである。
【００５５】
メインアプリケーション１１０はコントローラ部３１の主要な制御に利用されるソフトウェアである。本実施例における情報処理装置はＤＴＶ１と接続されたプリンタ３としているので、メインアプリケーションにはＤＴＶ１から要求された印刷処理を実行する印刷用制御モジュールを有するものとする。
【００５６】
また、ＨＴＴＰサーバアプリケーション１２０はＵＰｎＰ  ＰｒｉｎｔＥｎｈａｎｃｅｄ：１で規定されたＷＥＢページであるプレゼンテーションページや、ネットＴＶ２．０規格で規定されたネットＴＶインデックスページなどの生成や管理を行う。そして、ＨＴＴＰサーバアプリケーション１２０はメインアプリケーション１１０と連携した動作を実行する。例えば、メインアプリケーション１１０からの指示に応じて前記プレゼンテーションページやネットＴＶインデックスページを生成することで、プリンタ３の状態表示や設定変更を行うことができる。なお、プレゼンテーションページやネットＴＶインデックスページはＤＴＶ１の表示部に表示することができる。ＤＴＶ１の表示部に表示する場合、ユーザはＤＴＶ１のＨＴＴＰブラウザを利用して前記プレゼンテーションページを取得するためにプリンタ３にＨＴＴＰアクセスを行う。そして、取得したプレゼンテーションページの構造化文書データをＨＴＴＰブラウザが解析して表示する。なお、このプレゼンテーションページにはファームウェアをアップデートする指示の入力を受け付ける機能も備わっている。
【００５７】
ＨＴＴＰクライアントアプリケーション１３０は、メインアプリケーション１１０と連携してコンテンツサーバ２から印刷コンテンツの取得を行う。また、アップデートサーバ４からファームウェアアップデート情報ファイル及びファームウェアデータの取得を行う。
【００５８】
ＳＳＬ／ＴＬＳモジュール１４０はＨＴＴＰクライアントアプリケーション１３０から呼び出され、コンテンツサーバ２との間でセキュア接続を行う場合に用いられる。従って、ＳＳＬ／ＴＬＳモジュール１４０はコンテンツサーバ２から送信されたサーバ証明書の信頼性を確認するために、フラッシュＲＯＭ３１２内に格納されているルート証明書データを利用する。
【００５９】
ＴＣＰ／ＩＰスタック１５０はＨＴＴＰサーバアプリケーション１２０、ＨＴＴＰクライアントアプリケーション１３０、ＳＳＬ／ＴＬＳモジュール１４０と、ネットワークインタフェース３１５との間の通信制御を行う。これにより、ＤＴＶ１、コンテンツサーバ２、アップデートサーバ４とプリンタ３との間でのＴＣＰ／ＩＰ通信が可能になる。
【００６０】
上記のソフトウェア構成で実行される処理を、ＤＴＶ１からＰｒｉｎｔＵＲＩ形式の印刷を指示された場合を例にあげて説明する。
【００６１】
ＤＴＶ１からプリンタ３に送信された印刷コンテンツの在りかを示すＵＲＩが（ｈｔｔｐｓ：／／ｘｘｘ．ｙｙｙ．ｃｏ．ｊｐ／ｉｎｄｅｘ．ｈｔｍｌ）であるものとする。このＵＲＩの場合、ｈｔｔｐｓであるためセキュアなＨＴＴＰ通信が必要となる。メインアプリケーション１１０は取得したＵＲＩがＨＴＴＰ通信を要求するものであるため、ＵＲＩをＨＴＴＰクライアントアプリケーション１３０に渡す。
【００６２】
ＨＴＴＰクライアントアプリケーション１３０は渡されたＵＲＩがセキュア通信を要求するものであるため、ＳＳＬ／ＴＬＳモジュール１４０に処理を依頼する。ＳＳＬ／ＴＳＬモジュール１４０はセキュア通信を行うための準備として、ＵＲＩで指示されたサーバと通信を開始する（実際の通信はＴＣＰ／ＩＰスタック１５０を利用する）。
【００６３】
ＳＳＬ／ＴＬＳモジュール１４０はサーバから送信されたサーバ証明書データを取得し、プリンタ３が有するルート証明書データを用いてセキュア通信が可能かどうかを判定する。判定の結果、セキュア通信が可能であればＨＴＴＰクライアントアプリケーション１３０が通信を実行する。もし、セキュア通信ができない場合は、非セキュアな状態での通信を行うか、通信を中止するかをＨＴＴＰクライアントアプリケーション１３０が決定する。
【００６４】
続いて、コントローラ部３１のファームウェアアップデート処理、並びにエンジン部３２部のファームウェアアップデート処理をフローチャートを用いて説明する。
【００６５】
図６及び図７は、ファームウェアアップデート処理を説明するフローチャートである。なお、本実施例は、エンジン部３２のファームウェアとコントローラ部３１のファームウェアを共に更新する処理である。つまり、エンジン部３２のファームウェア又はコントローラ部３１のファームウェア、さらにはルート証明書データのいずれか１つでも更新版がサーバ４上に存在している場合に、全てのファームウェア及びルート証明書データを更新する処理となる。
【００６６】
このフローチャートはＨＴＴＰサーバアプリケーション１２０のプレゼンテーションページまたはネットＴＶインデックスページ（以後、これらのページのことを一括してＷｅｂＵＩページと称する）の操作により開始される。なお、このＷｅｂＵＩページに対する操作は、ＤＴＶ１の画面に表示されたページに対してユーザが手動で指示を行うものであればよい。またはユーザによる指示ではなく、メインアプリケーション１１０からの所定の指示に応じて行われるものであってもよい。
【００６７】
ファームウェアアップデート処理は大きく２つにわけられる。まず、図６を用いてアップデートの第１処理について説明する。
【００６８】
ステップＳ１００１ではＣＰＵ３１１がアップデートサーバ４への接続確認を実行する。この接続確認については一般的なサーバアクセスに相当するため説明を省略する。
【００６９】
ステップＳ１００２では、ＣＰＵ３１１がアップデートサーバ４に対して接続可能か否かを判定する。ここで、接続できない場合はステップＳ１００３にすすみ、ＷｅｂＵＩページに「サーバに接続できない」旨の記載を行ってアップデート処理を終了する。
【００７０】
ステップＳ１００２において、ＣＰＵ３１１がアップデートサーバ４に対して接続可能であると判定した場合には、ステップＳ１００４に移行する。
【００７１】
ステップＳ１００４では、ＣＰＵ３１１はアップデートサーバ４からアップデート情報ファイルを取得する。なお、アップデート情報ファイルは、例えばＸＭＬのような構造化文書で記述されたテキストファイルであり、アップデートサーバ４に格納されている各種アップデートファイルのバージョンが少なくとも記載されているものである。
【００７２】
このアップデート情報ファイルの内容については図８に示す。図８は、ＸＭＬ形式で記述されたアップデート情報ファイルを例示する。コントローラファームウェアバージョンが１．２、ルート証明書データＣＡ１のシリアルコードがＸＸＸ００１、ルート証明書データＣＡ２のシリアルコードがＡＡＡ１００で、エンジンファームウェアのバージョンが１．１であることが記述されている。また、ファームウェアの実体ファイル（ファームウェアデータ）の在りかを示すＵＲＬ情報が記述されている。なお、ここでのルート証明書データのシリアルコードとはルート証明書毎に付与されたユニークな識別コードである。本実施例ではルート証明書データとしてＣＡ１とＣＡ２があるが、このうち、ＣＡ２が新たなルート証明書データに変更された場合、ルート証明書データＣＡ２のシリアルコードは従来のシリアルードと変更されることになる。なお、このシリアルコードは一般的にルート証明書の発行者名とコードとの組合せで他のルート証明書データと区別されるようになっている。
【００７３】
また、本発明には直接関連しないが、各ファームウェアはどのような理由で更新されるか、という情報を示すため、ｕｐｄａｔｅ＿ｔｙｐｅ属性が設けられている。
【００７４】
図６に戻って説明を続ける。ＣＰＵ３１１はアップデート情報ファイルを取得すると、ステップＳ１００５にて、アップデートが必要か否かを判定する。現在、プリンタ３に組み込まれているファームウェアのバージョンが、取得したアップデート情報ファイルに記述されたファームウェアのバージョンより古いものであればアップデートが必要となる。なお、現在、プリンタ３に組み込まれているファームウェアのバージョン情報はＲＯＭ３１２の基本パラメータ格納領域１３に格納されている。従って、ステップＳ１１０５の判定では、取得したアップデート情報ファイルに記述されたファームウェアのバージョン情報と基本パラメータ格納領域１３に格納されたバージョン情報との比較を行う。
【００７５】
また、第１処理で取得したアップデート情報ファイルに記述されたルート証明書データＣＡ１及びＣＡ２のシリアルコードと、コントローラ部３１が管理する現在のルート証明書データのシリアルコードとの比較も行う。現在、プリンタ３に組み込まれているルート証明書データのシリアルコードは後述するＲＡＭ３１３中の管理テーブルに固有情報として格納されている。従って、ステップＳ３１０３の判定では、取得したアップデート情報ファイルに記述されたルート証明書データ固有のシリアルコード（第２の固有情報）と管理テーブルに格納されたシリアルコード（第１の固有情報）との比較を行う。このとき、ルート証明書データについては、現在プリンタ３で保持しているルート証明書とは異なる別のルート証明書がサーバ４に格納されている場合もある。従って、そうしたケースにおいてもコントローラファームウェアのアップデート処理を行うとＣＰＵ３１１は判断する。例えば、現在プリンタ３にはルート証明書データＣＡ１、ＣＡ２のみが格納されている状態において、図８で示した情報ファイル中にルート証明書データＣＡ３などの新規のルート証明書データの存在が記述されているケースである。この場合、ルート証明書データＣＡ１及びＣＡ２は更新の必要が無くとも、コントローラファームウェアは更新が必要であると判定する。つまり、ＣＰＵ３１１はルート証明書データの名称や種別などの固有情報についても現在プリンタ３が保持しているルート証明書と情報ファイルに記述されたルート証明書が相違するか否かについて判断を行う。
【００７６】
アップデートが必要な場合にはステップＳ１００６に移行する。また、アップデートが不要である場合にはステップＳ１０１３に移行する。ステップＳ１０１３ではＣＰＵ３１１がアップデートは必要無い旨の情報をＷｅｂＵＩページに記載する。その後、アップデート処理を終了し、通常の動作モードに移行する。
【００７７】
ステップＳ１００６ではＣＰＵ３１１がファームウェア情報ファイルに記述されたファームウェアデータのパスを示すＵＲＬを元にアクセスチェックを行い、ステップＳ１００７にてファームウェアデータを保存するアップデートサーバ４に接続可能か否かを判定する。ステップＳ１００７において接続不可であると判定した場合は、ステップＳ１００３に進む。ステップＳ１００３の処理は上述した通りである。
【００７８】
アップデートサーバ４及びファームウェアデータに接続できた場合には、ステップＳ１００８へ移行する。ステップＳ１００８では、ＣＰＵ３１１がＷｅｂＵＩページを介してユーザにファームウェアのアップデートを実行するか否かを問い合わせる。なお、これはＷｅｂＵＩページをアップデート問い合わせ用に記述し、このＷｅｂＵＩページをＤＴＶ１に表示するなどの構成により実行される。ステップＳ１００９では、ＣＰＵ３１１がステップＳ１００８で表示したＷｅｂＵＩページに対するユーザの指示に基づいて、ファームウェアのアップデートを実行することが指示されたか否かを判定する。ステップＳ１００９にて、ファームウェアのアップデートを実行すると判定した場合は、ステップＳ１０１０に移行する。ステップＳ１００９にて、ファームウェアのアップデートを実行しないと指示された場合は、アップデート処理を終了し、通常の動作モードへ移行する。
【００７９】
ステップＳ１０１０ではファームウェアのアップデートモードへの移行確認処理を実行する。この確認処理の判定はステップＳ１０１１で行われる。ステップＳ１０１１では、ＣＰＵ３１１がプリンタ３はアップデートモードへ移行可能か否かを判定する。通常、ファームウェアのアップデート処理中は印刷処理などを実行することができない。同様に、印刷処理の実行中などはファームウェアのアップデート処理を行うことができない。ステップＳ１０１１ではＣＰＵ３１１が現在のプリンタ３はファームウェアのアップデートが可能な状態にあるか否かを確認するステップである。
【００８０】
ステップＳ１０１１でプリンタ３がファームウェアアップデートモードに移行することができないとＣＰＵ３１１が判定した場合には、ステップＳ１０１２に移行する。ステップＳ１０１２ではＣＰＵ３１１が、他の処理が実行されているためアップデート処理ができない旨を示すＷｅｂＵＩページを構成してユーザに提示し、処理を終了する。
【００８１】
ステップＳ１０１１でプリンタ３がファームウェアアップデートモードに移行することが可能であると判定された場合は、後述する第２処理に移行する。
【００８２】
なお、ステップＳ１００８及びステップＳ１００９では、ユーザに対してアップデート処理の実行可否を問い合わせている。これはユーザからの指示入力を受けるためであるが、必ずしもユーザの指示入力を必要とするものではない。従って、ステップＳ１００７でアップデートサーバ４へアクセス可能と判定した場合はステップＳ１０１０に移行し、ユーザに問い合わせることなく自動でアップデート処理を実行してもよい。
【００８３】
次に、アップデートの第２処理について説明を行う。この第２処理はコントローラ部３１に組み込まれているファームウェアに含まれたメインアプリケーション１１０に基づく制御と、コントローラ部３１からの指示で動作するエンジン部３２の処理とから構成される。
【００８４】
図７はコントローラ部３１のメインアプリケーション１１０における処理のフローチャートである。なお、実際にはメインアプリケーション１１０に記述されたプログラムに基づいてＣＰＵ３１１が制御を司る。
【００８５】
第１処理におけるステップＳ１０１１でプリンタ３がファームウェアアップデートモードに移行することが可能であると判定されると、ステップＳ２１００においてＣＰＵ３１１はコントローラ部３１をアップデートモードに移行する。続いて、ステップＳ２１０１においてＣＰＵ３１１はエンジン部３２のＣＰＵ３２１に指令を発行し、エンジン部３２をアップデートモードに移行させる。
【００８６】
コントローラ部３１及びエンジン部３２がアップデートモードに移行すると、ステップＳ２１０２ではＣＰＵ３１１がアップデートサーバ４にエンジンファームウェアのアップデータ（エンジンファームウェアの更新版ファームウェアデータ）の取得処理を実行する。この取得処理はアップデート情報ファイルに記述されたエンジンファームウェアを示すＵＲＬに対してＨＴＴＰ  ＧＥＴメソッドを発行することで実行される。
【００８７】
ステップＳ２１０３では、ＣＰＵ３１１はアップデートサーバ４からの応答をネットワークインタフェース３１４を介して順次受信する。そして、受信したアップデータを内部インタフェース３１６及び３２４を介してエンジン部３２へ転送する。
【００８８】
ステップＳ２１０４では、ＣＰＵ３１１はエンジンアップデータの全データを取得し、エンジン部３２へ転送したか否かを判定する。全データの転送が終了すると、ステップＳ２１０５へ移行する。
【００８９】
なお、エンジン部３２は転送されたアップデータを用いて旧バージョンのエンジンファームウェアの更新処理を実行する。ファームウェアの更新処理の詳細は各種の方法があるが、本発明では更新処理の詳細な手順についてはどのようなものであってもよい。そのため、更新処理の詳細な手順に関する説明は省略する。
【００９０】
ステップＳ２１０５では、ＣＰＵ３１１がエンジン部３２の動作状態の確認を実行する。これはエンジン部３２のファームウェア更新処理が正常に行われているか否かを確認する処理である。そのため、ステップＳ２１０６におけるファームウェアの書き換え終了判定とともにエンジン部３２の状態を確認する。
【００９１】
ステップＳ２１０６において、ファームウェアの書き換え処理が終了したと判定すると、ステップＳ２１０７に移行する。ステップＳ２１０７では、ＣＰＵ３１１がエンジン部３２のファームウェア更新処理（書き換え処理）が正常に終了したかどうかを判定する。なお、更新処理が正常に終了しなかった場合はエラー処理２へ移行する。
【００９２】
エンジン部３２のファームウェアの更新処理が成功したと判定した場合は、ステップＳ２１０８へ移行する。ステップＳ２１０８では、コントローラファームウェアのアップデータ（コントローラファームウェアの更新版ファームウェアデータ）の取得処理を実行する。なお、この取得処理で取得するのは、コントローラファームウェアの更新版である。上述したように、更新版のコントローラファームウェア（アップデータ）は図４で示したバイナリファイル形式となっている。
【００９３】
アップデートサーバ４から順次取得したアップデータは一度ＲＡＭ３１３に記憶していく。記憶していく過程においてチェックサムを確認する。ステップＳ２１０９ではチェックサムの結果を用いて、アップデータの整合確認処理が行われる。
【００９４】
ダウンロードしたアップデータに不具合が無いことがステップＳ２１０９の確認処理で判明した場合、ステップＳ２１１０へ移行する。また、アップデータに不具合があることがステップＳ２１０９の確認処理で判明した場合はエラー処理２へ移行する。
【００９５】
ステップＳ２１１９では、ＣＰＵ３１１がフラッシュＲＯＭ３１２に格納されている旧バージョンのファームウェアをＲＡＭ３１３に記憶した更新版のアップデータ（コントローラファームウェア）で書き換える処理を実行する。なお、図３で示した通り、コントローラ部３１のフラッシュＲＯＭ３１２は、ファームウェアの格納領域を２面（ファームウェア格納領域Ａ１０とファームウェア格納領域Ｂ１１）有している。従って、ＣＰＵ３１１は２面ある格納領域のうち、どちらの格納領域に更新版のアップデータを書き込むかを判定する。ここでは、ファームウェア格納領域Ａ１０とファームウェア格納領域Ｂ１１にそれぞれ書き込まれているファームウェアのバージョンを基本パラメータなどから取得し、バージョン情報が古いファームウェアが格納されている格納領域に対して書き換え処理を実行する。
【００９６】
ステップＳ２１１１でファームウェアの更新（書き換え）が成功したか否かをＣＰＵ３１１が判定する。更新に失敗した場合はエラー処理１へ移行する。
【００９７】
ファームウェアの更新が成功した場合は、ステップＳ２１１２へ移行する。ステップＳ２１１２ではフラッシュＲＯＭ３１２に書き込まれた更新版のファームウェアから、当該ファームウェアに含まれるルート証明書データの固有情報を抽出する。そして、抽出した固有情報を用いてＲＡＭ３１３に設けられたルート証明書の管理テーブル（不図示）を更新する処理を実行する。その後、ブートプログラムが起動するファームウェアを更新したファームウェアに変更する処理を実行し、コントローラ３１のアップデート処理を終了する。なお、この変更処理は、基本パラメータに格納されている起動対象のファームウェアのバージョン情報を変更することで実行される。
【００９８】
ここで、ステップＳ２１１２で取得した、更新版のファームウェアに含まれるルート証明書データの固有情報とは、名称、種類、シリアルコード、有効期限、ルート証明書データの格納位置を示すアドレス情報等である。本実施例では、書き込まれた更新版のファームウェアをブートプログラムで起動することで、ファームウェアデータに書き込まれたルート証明書データの格納位置を特定するポインタを参照する。そして、当該ファームウェアに含まれるルート証明書データから固有情報を取得する。
【００９９】
ＲＡＭ３１３には、プリンタ３が有するルート証明書の固有情報を管理する管理テーブル（不図示）が記憶されている。従って、ステップＳ２１１２で取得した更新版のファームウェアに含まれるルート証明書の固有情報を用いて、この管理テーブルの内容を更新することになる。
【０１００】
更新する処理の例を挙げる。更新版のファームウェアに含まれていたルート証明書が、既にプリンタ３が保持していたルート証明書と種類が同一であり、有効期限のみが更新されていた場合は、ＣＰＵ３１１が管理テーブルの当該ルート証明書の有効期限情報を新規の有効期限情報を用いて更新する。また、プリンタ３が所有していなかった新規の種類のルート証明書データが更新版のファームウェアに含まれていた場合には、ＣＰＵ３１１が管理テーブルに当該新規のルート証明書の情報を新たに書き加える。以上の処理を実行することで、プリンタ３のコントローラ部３１はルート証明書データの更新と管理が可能となる。また、既にプリンタ３が保持していたルート証明書と同じルート証明書データが更新版のファームウェアに含まれている場合には、当該ルート証明書データの固有情報の更新処理は不要である。
【０１０１】
なお、エラー処理はファームウェアの更新に失敗した場合のリカバリ処理に相当するものである。コントローラ部３１のファームウェアの更新処理に失敗すると、プリンタ３は最新のファームウェアでは動作することができない。そのため、ブートプログラムが起動する対象のファームウェアを従来から保持していたファームウェアのままとすることで不具合の発生を回避する。なお、このリカバリ処理については本発明とは関連しないため、説明を省略する。
【０１０２】
さて、実際にプリンタ３がコンテンツサーバ２にアクセスし、セキュア通信を利用して印刷の実体ファイル（コンテンツ）を取得する場合には、上述したＳＳＬ／ＴＳＬモジュール１４０が、ＲＡＭ３１３に格納された管理テーブルを参照し、コンテンツサーバ２とセキュアな通信が可能であるか否かを判定する。ここで、コンテンツサーバ２から送信されたサーバ証明書の正当性をプリンタ３が保持しているルート証明書で確認できない場合は、印刷処理を停止するか、もしくは上述したファームウェアデータの更新処理を実行することになる。これは、アップデートサーバ４に格納された更新版のファームウェアデータの中に、更新されたルート証明書や新規のルート証明書が含まれている可能性があるためである。
【０１０３】
以上説明したように、本実施例では、ファームウェアデータとルート証明書データとを一体として生成された更新版ファームウェアデータをプリンタ３が取得し、取得したファームウェアデータから、ルート証明書データの固有情報を抽出する。抽出した固有情報を用いてプリンタ３に設けられたルート証明書の管理テーブルを更新することで、ルート証明書データの管理を行う。
【０１０４】
このように構成することで、ルート証明書データを確実に取得して更新することができるとともに、従来の装置構成に対する大幅な機能追加をすることなく、ルート証明書データの取得機能及び管理機能を備えることが可能となる。また、メーカサイドとしても、自らルート証明書データの取得をすることが困難なプリンタのような情報処理装置に対しても、既に存在しているファームウェア更新機能の一部としてルート証明書データを提供することができる。そのため、新規のルート証明書データをプリンタ３に追加させる場合であっても、特別なサービスを用意することなくルート証明書データを配布できる。
【０１０５】
なお、本実施例ではルート証明書の管理テーブルをＲＡＭ３１３に設けているが、本発明はこの構成によって限定されるものではない。
【０１０６】
また、上述した実施例では、ルート証明書データのシリアルコードを個別に情報ファイルに記述し、コントローラ部３１のＣＰＵ３１１はこのシリアルコードと、既に管理しているシリアルコードとの比較を行って、ファームウェアの更新要否を判定していた。しかしながら、本発明はこのほかの判定方法も可能である。
【０１０７】
例えば、１つ以上のルート証明書データを１つのグループとして管理し、このグループにバージョンの値を付与する。そして、このルート証明書データ群のうち、１つのルート証明書データでも新しいシリアルコードに変更されたり、新しいルート証明書データが追加されたりした場合にはバージョンの値を上げる。コントローラ部３１はルート証明書データ群のバージョン値と、既に管理しているルート証明書データ群のバージョン値を比較することにより、アップデートサーバ４のファームウェアに含まれるルート証明書データ群に何らかの変更が生じていることを認識する。以降は、上述した実施例のように、ファームウェアをダウンロードし、当該ファームウェアに含まれるルート証明書データの固有情報をルート証明書データ毎に管理すれば良い。
【０１０８】
（実施例２）
続いて、本発明の実施例２を説明する。上述した実施例１はファームウェアアップデートの処理において、コントローラファームウェア及びエンジンファームウェアを全て取得し、アップデートする構成としていた。対して、本実施例２ではアップデートが必要なファームウェアのみを取得し、更新する構成としている。
【０１０９】
例えば、アップデートサーバ４に登録されているファームウェアのアップデート情報が図８に示されたものとする。そして、プリンタ３に組み込まれているファームウェアのバージョンが、コントローラファームウェアがバージョン１．１、エンジンファームウェアがバージョン１．１であるとする。この場合、エンジンファームウェアについては既にプリンタ３のエンジン部３２に組み込まれたファームウェアのバージョンと同一であるため、エンジン部３２のファームウェアの更新は不要となる。
【０１１０】
図９は本実施例２におけるプリンタ３のファームウェアアップデートの処理フローである。本フローは上述した実施例１において図７を用いて説明した第２処理に相当するものである。第１処理については実施例１と共通であるため、説明を省略する。また、図９の処理フローにおいて、図７で説明した処理フローと同一のステップについては同様のステップ番号を付し、説明を省略する。
【０１１１】
まず、第２処理が開始されると、ステップＳ２１００、ステップＳ２１０１が実行される。その後、ステップＳ３１０１では、ＣＰＵ３１１がエンジン部３２のファームウェアのアップデートが必要か否かを判定する。この判定は、第１処理で取得したアップデート情報ファイルに記述されたバージョン情報と、コントローラ部３１が管理する現在のエンジン部３２のファームウェアのバージョン情報とを比較することで行われる。
【０１１２】
ステップＳ３１０１において、ＣＰＵ３１１がエンジン部３２のファームウェアのアップデートが必要であると判定した場合は、ステップＳ２１０２へ移行する。以後、既に説明したように、ステップＳ２１０２からステップＳ２１０７の処理が実行される。
【０１１３】
ステップＳ３１０１において、ＣＰＵ３１１がエンジン部３２のファームウェアのアップデートは不要であると判定した場合は、ステップＳ３１０２へ移行する。
【０１１４】
ステップＳ３１０２では、ＣＰＵ３１１がエンジン部３２のＣＰＵ３２１に対して、エンジンファームウェアの更新処理を省略する旨を示すスキップコマンドを送信する。このコマンドにより、エンジン部３２はエンジンファームウェアの更新が発生しないことを認識することとなる。ステップＳ３１０２のコマンド送信の後、ステップＳ３１０３へ移行する。
【０１１５】
ステップＳ３１０３では、ＣＰＵ３１１がコントローラファームウェアのアップデートが必要か否かを判定する。このステップでは、第１処理で取得したアップデート情報ファイルに記述されたコントローラファームウェアのバージョン情報と、コントローラ部３１が管理する現在のコントローラ部３１のファームウェアのバージョン情報とを比較する。また、第１処理で取得したアップデート情報ファイルに記述されたルート証明書データの情報と、コントローラ部３１が管理する現在のルート証明書データの管理情報との比較も行う。なお、現在、プリンタ３に組み込まれているファームウェアのバージョン情報はＲＯＭ３１２の基本パラメータ格納領域１３に格納されている。従って、ステップＳ３１０３の判定では、取得したアップデート情報ファイルに記述されたコントローラファームウェアのバージョン情報と、基本パラメータ格納領域１３に格納されたバージョン情報との比較を行う。また、現在、プリンタ３に組み込まれているルート証明書データの情報はＲＡＭ３１３中の管理テーブルに格納されている。従って、ステップＳ３１０３の判定では、取得したアップデート情報ファイルに記述されたルート証明書データの固有情報と管理テーブルに格納された情報との比較を行う。
【０１１６】
本ステップにおいて、コントローラファームウェアのバージョンの変更またはルート証明書データの変更のうち、少なくともどちらか一方が発生している場合、コントローラファームウェアのアップデート処理を行うとＣＰＵ３１１は判断する。よって、ステップＳ２１０８へ移行する。このとき、ルート証明書データについては、現在プリンタ３で保持しているルート証明書とは異なる別のルート証明書がサーバ４に格納されている場合も、コントローラファームウェアのアップデート処理を行うとＣＰＵ３１１は判断する。これは図６のステップＳ１００５の処理として説明した判断と同様である。
【０１１７】
ステップＳ２１０８以降の処理は、上述した実施例１と同様であるため、ここでは説明を省略する。
【０１１８】
以上、本実施例２では、エンジン部ファームウェアとコントローラ部ファームウェアのそれぞれのバージョン情報及びルート証明書データの固有情報を用いて、アップデートが必要なファームウェアのみをダウンロードし、更新する構成とした。これにより、不要なファームウェアの更新作業を抑制することができる。また、ルート証明書データを確実に取得して更新することができるとともに、従来の装置構成に対する大幅な機能追加をすることなく、ルート証明書データの取得機能及び管理機能を備えることが可能となる。
【０１１９】
なお、本実施例２では、コントローラファームウェア又はルート証明書データのどちらか一方を更新する必要がある場合であっても、コントローラファームウェア及びルート証明書データを共に更新処理している。これはファームウェアデータの一部としてルート証明書データを保持したバイナリファイルを取得するとともに、そのバイナリファイルをフラッシュＲＯＭ３１２の格納領域にそのまま格納しているためである。
【０１２０】
しかしながら、フラッシュＲＯＭ３１２にルート証明書データ用の専用格納領域を別途設け、ルート証明書データの実体部分をバイナリファイルから抜き出して、当該専用格納領域に格納する構成を取るとする。その場合、取得した更新版のファームウェアのうち、更新が必要なもののみを更新するように構成することも可能である。つまり、サーバ４上にあるファームウェアデータが実際にはルート証明書データのみが更新されているようなケースであれば、当該ルート証明書データを含んだ更新版のコントローラファームウェアデータを取得してＲＯＭ３１２の任意の領域に一度格納する。その後、このファームウェアデータを起動してルート証明書データの格納位置を特定する。そして、当該格納位置にあるルート証明書データを抜き出して、専用格納領域に格納すればよい。もちろん、上記の方法以外にも取得した更新版のファームウェアデータから、更新が必要な部分のみを更新することは可能であるが、これらの方法も本発明の範疇に含まれる。
【０１２１】
（実施例３）
続いて、本発明の実施例３を説明する。上述した実施例１及び実施例２では、プリンタ３がアップデートサーバ４にアクセスし、ファームウェア及びルート証明書データを取得する構成としていた。
【０１２２】
対して、本実施例３では、プリンタ３とデータの送受信が可能なように接続されるとともに、外部ネットワークにも接続されたコンピュータ５がアップデートサーバ４にアクセスして、コントローラファームウェア及びルート証明書データを取得する構成とする。なお、実体としてはコンピュータ５に実装されているＣＰＵ（不図示）がファームウェアのアップデート処理を行うためのプログラムを実行することで動作することになる。即ち、ファームウェアを取得する処理を実行するコンピュータ５と、コンピュータ５が取得したファームウェアを用いて更新処理を実行するプリンタ３とから構成された情報処理システムによって本発明が解決しようとする課題が解決される。
【０１２３】
この構成を図１０に示す。図１０は実施例３のシステム構成を説明するための図である。実施例１及び実施例２のシステム構成に対して、プリンタ３と接続されたコンピュータ５が新たに設けられたシステム構成となっている。このコンピュータ５はプリンタ３とＬＡＮなどを介して通信可能であるとともに、ルータを経由してインターネットに接続することが可能である。そして、アップデートサーバ４にアクセスすることが可能である。
【０１２４】
本実施例３では、実施例１及び実施例２でプリンタ３のコントローラ部３１が実行していたファームウェア更新処理のうち、少なくともアップデート情報ファイルとアップデータの取得をコンピュータ５が実行する。コンピュータ５がアップデートサーバ４にアクセスして取得したアップデート情報ファイルをプリンタ３に転送することで、プリンタ３はアップデータが必要か否かを判定する。アップデートが必要であれば、アップデートの要求をコンピュータ５に伝える。コンピュータ５はサーバ４にアクセスしてアップデータを取得し、取得したアップデータをプリンタ３に転送することで、プリンタ３はアップデートに必要なファイルを入手することになる。なお、プリンタ３がアップデータを取得した後の処理は実施例１または実施例２と同様であるため、説明を省略する。
【０１２５】
なお、本実施例３において、コンピュータ５がプリンタ３のファームウェア及びルート証明書データの更新処理以外の処理を実施することも本発明に含まれる。例えば、プリンタ３のコントローラ部３１及びエンジン部３２の各ファームウェアのバージョン情報と、ルート証明書のバージョン情報とをコンピュータ５が管理する。つまり、実施例１または実施例２における基本パラメータ及び管理テーブルの情報を管理情報としてコンピュータ５が保持していることになる。コンピュータ５はこの管理情報とアップデートサーバ４に存在するファームウェアのバージョン情報とを比較する。比較の結果、ファームウェア又はルート証明書を更新する必要があると判定した場合、アップデートサーバ４に接続し、必要なファームウェアをダウンロードする。そして、プリンタ３がファームウェアの更新処理が可能な動作状態であるか否かを確認する。更新処理が可能な状態であれば、プリンタ３に対してファームウェアを転送する。
【０１２６】
以上の記載は実施例２で示した、必要なファームウェアをダウンロードし、ファームウェアの更新処理を実行するフローに相当するものであるが、もちろん、実施例１に示したフローの一部をコンピュータ５に実行させることができる。
【０１２７】
このように、実施例３の構成によれば、不要なファームウェアの更新作業を抑制することができる。また、ルート証明書データを確実に取得して更新することができるとともに、従来の装置構成に対する大幅な機能追加をすることなく、ルート証明書データの取得機能及び管理機能を備えることが可能となる。
【０１２８】
［その他の実施形態］
上述した各実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供してもよい。そして、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによって、前述した実施形態の機能を実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることもできる。
【０１２９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれている。
【０１３０】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含むものである。
【図面の簡単な説明】
【０１３１】
【図１】本発明におけるシステム構成を示す図である。
【図２】本発明におけるプリンタのブロック図である。
【図３】本発明におけるフラッシュＲＯＭ３１２のメモリ領域構造を示す概念図である。
【図４】本発明におけるファームウェアデータの構成を示す概念図である。
【図５】本発明におけるコントローラ部３１のソフトウェア構造を示す概念図である。
【図６】本発明におけるファームウェア更新処理のフローチャートである。
【図７】本発明におけるファームウェア更新処理のフローチャートである。
【図８】本発明におけるファームウェア情報ファイルの内容を示す図である。
【図９】本発明における実施例２のファームウェア更新処理のフローチャートである。
【図１０】本発明における実施例３のシステム構成を示す図である。
【符号の説明】
【０１３２】
１  ＤＴＶ
２  コンテンツサーバ
３  プリンタ
４  アップデートサーバ
５  コンピュータ
１０  コントローラファームウェア
２０  エンジンファームウェア
【図１】
2008129788.tif 000003
【図２】
2008129788.tif 000004
【図３】
2008129788.tif 000005
【図４】
2008129788.tif 000006
【図５】
2008129788.tif 000007
【図６】
2008129788.tif 000008
【図７】
2008129788.tif 000009
【図８】
2008129788.tif 000010
【図９】
2008129788.tif 000011
【図１０】
2008129788.tif 000012