(58)【調査した分野】(Int.Cl.,DB名)
前記ダウンロード工程において、前記更新ソフトウェアのダウンロードが中断した場合に、前記第2情報格納工程を省略して、前記ダウンロード工程から再実行することを特徴とする請求項1記載のソフトウェアのダウンロード方法。
前記第1情報格納工程を実行した後に、前記第2情報格納領域に格納された前記正真性証明用情報を無効状態にする工程を備えたことを特徴とする請求項1又は2記載のソフトウェアのダウンロード方法。
前記情報比較工程において、前記正真性証明用情報と前記正真性確認用情報が一致していない場合に、ダウンロードされた前記更新ソフトウェアを無効状態にする工程を備えたことを特徴とする請求項1から3のいずれか記載のソフトウェアのダウンロード方法。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、ソフトウェアのダウンロードの途中で、通信回線のトラブルによる通信破綻や、停電等の原因によりダウンロードが中断された場合には、下位デバイス(電子機器装置)が上位装置から取得した正真性証明用情報が消失する恐れがあった。このため、従来は、下位デバイスがダウンロードを再開するには、改めて正真性証明用情報を上位装置から取得する段階に立ち戻るのが一般的であった。さらに、セキュリティに関する規格が定められ、より高いセキュリティ性が求められるシステムにおいては、上位装置と下位デバイス(電子機器装置)の間で相互認証処理の再実行も必要となっていた。
【0008】
従来のシステムでは、仮に、ダウンロードを再開するに当たって相互認証を省略すると、該当システムにおける機密情報を盗み出そうとする者が、相互認証の手続方法を知らなくても、正常なダウンロードを意図的に中断させて、次回ダウンロードを再開する時に悪意をもって改ざんされたソフトウェアにすりかえてダウンロードを行うことができるという恐れがあった。
【0009】
従って、従来のシステムでは、ダウンロードを再開するに当たって、上位装置に対して相互認証および正真性証明用情報の取得という、処理手順が必須になるので、システムの通常運用を再開するまでに時間がかかってしまうという問題があった。
【0010】
また、特許文献1に示す従来のシステムでは、安全性検証手段により安全性を検証するためにソフトウェアを一時的に格納するメモリが別途設けられている。ソフトウェアは一旦この一時的に格納するメモリに格納され、そこで安全性が検証されて安全と判断されたら、安全な記憶装置に記憶されることになる。このように、一時的な格納用メモリを別途設けなければならず、メモリ容量増加によるコスト増が問題となる。
【0011】
本発明は、このような点に鑑みてなされたものであり、その目的は、上位装置から通信回線を介してソフトウェアを電子機器装置にダウンロードする方法において、ダウンロードが中断された場合でも、セキュリティ性を保ちつつ、ダウンロードを再開するまでの手順を簡略化することのできるソフトウェアのダウンロード方法を提供することにある。
【課題を解決するための手段】
【0012】
以上のような課題を解決するために、本発明は、以下のものを提供する。
【0013】
上位装置から通信回線を介してソフトウェアを電子機器装置にダウンロードする方法において、前記ソフトウェアのダウンロードを開始する前に、前記電子機器装置が前記上位装置から前記ソフトウェアの正真性を証明する正真性証明用情報を取得し、取得した前記正真性証明用情報を前記電子機器装置の不揮発性メモリに格納する第1工程と、前記上位装置から前記電子機器装置に前記ソフトウェアのダウンロードを実行する第2工程と、前記ソフトウェアのダウンロードを完了した後に、ダウンロードされた前記ソフトウェアに対して計算で求めた正真性確認用情報と、前記第1工程で取得した正真性証明用情報とを比較する第3工程と、前記第3工程において、前記正真性証明用情報と前記正真性確認用情報が一致している場合に、前記電子機器装置がダウンロードされた前記ソフトウェアを起動する第4工程と、を有することを特徴とするソフトウェアのダウンロード方法。
【0014】
本発明によれば、第1工程で電子機器装置が上位装置から取得した正真性証明用情報を不揮発性メモリに格納し、第2工程で上位装置から電子機器装置にソフトウェアのダウンロードを実行し、第3工程でダウンロードされたソフトウェアに対して正真性確認用情報を計算して求め、この正真性確認用情報と第1工程で取得した正真性証明用情報とを比較し、第4工程で正真性証明用情報と正真性確認用情報が一致している場合にダウンロードされたソフトウェアを起動することから、ソフトウェアのダウンロードの途中で、通信回線のトラブルによる通信破綻や、停電等の原因によりダウンロードが中断された場合でも、電子機器装置が上位装置から取得した正真性証明用情報は不揮発性メモリにおいて確実に保持することができ、ダウンロードを再開するに当たって、上位装置に対する正真性証明情報の取得処理を省略することができる。
【0015】
また、中断後、ダウンロードを再開する時に、改ざんされたソフトウェアにすりかえてダウンロードされたとしても、ダウンロードされたソフトウェアに対して計算で求めた正真性確認用情報は、上位装置から取得し不揮発性メモリに格納された正真性証明用情報と一致しないから、誤って不正なソフトウェアが起動されることもなく、セキュリティ性を維持することができる。
【0016】
すなわち、ダウンロードが中断され、再度ダウンロードを行う場合でも、ダウンロードされたソフトウェアに対して計算で求めた正真性確認用情報と、既に不揮発性メモリに格納されている正真性証明用情報とを比較して、双方の正真性情報が一致している場合にのみダウンロードされたソフトウェアを起動することができるから、セキュリティ性を保ちつつ、上位装置に対する正真性証明情報の取得処理を省略して、ダウンロードを再開するまでの手順を簡略化することができる。
【0017】
前記第2工程において、前記ソフトウェアのダウンロードが中断した場合に、前記第1工程を省略して、前記第2工程から再実行することを特徴とするソフトウェアのダウンロード方法。
【0018】
本発明によれば、ダウンロードが中断された際に、ダウンロードを再開するに当たって、正真性証明用情報を上位装置から再取得する処理を省略し、改ざんされた不正なソフトウェアにすりかえられてダウンロードされることがないので、上位装置と電子機器装置で構成されるシステムにおいてセキュリティ性を維持することができる。
【0019】
従って、ダウンロードを中断した後に、セキュリティ性を損なうことなく、ダウンロードを再開するまでの手順を簡略化することができる。これにより、当該システムの通常運用を再開するまでの待ち時間を短縮することができ、システムの運用効率を向上させることができる。
【0020】
前記第3工程を実行した後に、前記不揮発性メモリに格納された前記正真性証明用情報を無効状態にする工程を備えたことを特徴とするソフトウェアのダウンロード方法。
【0021】
本発明によれば、第3工程を実行した後に、不揮発性メモリに格納された正真性証明用情報を無効状態(消去を含む)にすることから、二重にソフトウェアをダウンロードされたり、誤って古い(更新前)ソフトウェアをダウンロードしたりすることを阻止できる。
【0022】
前記第3工程において、前記正真性証明用情報と前記正真性確認用情報が一致していない場合に、ダウンロードされた前記ソフトウェアを無効状態にする工程を備えたことを特徴とするソフトウェアのダウンロード方法。
【0023】
本発明によれば、ダウンロードされたソフトウェアが、改ざんされた不正なソフトウェアである場合には、正真性証明用情報と正真性確認用情報が一致しないので、その場合にダウンロードされたソフトウェアを無効状態(消去を含む)にすることにより、誤って不正なソフトウェアを起動することを阻止できる。
【0024】
上位装置から通信回線を介してソフトウェアを電子機器装置にダウンロードする方法において、前記上位装置から取得済の更新前ソフトウェアの正真性を証明する更新前正真性証明用情報を前記電子機器装置の第1情報格納領域に格納する第1情報格納手段と、前記上位装置から取得して更新される更新ソフトウェアの正真性を証明する正真性証明用情報を前記電子機器装置の第2情報格納領域に格納する第2情報格納手段と、を備え、前記更新ソフトウェアのダウンロード開始前に、前記電子機器装置が前記上位装置から前記正真性証明用情報を取得し、取得した前記正真性証明用情報を前記第2情報格納領域に格納する第2情報格納工程と、前記上位装置から前記電子機器装置に前記更新ソフトウェアのダウンロードを実行するダウンロード工程と、前記更新ソフトウェアのダウンロード完了後に、ダウンロードされた前記更新ソフトウェアに対して計算で求めた正真性確認用情報と、前記第2情報格納工程で取得した前記正真性証明用情報とを比較する情報比較工程と、前記情報比較工程において、前記正真性証明用情報と前記正真性確認用情報が一致している場合に、前記正真性証明用情報を前記更新前正真性証明用情報として前記第1情報格納領域に格納する第1情報格納工程と、前記情報比較工程において、前記正真性証明用情報と前記正真性確認用情報が一致している場合に、前記電子機器装置がダウンロードされた前記更新ソフトウェアを起動する起動工程と、を有することを特徴とするソフトウェアのダウンロード方法。
【0025】
本発明によれば、第2情報格納工程で電子機器装置が上位装置から取得した正真性証明用情報を不揮発性メモリの第2情報格納領域に格納し、ダウンロード工程で上位装置から電子機器装置に更新ソフトウェアのダウンロードを実行し、情報比較工程でダウンロードした更新ソフトウェアに対して正真性確認用情報を計算して求め、この正真性確認用情報と第2情報格納工程で取得した正真性証明用情報とを比較し、正真性証明用情報と正真性確認用情報が一致している場合に、起動工程でダウンロードした更新ソフトウェアを起動することから、更新ソフトウェアのダウンロードの途中で、通信回線のトラブルによる通信破綻や、停電等の原因によりダウンロードが中断された場合でも、電子機器装置が上位装置から取得した正真性証明用情報は不揮発性メモリの第2情報格納領域において確実に保持することができ、ダウンロードを再開するに当たって、上位装置に対する正真性証明情報の取得処理を省略することができる。
【0026】
また、中断後、ダウンロードを再開する時に、改ざんされたソフトウェアにすりかえてダウンロードされたとしても、ダウンロードされた更新ソフトウェアに対して計算で求めた更新後正真性確認用情報は、上位装置から取得し第2情報格納領域に格納された正真性証明用情報と一致しないから、誤って不正なソフトウェアが起動されることもなく、セキュリティ性を維持することができる。
【0027】
すなわち、ダウンロードが中断され、再度ダウンロードを行う場合でも、ダウンロードした更新ソフトウェアに対して計算で求めた正真性確認用情報と、既に第2情報格納領域に格納されている正真性証明用情報とを比較して、双方の正真性情報が一致している場合にのみダウンロードされた更新ソフトウェアを起動することができるから、セキュリティ性を保ちつつ、上位装置に対する正真性証明情報の取得処理を省略して、ダウンロードを再開するまでの手順を簡略化することができる。
【0028】
さらに、本発明に係るソフトウェアのダウンロード方法は、電子機器装置の不揮発性メモリに第1情報格納領域と第2情報格納領域を備え、情報比較工程において、正真性証明用情報と正真性確認用情報が一致している場合に、第1情報格納工程で正真性証明用情報を更新前正真性証明用情報として第1情報格納領域に格納することにより、更新ソフトウェアのダウンロード処理が完了するまでは第1情報格納領域に更新前ソフトウェアの正真性を証明する更新前正真性証明用情報を格納することができる。このため、更新ソフトウェアをダウンロードする過程で停電等の原因によって処理が中断された場合でも、第1情報格納領域には更新前ソフトウェアに対応する更新前正真性証明用情報が格納されているから、次回電源立ち上げ時に照合不一致にはならず、不正ダウンロードであると誤認されるのを防止することができる。
【0029】
例えば、第2情報格納工程で、ダウンロード対象となる更新ソフトウェアの正真性を証明する正真性証明用情報を上位装置から受信し、その情報を電子機器装置の不揮発性メモリの第2情報格納領域に格納している途中で、停電など何らかの原因で処理が中断されて、正真性証明用情報が完全に書き込まれなかった場合でも、次回電源立ち上げ時には、第1情報格納領域に格納されている更新前正真性証明用情報と、更新前ソフトウェアの正真性確認用情報の計算結果との照合が行われることになるから、照合不一致により不正ダウンロードであると誤認されることがなく、不正使用防止のための緊急停止モードに誤って遷移するのを防止することができる。
【0030】
前記ダウンロード工程において、前記更新ソフトウェアのダウンロードが中断した場合に、前記第2情報格納工程を省略して、前記ダウンロード工程から再実行することを特徴とするソフトウェアのダウンロード方法。
【0031】
本発明によれば、ダウンロードが中断された際に、ダウンロードを再開するに当たって、正真性証明用情報を上位装置から再取得する処理を省略し、改ざんされた不正なソフトウェアにすりかえられてダウンロードされることがないので、上位装置と電子機器装置で構成されるシステムにおいてセキュリティ性を維持することができる。
【0032】
従って、ダウンロードを中断した後に、セキュリティ性を損なうことなく、ダウンロードを再開するまでの手順を簡略化することができる。これにより、当該システムの通常運用を再開するまでの待ち時間を短縮することができ、システムの運用効率を向上させることができる。
【0033】
前記第1情報格納工程を実行した後に、前記第2情報格納領域に格納された前記正真性証明用情報を無効状態にする工程を備えたことを特徴とするソフトウェアのダウンロード方法。
【0034】
本発明によれば、第1情報格納工程を実行した後に、第2情報格納領域に格納された正真性証明用情報を無効状態(消去を含む)にすることから、二重にソフトウェアをダウンロードしたり、誤って古い(更新前)ソフトウェアをダウンロードしたりすることを阻止できる。
【0035】
前記情報比較工程において、前記正真性証明用情報と前記正真性確認用情報が一致していない場合に、ダウンロードされた前記更新ソフトウェアを無効状態にする工程を備えたことを特徴とするソフトウェアのダウンロード方法。
【0036】
本発明によれば、ダウンロードされた更新ソフトウェアが、改ざんされた不正なソフトウェアである場合には、正真性証明用情報と正真性確認用情報が一致しないので、その場合にダウンロードされた更新ソフトウェアを無効状態(消去を含む)にすることにより、誤って不正なソフトウェアを起動することを阻止できる。
【発明の効果】
【0037】
本発明に係るソフトウェアのダウンロード方法は、ダウンロードが中断された際に、ダウンロードを再開するに当たって、正真性証明用情報を上位装置から再取得する処理を省略することができ、さらに、改ざんされた不正なソフトウェアにすりかえられてダウンロードされることがないので、セキュリティ性を維持することができる。
【0038】
従って、ダウンロードを中断した後に、セキュリティ性を損なうことなく、ダウンロードを再開するまでの手順を簡略化することができる。これにより、当該システムの通常運用を再開するまでの待ち時間を短縮することができ、システムの運用効率を向上させることができる。
【0039】
また、ダウンロードを中断した場合でも、次回電源立ち上げ時に照合不一致によって不正ダウンロードであると誤認されることがなく、不正使用防止のための緊急停止モードに誤って遷移するのを防止することができる。
【発明を実施するための形態】
【0041】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0042】
[第1実施形態のシステムの構成]
図1は、本発明の実施の形態に係るソフトウェアのダウンロード方法にて使用するシステムの構成を示すブロック図である。
図2は、本発明の実施の形態に係るソフトウェアのダウンロード方法において、ダウンロードの状況の一例を示す構成図である。なお、
図2においてかっこ付きアルファベットで示す符号は、処理の順番を示す。
【0043】
本システムは、通信回線3を介して接続された上位装置1と電子機器装置2とから構成され、上位装置1から通信回線3を介して更新ソフトウェア14を電子機器装置2にダウンロードすることができるようになっている。本実施の形態では、例えば、上位装置1はHOSTコンピュータ(以下、「HOSTコンピュータ1」という)であり、電子機器装置2は、カードに記録された情報の読み出し、或いは同カードへの新たな情報の記録等を行なうカードリーダ(以下、「カードリーダ2」という)である。
【0044】
HOSTコンピュータ1は、HOSTコンピュータ1全体の動作を制御する動作回路11を備えている。この動作回路11にはCPU12が搭載されており、CPU12内にインストールされたソフトウェアがHOSTコンピュータ1全体の制御を司っている。またHOSTコンピュータ1はデータ記憶装置(例えばハードディスク)13を備えている。本実施の形態では、データ記憶装置13には、カードリーダ2に格納されているソフトウェアをアップデートするための更新ソフトウェア14と、更新ソフトウェア14の正真性証明用情報(例えばハッシュ値)15を格納している。なお、一般的には、正真性証明用情報15は、更新ソフトウェア14の正真性を証明するための情報であるので、両者は同一の管理者から提供されるようになっており、例えば、更新ソフトウェア14と、更新ソフトウェア14の正真性証明用情報15は、カードリーダ2を動作させるためのソフトウェアを提供するベンダからセットで配付されるものである。
【0045】
カードリーダ2は、カードリーダ2全体の動作を制御する動作回路21を備えている。この動作回路21には、CPU22が搭載されており、CPU22内にインストールされたソフトウェアがカードリーダ2全体の制御を司っている。
【0046】
CPU22には、F−ROM(Flash Read Only Memory)などの不揮発性メモリ23と、RAM(Random Access Memory)24とが内蔵されている。
【0047】
不揮発性メモリ23は、カードリーダ2を制御する制御プログラムや初期値などの情報を格納している。より具体的には、
図2に示すように、スーパーバイザープログラム領域231、データ保存領域232、ユーザープログラム領域233を有している。スーパーバイザープログラム領域231は、ダウンロードを実行するためのソフウェアが格納されている。さらに、本実施の形態では、正真性証明用情報15と正真性確認用情報とを比較することも行っている。データ保存領域232は、カードリーダを動作させる際に必要なデータ等を保存しており、本実施の形態ではHOSTコンピュータ1から送付された正真性証明用情報15が格納される。ユーザープログラム領域233は、通常、カードリーダ2を運用するためのソフトウェアが格納されており、ダウンロードにより更新ソフトウェア14が格納されるようになっている。
【0048】
RAM24は、各種の作業用データが格納されており、ワーキングエリアとして機能している。なお、不揮発性メモリ23及びRAM24は、CPU22に内蔵されたものに限られず、外部接続された外部F−ROMや、外部RAMであってもよい。また、不揮発性メモリ23には、F−ROMに限らず、各種ROMなど電源を供給しなくても記憶を保持可能なメモリや、バッテリバックアップを具備して電源がOFFの状態でもデータを保持することができるRAM等を使用することができる。
【0049】
通信回線3は、有線あるいは無線のネットワークを含むものであり、有線としてはRS232Cや、USBなどを用いることができる。本実施例では、カードリーダ2は、通信回線3を通じてHOSTコンピュータ1からのコマンドを受信し、該コマンドにより要求された処理を実行し、処理結果をHOSTコンピュータ1に返信するようにしている。
【0050】
つぎに、更新ソフトウェアをダウンロードする手順を、
図2を用いて説明する。
図2において、カードリーダ2は、更新ソフトウェア14のダウンロードを開始する前に、ダウンロードされる更新ソフトウェア14の正真性を証明するための情報として正真性証明用情報15をHOSTコンピュータ1からコマンドとともに受信し、ユーザープログラム領域233内に格納されているプログラムを用いてデータ処理を行い、カードリーダ2内で処理するための形態に変換する(符号(a))。取得した正真性証明用情報15を、RAM24に保持する(符号(b))。カードリーダ2は、RAM24に保持した正真性証明用情報15を、カードリーダ2内の不揮発性メモリ23のデータ保存領域232に格納する(符号(c))。この不揮発性メモリ23に格納された正真性証明用情報15は、カードリーダ2の電源がOFFになっても失われることはない。
【0051】
次に、カードリーダ2は、HOSTコンピュータ1からコマンドを受信して、ダウンロード実行モードに遷移する。すなわち、不揮発性メモリ23内に格納されているスーパーバイザープログラムを起動させる(符号(d))。スーパーバイザープログラムは、HOSTコンピュータ1からダウンロード用のコマンドを受信する(符号(e))。更新ソフトウェア14のダウンロードを実行し、更新ソフトウェア14を不揮発性メモリ23のユーザープログラム領域233に格納する(符号(f))。
【0052】
カードリーダ2のスーパーバイザープログラムは、更新ソフトウェア14のダウンロードを完了した後に、ユーザープログラム領域233にダウンロードされた更新ソフトウェア14に対して正真性確認用情報を所定の計算により求める(符号(g))。さらに、スーパーバイザープログラムを用いて、カードリーダ2は、計算で求めた正真性確認用情報と、予め不揮発性メモリ23に格納されている正真性証明用情報15とを比較して、双方の正真性証明用情報15と正真性確認用情報が一致している場合に、ダウンロードされた更新ソフトウェア14を起動する(符号(h))。
【0053】
上述したように、本システムは、カードリーダ2が予めHOSTコンピュータ1から取得した正真性証明用情報15を不揮発性メモリ23のデータ保存領域232に保持する。従って、ダウンロードが停電によって中断された場合や、ダウンロードが中断した後にその状態のまま電源をOFFした場合でも、正真性証明用情報15の格納先が不揮発性メモリ23なので、正真性証明用情報15はカードリーダ2に保持されている。
【0054】
従って、中断した後、ダウンロードを再開させる場合には、カードリーダ2は、改めてHOSTコンピュータ1から正真性証明用情報15を取得せず、(ダウンロードされる)更新ソフトウェア14のダウンロードを初めからやり直すことになる。
【0055】
ダウンロードを完了した後に、カードリーダ2は、スーパーバイザープログラムにおいて、ダウンロードされた更新ソフトウェア14に対して正真性確認用情報を計算により求め、予め不揮発性メモリ23に格納されている正真性証明用情報15と比較する。つまり、このときカードリーダ2が更新することができるソフトウェアは、ダウンロードが中断された更新ソフトウェア14のみである。
【0056】
カードリーダ2が、それ以外のソフトウェアに更新しようとした場合、ダウンロードを完了した後に行う正真性証明用情報15と正真性確認用情報を比較する段階で不一致となり、カードリーダ2は、無効なソフトウェアの正真性確認用情報の計算結果と、予め格納されている正真性証明用情報15とを比較しているとみなして起動しない。
【0057】
カードリーダ2は、正真性証明用情報15を不揮発性メモリ23に保持することで、正真性証明用情報15を改めてHOSTコンピュータ1から取得する処理を省略することができ、更に相互認証処理を改めて実行しなくても、不正に改ざんされたソフトウェアに更新されることを阻止することができる。
【0058】
つぎに、カードリーダ2が、HOSTコンピュータ1から更新ソフトウェア14をコマンドにより受信してダウンロードするときの手順(上述した符号(a)〜(h)を含む)を以下に示す。
【0059】
[通常実行されるダウンロードの処理]
図3は、本発明の実施の形態に係るソフトウェアのダウンロード方法において、通常実行されるダウンロードの一例を示すフローチャートである。
【0060】
処理(1)カードリーダ2は、HOSTコンピュータ1から更新ソフトウェア14に関する正真性証明用情報15をコマンドとともに受け取る(S101)。
【0061】
処理(2)S101のコマンドに対して相互認証処理が正常に終了しているかチェックする(S102)。相互認証処理が正常に終了している状態ならばS101のコマンドを受け付け、次のS104に進む。一方、正常に終了していない状態ならば実行不可応答をHOSTコンピュータ1に返す(S103)。なお、相互認証とは、HOSTコンピュータ1側からみて、通信相手となるカードリーダ2が正当であるか、またカードリーダ2側からみて、通信相手であるHOSTコンピュータ1が正当であるかを、相互に認証することである。
【0062】
処理(3)HOSTコンピュータ1はカードリーダ2に、ダウンロード実行モードに遷移するように促すコマンドを送信する(S104)。
【0063】
処理(4)カードリーダ2はそのコマンドを受けて、(1)の処理で取得した正真性証明用情報15を不揮発性メモリ23のデータ保存領域232に書き込んだ後(S105)、ダウンロード実行モードに遷移する(S106)。
【0064】
処理(5)HOSTコンピュータ1はカードリーダ2に、更新ソフトウェア14のダウンロードを実行するコマンドを送信する(S107)。すなわち、コマンドにより要求された処理が実行され、具体的には、更新ソフトウェア14をダウンロードし、カードリーダ2のF−ROM22に格納する。
【0065】
処理(6)カードリーダ2は更新ソフトウェア14の全データのダウンロードが完了した時点で、スーパーバイザープログラムにおいて、ダウンロードされた更新ソフトウェア14に対して正真性確認用情報を計算により求める(S108)。
【0066】
処理(7)カードリーダ2は、スーパーバイザープログラムにおいて、不揮発性メモリ23に格納した正真性証明用情報15と、計算により求めた正真性確認用情報を比較する(S109)。
【0067】
処理(7−1)カードリーダ2は、正真性証明用情報15と正真性確認用情報が一致する場合には、ダウンロードされた更新ソフトウェア14が正当であると判断し、HOSTコンピュータ1にダウンロードが正常に終了した、すなわち、更新できたことを通知する(S110、S113)。
【0068】
処理(8−1)ダウンロードが正常に終了したとの通知を受けたHOSTコンピュータ1は、カードリーダ2に、ダウンロード実行モードからの離脱命令コマンドを送信する(S114)。カードリーダ2は、離脱命令コマンドを受けて、不揮発性メモリ23に格納されている正真性証明用情報15を無効状態として、ダウンロードされた更新ソフトウェア14を起動し、処理を終了する(S115)。
【0069】
処理(7−2)一方、上記処理(7)で比較した結果、カードリーダ2が、正真性証明用情報15と正真性確認用情報が不一致の場合には、ダウンロードされたソフトウェアは無効なソフトウェアとみなして、不揮発性メモリ23に格納されている正真性証明用情報15と、ダウンロードされたソフトウェアとを無効状態として、ダウンロードが異常終了であった、すなわち、更新できなかったことをHOSTコンピュータ1に通知する(S111、S112)。
【0070】
処理(8−2)ダウンロードが異常終了した(S112)場合には、カードリーダ2は、その後にダウンロード実行モードからの離脱命令コマンドを受けても、ダウンロードされたソフトウェアを起動しない。また、カードリーダ2は、全てのコマンドに対して、セキュリティエラーを通知し、処理を終了する。
【0071】
なお、ダウンロードされた更新ソフトウェア14と正真性証明用情報15は、一つにまとめてダウンロードファイルとしてパックすることも可能である。
【0072】
[ダウンロードを中断した後の処理]
図4は、本発明の実施の形態に係るソフトウェアのダウンロード方法において、ダウンロードを中断した後の処理の一例を示すフローチャートである。
【0073】
上記処理(5)に示すS107〜(8−1)に示すS115を実施中に、通信破綻などによりダウンロードが中断された場合には、(5)の処理を初めからやり直す。
【0074】
カードリーダ2は、電源立ち上げ時に、起動すべきソフトウェアが一連のダウンロードの途中で中断された状態であると判断された場合には、ダウンロード実行モードに入り、ダウンロードを開始することを待つ。すなわち、上記(1)〜(4)の処理を省略して、(5)の処理の直前に戻る。
【0075】
具体的には、カードリーダ2は、ダウンロードを中断した後に電源が再投入されると(S201)、スーパーバイザープログラムを起動し(S202)、ユーザープログラム領域233に格納されているプログラムのCRCチェックを実行する(S203)。
【0076】
カードリーダ2は、CRCチェックにより更新ソフトウェア14のダウンロードが正常に終了していると判断した場合には、通常運用モードに遷移する(S204、S205)。
【0077】
一方、カードリーダ2は、CRCチェックにより更新ソフトウェア14のダウンロードが途中で中断された状態であると判断された場合には、ダウンロード実行モードに入り、ダウロードを開始することを待つ(S206)。その後、カードリーダ2は、S207以降のダウンロードを順に再実行する。なお、
図4に示すS207からS212までの各処理は、
図3に示すS107からS112までの各処理と同じであるので、ここでの説明は省略する。
【0078】
[本実施の形態の主な効果]
仮に、上記のようなダウンロードを再実行する段階で、カードリーダ2が、前回とは異なるソフトウェアをダウンロードすると、上記(5)及び(6)の処理を実行した後、上記(7−2)及び(8−2)の処理に入ることになる。従って、カードリーダ2は、上記(1)〜(4)の処理を省略しても、不正なソフトウェアを起動することはなく、セキュリティ性を維持することができる。
更に、本実施の形態では、HOSTコンピュータ1とカードリーダ2との間で正当性を確認する相互認証処理の再実施を省略しているが、不正なソフトウェアを起動することはなく、セキュリティ性を維持することができる。
【0079】
また、カードリーダ2は、従来技術にシステムに示すように、ソフトウェアを一時的に格納するためのメモリを別途設けることなく、既存の手段で処理することができるので、従来技術に示すシステムと同レベルのセキュリティ性を維持しながらも、メモリ容量増加によるコスト増を防ぐことができる。
【0080】
(他の実施の形態)
カードリーダ2は、不正なソフトウェアがダウンロードされたと判断された場合に、ソフトウェアを無効(ソフトウェア消去を含む)にし、即再起不能状態にしてもよい。この場合でも、再びダウンロード可能な状態に遷移したとしても、その後に何回ダウンロードを実施しても中断したソフトウェア以外は、更新に失敗するので、セキュリティ性を維持することができる。
【0081】
カードリーダ2は、不正なソフトウェアがダウンロードされたと判断された場合に、セキュリティエラー状態として、全てのコマンドに対してセキュリティエラーを通知することにしたが、エラーレスポンスを返さず、無応答の再起不能状態にしてもよい。
【0082】
本システムの構成としては、ダウンロードにて直接F−ROMに書き込むような構成にしているが、従来技術のように、更新ソフトウェア14を一旦RAMに保持して、正真性チェックをして、正当なソフトウェアと判断できたら、F−ROMに書き込むようにしてもよい。
【0083】
[第2実施形態のシステムの構成]
図5は、本発明の実施の形態に係るソフトウェアのダウンロード方法において、ダウンロードの状況の他の一例を示す構成図である。なお、
図5において丸付き数字で示す符号は、処理の順番を示す。また、
図2に示す構成と同じものには同じ符号を付記している。
【0084】
第2実施形態のシステムを構成するブロック図は、上述した第1実施形態で使用したブロック図(
図1)と同じであるので、ここでの説明は省略する。
【0085】
第2実施形態では、
図5に示すように、不揮発性メモリ23は、カードリーダ2を制御する制御プログラムや初期値などの情報を格納している。より具体的には、スーパーバイザープログラム領域231、データ保存領域としての第1情報格納領域232a及び第2情報格納領域232b、ユーザープログラム領域233を有している。
スーパーバイザープログラム領域231は、ダウンロードを実行するためのソフウェアが格納されている。データ保存領域は、カードリーダを動作させる際に必要なデータ等を保存しており、第1情報格納領域232a、第2情報格納領域232bと分割されている。第1情報格納領域232aは、HOSTコンピュータ1から取得済の更新前ソフトウェアの正真性を証明する更新前正真性証明用情報を格納し、第2情報格納領域232bは、HOSTコンピュータ1から取得して更新される更新ソフトウェアの正真性を証明する正真性証明用情報15を格納する。ユーザープログラム領域233は、通常、カードリーダ2を運用するためのソフトウェアが格納されており、ダウンロードにより更新ソフトウェア14が格納されるようになっている。
【0086】
なお、データ保存領域231は第1情報格納領域232a及び第2情報格納領域232bの2分割された領域に限定されるものではない。
【0087】
カードリーダ2は、HOSTコンピュータ1から取得済の更新前ソフトウェアの正真性を証明する更新前正真性証明用情報を第1情報格納領域232aに格納する第1情報格納手段と、HOSTコンピュータ1から取得して更新される更新ソフトウェアの正真性を証明する正真性証明用情報15を第2情報格納領域232bに格納する第2情報格納手段と、を備えている。なお、正真性証明情報15及び更新前正真性証明情報を書き込む不揮発性メモリは、F−ROMでもよいが、バッテリ等でバックアップされたRAMでもよい。なお、第1情報格納領域232a及び第2情報格納領域232bをF−ROMに設ける場合、双方の領域を異なる消去単位のブロックに配置する。
【0088】
つぎに、HOSTコンピュータ1から取得して更新される更新ソフトウェア14をダウンロードする手順を、
図5を用いて説明する。
図5において、カードリーダ2は、更新ソフトウェア14のダウンロードを開始する前に、ダウンロードされる更新ソフトウェア14の正真性を証明するための情報として正真性証明用情報15をHOSTコンピュータ1からコマンドとともに受信し、ユーザープログラム領域233内に格納されているプログラムを用いてデータ処理を行い、カードリーダ2内で処理するための形態に変換する(丸付符号1)。取得した正真性証明用情報15を、RAM24に保持する(丸付符号2)。カードリーダ2は、RAM24に保持した正真性証明用情報15を、カードリーダ2内の不揮発性メモリ23の第2の情報格納領域232bに格納する(丸付符号3)。この不揮発性メモリ23に格納された正真性証明用情報15は、カードリーダ2の電源がOFFになっても失われることはない。
【0089】
次に、カードリーダ2は、HOSTコンピュータ1からコマンドを受信して、ダウンロード実行モードに遷移する。すなわち、不揮発性メモリ23内に格納されているスーパーバイザープログラムを起動させる(丸付符号4)。スーパーバイザープログラムは、HOSTコンピュータ1からダウンロード用のコマンドを受信する(丸付符号5)。更新ソフトウェア14のダウンロードを実行し、更新ソフトウェア14を不揮発性メモリ23のユーザープログラム領域233に格納する(丸付符号6)。
【0090】
カードリーダ2のスーパーバイザープログラムは、更新ソフトウェア14のダウンロードを完了した後に、ユーザープログラム領域233にダウンロードされた更新ソフトウェア14に対して正真性確認用情報を所定の計算により求める(丸付符号7)。さらに、スーパーバイザープログラムを用いて、カードリーダ2は、計算で求めた正真性確認用情報と、予め不揮発性メモリ23の第2の情報格納領域232bに格納されている正真性証明用情報15とを比較して、双方の正真性証明用情報15と正真性確認用情報が一致している場合に、ダウンロードされた更新ソフトウェア14を起動する(丸付符号8)。
【0091】
また、カードリーダ2のスーパーバイザープログラムは、正真性証明用情報15と計算により求めた正真性確認用情報が一致している場合に、第2情報格納領域232bに格納されている正真性証明用情報15を更新前正真性証明用情報として第1情報格納領域232aに格納する(丸付符号9)。
【0092】
上述したように、第2実施形態における本システムは、カードリーダ2が不揮発性メモリ23に第1情報格納領域232aと第2情報格納領域232bを備え、丸付符号9の情報比較工程において、正真性証明用情報15と計算により求めた正真性確認用情報が一致している場合に、第2情報格納領域232bに格納された正真性証明用情報15を更新前正真性証明用情報として第1情報格納領域232aに格納する。従って、本システムは、丸付符号3の第2情報格納工程で、ダウンロード対象となる更新ソフトウェア14の正真性を証明する正真性証明用情報15をHOSTコンピュータ1から受信し、その情報をカードリーダ2の不揮発性メモリ23の第2情報格納領域232bに格納している途中で、停電などにより処理が中断されて、正真性証明用情報15が完全に書き込まれなかった場合でも、次回電源立ち上げ時には、第1情報格納領域232aに格納されている更新前正真性証明用情報と、更新前(未だ更新されていない)ソフトウェアの正真性確認情報の計算結果との照合が行われ、照合結果は一致する。すなわち、本システムが、照合不一致により不正ダウンロードであると誤認され、不正使用防止のための緊急停止モードに誤って遷移することがない。
【0093】
また、本システムが、丸付符号6の更新ソフトウェア14のダウンロード実行前に、停電等の原因によって処理が中断された場合でも、第1情報格納領域232aには、更新前(未だ更新されていない)ソフトウェアに対応する更新前正真性証明用情報が格納されている。従って、本システムは、次回電源立ち上げ時に、第1情報格納領域232aに格納されている更新前正真性証明用情報と、未だ更新されていないソフトウェアの正真性確認情報の計算結果との照合が行われ、照合結果は一致するから、緊急停止モードに誤って遷移することがない。
【0094】
また、本システムは、丸付符号9の第1情報格納工程の途中で、停電等の原因によって処理が中断された場合には、第1情報格納領域232aに格納された情報は破損しているが、第2情報格納領域232bには更新ソフトウェア14に対応する正真性証明用情報15が格納されている。従って、本システムは、次回電源立ち上げ時に、第2情報格納領域232bに格納されている正真性証明用情報15と、更新ソフトウェア14に対して計算により求めた正真性確認情報の計算結果との照合が行われ、照合結果は一致するから、緊急停止モードに誤って遷移することがない。
【0095】
第2実施形態の本システムは、第1実施形態のシステムと同様に、ダウンロード処理が中断された場合でも、セキュリティ性を保ちつつ、ダウンロード処理再開までの手順を簡略化することができる。
【0096】
つぎに、カードリーダ2が、HOSTコンピュータ1から更新ソフトウェア14をコマンドにより受信してダウンロードするときの手順(上述した丸付符号1〜9を含む)を以下に示す。
【0097】
[通常実行されるダウンロードの処理]
図6は、第2実施形態のソフトウェアのダウンロード方法において、通常実行されるダウンロードの一例を示すフローチャートである。
【0098】
処理(一)カードリーダ2は、HOSTコンピュータ1から更新ソフトウェア14に関する正真性証明用情報15をコマンドとともに受け取る(S301)。
【0099】
処理(二)S301のコマンドに対して相互認証処理が正常に終了しているかチェックする(S302)。相互認証処理が正常に終了している状態ならばS301のコマンドを受け付け、次のS304に進む。一方、正常に終了していない状態ならば実行不可応答をHOSTコンピュータ1に返す(S303)。なお、相互認証とは、HOSTコンピュータ1側からみて、通信相手となるカードリーダ2が正当であるか、またカードリーダ2側からみて、通信相手であるHOSTコンピュータ1が正当であるかを、相互に認証することである。
【0100】
処理(三)HOSTコンピュータ1はカードリーダ2に、ダウンロード実行モードに遷移するように促すコマンドを送信する(S304)。
【0101】
処理(四)カードリーダ2はそのコマンドを受けて、(一)の処理で取得した正真性証明用情報15を不揮発性メモリ23の第2情報格納領域232bに書き込んだ後(S305)、ダウンロード実行モードに遷移する(S306)。
【0102】
処理(五)HOSTコンピュータ1からカードリーダ2に、更新ソフトウェア14のダウンロードを実行するコマンドを送信する(S307)。
【0103】
処理(六)すなわち、コマンドにより要求された処理が実行され、具体的には、カードリーダ2は、更新ソフトウェア14をダウンロードし、カードリーダ2のF−ROM22に格納する。
【0104】
処理(七)カードリーダ2は、更新ソフトウェア14の全データのダウンロードが完了した時点で、スーパーバイザープログラムにおいて、ダウンロードされた更新ソフトウェア14に対して正真性確認用情報を計算により求める(S308)。
【0105】
処理(八)カードリーダ2は、スーパーバイザープログラムにおいて、不揮発性メモリ23の第2情報格納領域232bに格納した正真性証明用情報15と、計算により求めた正真性確認用情報を比較する(S309)。
【0106】
処理(九)カードリーダ2は、正真性証明用情報15と計算により求めた正真性確認用情報が一致する場合には、ダウンロードされた更新ソフトウェア14が正当であると判断し(S310)、第2情報格納領域232bに格納した正真性証明用情報15を第1情報格納領域232aに複写し(S313)、HOSTコンピュータ1にダウンロードが正常に終了したこと、すなわち、更新できたことを通知する(S314)。なお、カードリーダ2は、複写後に、第2情報格納領域232bに格納されている正真性証明用情報15を削除してもよい。
【0107】
ダウンロードが正常に終了したとの通知を受けたHOSTコンピュータ1は、カードリーダ2に、ダウンロード実行モードからの離脱命令コマンドを送信する(S315)。カードリーダ2は、離脱命令コマンドを受けて、ダウンロードされた更新ソフトウェア14を起動し、処理を終了する(S316)。なお、S315において、離脱命令コマンドでない場合には、引き続きスーパーバイザープログラムは各コマンドの処理を実施する。
【0108】
一方、カードリーダ2は、正真性証明用情報15と計算により求めた正真性確認用情報が不一致の場合には、ダウンロードされたソフトウェアは無効なソフトウェアとみなして(S310)、不揮発性メモリ23の第2情報格納領域232bに格納されている正真性証明用情報15と、ダウンロードされたソフトウェアとを無効状態として、ダウンロードが異常終了であったこと、すなわち、更新できなかったことをHOSTコンピュータ1に通知する(S311、S312)。
【0109】
ダウンロードが異常終了した(S312)場合には、カードリーダ2は、その後にダウンロード実行モードからの離脱命令コマンドを受けても、ダウンロードされたソフトウェアを起動しない。また、カードリーダ2は、全てのコマンドに対して、セキュリティエラーを通知し、処理を終了する。
【0110】
[ダウンロードを中断した後の処理]
図7は、第2実施形態のソフトウェアのダウンロード方法において、ダウンロードを中断した場合に実行されるソフトウェアのダウンロード方法の処理の一例を示すフローチャートである。
【0111】
カードリーダ2は、更新ソフトウェア14のダウンロード処理を中断した後に電源が再投入されると(S401)、スーパーバイザープログラムを起動し、ユーザープログラム領域233に格納されているプログラムのCRCチェックを実行する(S402)。
【0112】
カードリーダ2は、CRCチェックにより更新ソフトウェア14のダウンロードが正常に終了していると判断した場合には、通常運用モードに遷移する(S403、S404)。
【0113】
一方、カードリーダ2は、CRCチェックにより更新ソフトウェア14のダウンロードが途中で中断された状態であると判断された場合には、ダウンロード実行モードに入り、更新ソフトウェア14のダウロードを実施する(S405、S406)。
【0114】
カードリーダ2は、更新ソフトウェア14の全データのダウンロードが完了した時点で、スーパーバイザープログラムにおいて、ダウンロードされた更新ソフトウェア14に対して正真性確認用情報を計算により求める(S407)。
【0115】
カードリーダ2は、スーパーバイザープログラムを実行し、不揮発性メモリ23の第2情報格納領域232bに格納した正真性証明用情報15と、計算により求めた正真性確認用情報を比較する(S408)。
【0116】
カードリーダ2は、正真性証明用情報15と計算により求めた正真性確認用情報が一致する場合には、ダウンロードされた更新ソフトウェア14が正当であると判断し(S409)、第2情報格納領域232bに格納した正真性証明用情報15を第1情報格納領域232aに複写し(S412)、HOSTコンピュータ1にダウンロードが正常に終了したこと、すなわち、更新できたことを通知する。
【0117】
ダウンロードが正常に終了したとの通知を受けたHOSTコンピュータ1は、カードリーダ2に、ダウンロード実行モードからの離脱命令コマンドを送信する(S413)。カードリーダ2は、離脱命令コマンドを受けて、ダウンロードされた更新ソフトウェア14を起動し、処理を終了する(S414)。なお、S413において、離脱命令コマンドでない場合には、引き続きスーパーバイザープログラムは各コマンドの処理を実施する。
【0118】
一方、カードリーダ2は、正真性証明用情報15と計算により求めた正真性確認用情報が不一致の場合には、ダウンロードしたソフトウェアは無効なソフトウェアとみなして(S409)、不揮発性メモリ23の第2情報格納領域232bに格納されている正真性証明用情報15と、ダウンロードされたソフトウェアとを無効状態として、ダウンロードが異常終了であったこと、すなわち、更新できなかったことをHOSTコンピュータ1に通知する(S410、S411)。
【0119】
ダウンロードが異常終了した(S411)場合には、カードリーダ2は、その後にダウンロード実行モードからの離脱命令コマンドを受けても、ダウンロードされたソフトウェアを起動しない。また、カードリーダ2は、全てのコマンドに対して、セキュリティエラーを通知し、処理を終了する。
【0120】
[電源立ち上げ時の正真性確認処理]
図8は、第2実施形態のソフトウェアのダウンロード方法において、電源立ち上げ時に実行されるソフトウェアの正真性確認方法の処理の一例を示すフローチャートである。
【0121】
カードリーダ2は、電源が再投入されると(S501)、スーパーバイザープログラムを起動し、ユーザープログラム領域233に格納されているプログラムのCRCチェックを実行する(S502)。
【0122】
カードリーダ2は、CRCチェックにより更新ソフトウェア14のダウンロードが正常に終了していないと判断した場合には、ダウンロード実行モードに遷移する(S503、S504)。
【0123】
一方、カードリーダ2は、CRCチェックにより更新ソフトウェア14のダウンロードが正常に完了していると判断した場合には、スーパーバイザープログラムにおいて、ダウンロードされた更新ソフトウェアに対して正真性確認用情報を計算により求める(S503、S505)。
【0124】
カードリーダ2は、スーパーバイザープログラムにおいて、不揮発性メモリ23の第1情報格納領域232aに格納された更新前の正真性証明用情報と、計算により求められた正真性確認用情報を比較する(S506)。
【0125】
カードリーダ2は、更新前の正真性証明用情報と計算により求められた正真性確認用情報が一致する場合には、ダウンロードされたソフトウェアが正当であると判断し(S507)、通常運用モードに遷移する(S508)。
【0126】
一方、カードリーダ2は、更新前の正真性証明用情報と計算により求められた正真性確認用情報が一致しない場合には、第2情報格納領域232bに格納されている正真性証明用情報15と計算により求められた正真性確認用情報を比較する(S509)。
【0127】
カードリーダ2は、第2情報格納領域232bに格納した正真性証明用情報と計算により求めた正真性確認用情報が一致する場合には、更新ソフトウェア14のダウンロード終了後に、第2情報格納領域232bに格納された正真性証明用情報を第1情報格納領域232aに複写する途中で中断されたと判断し(S510)、第2情報格納領域232bに格納された正真性証明用情報15を、更新前の正真性証明用情報として第1情報格納領域232aに複写し(S513)、通常運用モードに遷移する(S514)。
【0128】
一方、カードリーダ2は、正真性証明用情報15と計算により求めた正真性確認用情報が一致しない場合には、ダウンロードされているソフトウェアは無効なソフトウェアとみなして(S510)、不揮発性メモリ23の第2情報格納領域232bに格納されている正真性証明用情報15と、ダウンロードされたソフトウェアとを無効状態として、ダウンロードが異常終了であったこと、すなわち、更新できなかったことをHOSTコンピュータ1に通知する(S511、S512)。
【0129】
ダウンロードされたソフトウェアが異常と判断された(S512)場合には、カードリーダ2は、その後にダウンロード実行モードからの離脱命令コマンドを受けても、ダウンロードされたソフトウェアを起動しない。また、カードリーダ2は、全てのコマンドに対して、セキュリティエラーを通知し、処理を終了する。
【0130】
[本実施の形態の主な効果]
第2実施形態に示す本システムは、このような構成にすることで、一連のダウンロード処理が中断されても確実に復旧させることができるため、システムの信頼性を向上させることができる。
【0131】
また、本システムは、ソフトウェアをダウンロードする過程で停電等の原因によって処理が中断された場合でも、第1情報格納領域及び第2情報格納領域にそれぞれのソフトウェアに対応した正真性証明用情報が格納されているから、次回電源立ち上げ時に照合不一致になって、不正ダウンロードであると誤認されるのを防止することができる。